UML (Unified Modeling Language) is a universal visual modeling language standard used to describe, visualize, construct and document software system artifacts.
When it comes to languages, many people start to feel fear. Languages such as SQL, Java, C#, and PHP may flash through your mind, and they may discourage many people .
Various programming languages
However, UML is not a programming language, but a visual modeling language. It is called a language because UML provides vocabulary and rules for communication. Users can communicate about the same software without any obstacles under the framework of these vocabulary and rules, so that different users can have the same understanding of the same thing.
Since the late 1960s, with the increasing popularity of computer technology, people's demand for software has been increasing day by day, the scale of software has been expanding, and the complexity of software has been increasing. Due to the lack of scientific theoretical guidance, the progress of software development is difficult to guarantee, the cost of software development is constantly rising, and the ever-changing user needs are also worse for software that cannot guarantee quality. There is no relevant documentation as a reference, making software maintenance extremely difficult. People figuratively call it the software crisis.
What to do? Then we must treat software development as engineering. Therefore, the concept of software engineering came into being. Software engineering aims to study the objective laws of software production, establish the relevant concepts, principles, methods, techniques and tools of software production, and guide software production activities. Of course, it has achieved satisfactory results.
As people's research on software engineering continues to deepen, object-oriented programming has entered people's field of vision. From the 1980s to the early 1990s, many object-oriented analysis and design methods were born, and a large number of books introducing object-oriented methods also appeared. This is a bit like a hundred schools of thought. Each book author leads a group of practitioners. These methods have many similarities, but also subtle differences.
This also brings confusion to practitioners in the same field. When talking about the same thing, they may come up with different object-oriented representation methods, which seriously hinders their understanding and communication of the same thing.
At this time, someone suggested that we unify and use the same standard. But no one seemed to hear his voice and no one paid attention. An organization called OMG (Object Management Group) also tried to standardize object-oriented programming, but only received an open letter of protest from all methodologists.
Martin Fowler tells a joke about this situation in his book UML Essentials: A Simple Guide to the Standard Object Modeling Language:
A: What is the difference between a methodologist and a terrorist?
B: Terrorists can negotiate.
There is a huge gap in object-oriented representation methods
At the 1995 OOPSLA (Object-Oriented Programming Systems, Languages and Applications) annual conference, Grady Booch and Jim Rumbaugh publicly described their combined approach for the first time, the Unified Method document 0.8.
After a series of competition among various parties, in January 1997, various organizations jointly submitted a proposal for the method standard. Rational and other organizations collaborated to release the UML document version 1.0, which was also the first time it was called the Unified Modeling Language.
After a process of competition among various parties , OMG adopted version 1.1 as the official OMG standard. After a series of modifications, UML1.4 and UML1.5 have become relatively mature. For example, Rational Rose 2003 was developed based on this standard.
When many people talk about UML, they attribute the credit of its creators mainly to Grady Booch, Ivar Jacobson and Jim Rumbaugh, calling them the "Three Amigos".
Of course, some people expressed opposition, believing that they made certain contributions in the early stage, but in the later stage the OMG committee members made a lot of contributions, and Jim Rumbaugh was the only one among the three who made contributions in the later stage.
In terms of methods and notations that have appeared in the past, UML has incorporated many commonly accepted concepts in object-oriented methods. For each concept, UML gives clear definitions, notations and related terms. UML can be used to describe models established by various existing methods and describe them better than the original methods.
In terms of the software development life cycle, UML requires seamless development. The same set of concepts and notations can be used in different stages of the development process, and they can be mixed in the same model without having to convert concepts and notations. This seamlessness is crucial for iterative, incremental software development.
In terms of application areas, UML is suitable for modeling in various fields, including large, complex, real-time, distributed, centralized data or computing, embedded systems, etc.
In terms of implemented programming languages and development platforms, UML can be applied to systems running a variety of different programming implementation languages and development platforms.
In terms of the development process, UML is a modeling language, not a tool for describing the details of the development process, just like a general-purpose programming language can be used for many styles of programming.
In terms of internal concepts, UML pays special attention to revealing and expressing the internal connections between various concepts. It tries to grasp the concepts in modeling in a variety of ways that are applicable to known and unknown situations. This process will enhance the understanding of concepts and their applicability. This is not the original intention of unifying various standards, but it is one of the most important results of unifying various standards.
The composition of UML can be illustrated using the following diagram:
UML basic building blocks and diagram classification
At present, the latest version of UML has developed to UML 2.5, and the number of diagram types has increased from the original 9 to 13. Some people believe that the complexity of UML itself may exceed that of software modeling itself.
The above is the basic introduction of UML. As an indispensable modeling language in software engineering, the development of UML not only witnessed the progress of software design concepts, but also highlighted its key role in promoting team communication, optimizing system design, and accelerating the development process. Through the basic introduction of this article, I believe that you can not only deeply understand the historical context of UML, but also master its wide application in demand analysis, system design, and documentation.
Related reading:
UML diagram complete guide: Master 14 types of UML diagrams in 10 minutes