After completing the requirements analysis of the software system, the next step is to design the software system. Generally speaking, software design is often divided into two stages for larger software projects. The first is the preliminary outline design, which is used to determine the basic framework of the software system, followed by a detailed design based on the outline design to determine the internal implementation details of the software system.
Summary design is also called the overall design, the basic goal is to be able to solve the software requirements analysis of a series of software problems, a summary of how to answer. For example, what architecture the software system will use, what function modules need to be created, how the relationship between the modules, and how the data is structured. What kind of network environment the software system needs to provide support, what type of backend database to use, etc.
It should be said that software outline design is a very important stage in the software development process. If the software system does not have a careful summary design, directly consider its algorithm or directly write the source program, the quality of this system is difficult to guarantee. Many of the software is due to structural problems, making it often fail and difficult to maintain.
The basic process of outline design is shown in the figure below, which mainly includes three aspects of the design. The first is the system architecture design, which is used to define the subsystems that compose the system, the subsystem control, the communication between subsystems and the data environment, and then the design of the software structure and structure, which defines the function module of the construction subsystem, the module interface, the call and return relation between modules, the data structure, the database structure and so on.
The outline design requirement is based on the requirement analysis, and the software requirement document is the precondition of software outline design. Only in this way can we make the software system developed to meet the user's application needs.
In fact, the process of summary design is the transformation of the functional model, the data model and the behavior model of the demand analysis, thus producing the design conclusion. In the process of transformation from analysis to design, the outline design can produce the design models of software architecture, software structure and data structure. These conclusions will be written into the summary design document, as the basic basis for the detailed design of the later stage, which can provide technical positioning for the detailed design and program coding.
It should be noted that the summary design can only be obtained by the abstract expression of the software system, the need to focus on the basic structure of the software system, as for the internal implementation of the software system details, then be put in the later detailed design to solve. For example, the module in the outline design is just a shell, although it has a definite functional boundary, and provides the interface definition of communication, but the inside of the module is basically empty, and many specific functional processing details must wait until the detailed design is finished to be determined. Therefore, in all the work on software design, the outline design is not the final design blueprint, but a design value of the specific implementation and strategy, to grasp the overall layout of the system. Although the outline design does not involve the internal implementation details of the system, the resulting implementation and strategy will ultimately affect the success of the software implementation, and affect the future of software system maintenance ease.
The tasks in the outline design phase are mainly as follows:
1. Develop specifications
Software projects with a certain scale always need to be developed through the team form, in order to adapt to the needs of team-based development, after entering the software development phase, the first should be for the software development team to develop the design should be consistent with the specification, in order to coordinate and standardize the work of the members of the team.
The specifications to be developed in the outline design include:
(1) Design documentation standards, including document System, document format, chart style and so on.
(2) Information encoding form, hardware, operating system interface protocol, naming rules and so on.
(3) Design objectives, design principles.
2. System Architecture Design
The system architecture design is to determine the basic structure of the system according to the requirement framework of the system, in order to obtain the overall scheme of the system creation. Its main design content includes:
(1) According to the system business requirements, the system is decomposed into many subsystems with independent tasks.
(2) Analyze the communication between subsystems to determine the external interface of the subsystem.
(3) Analyze the application characteristics, technical characteristics and project funds of the system, determine the system hardware environment, software environment, network environment and Data environment.
(4) According to the overall logic structure and application needs of the system, the overall physical deployment and optimization of the system.
Obviously, when the system architecture is designed, the software project can be decomposed in terms of each subsystem with independent working characteristics so that a large software project can be decomposed into many small software sub-projects.
3. Software Architecture Design
The software structure design is the structure design of each subsystem of the system after the system frame is determined. For example, further decomposition of subsystems into a number of functional modules, and consider how to construct software through these modules.
The main contents of software structure design include:
(1) Determine the module elements of the construction subsystem.
(2) Define the function of each module according to the software requirement.
(3) Define module interface and Design module interface data structure.
(4) Determine the call and return relationship between modules.
(5) Evaluate the quality of software structure and optimize the structure.
4. Public data structure Design
The outline design also needs to identify the construction of common data that will be used by many modules. For example, public variables,
Data files and data in the database can be viewed as a common data environment for the system.
The design of public data includes:
(1) Data structure and scope of public data variables.
(2) The structure of the input and output files.
(3) Table structure, view structure and data integrity in the database.
5. Security Design
System security Design includes: Operation Rights Management design, operation log Management design, file and data encryption design and operation verification design of specific functions. The outline design needs to make the specific explanation to the above aspect question, and formulates the corresponding processing rule.
For example, operation permissions, if the application system needs to have the function of hierarchical management of permissions, then the summary design must be in the permission classification management involved in the number of tiers, permissions, authorization steps and user account storage methods, from a technical point of view to make special arrangements.
6. Fault Handling design
In the process of software system failure, it is necessary to design a variety of software, hardware and network communication failures to make special consideration. For example, provide alternate devices, set up error handling modules, set up data backup modules, and more.
7. maintainability Design
The software system will face maintenance after putting into use, such as correcting the software error and expanding the function of software. In this respect, the outline design needs to be specially arranged to facilitate future maintenance. For example, a dedicated module for system inspection maintenance is set up in the software, and modules that are expected to be expanded in the future, and specifically defined for these interfaces.
8. Writing documents
The documents to be written in the outline design phase include: summary design manual, database design Manual, user operation manual. In addition, a preliminary plan for testing should be developed.
In the above document, the outline design specification is the basic document which must be produced in the outline design stage, which involves the design description of system target, system architecture, software structure, data structure, operation control, error handling, security mechanism and so on.
9. Summary Design Review
After a number of summary design tasks have been completed, review of the summary design should be organized.
Summary Design Review content mainly includes:
(1) Requirements Confirmation: Verify that the software you have designed has covered all the identified software requirements.
(2) Interface confirmation: Verify that the internal interface and external interface of the software are clearly defined.
(3) Module confirmation: Verify that the module is designed to meet the requirements of high cohesion, low coupling, the scope of the module is within its control range.
(4) Risk: Whether the design can be achieved on time under the existing technical conditions and within the budget.
(5) Practicality: The design is practical to solve the need.
(6) Maintainability: Whether the design considers the future maintenance.
(7) Quality: Whether the design shows a good quality characteristics.