UML, for its acronym in English, as Unified Modeling Language according to ABBREVIATIONFINDER, is the most well-known and used software systems modeling language today; It is endorsed by the OMG (Object Management Group). It is a graphical language to visualize, specify, build and document a software system. The UML provides a standard for describing a system “blueprint” (model), including conceptual aspects such as business processes and system functions, and specifics such as programming language expressions, database schemas, and reusable software components.
It is important to note that UML is a “language” to specify and not to describe methods or processes. It is used to define a software system, to detail artifacts in the system, and to document and build. In other words, it is the language in which the model is described. It can be applied in a wide variety of ways to support a software development methodology (such as the Unified Rational Process), but it does not itself specify which methodology or process to use.
UML cannot be compared with structured programming, since UML means (Unified Modeling Language), it is not programming, it only diagrams the reality of a use in a requirement. While structured programming is a way of programming like object-oriented, however, object-oriented has been a perfect complement to UML, but UML is not used only for object-oriented languages.
UML has several types of diagrams, which show different aspects of the represented entities.
When the Rational Software Corporation hired James Rumbaugh who worked for General Electric in 1994. Thus he got the creators of the two most popular techniques for modeling object-oriented systems: Rumbaugh’s Object Modeling Technique, which was better in analysis, and Grady Booch’s Booch Method, which was better in design. Together, Rumbaugh and Booch began to reconcile their methods by laying the foundations of the Unified Language.
Hierarchy of UML 2.0 diagrams, shown as a class diagram In UML 2.0 there are 13 types of diagrams. To understand them, it is sometimes helpful to categorize them hierarchically, as shown in the figure to the right. Structure diagrams emphasize the elements that must exist in the modeled system:
- Class diagram
- Component diagram
- Object diagram
- Composite structure diagram
- Deployment diagram
- Package diagram
Behavior diagrams emphasize what should happen in the modeled system:
- Activities diagram
- Use case diagram
- State diagram
Interaction Diagrams, a subtype of behavior diagrams, which emphasizes the flow of control and data between the elements of the modeled system:
- Diagram of sequence
- Communication diagram
- Timing diagram (UML 2.0)
Free software for modeling in UML
0 Compatible (external link) StarUML Modeling tool for Windows developed in Delphi. Fairly stable and usable (external link)
Open Source software for UML modeling
Omondo plugin for Eclipse. UML modeling tool for Java TCM tool to create various types of diagrams including UML JUDE Community UML modeling tool (Official Site)
In addition to having become a de facto standard, UML is an industry standard promoted by the OMG group at the same level as the CORBA standard for distributed object exchange. For the UML revision, two “currents” were formed that promoted the appearance of the new version from different points of view. Finally, the more industrial vision prevailed over the academic one. Version 2.0 has recently been published in which many new features and changes appear that, fundamentally, focus on solving practical shortcomings. In addition, this version receives several improvements that come from the SDL language.
Criticisms of UML
Despite its status as a widely recognized and used standard, the UML has always been widely criticized for its lack of precise semantics, which has resulted in the interpretation of a UML model not being objective. Another problem with UML is that it does not lend itself easily to distributed system design. In such systems, factors such as transmission, serialization, persistence, etc., become important. The UML has no way to describe such factors. It is not possible, for example, to use the UML to indicate that an object is persistent or remote, or that it exists on a server that runs continuously and that it is shared between several execution instances of the analyzed system. However, the UML does accept the creation of our own components for this type of modeling. Integrated Development Environment CASE Tool Object Modeling Technique Object-oriented programming XMI, an XML-based standard format for exchanging UML models. OCL, Specification language for the different models in UML. Webml, Methodology for the design of Web Information Systems.