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

III.6 Runtime View

This section focuses on the description of Runtime View.

6.1 Import File

One of the major use cases is Import File, which can be from both the mandator and partner. Such files always contain client-related data in configurable formats (CSV, fix-formats, or XML).

We will split the explanation of import file into two phases:

  1. Import a raw generic file (from an external source).
  2. Validate the imported data and update the internal client database.

6.1.1 Import Raw Generic File

First, we will explain the generic import, where no campaign-specific activities are executed. This concerns the configureReceiveChannel and instantiateFilterChain() activities:

Figure 3.21: Importing a raw file (first part)

The process of importing raw files can be described as follows:

  1. tryImport ProcessControl starts the import. The activity is a unique ID identifying the mandator, the campaign, and the activity.
  2. importConfiguration gets all the required configuration information...