The difference between software outline design and detailed design

Source: Internet
Author: User
Tags documentation sort

The difference between the outline design and the detailed design

The schematic design is the structure of the software, including the modules, the hierarchical structure of the modules, the call relationships of the modules, the functions of each module, and so on. At the same time, we should design the overall data structure and database structure of the application system of the project, that is, what data is to be stored in the application system, what is the structure of the data, and what is the relationship between them.
The detailed design phase is to describe the function of each module, and to transform the function description into the precise and structured process description.

The schematic design phase usually gets the software structure diagram
Detailed design phase commonly used description methods are: Flowchart, n-S, pad, pseudo code, etc.


Overview design and detailed design

In software design, we often ask a question is: outline design should be how a summary method, detailed design should be how a detailed method.
This problem is often asked within the company. Now, give me a statement.
The research and development process of our company is waterfall type, the analysis and design phase of this model is based on the classical structured method.

The basic idea of structured design method is: According to the problem domain, the software is progressively refined, decomposed into modules that do not need to be decomposed, each module completes a certain function, serves one or more parent modules (that is, accepts calls), and also accepts the service of one or more child modules (that is, the calling child module). The concept of a module corresponds to a subroutine or function in a programming language.

as a result, the design can be clearly divided into two phases:

Outline (structure) design phase: The software is decomposed into the module level according to certain principles, giving each module a certain task, and determining the call relationship and interface between modules.
Detailed design phase: According to the summary design phase of decomposition, the design of each module algorithm, flow and so on.

Overview design phase:

At this stage, the designer will roughly consider and take care of the internal implementation of the module, but not too much entangled in this. The main focus is on partitioning modules, assigning tasks, and defining call relationships. The interface between modules and the reference in this stage to be very detailed and clear, should be compiled rigorous data dictionary, to avoid subsequent design confusion or misunderstanding. The outline design is not usually done in one place, but it is repeated for structural adjustment. A typical adjustment is the merging of functionally repetitive modules, or the further decomposition of reusable modules. In the outline design stage, the reusable module should be extracted, the reasonable structure system should be set up, and the workload of the follow-up links should be saved.

The most important part of the profile design document is the layered data flow diagram, the structure chart, the database dictionary, and the corresponding text description. Based on the outline design document, the detailed design of each module can be carried out in parallel.

Detailed design phase:

At this stage, each module can be distributed to different people to design in parallel. In the detailed design stage, the designer's work object is a module, according to the local task and external interface assigned by the outline design, the design and expression of the module's algorithm, flow, state transition and so on. It is important to note that if you find that there is a need for structural adjustment (such as decomposing a child module, etc.), you must go back to the schematic design phase and react to the profile design document instead of addressing it in place. The most important part of the detailed design document is the flowchart of the module, the state diagram, the local variables and the corresponding text description. A module a detailed design document.

An outline design document is equivalent to an assembly drawing in a mechanical design, and a detailed design document is equivalent to a part drawing in a mechanical design. The arrangement of the document and the way of binding can also refer to the method of mechanical drawing.
Our company's understanding of the module and the traditional definition is different, that is the larger software functional units can be called modules. This awareness has led to a confusing understanding of the division of work between the outline design and the detailed design, reducing the availability of the document and should be corrected.
The top part of the schematic design is the so-called scheme. The function of the scheme document is to maintain the rationality of design in the macroscopic angle.

Some projects adopt object-oriented analysis and Design methods. There may be more questions in the outline design, detailed design division of labor. In fact, the object-oriented analysis, design methods do not emphasize the structure of the stage, so generally do not introduce the concept of summary, detailed design. If according to the company's document system, must have this division of labor, you can divide the package, the relationship between classes and objects, class of external attributes, methods and collaborative design as a summary design; the internal implementation of class attributes and methods is considered as detailed design.

1. Demand analysis-the production of software function specifications, the need to determine the user's software needs, to make clear, no ambiguity. Does not involve specific implementation methods. The user can see that the developer can also do the following work (outline design).
2. Outline design--Produce software outline design specification, explain System module division, select Technical route, etc., the whole explanation software realization thought. and need to point out the key technical difficulties and so on.
3. Detailed design-produce software detailed design instructions, the further refinement of the outline design, generally by each part of the staff based on the summary design, and then integration, is the specific implementation details. It is theoretically required to encode this.


Differences and linkages between the outline design and the detailed design

The software design adopts the Top-down and successive function expansion design method, completes the overall design first, then completes each organic component the design.

According to the nature and content of the work, software design is divided into outline design and detailed design. The outline design realizes the software overall design, the module divides, the user interface design, the database design and so on; the detailed design according to the outline Design's module division, realizes each module the algorithm design, realizes the user interface design, the data structure design refinement, and so on.

The outline design is the detailed design foundation, must be completed before the detailed design, the outline design after the review confirmation only then may begin the detailed design. Overview design, you must complete the outline design document, including the system's overall design document, and each module's profile design document. The design documentation for each module should be independent.

Detailed design must follow the outline design. Changes to the detailed design plan shall not affect the schematic design; If you need to change the outline design, you must agree with the project manager. Detailed design, should complete the detailed design document, mainly is the module detailed design plan explanation. As with the profile design, the detailed design documentation for each module should be compiled independently.

The design of the database in the outline design should focus on describing the data relationship, explaining the ins and outs of the data, where we should combine the result data to illustrate the source of these results, and the purpose and reason of the design. The detailed design of the database design should be a perfect data structure document, is a including type, name, precision, field description, table description, and so on the content of the dictionary.

The function of the outline design should focus on the function description, the explanation and integration of the requirement, the whole division function module, and the detailed graphic description of each function module, should let the reader have a general understanding of the structure and operation mode after the system is finished. Detailed design is focused on the description of the implementation of the system, each module detailed description of the implementation of the functions required classes and specific method functions, including the SQL statements involved.


What is the relationship between the outline design and the detailed design?

Q:
My point of view:
The outline design only shows how many modules the system has, the interfaces between the modules, and the functions of the module itself.
Detailed design shows how a specific module to achieve, granularity should be slightly higher than the program some

However, the problem is that each module has a hierarchical relationship, but also has a logical relationship. This means that in the outline design, you must also consider the implementation details of the module, otherwise, how do you know the module below to partition the Sub module. How do you know the order in which the modules are called?
This means that the outline design and detailed design are overlapping, and the software engineering Book said it is indeed sequential, do not know is not my understanding of the problem.


For example, a sort program, if you design 2 modules:
A main module is used to sort the sub module to Exchange 2 variables, the main module calls the Sub module, but how does the child module design? It must have been you first thought of the need to exchange data in a bubble-like sort, which has taken into account enough detail for the main module to appear to be in "detailed design", but is currently in the schematic design, which creates what I call overlapping situations.

A:

Look at the above posts, most interesting.

There are also friends talking about the use of architectural examples to metaphor.

The outline design of the software is mainly to establish the whole structure of the software system, that is, when we build the house, we need to construct the whole shelf of the house first.

The detailed design of the software is mainly to express the specific design method, logic and function of each part of the software system by means of text. In this way in the implementation process, coding personnel in principle strictly according to this code implementation can be.

The simplest example of this is that we can deliver the code to a third party. Verify and follow the design to take.

I think there is a friend above said: Quick code. There is no point in itself that deserves criticism. But just think about it, you write code without any design ideas, documents left behind, once you leave, how to maintain. Redesign it. Or spend several times the manpower to study you write thousands of/million, or even hundreds of thousands of lines of code. If so, you are right, the key is that your boss is too right, money counts.

Another problem is that the Chinese are so smart, but why isn't there a giant software product in China? Individual heroism is still very serious, the boss's short-sighted interests behavior of the big line.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.