A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
the difference between an outline design and a detailed design
Summary design is the design of the software structure, including the composition of the module, the hierarchy of modules, module call relations, the function of each module and so on. At the same time, it is necessary to design the overall data structure and database structure of the application system of the project, that is what the application system wants to store, what kind of structure the data is, what is the relationship between them.
The detailed design phase is a specific description of the functions performed by each module, transforming the function description into a precise, structured process description.
The schematic design phase usually obtains the software structure diagram
detailed design phase commonly used in the description of: Flowchart, N-S diagram, pad map, 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 what should be a detailed method?
This question is often asked within the company. Now, state it.
Our company's research and development process is waterfall type, the analysis, design phase of this model is based on the classical structure method.
The basic idea of the structured design method is: According to the problem domain, the software is subdivided into modules that do not have to be decomposed, each module completes certain functions, serves one or more parent modules (that is, accepts calls), and also accepts one or more sub-modules (called submodule). The concept of a module corresponds to a subroutine or function in a programming language.
in this way, the design can be clearly divided into two stages:
outline (structure) design phase: The software according to a certain principle of decomposition into the module level, give each module a certain task, and determine the inter-module call relationship and interface.
Detailed design phase: According to the summary design phase decomposition, the design of each module within the 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 to dwell on it. The main focus is on dividing modules, assigning tasks, and defining call relationships. interface and communication between modules at this stage to be very detailed and clear, you should write a rigorous data dictionary, to avoid subsequent design confusion or misunderstanding. The general design is usually not done in one place at a time, but the structure is adjusted over and over again. The typical adjustment is to merge the modules with repetitive functions, or to further decompose the reusable modules. In the outline design stage, we should extract the reusable modules to the maximum, establish the reasonable structure system, and save the work of the following links.
The most important part of a profile design document is a hierarchical data flow chart, a structure diagram, a database dictionary, and a corresponding text description. Based on the outline design document, the detailed design of each module can be expanded in parallel.
Detailed design Phase
at this stage, each module can be divided into different people to parallel design. In the detailed design stage, the designer's working object is a module, according to the summary design assigned to the local task and external interface, design and express the module's algorithm, flow, state transformation and other content. It should be noted here that if there is a need for structural adjustment (such as decomposition of sub-modules, etc.), it must be returned to the outline design phase, and the adjustment will be reflected in the profile design document, not in-place, not to say hello.
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 for 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 and bookbinding of documents can also refer to the method of mechanical drawing.
Our Company's understanding of the module and the traditional definition are different, it is considered that the larger software functional units can be called modules. This understanding has led to a confusing understanding of the division of work in the outline design and detailed design, which reduces the availability of documentation and should be corrected.
The top-level part of the outline design is the so-called scheme. The function of the program document is to maintain the rationality of the design in the macroscopic angle.
Some projects use object-oriented analysis and design methods. May be in the outline design, detailed design of the division of the question more. In fact, the object-oriented analysis, design methods do not emphasize the structure of the same phase, so generally do not introduce a summary, detailed design concept. If according to the company's document system, not to have this division of labor, can be the division of the package, the relationship between the class and object, the external properties of the class, methods and collaborative design as a summary design, class properties, methods of internal implementation as a detailed design.
1. Demand analysis-produce the SOFTWARE function specification, need to determine the user requirements for software, to make clear, no ambiguity. No specific implementation method is involved. The user can see clearly that the developer can do the following work (summary design) accordingly.
2. Summary design-Generate software Summary design instructions, explain the System module division, select the technical route, etc., the overall description of the implementation of the idea of the software. and need to point out the key technical difficulties and so on.
3. Detailed design-Generate software detailed design instructions, the further refinement of the summary design, generally by the individual parts of the staff according to the summary design, respectively, and then in the integration, is the specific implementation details. Theoretically, this code can be required.
the difference and connection between the outline design and the detailed design
The software design adopts the design method of top-down and successive function expansion, first completes the overall design, then completes the design of each organic component.
according to the nature and content of the work, the software design is divided into the outline design and the detailed design. Summary design to achieve the overall design of the software, module division, user interface design, database design and so on; detailed design according to the design of the module division, to achieve the algorithm design of the modules, user interface design, data structure design refinement, and so on.
The outline design is the foundation of the detailed design, must complete before the detailed design, the summary design after the review confirmation can begin the detailed design. The outline design document must be completed, including the overall design document of the system, as well as a summary design document for each module. Each module should have a separate design document.
detailed design must follow the outline design. Changes to the detailed design plan shall not affect the outline design, and must be approved by the project manager if changes to the summary design are required. Detailed design, should complete the detailed design document, mainly is the module detailed design plan description. As with the schematic design, detailed design documentation for each module should be a separate book.
the database design in the outline design should focus on describing the data relationship, explaining the context of the data, here should combine our results data, explain the source of these results data, we design the purpose and reason. The database design in detail design should be a perfect data structure document, is a kind of including type, naming, precision, field description, table description, etc.
Summary design functions should be focused on functional description, the interpretation and integration of requirements, the overall division of functional modules, and detailed description of the functional modules, should let the reader generally understand the overall structure and operation of the system after completion of the model. Detailed design is to focus on the description of the implementation of the system, the module details the implementation of the functions required by the class and the specific method functions, including the SQL statements involved.
What is the relationship between an outline design and a detailed design?
my point of view:
The outline design only shows how many modules the system has, the interface between the modules and the function of the module itself.
Detailed design shows how a specific module is implemented, the granularity should be slightly higher than the program
But the problem comes, each module has a hierarchical relationship, there is also a logical relationship. This shows that in the outline design, you must also consider the implementation details of the module, otherwise, how do you know that the module is divided into sub-modules? How do you know the order in which each submodule is called?
This shows that the summary design and detailed design overlap, and the Software engineering book is really in order, do not know whether it is my understanding there is a problem.
For example, sort programs, if you design 2 modules:
a master module for sorting
submodule for swapping 2 variables, main module calling Submodule
But how are the sub-modules designed? It must have occurred to you to think of the need to exchange data when using a sort of bubble, which has taken into account the fact that the main module is full of details, which seems to be "detailed design", but is currently in the outline design, which produces what I said overlap.
look at the above posts, mostly interesting.
There are also friends talking about the analogy with the architectural example.
the design of the software is mainly to build the whole structure of the software system, that is, we need to build the whole shelf of the house when we build the house.
the detailed design of software is mainly to express the specific design method, logic and function of each part of software system by means of text. So in the implementation process, coding personnel in principle strictly according to this code implementation can.
one of the simplest examples: we can deliver code to third parties. Verify and follow the design to take.
I think there's a friend on the top saying, "Make code fast." There is no point in this itself that deserves criticism. But just think about it, the code you write without any design ideas, documents left behind, once you leave, how to maintain? Re-design it? Or do you spend a few times to study the thousands of/million or even hundreds of thousands of lines of code you wrote? If so, you are right, the key is that your boss is right, money is nothing.
[to] the difference between an outline design and a detailed design
Start building with 50+ products and up to 12 months usage for Elastic Compute Service