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 a preliminary outline design, which is used to determine the basic framework of the software system, and then a later detailed design based on the outline design to determine the internal implementation details of the software system.
The outline design is also called the overall design, its basic goal is to be able to respond to a series of software questions raised in the software requirement analysis, the outline answers how solves. For example, what architecture the software system will take, what functional modules need to be created, how the relationships between the modules are, and how the data is structured. What kind of network environment the software system needs to support, what kind of background database to adopt and so on.
It should be said that software profile design is a very important phase in the software development process. If the software system does not have a careful outline 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 that make it frequently faulted and difficult to maintain.
Design Process
The basic process of the outline design is shown in the following figure, which includes three aspects of the design. The first is the system architecture design, it is used to define subsystem of composing system, control subsystem, communication between subsystems and data environment, and then it is the design of software structure and data structure, which is used to define function module, module interface, call and return relation between modules, and data structure, database construction etc.
The outline design requirement is based on the requirement analysis, and the software requirement document is the prerequisite of the software outline design. Only in this way can the developed software system meet the needs of users ' application.
In fact, the process of the outline design is to transform the analytic conclusion of the function model, data model and behavior model, which produces the design conclusion. In the process of transformation from analysis to design, the outline design can produce the design models of software system architecture, software structure and data structure. These conclusions will be written in the summary design document, as a basic basis for later detailed design, to provide technical positioning for the later detailed design and program coding.
It should be noted that the outline design can be obtained only about the software system of the abstract expression, the need to focus on the basic structure of the software system, as to the internal implementation details of the software system, it is put to the later detailed design to solve. For example, the module, the outline design of the module is only a shell, although it has a defined functional boundaries, and provides the interface definition of communication, but the module is still basically empty, many specific functional processing details must wait until the detailed design to be finalized. Therefore, in all the work on software design, the outline design provides not the final design blueprint, but only a specific implementation plan and strategy with design value, which is used to grasp the overall layout of the system. Although the outline design does not involve the internal implementation details of the system, its implementation and strategy will ultimately affect the success of the software implementation and affect the ease of maintenance of the software system in the future.
Design Tasks
The main tasks of the outline design phase are as follows:
1. Develop norms
Software projects with a certain scale always need to implement development through the team form, in order to adapt to the needs of team-type development, after entering the software development phase, the software development team should first develop the specifications that should be followed in design, in order to coordinate and standardize the work of the team members.
The main specifications to be developed in the outline design are:
(1) Design the standard of the document, including document System, document format, chart style and so on.
(2) Information coding form, hardware, operating system interface protocol, naming rules, and so on.
(3) Design objectives, design principles.
2. System Architecture Design
System architecture design is based on the requirements of the system to determine the basic structure of the system to obtain the overall plan for the creation of the system. 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 and determine the external interface of the subsystem.
(3) Analyze the application characteristics, technical characteristics and project funds of the system, and determine the hardware environment, software environment, network environment and Data environment.
(4) Overall physical deployment and optimization of the system according to the whole logic structure and application needs of the system.
Obviously, when the system architecture is designed, software projects can be broken down by each subsystem with independent working characteristics, which can decompose a large software project into many small software subprojects.
3. Software structure Design
The software structure design is the structure design of each subsystem of the system after the system frame is determined. For example, the subsystem is further decomposed into functional modules, and consideration is given to how to construct the software through these modules.
The main contents of software structure design include:
(1) To 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 a database can be viewed as a common data environment for a system.
The design of public data includes:
(1) The data structure and scope of the public data variable.
(2) The structure of input and output files.
(3) Table structure, view structure and data integrality in the database.
5. Security Design
System security Design includes: Operation Rights Management design, operation log Management design, file and data encryption design, and specific function of the operation check design. The outline design needs to make a specific description of the above issues, and develop the corresponding processing rules.
For example, if the application system needs to have the function of the privilege level management, the outline design must make the special arrangement from the technical point of view, such as the grading layer, the permission scope, the authorization step and the user account storage mode involved in the privilege classification management.
6. Fault Handling design
The software system works in the process of inevitable failure, the outline design needs to be a variety of possible from the software, hardware and network communications from the fault to make special consideration. For example, provide standby equipment, set error handling module, set up data backup module, and so on.
7. maintainability Design
The software system will face maintenance after putting into use, such as correcting software error, expanding software function, etc. In this respect, the outline design needs to make special arrangements to facilitate future maintenance. For example, a dedicated module is set up in the software for system detection maintenance, and modules for functional expansion are expected in the future and are specifically defined for these interfaces.
8. Writing documents
The documents to be written during the outline design phase include: Outline design instructions, database design instructions, user 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 phase, which is related to the system goal, the system architecture, the software structure, the data structure, the operation control, the error processing, the security mechanism and so on many aspects design explanation.
9. Overview Design Review
After a number of summary design tasks have been completed, the review of the outline design should be organized.
The main content of the summary Design Review includes:
(1) Requirements Confirmation: Verify that the software is designed to cover 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: Confirm that the Designed module satisfies the requirements of high cohesion and low coupling, and whether the scope of the module is within its control range.
(4) Risk: The design in the existing technical conditions and budget within the scope of the timely implementation.
(5) Practicality: The design is practical for the solution of the requirement.
(6) Maintainability: Whether the design has considered the future maintenance.
(7) Quality: Whether the design shows a good quality characteristics.