Object-Oriented Analysis and Design and object-oriented language

Source: Internet
Author: User

First of all, it must be stated that the viewpoint described in this article is only applicable to the implementation process of object-oriented systems based on the traditional waterfall model, this process includes feasibility analysis, requirement analysis, object-oriented analysis and design, object-oriented implementation, and system testing. The points discussed here are not suitable for the development process of system design when problems are found during system implementation.
In general, the purpose of learning object-oriented languages is to better analyze and design object-oriented languages. There may be such a question: object-oriented analysis and design are at the design level, it enables system designers to focus more on system scalability, scalability, stability, and maintainability, and seldom pays attention to the specific implementation languages and implementation details of a process; from the perspective of language abstraction, the basic ideas of various object-oriented languages are consistent. Therefore, many system designers may pay attention to the system design level, however, we only know one or two specific object-oriented languages.
On the other hand, in the process of learning an object-oriented language, we usually first learn the procedural syntax of the language (for example, how to write a circular statement in C ++, for the Delphi language, what is the syntax of the loop statement ), next, we will learn what classes are, What Is abstraction, What Is encapsulation, What Is Inheritance, What Is constructor and destructor, and what is a virtual base class, and so on. Then, when I did my own learning experiment, I wrote several classes at most and inherited them to implement their respective methods, finally, create a class instance in the main function and call the instance method to obtain the calculation result.
In fact, the above two attitudes towards object-oriented languages are incorrect. Let's first discuss the latter. During our learning of object-oriented languages, have we ever thought of a basic question: why should we learn object-oriented languages? We know that all things in the world can be seen as individuals of different categories, or objects, which are directly or indirectly associated with each other. The object-oriented design concept is based on the relationship between classes, classes and classes as the basis for analyzing the problem. Therefore, the use of object-oriented analysis and design can naturally represent various objects related to the system and express the relationships between these objects. Through object-oriented analysis and design, the original complex design problems can be made simple and organized. As the final descriptive language of Object-Oriented Analysis and Design, object-oriented language enables the results of object-oriented analysis and design to be easily compiled into binary code or intermediate language that can be recognized by computers. It can be seen that object-oriented language is a specific form. Different languages share the same central idea, but they have different forms. In the process of learning object-oriented languages, we should not focus on different expressions of different languages, instead, we should learn more about how object-oriented languages Support object-oriented analysis and design, and then use object-oriented ideas to solve system design problems. Of course, in the process of analyzing the problem, do not blindly respect the object-oriented thinking. Some very simple problems can be solved using the structured design method, there is no need to create several classes that may never be used in the future.
On the contrary, learning object-oriented languages well is very important for Object-Oriented Analysis and Design. It is wrong to advocate the idea of not discussing the system development language and development environment during system design. As for the object-oriented design process, if you do not know the characteristics of various object-oriented languages, you cannot determine which language is more appropriate for system development during system design, it is even more difficult to determine the relationship between classes and classes during design.
For example, in the Delphi language (after the introduction of Delphi, the Object Pascal language was officially named Delphi. Unlike the traditional PASCAL Language, Delphi is an object-oriented language) in earlier versions (earlier than Delphi 8.0), Operator Overloading is not supported, but C ++ is supported. For example, different object-oriented languages also have differences in interface definition. The Delphi and C # languages can use the interface keyword, but the standard C ++ does not, it is implemented by creating an abstract class with pure virtual functions. In addition, C ++ supports multiple inheritance of classes. To ensure that the same function definition has only one version in the subclass, virtual inheritance is required, C # only supports single-class multi-interface inheritance. Various examples show that the results of object-oriented analysis and design affect the selection of object-oriented languages. However, the selection of object-oriented languages is not only dependent on the results of object-oriented analysis and design, there is a conflict here, and the system designer needs to combine various decisive factors in the design process to solve this problem.
In short, it is inappropriate to throw the object-oriented language aside from the system design. It is not advisable to focus too much on learning the specific implementation of the object-oriented language, we must not only unify our system design and object-oriented language, but also abstract forward Object ideas from specific implementations of various object-oriented languages, to help us better complete system analysis and design.

Http://www.sunnycrystal.net/ShowDocument.aspx? Id = 18

 

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.