Software Architecture

Ruǎnjiàn Jiàgòu 软件架构 (DISA, DABM)

Architecture as a craft that generates the plan

This web page focuses on the architecture as a craft. It focuses on creating a good plan that shows the customer what software they will get and the builders how to build it.

What does the plan look like?

Creating a software architecture means creating a plan of the software. The following documents (containing different views of the software) are useful parts of this plan.

Context view (Use Case Diagram, Component Diagram)

The context view defines the boundary between the software and the environment of the software. This is crucial for the builders to know what they shall build and what others are building or what is already present. It is also crucial for the builders to know how to interact with the environment. Beware to define the boundary clearly. E.g. if the software gets data from the environment, the interface must be defined completely before building starts or at least it must be clear who is paying, planning and building the interface.

Context view: Customer actor, Online Shop system boundary, Payment Provider and Email Service as external systems

Building block view (Component Diagram, Package Diagram, Class Diagram)

The building block view shows the parts of the software and how these are connected. Beware that the interfaces are important and should be treated with the same effort as the parts.

Building block view: Web Frontend, Order Service, Product Catalog, Payment Module connected through Order API, Catalog API and Payment API interfaces

Runtime view (Sequence Diagram, Activity Diagram, Communication Diagram)

The runtime view shows how the parts of the software interact at runtime, e.g. the sequence of calls, the processes involved and the communication flows. This is crucial for the builders to understand the dynamic behavior of the software and to identify potential performance or reliability issues early.

Runtime view: Customer, Web Frontend, Order Service sequence

Data view (Class Diagram, Object Diagram)

The data view shows what data is stored, exchanged and in what format. This is crucial for the builders to understand the data structures and the flow of data through the system, and to ensure that the data is consistent and complete.

Data view: Customer, Order, Product relationships

Deployment view (Deployment Diagram)

The deployment view shows how the software is mapped to infrastructure, e.g. servers, containers or networks. This is crucial for the builders to understand where the software runs and how it is operated, and to ensure that the infrastructure fits the requirements of the software.

Deployment view: Web Server, Application Server, Database Server

User interface view (Wireframe, User Flow Diagram)

The user interface view shows what controls the user will see and interact with, e.g. forms, buttons and navigation elements. For wizard-like flows, it also shows the sequence of steps. This is crucial for the customer to verify the software will be usable, and for the builders to understand the expected interaction patterns.

User interface view: Simple order form wireframe

Other parts of other plans

The plan of the architect may contain the parts mentioned above. It may contain further parts, but there are parts that are not part of the plan. Examples are:

Cross-cutting concepts

This web page does not focus on cross-cutting concepts. Classic cross-cutting concepts like logging or security are treated as building blocks.

A remark about the details

Some people assume that architecture only concerns the large parts, not the details. Beware that you must know and consider all details that have an effect on the architecture (e.g. one small system in the environment that can only be reached from the local network may have the effect that you can't deploy the software to the cloud).

What is the foundation to be able to create a good plan?

To be able to create a good plan, the architect needs the following fundamental information.

What answers does the plan have to include?

When looking at the finished plan, the answers to the following questions should be visible.

Common answers

For each of the questions above, these are the most common options to choose from.