C4-model
Het C4-model is een grafische notatietechniek voor het modelleren van de architectuur van softwaresystemen. Het is gebaseerd op een structurele decompositie van een systeem in containers en componenten en bouwt op bestaande modelleringstechnieken zoals de Unified Modeling Language (UML) of Entity Relation Diagrams (ERD) voor de gedetailleerde uitwerkingen en decompositie van de architecturale bouwstenen.

Geschiedenis 
Het C4-model is tussen 2006 en 2011 bedacht door de softwarearchitect Simon Brown op basis van Unified Modeling Language (UML) en het 4+1 architectonische weergavemodel. De lancering van een officiële website onder een Creative Commons-licentie en een artikel gepubliceerd in 2018 maakten de opkomende techniek populair.

Overzicht 
Het C4-model documenteert de architectuur van een softwaresysteem door meerdere overzichtsniveaus te tonen die de decompositie van een systeem in containers en componenten, de relatie tussen deze elementen en, waar van toepassing, de relatie met zijn gebruikers verklaren.

De overzichtsniveaus zijn gerangschikt volgens een hiërarchische niveau:

 Contextdiagrammen (niveau 1): tonen het geheel van een systeem en de relatie met gebruikers en andere systemen;
 Containerdiagrammen (niveau 2): ontbinden een systeem in onderling gerelateerde containers. Een container vertegenwoordigt een applicatie of een datastore die vaak als onafhankelijk proces uitgevoerd kan worden;
 Componentdiagrammen (niveau 3): ontbinden containers in onderling gerelateerde componenten en relateren de componenten aan andere containers of andere systemen. Componenten kunnen niet individueel uitgevoerd worden;
 Codediagrammen (niveau 4): ontbinden componenten en bieden aanvullende details over het ontwerp van de architecturale elementen die kunnen worden toegewezen aan code. Het C4-model vertrouwt op dit niveau op bestaande notaties zoals Unified Modeling Language (UML), Entity Relation Diagrams (ERD) of diagrammen die zijn gegenereerd door Integrated Development Environments (IDE) .

Voor niveau 1 tot 3 gebruikt het C4-model 5 elementaire diagramelementen: personen, softwaresystemen, containers, componenten en relaties. De techniek is niet voorschrijvend voor de lay-out, vorm, kleur en stijl van deze elementen. In plaats daarvan raadt het C4-model aan om eenvoudige diagrammen te gebruiken op basis van geneste vakken om zo in teamverband het ontwerpen eenvoudig mogelijk te maken. De techniek raadt het gebruik goede modelleringspraktijken aan, zoals het voorzien van een titel en legende op elk diagram, en duidelijke, ondubbelzinnige labels om het begrip door het beoogde publiek te vergemakkelijken.

Het C4-model faciliteert gezamenlijke visuele architectuur en evolutionaire architectuur in de context van agile teams waar meer formele documentatiemethoden en architectonisch ontwerp vooraf niet gewenst zijn.

Externe links 
 Officiële site

Diagram
Software engineering
Ontwerpmethodologie