OOD object-oriented design
Author: gnicky URL: http://blog.9cbs.net/loconfuse/ Preface
OOD refers to object-oriented design. The illegitimate ivible connection of OOA and OOD will just explain the power of OO ideas, the seamless connection between the software process phase, not in communication and communication. It will produce a gap, which is the benefit of relatively structural ideas, because the connection between the functional modules to a detailed control logic design is not very close, need analyst and designers to communicate.
In OOSE object-oriented software engineering, OOD is a big stage of the software lifecycle. The goal is to establish a reliable implementable system model; process is to improve OOA's results, refine analysis, combined with implementation technology, to achieve environmental consideration, including The global design resolution strategy and the local model refinement; the focus is to avoid returning to non-OO, introduce concepts such as "module", "unit", etc., in the design, considering structured methods, Design the design of the flow graph, in turn, the two cannot be confused with each other.
The purpose of learning OOD should be to learn the procedure of OOD, so that process, engineering, which requires strong process guidance, perhaps a process guidance software, perhaps a manual.
It is necessary to emphasize that OOA is born after OOD, this integration of OOA and OOD has also confused many analysts, since the issue domain description, system responsibility (system function) has been established, formed OOD should be the concept of OOP's person responsible. The core part of the OOD includes the design of the problem domain. On the basis of the OOA model, the model is modified, supplemented and adjusted, and the details of the model, and define the details, and definition of the object, and define An example of an object, establishes an evolutionary relationship of the class between the OOA to the OOD model.
The relationship between OOA and OOD
"What to do" and "how to do", a traditional classic style: Analyze only solve the problem of "what to do", do not involve "how to do"; design to solve the problem of "how to do". Also described as "Analysis is for problem space, design is for solution space".
OOD output can tell developers how to do it? The result of OOD should be how to guide Programmer, give it to the direction, too specific to algorithm-based implementation to the programmer. A excellent OOD output, which is very convenient for OOP, and work is very clear.
Our status is that it feels OOA to complete the work of OOD, and ignore the work of OOD, and jump directly from OOA to OOD. The disadvantage is that OOA is not refinered enough, and it is lacking normatively in OOP. Briefly, we cut OOD, and completely complete the part of the OOD in a small number of people. Any OOA method is now established in the analysis phase. It has virtually defined how the system is constructed, including the system structure component embodied by the object class, draws through the relationship between the class. System structure framework. This is an overview of a higher level abstract model, but it is totally called problem domain description, and does not conform to actual.
Use "What to do" and "how to do" to distinguish the analysis and design, is a point of view of the structure in the structured method, which is the demand "what" (function map), design representative "how to do" Program block diagram data flow diagram).
Due to the influence of the college-style education, some OOA methods do not advocate the service and attributes of the objects in the description, but reserved to the OOD phase implementation. Although this is strictly engineered, it is not in line with people's way of thinking. Personal understanding: Analysis is mainly to study (description, high-level design) issues in the purpose of producing an OOA model for problem domain and system responsibility, unrelated to implementation conditions, and models can be reused in the same field. The design purpose is to adjust the OOA model according to the specific implementation conditions (this is very important, targeted, not only in hardware conditions, but also in the business, there are also their own features in the field) and objects) (Sometimes a specific auxiliary object is described), producing an OOD model for specific implementation. This seems that it seems that OOA and OOD are unrealistic, OOA and OOD participants are preferably coherence, that is, the change ratio of people should not be too large. The phase of OOA and OOD (in accordance with their respective roughly understanding) must be saved independently because the output multiplexing of OOA and OOD is different in the multiplex level. .
Consistent concept and expression method
In the software development lifecycle, OOA located in the front of OOD can do all of the object-oriented concepts to establish a complete analysis model; OOP in the backend of the OOD can function completely using OOPL to complete the entire system programming. Then OOD should be able to carry out the concept of OO to use OO (including the overview, detailed design). From analysis, design to implementation and even test maintaining concepts and style consistency, it is very important for improved software development and maintenance.
The specific implementation conditions considered by OO include
Hardware, operating system, and network configuration;
Data Management System (DBMS, FS)
Graphical User Interface GUI
The characteristics of programming language;
It is possible to modify the OOD in order to meet a multiplexer class in accordance with the object class that is determined in accordance with a regular analysis method during OOA.
The entire design consists of four parts: problem domain design, human machine interaction design, data access interface design, control driver design.