Contrast the characteristics of traditional structured analysis and design methods with the main advantages of object-oriented methodology.
Characteristics of Structured Programming:
Pros: Structured programs offer significant improvements in debugging, readability, and maintainability compared to unstructured programs.
Disadvantages: poor code reusability: designing a new system with a process in mind, most of the code must be rewritten, except for some standard functions.
Due to the continuous development of software and hardware technology and changes in user needs, the system modules designed according to the division of functions are prone to change, making the developed modules of poor maintainability.
The process-oriented model separates the data from the process, and if a data structure is modified, all the processes dealing with the data must be revised, which adds a lot of programming effort.
Advantages of Object-Orientation:
And Object-Orientation organizes modules around real-world concepts, uses objects to describe entities in the problem space, and simulates real-world objects with program code, making the programming process more natural and intuitive.
Process oriented is function-centered to describe the system, while object-oriented is data-centered to describe the system. Data has more stability compared to function.
Object-oriented simulates communication between objects. Just as people communicate with each other, objects can communicate with each other through messages. In this way, we do not need to know how an object implements its behavior, but only communicate through the interface provided by the object and use the behavioral capabilities of the object. Procedure-oriented, on the other hand, through the function parameters and global variables to achieve the purpose of the process module connection.
The object-oriented model breaks down a complex problem into multiple objects (classes) that can perform independent functions, and then combines these objects to complete the complex problem. Using the object-oriented model is like working on an assembly line, where we end up combining multiple parts (designed objects) into a complete system according to certain relationships. This makes software development more efficient.
Advantages and disadvantages of object-oriented
Say a few major:
(1) It is a new method of system analysis and design (objects, classes, structural attributes, methods)
(2) It is applicable to the development of various types of information systems.
(3) It realizes the direct conversion of the description of the objective world to the software structure, and greatly reduces the amount of subsequent software development.
(4) The reusability and inheritance of development work is high, reducing the repeated workload.
(5) Shortens the development cycle.
(These points were copied online)
The disadvantages are also obvious.
Classes and inheritance and other features make the program will be a lot more pointer operations to locate the function entry and its own to maintain the virtual method table and other additional work, the program processing efficiency is relatively low (but program development efficiency). So now the simple C language is still very useful.
But with the progress of technology, CPU and memory performance has also surged. From the original 1 core to 8 cores, memory 16M and now 16G, so the efficiency of the program more or less with the performance of the hardware will become better. You can find a lot of big projects are also starting to turn from C to let c++ and JAVA and other object-oriented to write.
Structured system development method, prototype method and object-oriented development method advantages and disadvantages and applicable occasions?
1, structured system development method (also known as the “life cycle approach”)
(1) Advantages: Starting from the system as a whole, emphasizing the overall optimization of the conditions of the “top-down” analysis and design to ensure that the system’s integrity and consistency of objectives; follow the principle of user-first; strictly differentiate the phases of system development; each phase of the work of the work of the object-oriented development method. Integration and consistency of objectives; follow the principle of the user first; strictly differentiate the phases of system development; the results of each phase of the work is the basis for the next phase, to facilitate the management and control of system development; document standardization, according to the engineering standards to establish standardized documentation.
(2) disadvantages: user quality or communication problems between the system analysts and managers; long development cycle, difficult to adapt to environmental changes; less structured system, it is difficult to lock the functional requirements in the early stages of development.
(3) Scope of application: mainly applicable to the development of larger, more structured system
2, prototype method
(1) Advantages: in line with the laws of people’s understanding of things, the system development in a gradual and orderly manner, and repeated modifications, to ensure better user satisfaction; development cycle is short, the cost of a relatively small number of; due to the direct participation of users, the system closer to the actual; easy to learn and easy to use, reducing the user satisfaction; the development cycle is short, the cost is relatively small; due to direct participation of users, the system closer to the actual; easy to learn and use, reducing the user satisfaction. Practical; easy to learn and easy to use, reducing the user’s training time; strong adaptability.
(2) Disadvantages: unsuitable for large-scale system development; the development process management requirements, the entire development process to go through the “modification – evaluation – and then modify the” many times; the user to see the system prototype, mistakenly believe that the system is just this model, easy to make the user lose confidence in the system. This model, easy to make the user lose confidence; developers are prone to replace the prototype system analysis; lack of standardized documentation
(3) Scope of application: the processing process is clear, simple systems; small systems involving a narrow range of
It is not suitable for: large-scale, complex systems, it is difficult to simulate; the existence of a large number of calculations, the logical processing system; management of the basic work is not perfect, Processing process is not standardized; a large number of batch systems
3, object-oriented development methods
(1) Advantages: a, analysis, design in the object and the consistency of the object in the software
b, the realization of the software reuse, simplify the design of the program
c, the system is easy to maintain
d, shorten the development cycle
(2) Disadvantages: not easy to develop a large system