"Column sound" is a simple history (with: DOTNET ARCHITECT should think about the problem)
The god of the small gas 2002.05.06
Now if it is also for object-oriented, it seems that there are some old-fashioned, just as the controversy is going to draw the process of writing procedures first, we have already begun. I have always thought that I am a more light "object-oriented" evolutionary, more love and more than "components". Once you like to make a distributed environment composed of many components, it seems that it is difficult to get your eyes to the object inside the component. The inter-component relationships and functions are enough to form a very interesting information ring and the chain, watching Information is more likely to be heartbroken in this ring network. When I saw a hundred golden balls in COM kept turning, who said that this scene was unleasing.
However, DOTNET technology has brought new features that we need to reopeize our program architecture and composition, especially more detailed and micro, such as internal construction of components above. XML, SOAP, WSDL, Web Services resolves the interface problem between components, applications and components in different environments can communicate and exchange data through a common and platform, protocol that is unrelated to the language tool. But what about each component? Does it constructors and exquisiteness affect our app and develop?
We have always used the components that tend to use COM possible to stem from a practical point of view. It does not require too much object-oriented viewpoint and constraint, collecting a set of related implementation functions and encapsulates it as a function. Object. Of course, this is incredible for "object-oriented" fanaticism, they think this is not a real object-oriented design and implementation, in which you feel the object-oriented, inner heart they think this is not object-oriented . Of course, these feelings are not what we have to solve, we have to face a hierarchical reuse, effective abstract and efficient coupling.
In object-oriented analysis and design, abstract quality is measured by two indicators, one is the cohesiveness, that is, if the abstraction can represent a clear concept (customer, invoice, order), then abstraction is Melocal. All methods of a class must be relevant to the representation of the concept. The other is coupling. That is, the degree of coupling associated with the associated abstraction. If the coupling is high, the reuse is low because the abstraction is related to other modules in the system so that it is difficult to maintain separately. The conclusion is that weaker abstraction cannot be reused, high coupling loss of reuse. This is also what we often encounter. Our components are easy to use - high coupling, any time you can use CreateObject or COCREATEINSTANCE to create a component, then call it to get some function. However, the components are often no reuse, and the components are a set object based on functional abstraction. This abstract co-polymerity is very low. It is encouraged by components that are as few as possible. There are almost no member variables in your class. The implementation of the method has highlighted a certain function rather than concentrating a clear concept. It is likely that there is a new invoice in your component, delete a customer record, modify the function function of a order, what is it? Do not set the same transaction attribute, if the classification is good, the client can complete the relevant series of business operations only if you create a component. This maybe it is the practicality I said. But there is no or few objects or concepts inside the component, so there is almost no reuse, and you often need to copy and modify the code after you have a framework. In fact, all your energy can be placed on business details, but different Business details may require you to continue to have new components.
Of course, it must be acknowledged that the use of object-oriented analysis and design principles in the COM project is a quite difficult and tricky problem. Some development system will affect your project structure in different aspects, causing some of the above problems. For example, VB is a typical example. Due to the simplified target, VB is designed to distinguish CoClass using the default interface, which makes many developers unknowing all behaviors of the object in this primary interface. Is this based on an interface development? Yes, but not. The main interface is placed in some collection of object-specific behaviors, which is unique, and the concentration reflects its abstraction. Define a shared behavior in a separate interface and put the sharing of these interfaces in a separate module so that software reuse is possible. The key to realizing reusable use is to make the implementation of the interface with a non-coupled to an object. It is often more than some of the VB programmers to raise such a problem, and the DOTNET programming is based on the interface programming, how is it reflected? In fact, the interface is not only in the DOTNET, but also in the VB period, the interface is reflected in your design. There is also a problem with IMPLEmentation inheritance. To ensure the effectiveness of COM, COM's formulars do not support support inheritance, they think that inheritance or more inheritance (MI) is a good tool for architecture applications However, it is not suitable for defining structures for components. In fact, more of the inclusive and aggregated ways in the COM world are reused. Therefore, some extent our project structure has a certain impact, of course, also includes developers. The DOTNET framework has brought many improvements, such as interfaces, objects, properties, inheritance, etc., more support object-oriented analysis and design implementation, and even some are new. So we have the opportunity to reconsider the use of object-oriented design and analysis in our DOTNET application design and implementation, bringing more reusability than ever. The key is whether we can see this and the corresponding changes, often we have ignored these. It is not possible to say that the three or multi-layer assembly frame models proposed in the Red Treasure Book have been outdated, but at least be challenged, so that this model is hard to DOTNET platform, it may be a bit wrong (of course not, performance will More than previously high), but designers and developers may be a non-satirical: What are you waiting for?
My point is: First gradually use object-oriented analysis and design, so that you have an abstraction in your components and improve the possibility of reusability. Adjust the original interface design, abstract and early interface isolation. The most popular meaning is that since then, we will not return ADO record set or DataSet after the method of calling a business layer object, but an abstract object, an expression layer operates through an object's properties and methods. A order object may be a component or an object in the component, but all the operations in this object are about a place in reality. Of course, there is a measure of the problem, you may have a little more object-oriented or less, my components are more oriented more than your components. The standard here is depends on your practical application, and the benefits of object-oriented must be actual application services in the project, to solve the problem. If you can't, then you can keep using the past method, but if both can, you should start from a reusable perspective, abstract it. A friend I once said to me: Abstract in order to program simple; object-oriented, isn't it to be reused? Some people say that many people born in the 1970s, don't like or never take a watch, so it is also very young; I think my friend and I belong to this.
The second step is to use the design mode (Design Patterns). When we use object-oriented analysis techniques to organize business needs and perform abstraction, verification, and design of objects in the development of life cycle. Then analyze the design, from the process of designing to implementation, it becomes clear. But how to flexibly apply and combine the above abstraction, the best and the minimum approach is to use the design pattern, which is an object-oriented collection. There are two important design principles reflected in the design mode: based on the interface rather than the implementation of the programming and priority to use object portfolio instead of the class inheritance. These two principles also implement the implementation of the entire DOTNET platform, the implementation from the design to the DOTNET can be synchronized and one or one. Different design patterns are in a certain scenario, a solution for what problem, which emphasizes the last role, and consisequences. Must recognize J2EE applications to enterprise-level system development, there have been summarized a lot of design patterns corresponding to business model, which is significant for technical platform itself, making it full of charm and vitality. The developers under the DOTNET platform have just begun, but I believe that once you have a design pattern, you will also feel the vitality of the DOTNET platform, which is more flexible to make you more choices. These are all designed and improved application architectures: one is to reflect and adjust your design with a reusable idea of the model; the second is in the process of use, according to your specific business model and various modes Corresponding to a specific core design pattern of a certain business (saying that the core system architecture will be better, these architectures may show a design pattern or a mix of design patterns or a new model you create, it is mainly A design pattern of your specific business model, environment, process, and platform or a architecture system, that is, it may be special at the latter level, more for business model itself without just emphasize design mode). In the third step, this transformation is made with your team. As mentioned in a "column sound", you will find two types of people in your team, one is the field expert, and their interest is to provide solutions for a certain area, often "face components. "More, because he is driven by practicalism, he is required to find a suitable and effective solution from different fields for a certain period of time; the other is technical expert, and how they care about how to achieve, often" object-oriented "more Because their fun comes from the abstraction of each class and everything is perfect. Under the new technology, the field experts should take the initiative to pay attention to this change and actively make corresponding changes, more collaborative technical experts complete the system analysis and architecture. Technical experts will give full play to his advantages to improve the reusability and stability of the entire application. (The general field expert is mostly Project Manager, System Design, technical experts are more Program Manager, Team Leader, interesting is that they have another same role: Senior Software Developer, so they will be programmed together. But this is not It is true, and the topic is "Haha).
There is no doubt that almost all DOTNET development and designers have embarrassed this seemingly familiar with how clear but fill a gray light, ready to start a Waltz between now and the future, we have not opened in the spotlight, we Need to seize some of our familiar props to see the environment of the stage. Otherwise, when the lights are on, we may have throw it again by this rotating stage when the music sounds.
Ok, I think I am running, I originally wanted to extract some of these information about object-oriented information, and then have a feeling: we should actively use and implement object-oriented ideas when using DOTNET technology. Now it seems that "away" is some :) But please forgive me. Nine very important software concepts in objects:
Package, information implementation / hidden, state hold, object identity, message, class, inheritance, polymorphism, generality.
Object-oriented origin:
Object-oriented is not instantaneous with many pioneers in the history of human inventions. Object-oriented is not a sudden thought of someone in the bathtub, but many people have accumulated products for many years. Object-oriented concepts are like several tributation brings together through historical changes, and finally form an object-oriented river.
Here is 10 (annual) in theoretical research and in the actual situation, and people who have a prominent contribution to the object, (if there is an omissions, please understand)
l larry constantine
Talking about any contributors of any software category will mention Larry Constantine, so come from the senior Larry Constantine. Although Constantine did not do anything under the "object-oriented" flag, but he is committed to studying the basic guidelines for software design. In fact, he is one of the first few people who make the software before programming. Many of Constantine (such as coupling and consolidation) have been used in today's object-oriented domain.
[
Constantine
1968]
Constantine
, L.L. "Control of Sequence and Parallelism in Modular Programs," Afips Proceedings of the 1968 Speing Joint Computer Conference Vol.32 (1968), P409
l.-j. dahl and k.nygarrd
Several concepts introduced by dahl and nygaard have now become an object-oriented component. The concept of class is the best example, this concept appears for the first time in Simula language
[Dahl and Nygaard, 1966] Dahl, O.-j., and k. Nygaard. "SIMULA-AN Algol-based Simulation Language." Communications of the ACM, VOL.9, No.9 (1996), P32 ~ 42
l alan kay, adle goldberg et al.
After several years of research, Kay, Goldberg and his colleagues were designed in the SMALLTalk language in the Palo Alto Research Center of Xerox, 1970. This research results have proposed a number of concepts that are now the object-oriented core (such as messages and inheritance). Many people still think that the SmallTalk language and the environment is an object-oriented perfect implementation.
[KAY, 1969] Kay, A The Reactive Engine.
University
Of
UTAH
, Department of Computer Science, August, 1969
[Goldberg and Robson, 1989] Goldberg, A., And D. Robson.Smalltalk-80: The Language.
Reading
,
Mass.
: Addison-Wesley, 1989
l Edsger Dijkstra
"CONSCIENCE OF Software Correctness", "Software Correctness", has been worried for decades. In the early studies of Dijkstra, the viewpoints of the abstract layer construction software are proposed, and the strict semantic distinction is used between the two successive layers. This is actually a form of packaging and one of the main concepts of object-oriented. l Barbara Liskov
In the 1970s, Liskov had a major progress in the abstract data structure (ADT) theory and realization, laying the object-oriented foundation. The most famous research results of Liskov are the CLU language, support hidden internal data representation methods.
[Liskov et al, 1981] Liskov, B., ETAL. CLU REFERENCE MANUAL.
New York
: Springer-Verlag, 1981
l David Parnas
In the paper with epoch-meaning, Parnas proposed the principle of module software construction. Although object-oriented construction is superior to traditional process modules, many of the basic ideas hidden in Parnas can still be applied to object-oriented systems.
l Jean Ichbian et al.
Ichbiah and research team have developed "Green" programming languages, which is an Ada language adopted by the US Department of Defense (now known as ADA-83). Two concepts (general and package) in the ADA-83 are also very important in object-oriented objects. The latest version of this language ADA-95 is more comprehensive to support object-oriented.
l Bjarne Stroustrup
The C language has an interesting family tree. A BCPL language was developed by Martin Richards. This produces a B-language, BCPL abbreviation. The C language is generated by the B language. After Stroustrup research, the C language is generated by the C language. The following is a paragraph of Stroustrup in "C generation":
C is mainly designed for programmers, making it easy to program, C, C, C, C, C, C, C, or various existing senior languages. Its main purpose allows each programmer to write a good program easier more enjoyable. It has never been related to C design; design, documentation, and implementation are carried out simultaneously.
Since C is transplanted from the early non-face-oriented language and very low-level language, its grammar is not very clear. However, although there is a Java language that occurs, C is still the most widely used object-oriented language. Since C is C , it has portability on many machines and operating system platforms, which greatly promotes the popularity of object-oriented language. In this sense, Stroustrup contribution to this field is huge.
l Bertrand Meyer
Meyer's contribution is to integrate the best computer science idea with the best object-oriented ideas. The result is a language and environment called EIFFEL. Eiffel is really treasure in the software industry, as it is attractive to people of theory, software engineering, and hoping to optimize the code. Whether your business chooses the object-oriented language, if you want to be a real object-oriented expert, you should learn the concept in Eiffel, [Wiener, 1955] is a good book to learn Eiffel.
l GRADY BOOCH IVAR JACOBSON and JIM RUMBAUGH
These three characters were treated together with the nickname of "The Three Amigos". Although they have their own claims in the object-oriented field, in the late 1930s, they cooperated to cooperate with object-oriented in accordance with reasonable compliance, which produced unified modeling language (UML), this graphical Modeling languages have both visual expressions, and rigorous semantic support. UML modeling tool is more direct and accurate than other representations, in fact, you should not be intimidated in compliance with the representation. Object-oriented maturity
Old biologists often publish such a speech: Individual creatures repeat the history of biological development. Its meaning is that the development of individual biological embryos is usually interpreted with evolutionary processes (such as human embryos development). Of course, there is a big difference in time. The development of individual organisms may only be only a few months, while the overall organisms are prone to generation.
Despite the statement of old biologists, there is a new point of view in software engineering: the history of object-oriented software projects repeated the history of traditional software engineering. Of course, there are many differences in time spans. The formation of mature processes and database structures spent decades, while only a few years of time for object-oriented software.
Software development is almost starting from programming. As the system scale expands and people's experience is rich, people realize that writing application software code is only related to personal levels. Even though this development can operate miracle, it is almost impossible for any modification of the code because the code lacks a norm.
This is introduced into the design. The software design plans the relevant part of the code before writing the code. This fundamental improvement can even make people solve potentially for problems.
Together, we can produce exquisite software now, but some keen people have found that most of these exquisite software cannot meet customer needs. In order to meet the continuous pursuit of software availability, regular and stricter analysis methods.
In the end, we are lucky to get a Computer-Aided Software Engineering, Case tool. At first, the reputation of these tools is not optimistic. However, with the improvement of the tool, the status is gradually changed and the reputation is recovered in the federal protection program. Today, the previous Case tool is called automatic modeling tool. Modeling tools help us make demand analysis, software design and software construction, and make software development and maintenance more convenient management.
In the entire history of software development, people have tried to improve software reusability. But unfortunately, most code process units are not independent, so it is difficult to reuse independently. Today, object-oriented applications allow software reuse to get a living.
Object-oriented is not universal, if the object's class is not careful, it is not possible to provide reusable and reliable software. As mentioned earlier, object-oriented history is in parallel with the mainstream history of the software. However, for the opposite object, it is extremely rapidly developed from achieving abstraction. Object-oriented programming began popular in the 1980s. Object-oriented design and object-oriented analysis were introduced during the same period. About the 1990s appeared object-oriented database management system (ODBMS) and object-oriented modeling tools.
The rapid development of object-oriented fields makes people suffer from strange to forget. Some people have experienced the development of object-oriented individuals and forget the mainstream development of the entire software. Their slogan is "any knowledge before 1990 is not necessarily known!" They were bloody and persistent to object-oriented revolutionaries. Condemn the software established at the time using the excessive COBOL language, as a paper tiger, and thinks that only one road to Ye Cartinburg is only one. Now their revolutionary enthusiasm is cooling. The subject revolution has been successful, and its incitement and supporters themselves have become the builder. Many tools and technologies in the software market are now more or less or less. This is especially true of customer / server and other distributed systems.
The software kingdom is always full of revolution. The next liberation programmer's revolution, distributed component software has influenced us, learned from some warm speeches, using distributed components to obtain more benefits than the initial objective revolution. Similar engineering object-oriented
In the 1980s, BRAD COX treats software objects in a way of hardware integrated circuits (ICs) used in modern life. When the archaeologists in Washington, I remember this class ratio when I was looking for a bunch of papers in my office. They found a "Introduction to Radar System", which made Mr. Skolnik in the book, "Electronic Engineering can be based on the following categories: components; technology; system. Components can be combined. The construction unit generates a system by using appropriate technologies. "If you replace the above words, replace" Electronics "with" Software ", replace" Components ", turn it into the following description: Software The project can be classified: class; technology; system. Class is a basic construction unit that can be combined. By using appropriate technologies. The software components we discussed are similar to electronic printed circuit boards. This framework is actually called components. Component.
Although this idea is more attractive, we can't forget that choosing a useful circuit package in the chip depends on the correct identification of the circuit. People will rush out to purchase ICs for operating amplifiers, audio amplifiers, designers, line drivers, etc., but no one is willing to buy transistors, sensors and resistance of oversized ICs from head. Before making the first useful IC, after the electronic system, the engineer has discovered this useful solution for decades.
Similarly, in the software we must ensure that the development of the class is effective, strong, easy to abstract. For example, the Customer class and the lovely STACK class may be popular; and the Egabragrettu class may think of the roadside garbage.
Mr. Skolnik's second point is about technology. Because IC can't be combined, it is almost useless, and fortunately, the electronic engineer has produced a printed circuit board that integrates IC.
Similarly, the development of object-oriented software must perform the design of the "macro" level, in this hierarchical connection between the class (and objects generated at runtime). Obviously, the internal design is closely related to the higher level of class. The truth is simple, because the layout of the PCB relies on the design level of the IC integrated thereon.
There is an object-oriented design of object-oriented design at the internal level and inter-class level of the class. Therefore, the best object-oriented system is the same as a good electronic system, but also depends on high quality abstraction and depends on these abstract high levels.
Object-oriented benefits
This topic catering to cynicies and complying with blinders.
Some opponents may say that there is no advantage for objects; it is just a genre or a global conspiracy caused by some parts of the West. Some radical piers claim that object-oriented is the only way to success since all software. Object-oriented not only for Windows systems, but also applicable to omnipotent distributed web architectures.
These two statements are too extreme, and the author thinks that objects are useful, but they can't be emptying, it is not perfect enough, and its specific utility relies on how to use during software openings.
None a valuable price software engineering method can be "fad of the year". The fashion refers to a way in a few months or a year. Blind people hysterically destroy "the fashion" can solve all software problems. Suspected people will sit and wait for the blind self. When this method is not selected, the blind personnel will give up this method to turn to the next year fashion. If your company is swing on the tips of technology, it should be twisted immediately, and some benefits may be obtained from the object-oriented technology. Object-oriented is not an universal solution, stupid solutions will also make your company step into trouble. Object-oriented despite challenges, it is indeed an effective software development method. A mature and professional businesses should not treat object-oriented objects at extreme methods, and should carefully study the object-oriented method and incorporate object-oriented to the long-term plan of development professional software.
Object-oriented has an internal impact on six major software activities of enterprises.
1. Analysis of user needs.
The process analysis of structured technology and where the boundary between data analysis has never been really resolved. Data flow charts The world's data world is difficult to coexist with entity. Process and data analysis can meet the requirements in some occasions, and conflicts in some occasions. This conflict is particularly prominent in real-time system model, such as the corresponding relationship between the control process and the data model tends to be unclear.
Object-oriented methods are integrated with data research in the early days of life cycle. Although it cannot be explicitly referred to as "process and data analysis", it is more appropriate to discuss "dynamic and static analysis", and use the object-oriented concept. It is well coordinated. It is no wonder that someone will integrate the fusion of the object-oriented process and data as the space and time of the relativity of Einstein, although this metaphor has been in fact.
2. Software design
In software design, object-oriented existing advantages is not enough.
Object-oriented advantages are to hide the designer to hide the skills in software, including: puzzling data structure, complex combination logic, detailed process and data relationship, high algorithm and terrible Device driver.
Object-oriented disadvantages is that the application package and inheritance characteristics make the structure itself complicate. It is difficult to create a Gori Yas hammock in the object or not, or it is either to make the system running like a weight horse. Avoiding these problems is the challenge facing object-oriented designers. Although object-oriented design is sometimes very hard, once it is completed, it is more designed to handle a lot of complex units than other design techniques.
3. Software construction
The most frequently considered quality elements for the establishment of the system is: reusability, reliability, robustness, scalability, distribution, and storageability.
4. Software maintenance
Reusability, reliability, robustness, and scalability are the four pillars of software maintenance. Many companies spend high on software maintenance. Since object-oriented can improve the quality characteristics of these four aspects, the system's maintenance overhead can be reduced in the following aspects:
Renewability reduces the maintenance cost of the entire company's entire code. Reduce the amount of new code and after the system maintenance, especially after the beginning of one or two projects, the effect is particularly obvious.
Reliability reduces the user's dissatisfaction and complaints about the pain of the correction problem.
Healthyness ensures that the software can be maintained without paralysis on the desktop.
Scalability cateres the "progressive" tendency of the user to modify the system, so the user can constantly seek more smaller modifications to the software.
5. Software use
Graphics applications have always been an object-oriented main choice. It is usually a graphical user interface (GUI) through an object-oriented object. There are two reasons why you do this: one is the concept; its second is achieved. If the object-oriented itself increases the ease of use of software, it is less accurate, but it can be accurately said that the good graphical user interface adds software easy to use, and object-oriented is the best way to support the GUI software library.
6. Software Project Management
So far, most of the content is to develop technicians. But what is the content of the manager? Does another technical feature of objects will be slowly died or transferred to another? Or object-oriented just make the manager to move the stone to the stumbling block of his own feet? the answer is negative. Object-oriented not only suitable for ordinary staff, but also suitable for managers. For example, techniques to reduce maintenance overhead can release managers' resources and put them into the application to be processed. In the manner's view, object-oriented is not pure technology, and object-oriented, it can also bring changes to the work of the manager.
When a company adopts object-oriented, the organizational structure will change. Class reuse requires class libraries and class managers. Each programmer is to join one of two groups: one is a design and writing new categories, and the other is an application class to create a new application group. Object-oriented does not emphasize programming (reuse means reducing code), demand analysis is relatively important.
New symbols such as UML will also bring a significant impact. Although demand analysis and software design are two aspects, UML is widely applied to both models. This makes modern O.O. Symbolize, and structural technology is very lacking in this respect. Until I encountered a new manager who had a newly-oriented business told me that the following sentences, I realized that these two areas are inseparable: in the past, the technician is drawing a circular figure (the process in the data flow), I I know that they start design when they are analyzing, go to the picture block diagram (modules in the structural flow chart). Now I never know what they are doing and worry about it.
As a manager of steering-oriented enterprises, it should be aware of the change of the organization. Let employens adapt to new roles and manage people involved in work in these characters, encourage reuse instead of advocacy. It is necessary to give a sufficient time considering class to make the construct classes to meet reuse requirements. In summary, you should use different terms, different tools and different life cycles and new goals to manage projects.
If manager managers use object-oriented as a way, they will achieve good results. Object-oriented is to maintain maintenanceability, scalability, majestic, distributed, GUI support, reduction delivery time, and many other benefits. As a manager, the manager should always establish the target and the object-oriented object is used as a technique to achieve a predetermined goal.
If there is no target in your mind, it seems to be expensive for all-oriented all things overhead (finance, organization, society and feelings). However, if not only knows what to do, and know why do this, you can achieve the object-oriented target you pursue.
summary
There is a saying in object-oriented components, that is, object-oriented components and electronic integrated circuits. At least in software, there is an opportunity to construct the system as modern electronic engineers: effective abstraction can be achieved by the connection of the prefabricated components. However, in order to achieve this, we must first indicate the correct software abstraction, and then coupled in a configuration.
To master the technology of "Software Integrated Circuit", it must be an object-oriented and in-depth research. "Object-oriented" is a term that combines the idea of many software researchers from the 1960s. But not all people agree with this view. Some radicalists think that object-oriented is a complete breakthrough to the past. And some other opponents are opposite to the opposite point: the top of the object is "replacing the soup without changing the medicine".
According to my experience, object-oriented is neither "replacing soup does not change the medicine", nor is it a complete breakthrough in the software we understand. Instead, towards the next step in the development increasing complex software challenge.
Object-oriented also solves two problems in structured technology. One is the separation of processes and data and the mismatch of demand analysis models and software design models. The other is the so-called separation of information and real-time system development methods. I think a good object-oriented method can handle these two types of systems.
Conflexible, robust-oriented software needs to build various assertions, such as classes, and running abnormal processing monitoring. Software maintenance is improved not only on the reusability "reduced maintenance code", but also on the software to establish a good abstract basis. Finally, it is necessary to emphasize that only the scientific management is implemented, the development of object-oriented software can be successful. Managers should gradually introduce object-oriented technologies and manage the needs of enterprise needs (such as software engineering methods) and results (if reused results).
Special Note:
This article is non-9CBS official column articles, so the view in the text is that the author is sent, it does not mean and reflects other people's point of view.
This article is originally created, 9CBS started, such as non-authorized other people, please do not use for news or commercial purposes.
Citation from MEILIR Page-Jones: Fundamentals Of Object-Oriented Design In Uml Chapter 2, 2001.4 People's Posts and Telecommunications Publishing House
If there is any other omission, it is no longer, if there are other problems, please email the email to new2001@msn.com