Today, I will introduce a plugin of Astah, that supports a modeling method called C4model.
C4 model is invented against a background that recently UML is not so popular in industries and defined syntactically based on UML. The C4 model method is aiming at better communications among engineers. Please refer the official site of C4 model and other useful references as follows:
- External link: Visualizing software architecture with the C4 model (Japanese)
- External link: C4 model for software architecture (Japanese)
- External link: C4 model is proposed as an alternative to the complicated standard UML (Japanese)
In C4 model, a software architecture is captured with 4 layers (1) Software system, (2) Container, (3) Component, and (4) Code. In the Software system layer, the context of the system-of-interest with its users and the interactions to other systems are analyzed and described.
Let us draw a C4 model with C4 model plugin in Astah. An example in the official site will be used. First, the model of the Software system layer can be written with the plugin as follows. For the details how to use the plugin, please visit the readme of C4model plugin github.
Here, the classes in the diagram are graphically represented by SVG files with extended the “customized icon” function of Astah. For example, the class having stereotype «Person» is represented with a human-shaped icon and classes having «Software System» are represented by blue or gray rectangles. The texts on the icons are just string objects introduced by the plugin. Therefore, if you move such an icon in a diagram, those strings do not move only by that action. You can see the following just after you move the icon of “Internet Banking System”.
But using the “Refresh (based on model)” button provided by the C4 model plugin, the positions of the strings will be corrected as follows.
This is because the plugin has information on the association between strings on an icon and the diagram element (i.e. the icon) of a class. The texts of the strings are also associated with the model element in an Astah project. For instance, an explanatory text for each class is representing the initial value of the attribute named “description” of that class.
As you have seen, although the behaviors seem strange, the visuals of C4 model are reproduced. You can also introduce new icons using the “customized icon” function of Astah as you need. For advanced modeling in C4 model as multiple-layered modeling techniques, please see the readme of C4model plugin github.
We hope you try the plugin and we will receive any feedbacks!