
- SEQUENCE DIAGRAM TOOL HOW TO
- SEQUENCE DIAGRAM TOOL SOFTWARE
Same as for the context diagram: Draw.io, OmniGraffle, LucidChart and others.
Add comments on the purpose of each component and the technology it is implemented with. Identify the list of entities: microservices, storages, external services. What was a single rectangle, now consists of some rectangles and arrows. The trick here is you are zooming in into your system. That mean it is almost the main diagram you have to work on! In my experience this diagram is the most complex and it gains the most attention in the same time. It can be a mobile application, a website, a VM, a docker container, a database or an object storage whatever you can deploy. Container is an any deployable entity or data storage from the C4 perspective. Containers everywhere!Ĭontainers don't mean docker containers here. Luckily, it was easy to fix.Ĭontext diagram is a crucial view which provides the highest level understanding on the people and systems your future system will interact with. Should we have a context diagram in place, we won't make that mistake. At the time of Alpha release we understood, that analytical system is not receiving the data from the client facing app. That way the context diagram started to make sense and allowed to omit those elements from the lower level diagrams. After the reconcideration I added an API Gateway and an existing Auth Provider we were going to use. It would include only a newly created system and a single customer, which didn't bring any value. I was struggling with a context diagram for one banking system. Context may actually include some lower level details, this is perfectly fine. Failing to do so may cost you missed integrations and mistakes during system design. Context diagram is the first thing you create when working on a system. Several great examples can be found here. Rel predicate has 3 parameters as well, but they are different: a key of one entity, a key of another and a name of the relation.īasically you can draw a context diagram in any drawing tool you'd like. Person, System and System_ext predicates have 3 parameters: a key, a title and a description. Rel_U(abc_system, current, define a person, a system, external systems and the relations between them.
Rel_Neighbor(abc_system, dms, "uploads files") System_Ext(current, "Existing Banking System", "Banking Backoffice") System_Ext(dms, "DMS", "Document Management System") System_Ext(pay, "Google Pay/Apple Pay", "Google Pay and Apple Pay systems") System_Ext(idnow, "IDNow", "System for KYC and Qualified Eletronic Signatures") System(abc_system, "Digital Platform", "Allows freelancers and business owners see their transactions.") Person(customer, "Customer", "A bank client") ' uncomment the following line and comment the first to use locally Let's say we want to draw the aforementioned diagram for a neo-banking digital platform with uml: You can also use PlantUML to leverage diagrams as code. There are C4 stencils for OmniGraffle, C4 examples for LucidChart, draw.io has the stencils as well. There are different tools you can use to create the context diagram.
Provide meaningful comments on every component. Add connections between the system, users and external systems. Create a single rectangle depicting your system. Identify the persons who will use your system.
This diagram displays the neo-banking digital platform presented by a blue rectangle in the center. It is important to understand this context to properly design the system and remind yourself to integrate with external systems.
Other software systems may be source of data for your system, or get the information from it. Users may have different roles like content creator, reader, administrator. Primarily, it's their users and other software systems. The c4 website does a pretty good job explaining their diagrams, but I still would like to provide my own understanding.
How to pick one up?ĭuring my work as Solution Architect I use 5 diagrams the most: C4 Context and Container diagrams, Deployment Diagram, Sequence diagram and Use Case diagram. Of course, there is a billion of ways you can do it. So instead you cover different concerns, grouped by view points and create a set of diagrams describing each view. This is nor possible, neither useful for anybody. As we found out earlier, you can not just draw a single image. The job of a solution architect is to clearly communicate the design of software systems to business, project managers and developers.