VXCD Architectural Modelling Platform

VXCD Architectural Modelling Platform focuses on extending XCD further and attracting practitioners' interest more.

To this end, two new components are intended to be developed: Visual XCD and XCD for Implementation.

Visual XCD (VXCD)

VXCD is a visual architecture description language that extends the XCD architecture description language with a visual notation set.

VXCD's visual notation set has been inspired from the well-known UML's component diagram, which is also depicted in the below figure.

VXCD has exactly the same semantics as XCD (Read the CBSE'14 paper for XCD's semantics). So, VXCD allows for specifying contractual, modular, realisable, and formally analysable software architectures. Like XCD, VXCD also supports components and connectors (interaction protocols), but in a visual way. VXCD allows designers to specify the behaviours of components and connector protocols through button clicks, form-filling, and selection lists by minimising the amount of texts that they need to type in.

VXCD is supported by a drawing editor through which designers can specify their visual VXCD architectures. Using VXCD's code generator, designers can translate their VXCD architectures into textual XCD architectures. By doing so, designers can benefit from XCD's code generators for translating their architectural models into ProMeLa formal verification language. ProMeLa models can then be formally analysed for a number of system properties automatically using the SPIN model checker.

VXCD is supported by another code generator that can translate any visual VXCD architectures into software implementation code in Java. So, whatever designers specify visually including the structure, behaviours, and interaction protocol design decisions can be translated into Java code. This reduces the amount of time and effort that developers need to spend for implementing software systems. Moreover, the consistency between software architectures and software implementation is guaranteed in this way. The translation algorithms from VXCD to Java can be found here.

VXCD Download Instructions:

To download and use VXCD drawing editor and code generator, you need to download the Metaedit+ application first. Then, download the VXCD pro

ject folder and place the VXCD project folder within the Metaedit+ folder that is supposed to be created once you download Metaedit+.

When you open the Metaedit+ application, you should see the VXCD project within the list of repositories. You need to choose the VXCD from the repository list and login the Metaedit+ application. Once you logged in, you should be able to use VXCD's drawing editor to draw visual VXCD architecture specifications and also click to generate Java code automatically.

VXCD Case Studies

Gas Station

We consider here the classic architectural case study of a gas station [NACO97] for a number of customers N, which in our case is equal to two. As the figure shows, the gas station has one cashier component with N event consumer ports through which it receives payment events and N event emitter ports through which it sends events to release a respective pump. The system has a pump component that also has one event consumer port to receive release pump events and N method provided ports through which it receives requests for gas.Finally the system has N components of type customer, each of which has two ports. One is an event emitter port that sends payment events and the other is a method required port that calls the pump method. [NACO97] G. Naumovich, G. S. Avrunin, L. A. Clarke, L. J. Osterweil. Applying Static Analysis to Software Architectures. In Jazayeri and Schauer (eds.), ESEC / SIGSOFT FSE. Lecture Notes in Computer Science 1301, pp. 77���93. Springer, 1997.

The AEGIS system has been developed for navy ships to make them capable of controlling their weapons against enemies. The AEGIS system has firstly been tackled by Wright [Allen and Garlan, 1996]. Therein, a formal specification of the AEGIS is given in Wright [Allen and Garlan, 1997], and also the evaluation of its analysis. As depicted in the figure, AEGIS could informally be specified as a set of components interacting with each other. The Experiment Control, at the top of the diagram, essentially provides linked components the information obtained via sensors.The track information is, for instance, required by the Track Server which stores it and provides other components (Doctrine Validation and Geo Server) the location information about the enemies operating around the ship. The Doctrine Authoring requires doctrine rules from the Experiment Control and provides them to the other components (Geo Server,Doctrine Validation, and Doctrine Reasoning) that require rules to take actions. Using the doctrine rules and track information from its environment, the Geo Server provides to the Doctrine Reasoning the precisely calculated region information for enemies. Lastly, the Doctrine Reasoning makes the decision of which task(s) to take against the enemies.

[Allen and Garlan, 1996] Allen, R. and Garlan, D. (1996). A case study in architectural modelling: The aegis system. In Proceedings of the Eighth International Workshop on Software Specification and Design (IWSSD-8), pages 6���15, Paderborn, Germany.

[Allen and Garlan, 1997] Allen, R. and Garlan, D. (1997). A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol., 6(3):213���249.

  1. Click to view the visual specification snapshots
    1. Click to view the corresponding textual XCD specification
  2. Click to view the generated Java code