design-practice-repository

Summaries of artifacts, templates, practices, and techniques for agile architecting (DPR-mm) and service design (SDPR-nn).

DPR Git Pages HomeArtifacts Index

Artifact/Template: Component Diagram

a.k.a. Logical View

A component diagram zooms into an element from an architecture overview/container diagram and shows its logical building blocks and their relations.

Motivation (Addressed Information Need)

The C4 model page on Wikipedia describes this artifact as: “decompose containers into interrelated components, and relate the components to other containers or other systems”.

Usage (Produced and Consumed When)

This diagram type is an intermediate artifact, supporting usage scenarios and problem-solving strategies such as:

Template Structure and Notation(s)

Component diagrams that illustrate the static structure often come in boxes-and-arrows form, with the semantics of these diagram elements explained in a legend or standardized. When using UML, for instance, stereotyped classes can be used as boxes.

The C4 Model for visualizing software architecture by Simon Brown introduces component models as its third C. It also features a “Dynamic diagram”.

Unified Modeling Language (UML) has a component diagram, but due to language and tool limitations stereotyped class diagrams might also be an adequate choice. The UML communication diagram (formerly known as a “UML collaboration diagram”) captures component dynamics; sequence diagrams are a valid choice for that purpose as well.

Example(s)

The following component diagram identifies a number of generic candidate components across logical layers (based on Figure 7 in “An architectural decision modeling framework for service oriented architecture design”):

Generalized Component Diagram (Example)

Note that this diagram operates on a meta level; it might be part of a reference architecture, but does not part of a concrete solution architecture (the generic candidate component would have to be translated into domain-specific components for that).

Tools

Common choices include:

Hints and Pitfalls to Avoid (Common Pitfalls)

Origins and Signs of Use

Component models and diagrams arguably are as old as the software architecture field (or even older), appearing under various names.

The Component Diagram is one of the four Cs in C4.

Layering and partitioning is featured in Scott Ambler’s publications, see for instance his online essay “Class Type Architecture: A Strategy for Layering Software Applications”.

Activities in DPR:

Artifacts:

More Information

Data Provenance

title: "Design Practice Repository (DPR): Component Diagram"
author: Olaf Zimmermann (ZIO)
date: "01, 31, 2023"
copyright: Olaf Zimmermann, 2023 (unless noted otherwise). All rights reserved.
license: Creative Commons Attribution 4.0 International License