ArchiMate is an open and independent enterprise architecture modeling language that supports the description, analysis, and visualization of architecture within and across business domains. An ArchiMate Diagram provides a structured representation of the various components of an enterprise, their interrelationships, and their integration with IT infrastructure. While both ArchiMate and UML are modeling languages, they serve different purposes. UML is primarily used for software design and system modeling, focusing on the structural and behavioral aspects of systems. In contrast, ArchiMate is tailored for enterprise architecture, offering a holistic view of the organizational, informational, and technical layers of an enterprise. 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. 🎉 Copied! 
 | @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. 🎉 Copied! 
 | @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
|
🎉 Copied! 
 | @startuml
skinparam roundcorner 25
rectangle "Capture Information" as CI <<$archimate/business-process>> #Business
@enduml
|
You can list all possible sprites for Archimate using the following diagram: 🎉 Copied! 
 | @startuml
listsprite
@enduml
|
Archimate Macros and Library A list of Archimate macros are defined Archimate-PlantUML here which simplifies the creation of ArchiMate diagrams, and Archimate is natively on the Standard Library of PlantUML. Archimate elements Using the macros, creation of ArchiMate elements are done using the following format: Category_ElementName(nameOfTheElement, "description") For example: - To define a Stakeholder element, which is part of Motivation category, the syntax will be
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description") :
🎉 Copied! 
 | @startuml
!include <archimate/Archimate>
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description")
@enduml
|
- To define a Business Service element,
Business_Service(BService, "Business Service") :
🎉 Copied! 
 | @startuml
!include <archimate/Archimate>
Business_Service(BService, "Business Service")
@enduml
|
Archimate relationships 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: - Access
- Aggregation
- Assignment
- Association
- Composition
- Flow
- Influence
- Realization
- Serving
- Specialization
- Triggering
The Directions supported are: For example: - To denote a composition relationship between the Stakeholder and Business Service defined above, the syntax will be
Rel_Composition(StakeholderElement, BService, "Description for the relationship") 🎉 Copied! 
 | @startuml
!include <archimate/Archimate>
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description")
Business_Service(BService, "Business Service")
Rel_Composition(StakeholderElement, BService, "Description for the relationship")
@enduml
|
- Unordered List ItemTo orient the two elements in top - down position, the syntax will be
Rel_Composition_Down(StakeholderElement, BService, "Description for the relationship") 🎉 Copied! 
 | @startuml
!include <archimate/Archimate>
Motivation_Stakeholder(StakeholderElement, "Stakeholder Description")
Business_Service(BService, "Business Service")
Rel_Composition_Down(StakeholderElement, BService, "Description for the relationship")
@enduml
|
Appendice: Examples of all Archimate RelationTypes 🎉 Copied! 
 | @startuml
left to right direction
skinparam nodesep 4
!include <archimate/Archimate>
Rel_Triggering(i15, j15, Triggering)
Rel_Specialization(i14, j14, Specialization)
Rel_Serving(i13, j13, Serving)
Rel_Realization(i12, j12, Realization)
Rel_Influence(i11, j11, Influence)
Rel_Flow(i10, j10, Flow)
Rel_Composition(i9, j9, Composition)
Rel_Association_dir(i8, j8, Association_dir)
Rel_Association(i7, j7, Association)
Rel_Assignment(i6, j6, Assignment)
Rel_Aggregation(i5, j5, Aggregation)
Rel_Access_w(i4, j4, Access_w)
Rel_Access_rw(i3, j3, Access_rw)
Rel_Access_r(i2, j2, Access_r)
Rel_Access(i1, j1, Access)
@enduml
|
🎉 Copied! 
 | @startuml
title ArchiMate Relationships Overview
skinparam nodesep 5
<style>
interface {
shadowing 0
backgroundcolor transparent
linecolor transparent
FontColor transparent
}
</style>
!include <archimate/Archimate>
left to right direction
rectangle Other {
() i14
() j14
}
rectangle Dynamic {
() i10
() j10
() i15
() j15
}
rectangle Dependency {
() i13
() j13
() i4
() j4
() i11
() j11
() i7
() j7
}
rectangle Structural {
() i9
() j9
() i5
() j5
() i6
() j6
() i12
() j12
}
Rel_Triggering(i15, j15, Triggering)
Rel_Specialization(i14, j14, Specialization)
Rel_Serving(i13, j13, Serving)
Rel_Realization(i12, j12, Realization)
Rel_Influence(i11, j11, Influence)
Rel_Flow(i10, j10, Flow)
Rel_Composition(i9, j9, Composition)
Rel_Association_dir(i7, j7, \nAssociation_dir)
Rel_Association(i7, j7, Association)
Rel_Assignment(i6, j6, Assignment)
Rel_Aggregation(i5, j5, Aggregation)
Rel_Access_w(i4, j4, Access_w)
Rel_Access_rw(i4, j4, Access_rw)
Rel_Access_r(i4, j4, Access_r)
Rel_Access(i4, j4, Access)
@enduml
 | [Adapted from Archimate PR#25] | |