Reflection on Architect: Software Architecture Design

Source: Internet
Author: User

I recently read the "software architect tutorial". Today I will summarize the fifth chapter "Software Architecture Design", which I think. It is mainly described in the following aspects:

    • Software Architecture
    • Absd
    • Architecture Mode
    • DSSA
    • Architecture Evaluation

 

Software Architecture

The definition of architecture in the industry is mainly divided into two types: Structure School and policy school. Architecture refers to the organizational structure of each component in the software and the relationship between each component. The strategist believes that the software architecture design is to weigh every important decision of the software and make a final decision.

Architecture, as the most important component of the system, plays an important role in the entire system:

For software development, architecture design can achieve the expected goal in all aspects of the system. Secondly, it can guide development and testing throughout the process and effectively manage the complexity of software, reduce maintenance costs.

In terms of software engineering, architecture design can effectively support the preparation of plans, support for conflict analysis, and ensure the goal of beneficiaries is consistent.

Currently, the research on software architecture is still in an immature stage. In each stage of the software life cycle, the architecture design and the combination with software engineering are also in the exploratory stage, we are trying to make the architecture design better guide the activities at various stages of the project's lifecycle.

 

Absd

Full name: architecutre based software development, which is an architecture-based development method. After the architecture design, the document-based architecture is the main line of the system, guiding and ensuring the smooth development of other activities.

It mainly goes through the following stages:

It can be seen that absd is an iterative development model: After the requirement is obtained, the requirements of the architecture need to be extracted, including functional requirements, quality attributes, and system constraints, later, it will become the focus of the impact on architecture design. The review from the architecture design to the architecture is a small repetition cycle, so that the architecture design can pass the review to achieve the expected quality objectives. After the review is passed, the architecture guides the development process to complete system implementation. In the process, the architecture may evolve. To a certain extent, it can be said that the architecture is being reconstructed. At this time, we need to repeat the entire process again, which is a big iteration.

For details about the process, see the following figures:

After the design process is complete, you need to document the architecture. We mainly enter two documents:Architecture specification, Used to test the architecture requirementsQuality Design Manual.

The quality objectives should be defined in the quality design specification, which is also the basis for later architecture evaluation. For details, refer to the "Architecture evaluation" section in this chapter.

In the Architecture Specification, more mature architecture description methods should be used to describe the architecture. For example, you can use the industry-recognized 4 + 1 view.

Document integrityIt is the key to the success of the software architecture. Documents should be written from the user's perspective. They must be distributed to all system-related developers and the documents on the developer's hand must be up-to-date. At the same time, these output documents should also be oriented to architecture evaluation.

Before review, it is best to make a small system prototype for convenient evaluation.

Currently, the review aims to ensure that the architecture can meet the quality requirements of the software. The components and layers of the architecture design should be reasonable and the description of the architecture should be clear.

 

Architecture risk

In fact, the architecture style is the architecture model.

Mode is a form that appears repeatedly in a certain environment. That is to say, a specific architecture model has its applicable scenarios. For example, the most popular three-tier architecture is not suitable for systems that are relatively small. Another example is that the object-oriented architecture may not be suitable for data processing-centric application scenarios. At the same time, the use of Object-oriented for query-intensive systems greatly affects system performance, instead, it becomes an anti-pattern.

Architecture reuse is one of the core objectives of software architecture research. The Research on the architecture model can greatly promote the reuse of the software architecture in the industry.

 

DSSA

Because the objects in the core fields of a domain are often not changed, the research on them can achieve the accumulation and reuse of core businesses. Because the core objects in the entire field often do not change, and their applications are based on the ApplicationProgramAfter classification, the application architecture under the same category is often similar. Therefore, the Architecture Analysis of a type of system is to find out the common architecture mode in this type of system.

The gix4 project also uses a domain-based architecture. To be precise, the gix4 architecture uses a domain-driven, model-driven product line architecture. The specific architecture content will be described laterArticleThe introduction in architecture designer-gix4-architecture introduction, which gives a comprehensive description of how DSSA is applied on gix4.

 

Architecture Evaluation

I have already said that the most important purpose of architecture design is to enable the system to meet the expected quality requirements. Therefore, in the architecture evaluation stage, the most important thing is to assess whether the architecture can meet the quality requirements. That is to say, the architecture evaluation focuses on quality attributes.

As mentioned in the tutorial, we need to use scenarios to define the product quality objectives in this phase. In fact, the quality goal is an important basis for architecture design. It is often defined at the initial stage of architecture design, that is, the quality design specification output in the architecture design phase mentioned above. Although the definition at that time is not necessarily complete, it can also be evaluated during the architecture evaluation process, and then can be used as a benchmark for quality evaluation during the architecture evaluation process.

In fact, the architecture evaluation is also part of the architecture design. The evaluation process is that experts review, ask questions, reflect, and suggest the architecture draft together. With the power of one person, it is difficult for an architect to design the architecture of a large system seamlessly. At this time, the architects can combine the power of multiple people to evaluate the first draft and check for missing content.

 

Summary

Architecture design is one of the most important activities in the software design process. The advantages and disadvantages of architecture design directly affect the quality attributes of the target system.

In my opinion, the architecture-based development method is a very important methodology. We can use it to ensure that the software meets quality standards and guide the entire development process. At the same time, it can be implemented based on the agile methods currently popular in the industry, so that software development can be controlled at different heights.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.