Understanding complex systems
System models for
Drawing tools e.g. Visio, Gliffy, ExcaliDraw
Commercial modelling tools
separation of models and views view specific customization of model elements
Similar to JSON but richer set of data literals Subset of Clojure
Numbers: 123
Strings: "Hello"
Keywords: :keyword
, :namespaced/keyword
Vectors: ["a" "b" "c"]
Sets: #{"a" "b" "c"}
Maps: {:a "a" :b "b" :c "c"}
Data structures can be nested
#{ ; set of model elements
{:el :system
:id :example/system1
:name "Example System"
:desc "An example system to show how to model in overarch"
:ct #{ ; set of children
{:el :container
:id :example/container1
:name "Example Container"
:tech "Java"
:desc "Deployable application in the example system"}}}
...
}
C4 Model: Architecture Model, Deployment Model, Dynamic Model UML: Use Case Model, Class Model, State Machines Concept Maps: Concept Model
:person :system :container :component :enterprise-boundary :context-boundary
:request :response :publish :subscribe :send :dataflow :rel
:node :system :container
:deployed-to :link :rel
:package :interface :class :field :method :enum :enum-value :stereotype :annotation :namespace :function :protocol
:inheritance :implementation :composition :aggregation :association :dependency
:use-case :actor :person :system :context-boundary
:uses :include :extends :generalizes
:state-machine :start-state :state :end-state :fork :join :choice :history-state :deep-history-state
:transition
:concept :person :system :container :enterprise-boundary :context-boundary
:is-a :has :rel
Criteria map: {:namespace "banking" :el container} Vector of maps: [{:namespace "banking" :el :container} {:namespace "banking" :el :request}]
Views define
PlantUML: C4 Views, UML Views Graphviz: Concept Maps Markdown: Glossary
JSON: complete model
Structurizr: architecture/deployment model and views only
EDN: (work in progress)
Overarch CLI
Can you improve this documentation? These fine people already did:
Ludger Solbach & Solbach, Ludger (FDP4_EXTERN)Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close