System architecture design professional skills · System analysis and design of software engineering

Table of Contents of Series Articles

System architecture design professional skills · Software Engineering (1) [System Architect]
Advanced system architecture design skills · Software architecture concepts, architectural styles, ABSD, architecture reuse, DSSA (1) [System Architect]
Advanced system architecture design Skills · System quality attributes and architecture assessment (2) [System Architect]
Advanced skills in system architecture design · Software reliability analysis and design (3) [System Architect]

6. System design

System design is an extension and expansion of system analysis. The system analysis phase solves the problem of "what to do", while the system design phase solves the problem of "how to do it". At the same time, it is also the basis for system implementation, paving the way for system implementation. Reasonable system design can not only ensure the quality of the system, but also improve development efficiency and ensure the smooth progress of system implementation.

The system design phase, also known as the physical design phase, is a very important stage in the information system development process. Its task is to specifically design a technical solution to implement the logical model based on the functional requirements stipulated in the system specification and taking into account actual conditions, that is, to design the physical model of the new system, laying the foundation for the next stage of system implementation.

The main contents of system design include outline design and detailed design . Outline design is also called overall system structure design . It is a critical step in the system development process. Its main task is to allocate the functional requirements of the system to software modules , determine the functions and calling relationships of each module , and form the module structure of the software . Figure is the system structure diagram . In outline design , the overall task of system development is decomposed into many basic and specific tasks, and the process of selecting appropriate technical means and processing methods for each specific task is called detailed design . Depending on the task, detailed design can be divided into many types, such as network design, code design, input/output design, processing flow design, data storage design, user interface design, security and reliability design, etc.

software design

Software design includes architecture design, interface design, data design and process design.

  • Structural design : Define the relationship between the main components of the software system, develop a modular program structure, and express the control relationship between modules.
  • Data design : Transforming models into definitions of data structures. High-quality data design will improve program structure and module partitioning and reduce process complexity.
  • Interface design (human-computer interface design) : How to communicate within software, between software and operating systems, and between software and people.
  • Process design : A description of the process of converting system structural components into software.

1. Software architecture design

software architecture = software architecture

Architectural design is demand allocation, that is, assigning responsibilities for meeting requirements to components .

2. User interface design/human-machine interface design

Insert image description here
The above three principles were created by Dr. Theo Mandel, a famous user interface design expert, and are often called the "golden three principles" of human-computer interaction. In addition, when designing the user interface, it is also necessary to ensure the rationality and uniqueness of the interface, effective combination, pay attention to beauty and coordination; provide shortcuts appropriately, pay attention to resource coordination, etc.

3. Structural design

Structured Design (SD) is a data flow-oriented method. It is based on documents such as data flow diagrams and data dictionaries generated in the SRS and SA stages. It is a top-down, step-by-step refinement and module ization process. The basic idea of ​​the SD method is to design the software into a structure composed of relatively independent modules with a single function. It is divided into two stages : outline design and detailed design . The main task of the outline design is to determine the structure of the software system and carry out the system design. Module division determines the functions, interfaces and calling relationships between modules of each module; the main task of detailed design is to design implementation details for each module.

Outline design:
Outline design is also called the overall structure design of the system . It is a critical step in the system development process. Its main task is to allocate the functional requirements of the system to software modules, determine the functions and calling relationships of each module, and form the structure of the software . Module structure diagram, that is, system structure diagram.

System structure chart (Structure Chart, SC), also known as module structure chart, is a tool in the software outline design stage , reflecting the functional implementation of the system and the connections and communications between modules, including the hierarchical structure between modules, that is, reflecting the overall structure of the system.

A very important principle that people use when solving complex problems is to decompose it into multiple small problems and deal with them separately. During the process, it is necessary to coordinate the relationship between various business departments according to the overall requirements of the system. In SD, this functional decomposition is to divide the system into modules. Modules are the basic units that make up the system. Its characteristic is that it can be freely combined, decomposed and transformed. Any processing function in the system can be regarded as a module.

Four elements of a module :

  • Input and output, the module's input source and output destination are both from the same caller, that is, a module obtains input from the caller, processes it, and then returns the output to the caller.
  • Processing function refers to the work done by the module to convert input into output.
  • Internal data refers to data that is referenced only by the module itself.
  • Program code refers to the program used to implement module functions.
    The first two elements are the external characteristics of the module, which reflect the appearance of the module; the last two elements are the internal characteristics of the module. In structured design, the main consideration is the external characteristics of the module, and only the necessary understanding of its internal characteristics is required. The specific implementation will be completed in the system implementation stage.

In the SD method, the system consists of multiple logically relatively independent modules. The following principles need to be followed when dividing modules :

Keep the size of the module moderate
. Reduce the depth of calls as much as possible, and the width should not be too high. The
fan-in/fan-out coefficient is reasonable, more fan-in and less fan-out , single entrance and single exit.
The scope of the module should be within the module, and the function should be predictable.
Module independence principle ( high cohesion, low coupling )

Cohesive types and coupled types
Insert image description here

4. Object-oriented design

Object-oriented design OOD is a continuation of object-oriented analysis OOA. Its basic ideas include abstraction, encapsulation and scalability, of which scalability is mainly achieved through inheritance and polymorphism. In OOD, the data structure and the operation algorithm defined on the data structure are encapsulated in an object. Since things in the real world can be abstracted from collections of objects, the OOD method is a system design method that is closer to the real world and more natural.
Insert image description here

4.1 Classification of classes

Insert image description here

对象问的关系有:组合,聚合,继承等
Use-A依赖关系
IS-A继承关系
IS-PART-OF聚合(组合一种),聚合对应的语义是“is a member of”

Design Principles

In OOD, maintainable reuse is based on design principles. Commonly used principles in OOD include the single principle, the opening and closing principle, the Liskov substitution principle, the dependency inversion principle, the combination/aggregation reuse principle, the interface isolation principle and the minimum knowledge principle, etc. These design principles are first of all reuse-oriented principles. Following these design principles can effectively improve the reusability of the system and improve the maintainability of the system.

  • Single responsibility principle , design classes with a single purpose.
  • Open-closed principle , open to extension, closed to modification. That is, try to expand without modifying the original code.
  • Liskov substitution principle , subclasses can replace parent classes (parent classes can be replaced by subclasses), and the behavior of the program does not change. If a software entity uses a base class object, it must apply to its subclass objects, and the difference between the base class object and the subclass object cannot be noticed.
  • Dependency inversion principle , abstraction should not depend on details, details should depend on abstraction, not specific implementation. Program to the interface, not to the implementation.
  • The principle of combination/aggregation reuse , also known as the principle of combination/aggregation, is to use combination/aggregation relationships whenever possible and to use less inheritance.
  • The principle of interface isolation uses multiple specialized interfaces instead of a single overall interface.
  • The principle of least knowledge , also known as Demeter's law, states that a software entity should interact with as few other entities as possible.

Guess you like

Origin blog.csdn.net/weixin_30197685/article/details/132286622