Key requirements determine the architecture

Source: Internet
Author: User

The software architect does not have time to conduct in-depth analysis on all requirements, which is both a strategy and a reality.

 

Demand is any factor that facilitates design decisions, but few developers can have a stable demand set. Therefore, the key first step is to narrow down the scope, the scope criteria are importance, possibility, and quantity.

 

There are several problems in the process of switching from demand to architecture:

  1. Complain that the time left for the architecture is too short, rather than accepting the reality that the pace of the Project is generally accelerated. Generally, the development cycle of new commercial applications cannot exceed 9 months.
  2. All requirements must be analyzed in detail. Only in this way can we design a software architecture that meets all requirements. Our strategy is: During the architecture design period, the key requirements determine the architecture, and the rest of the requirements verify the architecture.
  3. The software architecture must be a perfect technical solution. In fact, due to time constraints, the architecture is not perfect, but sufficient.

 

Key requirements determine the necessity and impact of the Architecture

  1. It is often unrealistic to design the architecture after determining all the requirements.
  2. Because the project duration is generally not determined by the developer, there are limits on the time.
  3. You can use limited energy to deeply analyze the most important requirements.
  4. Changes in requirements may cause the architecture design to be no longer appropriate. Therefore, we can use a subset of all requirements to 'Drive 'Our architecture decision-making process, this can reduce the impact on the architecture design and stabilize the architecture design.

 

What are the key requirements of software architecture?

Generally, it can be categorized from three aspects: functional requirements, quality requirements, and business needs.

 

All functional requirements are implemented by a specific 'module collaboration chain. The so-called pattern component architecture is an important decision on how to build software. These decisions are usually centered on what parts of the system are divided into and how each part interacts. Therefore, the key functional requirements of the software architecture are the most involved modules and the most typical functional requirements.

 

To meet the requirements of high-quality attributes, there is a cost, and different quality attributes are often mutually restrictive, making it difficult for some quality attribute requirements to meet high requirements at the same time. The quality requirements that are critical to the architecture are those that have been weighed and ultimately determined to be supported.

 

Business needs are also referred to as business needs. Generally, business needs refer to "high-level objectives of organizations or customers ", it focuses on the commercial factors involved in the entire software life cycle, including the customer base, enterprise status, future development, budget, project initiation, development, operation, and maintenance, includes business goals, expectations, and restrictions.

 

How to determine critical requirements for the software architecture

It can be divided into four steps: 1. comprehensively organize requirements; 2. Analyze binding requirements; 3. determine key functional requirements; 4. determine key quality attribute requirements.

 

After completing the requirements, you can establish a comprehensive understanding of the requirements. In most cases, the requirement document may not contain all the information required by the software architect. For example, the quality requirement is usually included in the requirement document. In this way, the architect can only understand the requirements comprehensively, in order to find out the missing and hidden requirements.

 

Binding requirements can affect Architecture Design in three ways: 1. Directly restricting design decisions; 2. Converting to functional requirements; 3. Converting to quality attribute requirements.

 

How to determine key functional requirements

  1. As the core of the application or implementing the main interface functions of the system.
  2. Functions that must be implemented.
  3. Covers some aspects of the system architecture, but is not covered by other important use cases. It mainly ensures that all technical risks are addressed.

 

Determine key quality attribute requirements

  1. In order to improve the degree of acceptance of the developed software system, we should focus on improving the quality attribute requirements.
  2. Fully consider the mutual constraints or mutual promotion relationships of these quality attributes to adjust the requirements of different quality attributes.
  3. Various binding requirements must be met.

 

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.