Outline Design and Detailed Design

The difference between outline design and detailed design

Generally speaking, outline design is also called structural design and component design. It mainly describes which components or modules the software consists of, and the relationship between these components or modules. The detailed design is to specifically describe the realization method of each component or module.
In addition, the outline design and detailed design have the following differences:

  1. different writers

Outline design undertakes software requirements, so outline design can be written by requirements analysts (familiar with software requirements) or designers (from the perspective of design), and the subsequent software implementation under detailed design can be written by designers (from the perspective of design) from the point of view), it can also be written by the implementer (from the point of view of the implementation).
Design is based on different
outline design based on software requirements, while detailed design is not only based on software requirements, but also based on the results of outline design.
The corresponding test levels are different
. The outline design corresponds to the integration test and is the main basis for designing the integration test case; while the detailed design corresponds to the unit test and is the main basis for designing the unit test case.

  1. Different cutability

The outline design shows which components the software consists of and the relationship between them. It is the most basic design requirement, so the outline design document must be available and cannot be cut; while the detailed design is used to guide the code implementation, the detailed design document can be merged into In high-level design documents, even in agile development, code comments and readable code substitutions can be used instead of detailed descriptions.

  1. The content of the design document is different
design method outline design detailed design
structured design System architecture, system technical route, system module division, interface relationship between system modules, system internal and external interface relationship, system data structure, system reuse design, interface style design, design convention Implemented functions, input and output data, implementation algorithms, data structures, and interactive interfaces
object-oriented design System structure division, static model (which classes, static relationships between classes, class types, mainly expressed in the form of class diagrams), dynamic model (describing how classes interact with each other, mainly through sequence diagrams To express, you can also use collaboration diagrams, activity diagrams, etc.), design conventions, reuse design, interface style design, persistent object design The specific responsibility of the class, the external interface of the class, the attribute and method definition of the class, and the logical design of the method
  1. The level of detail of the description varies

In object-oriented design, schematic design breaks down software into packages and classes. Although it is not necessarily possible to cover all classes, the interface classes outside the package must be covered, and the core classes inside the package must be covered. In structured design, the high-level design is detailed to modules, which are the higher-level system elements of functions. The detailed design should be detailed to complete the logic design of the method or function.
The two designs are quite different, one is the structure and the other
is the detailed framework. The former is based on the framework, and the latter describes how to realize the components.

The main content of the outline design

Different system types have different outline design contents. Through the outline design criteria, we can determine the specific content of the outline design according to the actual situation, but generally speaking, the outline design content can include system architecture, module division, system interface, data Design content in 4 main areas.

  • 1. System Architecture

The system architecture includes the software and hardware technology platforms used by the system and the list of related technologies, the physical architecture of the system, the type of physical devices, the type of database management system, the type of server, the division and deployment of subsystems, the software architecture of the system, the list of third-party software platforms, etc. .
Example: Software technology platform
The software technology platform usually defines what kind of software system to use to achieve specific functions, such as using SOA structure to implement decentralized deployment of services, using ESB to solve data communication and sharing, using MVC structure to achieve interaction and business separation, and using RIA The technical support is complex, visual interaction and so on.

  • 2. Module division
    The main task of module division is to divide each function into subsystems and functional modules through splitting, merging, grouping and other methods in combination with the requirements of the business field and the system, and refine them into each functional component and functional module superior. Module division can be achieved through 2 steps, hierarchy and module design and process design.

    • The first step is hierarchical design. For complex systems, it is necessary to divide the system into multiple layers, and then design layer by layer. The method of hierarchical division can be considered in consideration of factors such as business, deployment, and application functions. First, classify, then conduct abstract analysis, sort out common elements, and summarize functions into modules. Various methods of expression can be used for the production method. The following examples are all produced in the form of diagrams or tables.
    • The second step is to divide the process and design the process between modules. After the division of levels and modules is completed, it is necessary to organize and describe the relationship between modules, which may include timing relationship, status relationship, data relationship, and so on. In actual design, different description methods can be used to create corresponding design documents according to the situation. For example, timing diagrams can be used for timing-based systems. After the example module is split, use cases and processes are split. Flow design between modules by way of sequence diagram
  • 3. Interface design
    The software system is gradually decomposed into modules in combination with business, function, deployment and other factors, then the corresponding interfaces between modules must be defined according to the functions of each module. The interface design in the outline is mainly used for various interactions between subsystems/modules or between internal systems and external systems. The content of interface design should include: function description, interface input and output definition, error handling, etc. There are many types and specifications of software system interfaces, including APIs, service interfaces, files, databases, etc., so the design methods are also very different. But in general, the content of interface design includes: communication method, protocol, interface calling method, function content, input and output parameters, error/exception mechanism, etc. From the point of view of the results, the interface list (table) and detailed design materials are necessary materials.

  • 4. Data design
    Modern software systems are closely connected with information and data, especially information systems mainly deal with various types of data. In essence, all kinds of systems are the process of (information) collection, conversion, processing, re-conversion, and dissemination. Is it not? Are there differences in these essential processes from the human body system to our TV and mobile phone systems? The data design of software systems, especially information systems, mainly includes database design or completion of core (library) table design. Of course, in addition to database design, various key data built in memory and files are also design content.
    ü Database design: database logic design, physical design, capacity design, data dictionary, data deployment design, etc.
    ü Data design: configuration file design, temporary file design, memory data design (shared data design, content data structure design), etc.
    Example database design (ER diagram)

Main content of detailed design

The detailed design is a continuation of the general design, which is reflected in the design granularity. Generally speaking, the detailed design determines and refines the functions, logical processes, business requirements, and component interfaces of various components according to the business requirements and the content of the general design. The process basically follows the four main activities of the design, and the specific operations can generally be summarized as three steps: module component segmentation, module component design, and common function design, among which component segmentation is more critical. In a general information system, the main component categories may include screens, reports, services, and common components.

  1. screen design

Screen design is one of the main contents of interactive design. Common design content includes the screen transition relationship corresponding to the screen list, and detailed screen functions.

  • Example, screen overview
  • For example, screen transition
    Screen transition mainly describes the action relationship between screens, defines the entrances and exits of all screens, and so on.
    single screen design
  • Prototype of example screen
  • Action definition for example screen
  • Example screen element, processing definition
  1. Service design
    The service component corresponds to the module of the software system that mainly realizes the function through the software interface. The main content of the service design in the detailed design includes the corresponding program module (package) design, Class design, processing logic (sequential relationship), internal and external interfaces, restrictions, etc.
    Example processing logic
    Example Class design
  2. Co-design
    The key step in detailed design is co-design, and the amount of co-design often greatly affects the workload of subsequent development. For example, if a system extracts 40% of the common and only 10% of the common, the workload of development and testing is very different. It is suggested that co-design should be managed as early as possible and effectively in specific projects. Common design can be roughly divided into common business and common technology.

ü The common business is related to the business. Different models can be identified and abstracted for design according to the characteristics of the business. However, some common commons are easier to identify, such as authority management, basic (master) data management, user management, security management, etc. . Another example is the common e-commerce system, including content (CMS) management, recommendation engine, TM, OSS, BI, payment, advertising management, etc. can be incorporated into the common design according to the situation.
ü Common technologies are generally related to computer technology, such as thread management, screen components, LOG management, memory management, file processing, word processing, configuration management, encryption and decryption, logs, messages, exceptions, error handling, etc.

  • co-design
  • Design of example directory (configuration) structure

Guess you like

Origin blog.csdn.net/kunwen123/article/details/122962749