Object-oriented method
Zhang Jing
(Key Laboratory of Computer Technology Application, Yunnan University of Technology, Kunming 650051)
Abstract: In this article, first review the development process of object-oriented methods, and then compare several major OOA methods; and introduce the current application of object-oriented methods and the main research fields.
Keywords: object-oriented, object-oriented analysis, object-oriented design
Summary of Object-Oriented Method
ZHANG Jing
(Key Laboratory of Computer Technology Application, Yun Nan Polytechnic University, Kunming 650051)
Abstract In this paper, we review the past and current situation of Object-oriented Method. We also compare with several OOA (Object-oriented Analysis) methods and introduce the newest and main research fields of Object-oriented technology.
Key Words oo (Object-Oriented), OOP (Object-Oriented Programming), Object-Oriented Analysis, OOD (Object-Oriented Design)
With a series of SMALLTALK-80s, SMALLTALK-80 has strong description ability, the performance of object-oriented programming languages, marking the object-oriented method and technology began to be practical. At that time, some people had predicted that object-oriented (OO) will become mainstream technology in the 90s computer field, and now this prophecy has become an unpublished fact. People go to object-oriented programming (OOP) to object-oriented programming (OOA and OOD). This paper summarizes the development process of object-oriented methods, and compares the prevalence of several major OOA methods. Finally, introduce the main research field for object-oriented methods.
First, the generation and development of object-oriented methods
The object-oriented method originated from object-oriented programming languages, in the field of programming languages, its birth and development experienced the following main stages.
1, prototype
Some concepts of object-oriented methods, such as "objects", "object properties", etc., can be traced back to early research in the 50s. However, people generally regard Simula67 language developed by Norway Computing Center as the first milestone in the history of object-oriented language development. For SIMULA67 is not an object-oriented language, the commentator is different, but the common view is that it does have some object-oriented important feature, known as a pioneer-oriented language.
The programming language such as the CLU, concurrent PASCAL, ADA and MODULA-2, played an important role in the development of abstract data type theory. These languages support data and operation packages. For example, the Class and Monitor in the Ada language and the concurrent Pascal language are the combination of data and operations and support information covert, which is already a relatively complete package concept. But these languages do not support inheritance, which is their main gap between object-oriented languages.
It is generally believed that inheritance and packaging is two most important features for object-oriented programming languages. The above language each is partially introduced into these concepts and provides support mechanisms, but it is not comprehensive. In addition, during this period, in the literature related to the above language, the object-oriented object is not discussed and advocated as a complete, system methodology, but the future generations found in the above language when the future generations of object-oriented methods. Some concepts of some concepts. So this period is only in the germination state and prototype. At the time of SIMULA67, the doctoral student Alan Kay at the University of Utah is working on graphics and simulation work on a personal computer, and has designed an experimental language Flex. This language draws on many concepts from Simula67, such as classes, objects, inheritance, etc. Since the restriction of the hardware and software conditions at the time, Kay's attempt did not succeed, but he did not give up his thoughts, and continued to study after he joined the Xerox Palo Alto Research Center (PARC).
In Parc, Kay became a member of the Dynabook project group and became the main designer of the software SMALLTALK of the project. According to KAY's research ideas, absorbed the concept of class, objects, inheritance, etc. in Simula67, drawing on abstract data types of CLU language and some ideas of Lisp language, and is subject to the "brush" class to describe the sea turtle behavior in the LOGO language Inspiration, Kay and his colleagues have designed a SmallTalk language. In 1972, PARC released the first version of SMALLTALK-72 in the language, which officially used "object-oriented" term. SmallTalk's goal is to make software developers to develop software developers as independent (or autonomous) units. According to the literature, anything in SmallTalk is an object, ie instance of the class. The object has encapsulation, so it is a more independent program unit. All objects are all instances of classes; all information with superclass, subclasses, subclasses inherit the superclass. As the main inheritance and package for object-oriented language, there is already in SmallTalk. Therefore, SMALLTALK's adventism marks the formal formation of object-oriented programming methods. However, the SmallTalk language in this period is not perfect, which is seen as a research and experimental work.
2. Perfect stage
From the 70s to the 1980s, PARC has always insisted on the research and improvement of SmallTalk. After several modifications, SMALLTALK-72, 76, 78 and other versions were released until 1981 launched the most complete version of SmallTalk-80 in the language of the language, and the SMALLTALK-80 was considered to be the most important milestone in the history of object development. Most of the object-oriented basic concepts used to date and their support mechanisms have been met in SmallTalk-80, which is the first perfect, object-oriented language that can be applied. Its release makes more and more people understand and accepts object-oriented ideas, forming a new programming style, triggered a far-reaching change in computer software. In addition, SmallTalk-80 is not only a programming language, but also a programming environment with type library support and interactive graphical user interface, which has played a good role in its rapid circulation.
But until the late 1980s, SmallTalk's application is not a wide range, which is very unsatisfied with it in academic significant impacts, and the reasons have the following points:
(1) Object-oriented as a new software methodology is widely accepted for a certain time.
(2) SmallTalk's commercial software development work has only begun in 1987.
(3) The purpose of pursuing pure OO (such as strict packaging) is inconvenient to make many software developers paying attention to.
3, prosperity
Since the mid-1980s to the 1990s, it is a stage for an object-oriented language to prosper. Its main manifestation is a large number of practical OOPL emerging, such as C , Objective-C, Object Pascal, Clos (Common Lisp Object System), Eiffel, Actor, etc. In these languages, the Eiffel and Actor are also like SmallTalk, which belong to the pure face-to-object language, and the rest are called hybrid object-oriented languages. At this time, pure OO languages also pay attention to practicality, such as Eiffel, providing a powerful development tool, providing a rename mechanism for solving multi-inherit naming conflicts, and allows programmers to use Export statements to control object visibility. SmallTalk has also developed a commercial version since 1987. The hybrid language is to increase object-oriented language components in a conventional process language. Such languages have a greater advantage in practicality: expand in some broad-use traditional language and is backward compatible, making it easier to accept many programmers. It is especially worth mentioning here that C is expanded on the C language, is compatible with C, and has attached great importance to the execution efficiency of the code from the beginning of the development (in recent C version code execution efficiency in recent years has been different from C language. Nothing). Therefore, C has become the most widely used OOPL, and a large number of software development units at home and abroad have attached great importance to programmers with C programming skills.
From recent dynamics, the total sales of C still hosted first, but the sales growth rate of SmallTalk is once more than C . This shows that many units prefer to withstand some efficiency losses in order to use OO methods more thoroughly in software development.
Object-oriented programming language is an important sign for object-oriented ways to practice, and an object-oriented approach has become more and more emphasized in computer academics, industry and education sectors. Since the 1990s, new OOPL has been continuously introduced, and many non-OO languages have increased its OO concept and mechanism to OO language. This indicates that OOPL is still continuing, and it also shows that object-oriented is the future trend.
Second, the OO method has developed to the early stage of software engineering
Since the late 1980s by the 1990s, a very far-reaching trend is that object-oriented methods and technologies are developed towards the preliminary stage of the software life. That is, people's research and application of the method of object-to-object methods are no longer limited to the programming phase, but the object-oriented method is started from the systematic analysis and system design phase. This marks the object-oriented method has evolved into a complete methodology and systematic technical system.
In the field of computer software, many new methods and technologies are first appearing from the programming phase, and thereby developed to the preliminary stage of the software life. For example, if you are familiar with the structured method, it is called "Structured Program Design" when it is raised, which leads out a series of structured programming languages, and finally develops to "Structured Analysis" and "Structured Design". Another example is the formal method, the earliest formal language is a programming language, and later focusing on the study of demand analysis and design, a formalized language has occurred. Software multiplexing techniques are also reused from programs (executable programs or source code) to analysis results and design results. The appearance of the above phenomenon is not surprising. In the end, people's understanding of the software itself, the beginning is only focused on programming, and later formed a software engineering system from analysis, design to programming, testing, and maintaining a complete set of software engineering systems.
Compared with the above methods, object-oriented methods are more profound in the previous stage of technology development to the previous stage of the software life. Because of the nature of the object-oriented method, it is to construct the system from the objective world. From the objective world, it is advocated to understand, understand and describe objective things in real life, and emphasize the ultimate establishment system. That is: the relationship between the objects and the objects in the system can reflect the inherent things and their relationships in the problem domain. This is precisely issued by the analysis and design phase to solve the problem. Imagine, in a software development unit, if only a number of programmers who will use some OOPL (eg C ), analyzing and design still use traditional methods, then programmers programming skills, but also difficult to pass through tradition The analysis and design documentation (such as data flow charts and module structures) and the original look of things in the real world; even if some classes and objects are defined in the program, it is difficult to directly map things in the real world. . In this sense, the preliminary stage of the software life period is the most dominant way to fundamentally exert its advantage. The emergence of OOA and OOD is an inevitable result of the development of an object-oriented method, and it is also an important indicator that is perfect, and practical. This is not to say that before OOA and OOD appear, people can use the effect of object-oriented technology. In fact, for some small systems, developers are often based on the basic principles of object-oriented methods, first in mind (or paper on the paper), determine which classes and objects to set up in the system, and then use object-oriented objects Language to program. It should be said that this development method is indeed object-oriented and can produce some quite good small systems. But for large systems, things are not so simple. First, the problem domain, system responsibility and related factors are more complicated; the other is that such a system cannot be done from the head to the end, but to have a division of labor. Its analysis and design are not to be solved in the minds of thinking or on draft paper. It requires a completely object-oriented system model; it takes a complete set of methods, strategies and techniques for analysis and design phases; it also requires a consistent set of easy analysts, designers, programmers, managers, and users to communicate with each other. Basic representation. These are the problem-oriented analysis and problems to be solved for object-oriented design. Since the late 1980s, a number of internationally-oriented analytical analysis and design (or object-oriented modeling and design) have been introduced successively. The commonality of these works is to increase the use of object-oriented in analytical and design phases to the height of theory and engineering (not just some guiding ideas for reference), each put forward a more complete system model, indicating And implement strategies. At the same time, in terms of model, representation, and strategy, each other has different differences).
Third, comparison of various OOA methods
Since the late 1980s, a variety of OOA and OOD methods have emerged, and there are ten kinds of more affected, and listed below:
.Beard method
.Booch method
The Booch method divides the development of the system into two parts: micro processes and macro processes. The microscopic process is mainly used to establish a repeated, increasing development framework, while the macro process is used to control the microscopic process. The micro process of the Booch'93 method is driven by the architecture of the script and the product, which is composed of four steps, as shown in Figure 1.
Figure one
The macroscopic process of the Booch'93 method controls many activities in the development process, which is beneficial to developers to assess development risks and timely correct the various errors in the microscopic process. The macro process is concerned about management in the development process. The macro process consists of five steps. as shown in picture 2.
Figure II
.Coad-yourDon method
.Firesmith method
.Jacobson method (简 简 oose)
OOSE (Object-Oriented Software Engineering) method is a method of using an example (use case), which is based on all models that use the example model. The main feature of the OOSE method is to better describe the needs of the system. .Martin-Odell method
.Rumbaugh method (omt)
The OMT (Object Modeling Technique) approaches the whole process of application development, including analysis, design, and implementation. In the analysis phase, the OMT method emphasizes the understanding of the system and related fields and establishes a model on this basis. The model of the analysis phase consists of three parts: object model, dynamic model and function model. The OMT method is characterized by the analysis phase, which can be more comprehensive in a comprehensive description of the static structure of the system.
.Seidewitz-Stark method
. SHLAER-MELLOR method
.Wirfs-brock method
The following aspects are people commented, comparing the main eye of the various OOA / OOD methods. Various OOA methods should be involved in these aspects and exhibit similar and different in these respects.
1, concept
What is the object-oriented concept to use an OOA method? For decades of research and discussion on object-oriented research have proposed a number of OO concepts, some concepts include many sub-concepts with fine distinction (such as dozens of "classes" and dozens of "objects"). The more these concepts are not adopted, the better, the better, too many concepts and excessive concepts will make the method too complicated, affecting its availability.
A variety of OOA methods is reflected in the concept of: the concept of concept is different; the concept definition of the same term is different (but there is often a difference between the words); the terminology used in the same concept is different.
In addition, some OOA methods use some concepts of non-OO methods (such as the functional model of the Rumbaugh method, using data flow and processing). This is an important factor in which this method is not pure OO.
2, principle
For the principle of object-oriented methods, various OOA methods have different degrees of compliance, such as some methods do not reflect data and operation packages, and some methods do not support operational inheritance.
3, indication and detailed description specification
Various OOA methods have proposed a representation that represents OO concepts (such as classes, objects, properties, services) and embodies OO principles (such as inheritance, messaging), using some graphics symbols as elevation of establishing an OOA model. In addition to graphical representation, a set of document specifications for establishing a detailed description of system components is also specified.
Various OOA methods are different in the representation of the concepts and principles used. For the same concept, the symbols used in various methods are also different.
4, OOA model
The OOA model is a system logic model established by an object-oriented analysis. It is based on the basic representation of the graphics, expressing the system ingredients known in the OOA phase and the relationship between each other, and is integrated within the global scale of the system. Graphical representation. The OOA model produced by the various OOA methods has a large difference from the overall form, the structural framework to the specific content, for example, a method of using several models, such as object models, dynamic models, event models, respectively, respectively. , Status model, functional model, etc.) constitute a logical representation of the entire system; some methods produce a unified system model by superposition of various information. The difference between the OOA model is the most concentrated, and various OOA methods differ in concept, representation, execution process, etc. In general, various methods are only placed in the model only, and other information is placed in detail, as the implementation rules for the supplementary description of the model and the subsequent development phase.
5, process
Various OOA methods generally specify some specific steps for practical analysis, pointing out what should be done and how to do each step, and give some strategies and inspiration (which to tell the user how to handle and what aspects Think about help to achieve your goals). Various OOA methods will be reflected in the process of concepts and models. The details of the process also have different differences. Some methods In order to emphasize the various steps in the process, they are not required to be carried out in the fixed order, so it is not called "step" and "activity".
6, technical support
An OOA method can ultimately be widely adopted, to see if it can provide the necessary technical support. The most important technical support includes: Case tools, technical information (including books), training programs, etc.
Fourth, current research and practice
The object-oriented method has experienced more than 20 years since the birth of more than 20 years. At present, it has entered various branches of computer science and continues to develop in these areas, and some brief introduction is made.
1. Object-oriented programming language
OOPL is the origin of an object-oriented method and is also the most mature field. But there are still many problems need to be studied and resolved. For example: object semantics, permanent object representation and processing, permanent storage, active object representation, distributed object, and its messages, interfaces, and the like.
2. Object-oriented analysis and object-oriented design
Apply object-oriented methods to demand analysis and system design. Its theory and engineering system is formed in the end of the 1980s, which is still constantly developing and sound.
3, object-oriented database
OODB is a combination of object-oriented methods and database technology. OODB requires both the necessary features of the traditional database, and it is also necessary to have basic features of object-oriented methods. For example, the object-oriented data model is used as a storage and retrieval unit, support inheritance and encapsulation, providing an object-oriented data definition language and data manipulation language, and more. There are three ways to research and development of OODB:
Increase object-oriented features in traditional database management systems;
In the object-oriented programming language, add the function of the database;
Develop a brand new, object-oriented database. OODB is a current research hotspot that requires solving problems that have both theoretical aspects.
4. Object-oriented software development environment
The history of object-oriented software development environments is almost as long as object-oriented programming languages. The first most affected object-oriented programming language SmallTalk-80 is also the first object-oriented development environment. The environment thereafter has a Macintosh's Macapp environment. Next computer and environment, EIFFEL language and environment, etc. However, in the 1990s, people have a higher hope for object-oriented software development environments, and the ideal environment should have the following functions:
There is a library of support multiplexing and sharing and its browsing, maintenance interface;
There is a target management system (OMS) that stores and manages permanent objects (OMS)
There is one or more object-oriented programming languages based on class libraries and OMS;
. Provide a set of object-oriented development tools covering the software life cycle;
To provide an object-oriented programming language and interface mechanism of the database;
Support object-oriented user interface development;
. With the necessary functions of the traditional software engineering development environment, such as configuration management, version management, permission management, etc .;
The tight integration of software tools is supported and open.
5. Object-oriented graphical user interface development technology
Graphical User Interface (GUI) develops a considerable proportion of the entire software system, and the development efficiency of GUI is a struggle for many years. Object-oriented methods and technology bring new vitalities from more fundamental development efficiency, and its main pathways are:
. User-to-object design functions, and improve application objectualization procedures under existing technical support;
Development of object-oriented GUI development systems and interface description languages;
In the existing GUI development system, the interface class that meets the popular OOPL syntax is developed for common interface components, and the interface class library is established;. Provide the corresponding interface auxiliary generation tool.
6. Object-oriented smart program design
Apply object-oriented methods to intelligent programming fields. For example, using an object description The intelligent entity in the knowledge system uses the knowledge of the object to represent the knowledge included in the entity, and uses the service to represent its intelligent behavior. Object-oriented methods have congenital adaptability in artificial intelligence, its concept, principles, and representations more close to human knowledge structure and intelligence than other software methods. For example, the "partial" relationship between the "IS-A-Kind-of" relationship between the special classes, the partial object and the overall object, which contains many knowledge information, which can make knowledge in many cases It is more simple and clear, closer to the original appearance of things and the natural thinking of humans.
7. Object-oriented architecture
Studying the computer architecture that supports storage, management, and synergistic operation of the object. This new computer architecture, together with a new type of operating system that supports object-oriented technology, is expected to fundamentally improve object-oriented software development efficiency and operational efficiency, forming from hardware to operating systems, language, interface, and upper application support systems Integrated object-oriented development and operating environment.
Five, conclude
Object-oriented methods are gradually gradually become mainstream technology in the field of computer. With the continuous improvement and development of various object-oriented methods and technologies, it will be more likely to show its superiority and vitality.
references
1, Rumbaugh J, Blaha M, Premerlani W et al. Object-oriented modeling and design. Englewood Cliffs, NJ: Prentice-Hall, 1991
2, COAD P and YOURDON E. Object-Oriented Design. Englewood Cliffs, NJ: Prentice-Hall, 1991
3, Krueger C W. Software Reuse. ACM Computer Survey, 1992, 24 (1)
4, COAD, P., YOURDON, E, Shao Weizhong, etc., object-oriented analysis, Peking University Press, first edition, February 1992
5, COAD, P., YOURDON, E, Shao Weizhong, etc., object-oriented design, Peking University Press, first edition, December 1994
6, Shao Weizhong, Yang Fuqing, an object-oriented analysis, Tsinghua University Press, December 1998
7. Yang Fuqing software multiplexing and related technology, computer science, 199, 26 (5)