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

IV.8 Technical and Crosscutting Concepts

This section focusses on the technical concepts and other important concepts involved in the application.

Domain Models

biking2 is a data-centric application; therefore, everything is based around the following Entity Relationship Diagram (ERD):

Figure 4.30: Entities in biking2

These entities are manifested as tables.

Tables

Figure 4.31: Tables

Those tables are mapped to the following domain model:

Figure 4.32: Domain model (JPA entities)

Domain Model

Figure 4.33: Domain model components

Important Business Methods Regarding BikeEntity

Figure 4.34: Business methods

Persistency

biking2 uses an H2 (https://www.h2database.com/html/main.html) database for storing relational data and the filesystem for binary image files and large ASCII files (especially all GPS files).

During development and production, the H2 database is retained and is not in-memory-based. The location of this file is configured...