In the previous blog, we introduced the basic concepts of software architecture. Next we will introduce how to build a software system.
When we begin to design the system architecture, we usually consider the following points:
What are the main functional elements of the designed software architecture.
How to associate these elements with other systems.
Which information needs to be stored, managed, and displayed.
Hardware and software required to implement these features.
The features and capabilities provided by the software architecture.
What is required for development, testing, support, and training environments.
What aspects should we consider when considering the above issues? That is, the architecture perspective and focus.
Architecture perspective
The architecture perspective focuses on all aspects of the software architecture from one or more perspectives. It reflects the different concerns of one or more stakeholders of the software architecture.
To determine an architecture perspective, we can focus on the following aspects:
1. Stakeholders focus on the aspects of the software architecture. Here, the stakeholders can be divided into one type or one group, for such members, we can analyze their interests and expertise.
2. How much professional knowledge and understanding these stakeholders possess. For example, users in different fields may not have much knowledge about hardware and software, however, they are very clear about their knowledge and business in this field.
3. Different stakeholders may have different concerns. What we need to do is to cater to the concerns of these stakeholders as much as possible, such as the background of the software architecture they are concerned about.
4. For these stakeholders, they do not need to care too much about the architecture, so they need to determine what they need to pay attention to, for non-technical content, they are more concerned about whether we can guarantee the completion on time.
For architects, when we describe the architecture, too many technical details will overload stakeholders, but too few technologies will cause some concerns to our stakeholders, therefore, selecting appropriate technical details is very important for architecture description.
Focus
As an architect, it is not easy to select an appropriate focus from the system perspective to describe the architecture. Fortunately, we do not need to do this anymore. In kruchten's four points of attention to architects: logic, physics, process, and expansion, we can use a complete set of ready-made template libraries and models for creation and architecture.
One focus is to create a series of templates to build a series of views and conventions. It reflects the architect's views and policies, stakeholder concerns, and the components of the architecture itself. The focus of the architecture reflects the content of an architecture, and can be used as the creation and description of the same type of architecture.
Define a standard method. A standard language is used to describe different layers and models of the software system, so that stakeholders can understand any architecture description, as a result, once stakeholders are familiar with these standards, this is very attractive for the architecture of a software architecture. Although we have not yet achieved this goal in practice, we have created some software system models and conventions that are universally accepted, such: entity-link model, UML, and other widely accepted languages.
So far, we have roughly understood what we should consider as an architect, but this is far from enough. Next we will continue to explain other things.