This is only a proposal and subject to change.
You are very welcome to create a new discussion on this future syntax. Your feedbacks, ideas and suggestions help us to find the right solution.
You can use the archimate
keyword to define an element. Stereotype can optionally specify an additional icon. Some colors (Business
, Application
, Motivation
, Strategy
, Technology
, Physical
, Implementation
) are also available.
@startuml
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
@enduml
Using the circle
keyword and the preprocessor, you can also create junctions.
@startuml
!define Junction_Or circle #black
!define Junction_And circle #whitesmoke
Junction_And JunctionAnd
Junction_Or JunctionOr
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
GO -up-> JunctionOr
STOP -up-> JunctionOr
STOP -down-> JunctionAnd
WAIT -down-> JunctionAnd
@enduml
@startuml
sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
archimate #Business "Handle claim" as HC <<business-process>>
archimate #Business "Capture Information" as CI <<business-process>>
archimate #Business "Notify\nAdditional Stakeholders" as NAS <<business-process>>
archimate #Business "Validate" as V <<business-process>>
archimate #Business "Investigate" as I <<business-process>>
archimate #Business "Pay" as P <<business-process>>
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
archimate #APPLICATION "Scanning" as scanning <<application-service>>
archimate #APPLICATION "Customer admnistration" as customerAdministration <<application-service>>
archimate #APPLICATION "Claims admnistration" as claimsAdministration <<application-service>>
archimate #APPLICATION Printing <<application-service>>
archimate #APPLICATION Payment <<application-service>>
scanning -up-> CI
customerAdministration -up-> CI
claimsAdministration -up-> NAS
claimsAdministration -up-> V
claimsAdministration -up-> I
Payment -up-> P
Printing -up-> V
Printing -up-> P
archimate #APPLICATION "Document\nManagement\nSystem" as DMS <<application-component>>
archimate #APPLICATION "General\nCRM\nSystem" as CRM <<application-component>>
archimate #APPLICATION "Home & Away\nPolicy\nAdministration" as HAPA <<application-component>>
archimate #APPLICATION "Home & Away\nFinancial\nAdministration" as HFPA <<application-component>>
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
@startuml
rectangle "Capture Information" as CI <<$archimate/business-process>> #yellow
@enduml
You can list all possible sprites for Archimate using the following diagram:
listsprite
A list of Archimate marcros are defined Archimate-PlantUML here which simplifies the creation of ArchiMate diagrams.
Using the macros, creation of ArchiMate elements are done using the following format: Category_ElementName(nameOfTheElement, "description")
For Example:
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description")
Business_Service(BService, "Business Service")
The ArchiMate relationships are defined with the following pattern: Rel_RelationType(fromElement, toElement, "description")
and to define the direction / orientation of the two elements: Rel_RelationType_Direction(fromElement, toElement, "description")
The RelationTypes supported are:
The Directions supported are:
For example:
Rel_Composition(StakeholderElement, BService, "Description for the relationship")
Rel_Composition_Down(StakeholderElement, BService, "Description for the relationship")