


They reflect the authors’ opinions and, with the purpose of timely disseminations, are published as presented and without change. The papers of this book comprise the proceedings of the conference mentioned on the title and the cover page. © by the International Institute of Informatics and Systemics. For other copies, reprint, or republication permission, write to IIIS Copyright Manager, 13750 West Colonial Dr Suite 350 – 408, Winter Garden, Florida 34787, U.S.A. Instructors are permitted to photocopy, for private use, isolated articles for non-commercial classroom use without fee. Libraries are permitted to photocopy for private use. Mentioned on the ThoughtWorks Tech Radar - Techniques - Diagrams as code, the Structurizr DSL provides a way to author a Structurizr workspace using a straightforward text-based domain specific language.Ī command line utility to create software architecture models as YAML.Ī Java library to create Structurizr workspaces.Ī Clojure wrapper over Structurizr for Java.Ī TypeScript port of Structurizr for Java.Ī Go port of Structurizr for Java that also includes a diagram editor.Copyright and Reprint Permission: Abstracting is permitted with credit to the source. component discovery via static analysis, parsing distributed log files, etc) to create data-driven software architecture diagrams. The Structurizr DSL is the recommended authoring tool for most teams, with the code-based tools being useful for teams who want to use code to help build their software architecture model (e.g. There are a number of tools for creating a Structurizr compatible workspace including text-based DSLs and code-based client libraries. Which decouples model authoring from diagram rendering. Workspaces are described using an open JSON data format ( OpenAPI 3.0 definition), In Structurizr terminology, a "workspace" is a wrapper for a software architecture model (elements and relationships) and views. Structurizr was started in 2014 by Simon Brown (the creator of the C4 model), and has grown into a community of tooling, much of which is open source. Structurizr is a collection of tooling to create software architecture diagrams and documentation based upon the To solve this problem, we can create a single model, and visualise multiple views of it. The global search and replace features in most developer tooling does make this less of a problem, but it's just one way that a collection of diagrams can easily become inconsistent if not managed properly.

If you have the same element on two diagrams, and you want to change the name of that element, you need to make sure that you change the name everywhere it's used. However, each diagram needs to be defined separately, typically in a separate text file. These tools generally have a low barrier to entry, and the source text is easily version controlled.Īlso, it's relatively straightforward to automate the use of these tools in order to generate diagrams and documentation during your build process. With these tools, the diagram source is provided as text using a proprietary domain-specific language, which the tool then visualises, typically with an automatic layout algorithm. There has been a trend over the past few years towards text-based tooling and "diagrams as code", with the most popular examples including PlantUML,
