Book Image

arc42 by Example

By : Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller
Book Image

arc42 by Example

By: Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller

Overview of this book

When developers document the architecture of their systems, they often invent their own specific ways of articulating structures, designs, concepts, and decisions. What they need is a template that enables simple and efficient software architecture documentation. arc42 by Example shows how it's done through several real-world examples. Each example in the book, whether it is a chess engine, a huge CRM system, or a cool web system, starts with a brief description of the problem domain and the quality requirements. Then, you'll discover the system context with all the external interfaces. You'll dive into an overview of the solution strategy to implement the building blocks and runtime scenarios. The later chapters also explain various cross-cutting concerns and how they affect other aspects of a program.
Table of Contents (9 chapters)
Free Chapter
1
Acknowledgements
8
VII - macOS Menu Bar Application

V.5 Building Block View

This section describes the decomposition of DokChess into modules. These are also reflected in the package structure of the Java source code. In DokChess, we call modules of the first decomposition level's subsystems. The building block view level 1 presents them, including their interfaces. For the Engine subsystem, this overview also includes a more detailed breakdown into level 2 ( refer V.6.1 Move Determination Walkthrough contains an example of the interaction between the subsystems at runtime).

5.1 Building Block View-Level 1

DokChess breaks down into four subsystems, as presented in the following figure.

Figure 5.14: Building block view, level 1 of DokChess

The dashed arrows represent logical dependencies between the subsystems (x -> y for x depends on y). The squared boxes on the membrane of the system are interaction points (ports) with the outside world (refer V.3.2 Deployment Context):

Figure 5.15: Subsystems of DokChess...