This repository contains architectural documentation following the 4+1 Architectural View Model created by Philippe Kruchten, visualized using C4 Model diagrams implemented in PlantUML.
The 4+1 Architectural View Model is an approach for describing software architecture using multiple concurrent views:
- Logical View: Describes the object model of the design (for designers)
- Process View: Captures the concurrency and synchronization aspects (for integrators)
- Physical View: Describes the mapping of software to hardware (for system engineers)
- Development View: Describes the software's organization in the development environment (for programmers)
- Scenarios ("+1"): Illustrates how the four views work together (for all stakeholders)
Each view addresses specific concerns of different stakeholders in the software development process, providing a comprehensive understanding of the system architecture.
This repository contains:
- 4+1 Architecture Template - A template document for creating your own 4+1 architecture documentation
- Order Management System Architecture - A complete example implementation for an Order Management System
- PlantUML Diagrams - C4 Model diagrams in PlantUML format
The C4 model is a technique for visualizing software architecture at different levels of abstraction:
- Context - System context and external dependencies
- Container - High-level technology decisions and how responsibilities are distributed
- Component - Components within containers and their interactions
- Code - How components are implemented
This project uses PlantUML with the C4 extension to create standardized architecture diagrams.
This project also demonstrates how to use Azure-PlantUML for creating Azure cloud architecture diagrams, as shown in the deployment diagrams.
- Visual Studio Code
- PlantUML extension for VS Code
- Java Runtime Environment (JRE)
- Graphviz (optional, for local rendering)
- Install VS Code from https://code.visualstudio.com/
- Install the PlantUML extension from VS Code marketplace
- Install Java (required by PlantUML): https://www.java.com/en/download/
- Install Graphviz (optional): https://graphviz.org/download/
Add these settings to your VS Code configuration:
{
"plantuml.exportFormat": "svg",
"plantuml.server": "https://www.plantuml.com/plantuml",
"plantuml.render": "PlantUMLServer"
}
- Open any
.puml
file in the diagrams directory - Right-click in the editor and select "Preview Current Diagram" to see a preview
- To export the diagram as SVG:
- Use Alt+D to preview
- Right-click in the preview and select "Export diagram"
- Choose SVG format and save to the desired location (usually in an
out/diagrams/
directory)
You can also generate diagrams using the PlantUML JAR:
java -jar plantuml.jar -tsvg diagrams/*.puml -o ../out/diagrams/
The documentation also includes Mermaid diagrams embedded directly in Markdown. These can be viewed in any Markdown renderer that supports Mermaid (like GitHub, GitLab, or VS Code with the Markdown Preview Enhanced extension).