Coherence

Understanding and documenting even an average-sized solution requires looking at it from multiple views and describing it through various artifacts and models. However, to get the full picture, these different perspectives must be put together, interconnected, and easy to navigate. In reality, any system is a network of cooperating, interconnected artifacts, and it is crucial to structure them in a way that allows you to quickly find all related elements. This applies to both the artifacts themselves and the models that visualize the relationships between them.

The following example shows how a feature is broken down into the individual artifacts that developers need to implement:

aa

  • It shows that the use case is realized by the Client Detail screen.
  • Besides viewing client information, stakeholders also need the ability to generate a client business card.
  • The business card is generated using the Generate Business Card function when a user clicks the button on the screen.
  • The layout of the business card is defined in the Business Card Document Template.

To understand how the system works, all four components are needed, so they should be kept together. This concept is called coherence. The easiest way to achieve this is to store them in the same place.

This approach looks fine at first glance. It explains what happens when the icon is clicked and provides context for the logic behind favorite articles. However, it can become a maintenance issue down the road.
While it is certainly useful to have a description of how favorite articles work, it is a bad idea to include it directly in the behavior description of a single button. First, it is counter-intuitive and unexpected there. Second, you wouldn't want to copy this description to every single button that interacts with favorite articles. That would duplicate information, which is a bad practice. A better approach is to create a single overview and link to it wherever needed. This ensures coherence without duplicating information or creating tight coupling.

Linking Element

When applying the coherence principle, it quickly becomes clear that there is usually one central artifact around which other artifacts are grouped. Depending on what you are analyzing, typical examples of these "glue artifacts" include process steps, use cases, UI screens, or system functions. In this chapter, we will show how use cases act as a "hub" during requirements analysis, while the example below demonstrates the same concept in the design phase, where a system function serves as the linking element:

aa