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.2 Architecture Constraints

The constraints of this project are reflected in the final solution. This section explains them and, if applicable, their motivation.

2.1 Technical Constraints

The following table lists the various technical constraints of biking2:

Figure 4.1: Technical constraints

2.2 Organizational Constraints

The following table lists the organizational constraints of biking2:

Figure 4.2: Organizational constraints

2.3 Conventions

The following table lists the various conventions followed:

Figure 4.3: Conventions used

The following naming conventions are used throughout the project:

  • All Java types must be located in packages that start with ac.simons .

    MATCH

    (project:Maven:Project)-[:CREATES]->(:Artifact)-(:CONTAINS)->(type:Type)

    WHERE

    NOT type.fqn starts with ‘ac.simons’

    RETURN

    project as Project, collect(type) as TypeWithWrongName

  • All Java types must be located in packages that contains the artifactld of the Maven...