8000 GitHub - ashish362/java: Structurizr for Java
[go: up one dir, main page]

Skip to content

ashish362/java

 
 

Repository files navigation

Structurizr

Structurizr for Java

This GitHub repository is a collection of tooling to help you visualise, document and explore the software architecture of a software system. In summary, it allows you to create a software architecture model based upon Simon Brown's "C4 model" using Java code, and then export that model to be visualised using tools such as:

  1. Structurizr: a web-based service to render web-based software architecture diagrams and supplementary Markdown/AsciiDoc documentation. Diagrams can be viewed online directly or by embedding them in Atlassian Confluence.
  2. PlantUML: a tool to create UML diagrams using a simple textual domain specific language.
  3. graphviz: a tool to render directed graphs using the DOT format.

As a simple example, the following Java code can be used to create a software architecture model to describe a user using a software system.

Workspace workspace = new Workspace("My model", "This is a model of my software system.");
Model model = workspace.getModel();

Person user = model.addPerson("User", "A user of my software system.");
SoftwareSystem softwareSystem = model.addSoftwareSystem("Software System", "My software system.");
user.uses(softwareSystem, "Uses");

ViewSet viewSet = workspace.getViews();
SystemContextView contextView = viewSet.createSystemContextView(softwareSystem, "context", "A simple example of a System Context diagram.");
contextView.addAllSoftwareSystems();
contextView.addAllPeople();

If using Structurizr, the end-result, after adding some styling and positioning the diagram elements, is a system context diagram like this:

Getting Started with Structurizr for Java

Table of contents

  1. Building from source
  2. Binaries
  3. Basic concepts
  4. Getting started
  5. API Client
  6. Styling elements
  7. Styling relationships
  8. Corporate branding
  9. Hiding relationships
  10. Extracting components from your codebase
  11. Components and supporting types
  12. The Spring PetClinic example
  13. Dynamic views
  14. Client-side encryption
  15. Documentation
  16. Graphviz and DOT
  17. PlantUML

About

Structurizr for Java

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%
0