Software Engineering (Software Design) Final Review

Table of contents

1. Division of tasks between architecture design and detailed design

2. Basic principles of software design

3. What views does the software architecture mainly include, the role and expression form of each view?


1. Division of tasks between architecture design and detailed design

(1) System structure design

Software architecture describes the design elements (including subsystems, components and classes) that make up the target software system and the logical relationships between them from a high-level abstract perspective. A series of architectural models with different levels of abstraction can exist within a design model. The lower the abstraction level, the smaller the granularity of the subsystems or components in the model, and the more details of the software implementation. Top-down and gradual refinement is a widely adopted and effective design principle. Therefore, software design often starts with architecture design, and its design results-software architecture form the main work basis for subsequent detailed design and software implementation. . This is like architectural design. The architect starts by only considering the location, orientation and appearance of the building, then designs the layout of each room on the floor, and finally refines the interior decoration design of the room.
The task of architecture design is to establish a software architecture that meets software requirements. This kind of architecture must not only clearly define the responsibilities and collaboration relationships of each subsystem component and key class of the software, but also describe their deployment model in the physical operating environment; in addition, the architecture must also focus on the global and basic aspects of the software system. Provide technical solutions to specific technical problems, which constitute the technical infrastructure of the target software system.

(2) Detailed design

The task of detailed design is to refine and refine the results of architecture design and interface design, and finally obtain a high-quality detailed design model. The quality requirements for detailed design models include three aspects: correctness--several design elements in the model can realize all software requirements through the collaboration method specified by the model; optimization--the model realizes all software requirements in a fully optimized manner; design Sufficiency—the model is sufficiently detailed and precise to serve as the basis for all software programmers' work, without ambiguity, generality, or ambiguity.

2. Basic principles of software design

(1) Abstraction and gradual refinement

(2) Modularization

(3) Information hiding

(4) Separation of concerns

3. What views does the software architecture mainly include? The role and expression form of each view.
For large and medium-sized software projects, the scale and complexity of the software system will cause many problems in the architecture design. Views of employee structure are inevitably one-sided and speculative. In order to fully understand the software architecture and avoid design loopholes, it is generally believed that a complete soft file architecture should include the following views

① Logical view: the logical function division (or responsibility assignment) of each software module in the architecture, and based on this Partitioned collaborative behavior.


② Development view: The program sub-packaging and directory structure of the software source code, the adopted class library middleware or framework (famework), and the mapping relationship between them and each module in the logical view.


③Physical view: The physical machine and its network connection for installation and deployment, the physical deployment location of the module or package in the logical view and development view.


④Running view: The division of processes and threads when the software is running, the concurrency and synchronization between them, instantaneous snapshots—objects active at a specific moment during the running of the software and their collaborative relationships, as well as their relationship with the logical view and development view. mapping relationship between.
⑤Data view: persistent data storage solution, data transfer, backup, recovery synchronization solution, and mapping relationship with the physical view

 

 

 

Guess you like

Origin blog.csdn.net/lxy20011125/article/details/128442467