#44 C4_Container Diagram Sample - techtribesjs.puml

fallback image probably showing plantuml error image



Diagram Information

Created by: admin   published
Language: Python
Repository: abulka/sample_python_uml  github
Commit: master
Tags: c4 architecture


Ask somebody in the building industry to visually communicate the architecture of a building and you'll be presented with site plans, floor plans, elevation views, cross-section views and detail drawings. In contrast, ask a software developer to communicate the software architecture of a software system using diagrams and you'll likely get a confused mess of boxes and lines ... inconsistent notation (colour coding, shapes, line styles, etc), ambiguous naming, unlabelled relationships, generic terminology, missing technology choices, mixed abstractions, etc.

The C4 model for visualising software architecture Context, Containers, Components and Code diagramming methodology is an alternative to UML, this particular example taken from here.

The C4 model is an "abstraction-first" approach to diagramming software architecture, based upon abstractions that reflect how software architects and developers think about and build software. The small set of abstractions and diagram types makes the C4 model easy to learn and use.

Implementation in GitUML

You can create C4 diagrams in GitUML by using the PlantUML macros from https://github.com/RicardoNiepel/C4-PlantUML by simply including 

!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml

at the top of your "Refine UML" area. Also, since at the moment you must base your diagram on a repository and select at least one file in that repository, you will need to select some random repository and file and hide its contents with hide statements in your Refine UML area e.g.

hide ParseMeTest
hide Blah

This limitation (of having to select a repo and at least one file) may be lifted in the future, allowing pure PlantUML diagrams to be hosted. Potentially some integration with the classes and modules in the repository and C4 techniques may also be developed - its early days in my thinking yet.

Modules being visualised

List of repository modules/files being visualised in the above diagram: