ArchiMate diagrams

Business, application and technology layers: for enterprise architecture.

ArchiMate is the notation to reach for when the audience is enterprise architecture rather than a delivery team: it models business capability and motivation alongside applications and technology, which C4 deliberately does not.

When to use these

When not to

Common mistakes

ArchiMate's element set is large enough that two authors will model the same thing differently. Agree a subset before you start. Most useful views need perhaps a dozen element types, not the full specification.

The 6 templates

Layered View.puml

The classic view: business over application over technology.

Layered View: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Layered View

' Business Layer
Business_Actor(customer, "Customer")
Business_Role(buyer, "Buyer")
Business_Process(ordering, "Ordering Process")
Business_Service(orderService, "Order Service")

' Application Layer
Application_Component(orderApp, "Order Application")
Application_Service(orderAPI, "Order API")
Application_DataObject(orderData, "Order Data")

' Technology Layer
Technology_Node(server, "Application Server")
Technology_Artifact(orderJar, "order.jar")
Technology_SystemSoftware(jvm, "JVM")

' Relationships
Rel_Assignment(buyer, customer)
Rel_Assignment(ordering, buyer)

The rest of this template, and how to use it

Motivation View.puml

Why, not what. Drivers, goals, principles, requirements.

Motivation View: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Motivation View

Motivation_Stakeholder(management, "Management")
Motivation_Stakeholder(customers, "Customers")

Motivation_Driver(efficiency, "Operational Efficiency")
Motivation_Driver(satisfaction, "Customer Satisfaction")

Motivation_Assessment(currentState, "Current manual processes are slow")

Motivation_Goal(reduceTime, "Reduce Processing Time by 50%")
Motivation_Goal(improveExp, "Improve Customer Experience")

Motivation_Outcome(fasterService, "Faster Service Delivery")

Motivation_Principle(automation, "Automate where possible")

Motivation_Requirement(selfService, "Self-service Portal")
Motivation_Requirement(integration, "System Integration")

Rel_Association(management, efficiency)

The rest of this template, and how to use it

Business Layer.puml

Processes, actors, services at the business layer.

Business Layer: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Business Layer

Business_Actor(customer, "Customer")
Business_Actor(supplier, "Supplier")

Business_Role(buyer, "Buyer")
Business_Role(seller, "Seller")

Business_Collaboration(negotiation, "Negotiation")

Business_Interface(webPortal, "Web Portal")
Business_Interface(phoneSupport, "Phone Support")

Business_Process(orderProcess, "Order Process")
Business_Process(fulfillment, "Fulfillment")
Business_Function(salesMgmt, "Sales Management")

Business_Service(ordering, "Ordering Service")
Business_Service(delivery, "Delivery Service")

Business_Event(orderReceived, "Order Received")

The rest of this template, and how to use it

Application Layer.puml

Components and the services they expose.

Application Layer: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Application Layer

Application_Component(crm, "CRM System")
Application_Component(erp, "ERP System")
Application_Component(orderMgmt, "Order Management")

Application_Collaboration(integration, "System Integration")

Application_Interface(crmAPI, "CRM API")
Application_Interface(erpAPI, "ERP API")
Application_Interface(webUI, "Web Interface")

Application_Function(customerMgmt, "Customer Management")
Application_Function(orderProcessing, "Order Processing")

Application_Service(customerService, "Customer Service")
Application_Service(orderService, "Order Service")

Application_DataObject(customerData, "Customer Data")
Application_DataObject(orderData, "Order Data")

The rest of this template, and how to use it

Technology Layer.puml

Nodes, devices, system software.

Technology Layer: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Technology Layer

Technology_Node(datacenter, "Data Center") {
  Technology_Node(appServer, "Application Server") {
    Technology_SystemSoftware(tomcat, "Tomcat")
    Technology_Artifact(warFile, "app.war")
  }
  Technology_Node(dbServer, "Database Server") {
    Technology_SystemSoftware(postgres, "PostgreSQL")
    Technology_Artifact(dbSchema, "Schema")
  }
}

Technology_Node(cloud, "Cloud Infrastructure") {
  Technology_Node(cdn, "CDN")
  Technology_Node(loadBalancer, "Load Balancer")
}

Technology_Device(userDevice, "User Device")
Technology_CommunicationNetwork(internet, "Internet")
Technology_CommunicationNetwork(intranet, "Intranet")

The rest of this template, and how to use it

Implementation & Migration.puml

Work packages, deliverables, plateaus: for migration.

Implementation & Migration: rendered example
Show the source
@startuml
!include <archimate/Archimate>

title ArchiMate Implementation & Migration View

Implementation_WorkPackage(wp1, "Phase 1: Foundation")
Implementation_WorkPackage(wp2, "Phase 2: Core Development")
Implementation_WorkPackage(wp3, "Phase 3: Integration")
Implementation_WorkPackage(wp4, "Phase 4: Deployment")

Implementation_Deliverable(d1, "Architecture Design")
Implementation_Deliverable(d2, "Core Application")
Implementation_Deliverable(d3, "Integrated System")
Implementation_Deliverable(d4, "Production System")

Implementation_Event(kickoff, "Project Kickoff")
Implementation_Event(milestone1, "Design Complete")
Implementation_Event(milestone2, "Development Complete")
Implementation_Event(goLive, "Go Live")

Implementation_Plateau(current, "Current State")
Implementation_Plateau(transition, "Transition State")
Implementation_Plateau(target, "Target State")

The rest of this template, and how to use it

Render these offline

Every template here ships in Gnomon and renders on your machine, with no account and nothing sent to a server. The browser editor is free and needs no install.

Get GnomonOpen the browser editor