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

II.6 Runtime View

Note

The runtime view shows the behavior, interactions, and runtime dependencies of the building blocks in the form of concrete scenarios.

This helps us understand how the building blocks of our systems fulfill their respective tasks at runtime, and how they communicate/interact with each other at runtime.

II.6.1 Executing All Checks

A typical scenario within HtmlSC is the execution of all the available checking algorithms on a set of HTML pages. The following diagram depicts the checking operation in HtmlSC:

Figure 2.16: Execution of checking algorithms

The preceding diagram can be explained as follows:

  1. The user or build calls the htmlSanityCheck build target.
  2. Gradle (from within the build) calls sanityCheckHtml.
  3. HSC configures the input files and output directory.
  4. HSC creates an AllChecksRunner instance, gets all configured files into allFiles (planned), and gets all the available Checker classes based on the annotation.
  5. Finally, it performs...