EA Learning Path

Module 7 · Frameworks & Methods

Modeling with ArchiMate and C4

Two complementary notations, one for the enterprise and one for software, and how to pick the right view for each audience.

75 min

By the end of this module you should be able to

  • Explain views, viewpoints, and concerns, and start every diagram from its audience
  • Read and draw core ArchiMate elements and relationships across layers
  • Draw C4 context and container diagrams
  • Decide when to use ArchiMate, C4, or something simpler
  • Choose modeling tooling appropriate for a scaling organization

Builds skills: Architecture modeling , Integration & data architecture , Communication & storytelling

Start with the audience, not the notation

The most common modeling mistake isn’t using the wrong notation. It’s drawing a diagram without knowing who it’s for or what question it answers.

The international standard for architecture description, ISO/IEC/IEEE 42010, gives you the vocabulary:

  • Stakeholders have concerns: cost, security, time to market, which team owns what.
  • A viewpoint is a template for building views that address particular concerns: which elements to show, which notation to use, which audience it’s for.
  • A view is the actual diagram or model for your architecture, built according to a viewpoint.

Before drawing anything, answer three questions:

  1. Who is this for?
  2. What question does it answer for them?
  3. What can I leave out?

The third question matters most. A diagram that shows everything communicates nothing.

ArchiMate essentials

ArchiMate is The Open Group’s modeling language for enterprise architecture. It’s closely aligned with TOGAF, and its main strength is connecting layers: showing how business capabilities and processes depend on applications, and how applications depend on technology.

Layers

LayerDescribesExample elements
StrategyCapabilities, value streams, resources, courses of actionCapability, Value Stream, Resource
BusinessActors, roles, processes, services, business objectsBusiness Actor, Business Process, Business Service
ApplicationApplications, their services, interfaces, and dataApplication Component, Application Service, Data Object
TechnologyPlatforms, infrastructure, networksNode, System Software, Technology Service
PhysicalEquipment, facilities, materialsEquipment, Facility
Implementation & MigrationWork packages, deliverables, plateaus, gapsWork Package, Plateau, Gap

Motivation elements (stakeholders, drivers, goals, principles, requirements) can be connected to any layer to show why something exists.

Aspects

Within each core layer, elements fall into three aspects, which makes the language consistent across layers:

AspectQuestionBusinessApplicationTechnology
Active structureWho or what acts?Business ActorApplication ComponentNode
BehaviorWhat do they do?Business Process / ServiceApplication Function / ServiceTechnology Service
Passive structureWhat is acted on?Business ObjectData ObjectArtifact

The relationships you’ll use most

ArchiMate defines a dozen relationship types. These cover most diagrams:

RelationshipMeaningExample
ServingProvides functionality toPayments API serves Rent Collection process
RealizationImplements or makes realPayNest realizes Payment Processing service
AssignmentIs responsible for performingCollections team assigned to Arrears process
AccessReads or writesBilling app accesses Invoice data object
Composition / AggregationIs made up ofCore platform composed of components
Flow / TriggeringPasses something to / causesLease signed triggers First rent collection

Useful viewpoints

You don’t need all of ArchiMate’s example viewpoints. These are the ones EAs use most:

  • Capability map: strategy layer only. You built one in module 4.
  • Layered view: one business process or service, traced down through applications to technology. Great for impact analysis.
  • Application cooperation: which applications exchange which data. Great for integration discussions.
  • Migration / plateau view: baseline, transition, and target states with the work packages between them.

C4 essentials

The C4 model, created by Simon Brown, is a lightweight approach to diagramming software systems at four levels of zoom:

LevelShowsAudience
1. System ContextThe system, its users, and the other systems it interacts withEveryone, including non-technical people
2. ContainerThe deployable/runnable units inside the system (apps, services, databases, queues) and how they communicateArchitects, engineers, ops
3. ComponentThe major components inside one containerEngineers working on that container
4. CodeClasses, functions, and so onRarely drawn by hand; generate if needed

Supplementary diagrams cover the system landscape (all systems in the enterprise), dynamic flows, and deployment.

C4 deliberately has very little notation. Every element has a name, a type, a technology, and a short description, and every relationship arrow has a label. That simplicity is why engineering teams adopt it readily.

When to use which

SituationUse
Connecting capabilities and processes to applications and technologyArchiMate
Enterprise-wide impact analysis (“what breaks if we retire this?”)ArchiMate, ideally in a tool
Migration and plateau planningArchiMate (Implementation & Migration layer)
Explaining one system to an engineering audienceC4
Design docs, ADRs, onboardingC4
A board or executive deckNeither, strictly. A simple, clear picture informed by the model

They work well together: ArchiMate for the enterprise landscape, C4 for solution detail. Keep them consistent by using the same names for the same systems in both.

At Quillfeather

A C4 system context diagram: notifications

Engineers were arguing about notification consolidation without a shared picture. You drew this first:

  ┌────────────┐      ┌────────────┐      ┌────────────┐
  │   Tenant   │      │  Property  │      │ Contractor │
  │  [Person]  │      │  manager   │      │  [Person]  │
  └─────▲──────┘      └─────▲──────┘      └─────▲──────┘
        │                   │                   │
        └────────── email / SMS / push ─────────┘
                            │
             ┌──────────────┴─────────────┐          ┌───────────────────────┐
             │ Notification Platform      │  reads   │ Customer master       │
             │ [Software System]          ├─────────►│ (consent, preferences)│
             │ Sends all customer comms   │          └───────────────────────┘
             └────▲─────────▲─────────▲───┘
                  │         │         │
   "send rent     │         │         │     "send job
    reminder"     │         │         │      assignment"
           ┌──────┴───┐ ┌───┴──────┐ ┌┴───────────┐
           │   Core   │ │ PayNest  │ │ FixIt Pro  │
           │ platform │ │          │ │            │
           └──────────┘ └──────────┘ └────────────┘

It’s deliberately simple, and it showed the CPO and the three teams the target they were arguing about: one platform, one consent source, three callers.

An ArchiMate layered view: Rent Collection

For the CFO and Head of Payments you used a layered view, tracing the Collect Rent business process down through the application and technology layers:

LayerElements
BusinessCollect Rent process → served by Payment Collection business service; Tenant actor
ApplicationPayNest component realizes Payment Processing; Core platform serves lease and amount data; Notification Platform serves reminders
TechnologyPayNest runs on its own AWS account; payment gateway as an external technology service
Implementation & MigrationWork package Add SEPA Direct Debit, part of plateau T1 Launch-ready

Seeing it layered made it obvious that SEPA support was a PayNest extension, not a new system. That was the point of contention with the Head of Payments, who had worried it meant PayNest would be absorbed.

Tooling

ApproachExamplesFits when
Whiteboard / drawing toolsExcalidraw, Miro, draw.ioEarly exploration; workshops
Diagrams as codeStructurizr (C4), Mermaid, PlantUML (with C4-PlantUML)Engineering-facing views that live next to code and ADRs
Free ArchiMate modelingArchiLearning ArchiMate; a small EA practice building its first real model
EA repository platformsLeanIX, Ardoq, Bizzdesign, Sparx Enterprise ArchitectLarger portfolios needing inventory, impact analysis, and reporting

For a scaling organization, a sensible path is: diagrams as code for solution views, Archi to learn ArchiMate and build the first enterprise model, and an EA platform only once you’re maintaining an application inventory that people actually query. That’s usually when it outgrows a spreadsheet.

Exercise

Pick one important system in your organization and draw:

  1. A C4 system context diagram for an executive audience. Use at most eight boxes.
  2. A layered view (in ArchiMate, or as a simple table like the one above) for one business process it supports.

Show each to someone in its intended audience. What questions do they ask? Those questions tell you what the diagram failed to answer.

Reflection

  • Find an architecture diagram in your organization’s wiki. Who was it for, and what question does it answer? Can you tell?
  • Where would a single shared enterprise model save your organization real time?
  • What’s the smallest tooling change that would improve how your organization communicates architecture?

Check your understanding

1.According to ISO/IEC/IEEE 42010, what is the relationship between a viewpoint and a view?
2.In ArchiMate, which three aspects cut across the core layers?
3.Which C4 diagram would you show a CFO to explain how a new payment system fits into the business?
4.When is ArchiMate generally a better choice than C4?