# ArchiMate diagram ArchiMate is the notation for enterprise architecture: business, application and technology layers, with defined element types and relationships. It is heavier than C4 and answers a broader question. The shapes ship with the draw.io editor, and the PlantUML standard library has an ArchiMate set if you prefer text. --- ## When to reach for one * Enterprise architecture work where the notation is expected. * Mapping business capabilities onto the applications that deliver them. * Portfolio views: which systems support which processes. --- ## How to draw it in Capable | **Route** | **Use when** | | --------- | --------------------------------------------------- | | draw.io | The full ArchiMate shape library, laid out by hand. | | PlantUML | Text-based ArchiMate via the standard library. | --- ## A worked example A small ArchiMate view across three layers: ![ArchiMate diagram](https://help.gocapable.com/images/att1430487056.svg) The source, which you can paste into a new diagram and edit: ``` @startuml skinparam rectangle<> { roundCorner 25 } sprite $bProcess jar:archimate/business-process sprite $aService jar:archimate/application-service sprite $aComponent jar:archimate/application-component rectangle "Handle claim" as HC <<$bProcess>><> #Business rectangle "Capture Information" as CI <<$bProcess>><> #Business rectangle "Notify\nAdditional Stakeholders" as NAS <<$bProcess>><> #Business rectangle "Validate" as V <<$bProcess>><> #Business rectangle "Investigate" as I <<$bProcess>><> #Business rectangle "Pay" as P <<$bProcess>><> #Business HC *-down- CI HC *-down- NAS HC *-down- V HC *-down- I HC *-down- P CI -right->> NAS NAS -right->> V V -right->> I I -right->> P rectangle "Scanning" as scanning <<$aService>><> #Application rectangle "Customer administration" as customerAdministration <<$aService>><> #Application rectangle "Claims administration" as claimsAdministration <<$aService>><> #Application rectangle Printing <<$aService>><> #Application rectangle Payment <<$aService>><> #Application scanning -up-> CI customerAdministration -up-> CI claimsAdministration -up-> NAS claimsAdministration -up-> V claimsAdministration -up-> I Payment -up-> P Printing -up-> V Printing -up-> P rectangle "Document\nManagement\nSystem" as DMS <<$aComponent>> #Application rectangle "General\nCRM\nSystem" as CRM <<$aComponent>> #Application rectangle "Home & Away\nPolicy\nAdministration" as HAPA <<$aComponent>> #Application rectangle "Home & Away\nFinancial\nAdministration" as HFPA <<$aComponent>> #Application DMS .up.|> scanning DMS .up.|> Printing CRM .up.|> customerAdministration HAPA .up.|> claimsAdministration HFPA .up.|> Payment legend left Example from the "Archisurance case study" (OpenGroup). See ==== <$bProcess> :business process ==== <$aService> : application service ==== <$aComponent> : application component endlegend @enduml ``` --- ## A few things that catch people out * ArchiMate relationship types are strict; the notation is most of the value. * Draw views, not the whole model. An ArchiMate diagram showing everything helps nobody. * If you only need software architecture, C4 is lighter and usually enough. --- ## Related [Block diagramBoxes and arrows, when that is genuinely all you need.](https://help.gocapable.com/diagrams/block-diagram.html) [UML diagramsThe UML types you can draw, and what to use for each.](https://help.gocapable.com/diagrams/uml-diagrams.html) [ExamplesWorking diagrams you can copy.](https://help.gocapable.com/diagrams/examples.html) --- _Cheap to change means it stays true._