Software Architecture activities and Suggestions
Version 1.0:
This article is a learning note for the book "software architecture practice.
I,
Architecture-related activities
According to the approximate time sequence, the architecture activities include the following processes:
Ø
Create a business case: the architect needs to participate in the activity;
Ø
Understanding system requirements: Use Cases, scenarios, prototypes, and other requirement acquisition tools; understanding existing systems; this book provides a detailed description of requirements scenarios, several important quality attributes are described in detail using the scenario and method;
Ø
Create or select a framework: This book summarizes the quality tactics and provides an architecture design method called "add;
Ø
Architecture file editing and communication: the architecture file editing mainly consists of view files. This book discusses the architecture file editing and provides document templates;
Ø
Architecture Analysis and Evaluation: The architecture evaluation should be based on the quality attributes that the system needs to meet, while the scenario-based evaluation is the most effective evaluation method; this book provides two architecture evaluation methods: ATAM and cbam. The former is a non-quantitative evaluation method centered on the satisfaction of the architecture to the scenario, the latter expects to provide some quantitative reference data for the architecture evaluation;
Ø
Implement the system based on the Architecture: try to create an environment or infrastructure that can be used to help the designer create and maintain the architecture, which is conducive to the implementation phase;
Ø
Ensure that the implementation conforms to the framework: Architecture reconstruction is used to extract the framework from the completed system, which can be used to verify whether the implementation conforms to the framework;
This book covers all other steps except Step 1 and Step 5.
II,
Process suggestions
1, The architectural design is completed by a designer or a designer-led design team;
2, The designer has a comprehensive understanding of the requirements and a list of requirements with priority;
3, The architecture documents are complete and easy to understand. At least one static view and one dynamic view must be included;
4, Let stakeholders understand the architecture and actively participate in the architecture evaluation;
5, The analysis framework obtains quantitative metrics and formally evaluates the quality attributes;
6, The architecture design should be conducive to incremental implementation. You can first create a skeleton system and then expand it to implement the entire system;
7, In the event of resource competition, the resource usage of each part should be clarified. For example, the network traffic limit should be allocated to each part to meet the total traffic limit of the system;
III,
Suggestions on Architecture
1, Well-defined modules, Information Hiding and mutual independence principles, isolation of basic computing structures;
2, Use well-known tactics to meet quality attribute requirements;
3, The architecture cannot depend on commercial products or tools of a specific version;
4, Separate the modules that generate data from those that use data, which facilitates future changes;
5, Use well-defined processes or tasks for parallel processing systems;
6, Consider the relationship between processes, tasks, and specific processors, and make the relationship easy to change;
7, Use a small number of simple interaction modes to facilitate understanding and implementation;
8, The architecture should reflect conceptual integrity;
IV,
References
Software Architecture practices