"Code Encyclopedia (second Edition)" Read Note 03

Source: Internet
Author: User

We always hear about software architectures from our teachers, but in fact we don't know much about them, and through this book, I've learned more about architecture.

Software architecture is a high-level part of software design and a framework for supporting more detailed design. Architecture refers to design constraints that apply to the entire system-wide, while high-level design refers to design constraints (but not the entire system-wide design) that apply to the hierarchy of subsystem hierarchies or multiple classes. and the quality of the architecture determines the "conceptual integrity" of the system. The final quality of the system is then determined. A carefully considered architecture provides the necessary architecture and architecture for "conceptual integrity of the maintenance system from top to bottom", which provides the programmer with guidance --- the level of detail that matches the programmer's skills and the work at hand. A good architecture makes building activities easier, and a bad architecture makes building activities almost impossible, and it can be costly to make architectural changes during construction or later.

The system architecture should first summarize the system in a general way. In the architecture, we should be able to find the narrative of alternatives that have been considered to be the ultimate organizational structure, and find the reason why the final organizational structure was chosen instead of the alternative. Describe other organizational structures in order to explain the reason for the structure of the system that was last selected in the architecture, and to indicate that each class was carefully considered. A review of design practices found that the reason for "maintenance" design is at least as important as the maintenance design itself.

The schema should define the main building blocks of the program. Depending on the size of the program, each building block may be a single class, or it may be a subsystem consisting of many classes. Each building block, whether it is a class or a group of classes and subroutines that work together, implements a high-level feature, such as interacting with users, displaying Web pages, interpreting commands, encapsulating business rules, accessing data, and so on. Every feature of a column in a requirement should have at least one building block covering it. If two or more building blocks claim to implement the same functionality, they should mate with each other without conflict.

Responsibility for each building block should be clearly defined. Each building block should be responsible for one of the redundancy things, and the less you know about the areas responsible for other building blocks, the better. By minimizing the knowledge of the other building blocks for each building block, you can limit the information you design to within each building block. For each building block, the schema should describe which building blocks it can use directly, which building blocks can be used indirectly, and which building blocks cannot be used.

The schema should define the main classes used in detail. It should indicate the responsibility of each major class and how that class interacts with other classes. The schema should describe the design of the main files and data tables used, and the high-level organizational structure and content of the database used should be defined in detail. The architecture should describe a plan to manage scarce resources. The architecture should describe ways to implement security at the design level and at the code level, creating a threat model during the architecture phase.

Architecture should not contain anything that is difficult for us to understand, because we are the one who implements the architecture.

"Code Encyclopedia (second Edition)" Read Note 03

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.