C4-modellen
C4-modellen er en strømlinjeformet grafisk notasjonsteknikk for modellering av arkitektur til programvaresystemer.[1][2] Den er basert på strukturell dekomposisjon (en hierarkisk trestruktur) av et system til konteinere og komponenter, og bygger på eksisterende modelleringsteknikker som Unified Modeling Language (UML) eller entitet–relasjonsmodell-diagrammer (ERD-er) for mer detaljert dekomponering av arkitekturblokkene.
Historie
C4-modellen ble skapt av programvarearkitekten Simon Brown mellom 2006 og 2011 basert på Unified Modeling Language og 4+1 visningsmodellen. Teknikken ble popularisert gjennom lanseringen av en offisiell nettside med Creative Commons-lisens[3]
Oversikt
C4-modellen dokumenterer arkitekturen til et programvaresystem gjennom å ha flere visninger[4] som forklarer dekomponeringen av et system i konteinere og komponenter, relasjonene mellom disse elementene, og (der det er relevant) relasjonen til brukerne.[3]
Visningene er organisert i henhold til deres hierarkiske nivå:[2][3]
- Kontekstdiagrammer (nivå 1): Viser systemet som skal studeres og dets relasjon til brukere og andre systemer
- Konteinerdiagrammer (nivå 2): Dekomponerer et system til innbyrdes relaterte konteinere. En container representerer en applikasjon eller et datalager.
- Komponentsdiagrammer (nivå 3): Dekomponerer konteinere til innbyrdes relaterte komponenter, og knytter komponentene til andre konteinere eller andre systemer.
- Kodediagrammer (nivå 4): Gir ytterligere detaljer om utformingen av arkitekturelementer som kan avbildes til kode. På dette nivået er C4-modellen basert på eksisterende notasjoner som Unified Modeling Language (UML), entitet–relasjonsmodell-diagrammer (ERD-er) eller diagrammer generert det integrerte utviklingsmiljøet (IDE).
For nivå 1 til 3 bruker C4-modellen 5 grunnleggende diagramelementer: Personer, programvaresystemer, konteinere, komponenter og relasjoner. Teknikken angir ikke utforming, form, farge og stil for disse elementene. I stedet anbefaler C4-modellen å bruke enkle diagrammer basert på nøstede bokser for å lette interaktiv tegning. Teknikken fremmer også gode modelleringspraksis som å angi tittel og forklaring på hvert diagram, og klar og utvetydig merking for å lette forståelsen hos tiltenkt publikum.
C4-modellen legger til rette for visuelt arkitektursamarbeid og evolusjonær arkitektur i kontekst av smidige lag der mer formelle dokumentasjonsmetoder og forhåndsplanlagt («up-front») arkitekturdesign ikke er ønsket.[5]
Referanser
- ^ Richards,Mark; Ford, Neal (2019). Fundamentals of software architecture: an engineering approach. O'REILLY MEDIA. ISBN 978-1-4920-4342-3. OCLC 1138515057. «some standard are emerging for diagramming software architecture (such as software architect Simon Brown's C4 model or The Open Group Archimate standard)»
- ^ a b Enríquez, René (2018). Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications. Salazar, Alberto. Packt Publishing Ltd. ISBN 978-1-78899-673-0. OCLC 1053798657.
- ^ a b c Brown, Simon. «The C4 model for visualising software architecture» (Official site of the modelling technique). Arkivert fra originalen 25. februar 2010. Besøkt 22. august 2020.
- ^ Keeling, Michael. Design it! : from programmer to software architect. Raleigh, North Carolina. ISBN 978-1-68050-345-6. OCLC 1024312521.
- ^ «The Conflict Between Agile and Architecture: Myth or Reality?». Software Engineering Institute of Carnegie Mellon University. Arkivert fra originalen 19. april 2021. Besøkt 22. august 2020.