Unified Modeling Language (UML) is the standard modeling language for software and systems development. It is a programming language. It is not a way of designing a system, but a way to model the system.
Grady Booch and James Rumbaugh developed the Booch Method and the Object Modeling Technique, respectively, while employed by Rational Software in 1994. The following year, Dr. Ivar Jacobson joined the team, offering his method, known as Object-Oriented Software Engineering. Of the three, Rumbaugh's OMT was the most prevalent contributor to what was to become UML.
The three men worked to create a unified modeling language, merging the three individual methods into one set of notation, allowing them to bring standardization to object modeling. The first version was UML 0.8.
Under the leadership of Booch, Rumbaugh, and Jacobson, the UML Partners were formed to complete the specifications for the Unified Modeling Language. The group included representatives from other interested companies, such as Hewlett-Packard, IBM, and Microsoft. The combined effort resulted in the release of UML 1.0. At that point, several other companies became involved in the design of UML notation. Besides Rational Software, HP, IBM, and Microsoft, these included Computer Associates, Concept 5 Technologies, Data Access Corporation, Enea Data, I-Logix, ICON Computing, IntelliCorp, Kabira Technologies, Klasse Objecten, MCI Systemhouse, OAO Technology Solutions, ObjecTime Limited, Oracle Corporation, PLATINUM Technology, SAP, SOFTEAM, Sterling Software, Telelogic, Taskon, and Unisys Corporation.
UML 1.1 was submitted to the Object Management Group in 1995, and was adopted as a standard in 1997.
UML is not a development method by itself, but was designed to be compatible with the leading object-oriented software development methods of its time, such as Rumbaugh's OMT, the Booch Method, Objectory, and RUP.
In order to use UML, a method has to be applied to it. The most common method is the Rational Unified Process (RUP), also known as the Unified Process, which offers ease of development, shorter development cycles, better user documentation, and fewer bugs. Companies that use UML strictly are likely to enforce RUP strictly.
A modeling language can be made up of pseudo-code, actual code, pictures, diagrams, long passages of description, or anything that helps to describe the system. Elements that make up a modeling language are known as its notation, while the description of what a notation means is known as the semantics of the language, and are captured in the language's meta-model. A modeling language can be anything that contains a notation and a description of what the notation means.
A diagram is a partial graphic representation of a system's model. It is not necessary for the set of diagrams to completely cover the model, and the deletion of a diagram does not change the model. The model may also contain documentation that drives the model's elements and diagrams. UML can be broken into two main pieces: structural diagrams and behavioral diagrams. Structure diagrams are static, emphasizing the static structure of the system through the use of objects, attributes, operations, and relationships, and includes class diagrams and composite structure diagrams. Behavioral diagrams are dynamic, emphasizing the dynamic behavior of the system through collaborations among objects and changes to the internal states of objects, including sequence diagrams, activity diagrams, and state machine diagrams.UML can be broken into two main pieces: structural diagrams and behavioral diagrams.
UML models can be exchanged among UML tool by using the XML Metadata Interchange (XMI) format.
The advantages of UML are that it is a formal language with a strongly defined meaning. It is concise, in that the entire language is made up of straightforward notation. It is comprehensive, describing all of the important aspects of a system, and it is also scalable, being formal enough to handle massive system modeling projects but can be scaled down for small projects. UML is built on the culmination of best practices in the object-oriented community over a period of years, and enjoys the stability of being a standard, controlled by the Object Management Group, an open standards group of vendors and academics.
UML is considered a large language, and not among the easiest to learn. Some professionals, including Jacobson, worry that its size hinders learning and, therefore, the use of the language.
Topics related to the Unified Modeling Language (UML) are the focus of resources listed in this category, which may also include any editors or tools designed for programming in UML, as well as UML user groups, forums, tutorials, or guides.
 
 
Recommended Resources
XUML is a software development method and a highly abstract software language that was first described in 2002, combining a subset of the Unified Modeling Language (UML) graphical notation with executable semantics and timing rules, which may be run, tested, debugged, and measured for performance. The language is highlighted here, along with its advantages, technology, and development process. Also featured are an Executable UML tutorial and a user support forum.
https://executableuml.org/
Georgia Institute of Technology: SysML
The Product & Systems Lifecycle Management Center of the Georgia Institute of Technology offers training in SysML, or the Systems Modeling Language, an open-source extension of a subset of the Unified Modeling Language (UML) using UML’s profile mechanism. Its courses, which include short courses delivered on-campus in Atlanta or other open enrollment locations, and through short courses delivered on-site at the organization level, as well as degree programs.
http://www.pslm.gatech.edu/courses/
Developed by No Magic, MagicDraw is a visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Offered for purchase or a trial download, the tool is described here, including its key benefits, screenshots, editions, requirements, and demos. Other resources include Executive and Technical Overview brochures, a user manual, and feature list, all in PDF format, as well as a downloadable quick reference guide, and a list of available editions.
https://www.nomagic.com/products/magicdraw
The OMG Systems Modeling Language (OMG SysML) is a general-purpose modeling language for specifying, analyzing, designing, and verifying complex systems that may include hardware, software, information, personnel, procedures, and facilities. SysML is an open-source extension of a subset of the Unified Modeling Language (UML) which has been adopted by the Object Management Group (OMG). A summary of the language’s specifications is set forth, along with vendors and publications.
http://www.omgsysml.org/
Created and offered by the Object Management Group (OMG), the OCUP 2 program tests a person’s knowledge and skill in the construction and interpretation of model diagrams using OMG’s Unified Modeling Language (UML). Exam information is put forth, including foundation, intermediate, and advanced coverage and references, study material, policies, and registration instructions. Information on the uses of the language, as well as the steps to certification, are featured.
https://www.omg.org/ocup-2/index.htm
Sparx Systems: Enterprise Architect
Enterprise Architect is an integrated modeling platform that extends the Unified Modeling Language, upon which it is built, allowing users to build highly detailed UML 2 models, manage project complexity, reverse-engineer legacy code and database schema, product good reports, track changes, and involve the entire team. Its use of UML is described, and the UML Modeling Tool is highlighted, including screenshots, a downloadable trial version or online purchase.
https://sparxsystems.com/products/ea/
StarUML is an open-source software modeling tool. Compatible with UML versions, it provides eleven types of diagram, and allows users to create Obje3ct, Use case, Deployment, Seque3nce, Communication, Activity, and Profile Diagram, supports third-party extensions, and will work with the same UX on multiple operating system platforms. It may be downloaded from the site for the macOS, various license types are available for purchase. An extensions registry is available.
http://staruml.io/
Created by the SysML Partners and the SysML Open-Source Specification Project, SysML is a dialect of the Unified Modeling Language (UML) for systems engineering in 2003, and a version of SysML has been adopted by the Object Management Group (OMG) as OMG SysML in 2006. The language and its purposes are defined, including specifications, a list of partners, and instructions for SysML training and certification for Model-Based Systems Engineering are featured.
https://sysml.org/
The UML is a standard visual modeling language intended to be used for modeling business and similar processes, and to analyze, design, and implement software-based systems. A description of the language and its purposes is given, and the various versions of the language are identified, with links to various information sources, including a link to the most recent version. UML diagrams, class diagrams, composite structures, packages, components and other resources are featured.
https://www.uml-diagrams.org/
Developed by KDE, the Umbrello UML Modeller is a free software UML diagram tool available natively for Unix-like operating systems, as well as Microsoft Windows. It is bundled with KDE SC 4 but works well with other desktops and programming environments. An introduction to the Umbrello Project and its product is put forth, including screenshots showing it in action, a handbook, and development notes, announcements, events, and contacts, as well as developer resources.
https://umbrello.kde.org/
Licensed under the Eclipse Public License, UML Designer is an open-source UML tool based on Sirius and Eclipse, providing support for the main UML diagrams and for UML profiles. The tool allows users to reuse provided representations and work in total transparency on both DSL and UML models, to create class diagrams, component diagrams, and composite structure diagrams and will support legacy UML models. A developer guide, tutorials, a user guide, and documentation are available.
http://www.umldesigner.org/
Maintained by the Object Management Group (OMG), a not-for-profit software consortium that sets standards for distributed object computing, the site focuses on the UML language, offering a list of corporations using the Unified Modeling Language, including reports on the manner in which the language is used. Definitions of the language are presented, along with UML specifications, links to member companies that offer training in UML, and links to UML resources.
https://www.uml.org/