Unified Modeling Language (UML)
Unified Modeling Language (UML) is a standardized modeling language used in software engineering to facilitate the design and development of computer applications. Similar to architectural blueprints, UML provides a common framework for software engineers to document their plans, considering user needs, information flow, and system interactions. Developed in the 1990s by engineers Jim Rumbaugh, Grady Booch, and Ivar Jacobson, UML integrates various modeling methods, allowing it to accommodate diverse project requirements without reliance on proprietary systems.
UML is versatile and can be applied to projects of varying sizes and complexities, enhancing collaboration among diverse teams. Key components of UML include different types of diagrams, such as use case diagrams, sequence diagrams, and state chart diagrams, which help visualize user interactions and information flow. While UML specifications are publicly available, they are tailored for professionals, often requiring specialized training for effective application. Various training resources, including books and courses, are available for those interested in mastering UML. Overall, UML serves as an essential tool in modern software design, promoting clarity and efficiency in the development process.
On this Page
Subject Terms
Unified Modeling Language (UML)
Unified Modeling Language, or UML, is a computer software engineering format that is used to facilitate the development of new computer applications. In much the same way that structural engineers have a standard format for plans to guide contractors and writers have grammar and spelling guidelines that editors and readers can understand, UML gives software engineers a common way to lay out their plans for a new computer program. This plan will take into account the needs of the new system's users, the relationships between the various users and the information the system will contain, the sequence or flow in which this information will be most useful, how many different states or forms this information will be in as it is accessed, how this information will need to be accessed, and what hardware will be needed to make the final system operational.

Background
Three engineers initiated UML in the 1990s. Americans Jim Rumbaugh and Grady Booch and Swedish computer scientist Ivar Jacobson had each developed their own version of a language used by computer engineers. Rumbaugh's language was known as OMT, which focused on object-oriented analysis, while Booch's system focused on object-oriented design. These two forms of designing software were often used together, so the two men decided to create new language that would incorporate both forms. After they had been at work for a short time, Jacobson joined them. Jacobson's own language, OOSE or object-oriented software engineering, was also similar to the languages designed by Rumbaugh and Booch. However, the trio—who came to be known to other software engineers as the Three Amigos—decided to take aspects of each format and create a new, universal model that could be used by all software engineers.
In 1996, Rumbaugh, Booch, and Jacobson led the formation of an international cooperative known as UML Partners to work on this new model. In early 1997, they presented their work to the Object Management Group (OMG). Founded in 1989, OMG is an international consortium that is nonprofit and open to all working on standardization of the technology of the computer programming industry. OMG had issued a request for proposals seeking a universal modeling language, and Rumbaugh, Booch, and Jacobson presented their work as an answer to that request.
The resulting language incorporated aspects of the three men's work as well as some from the work of other software engineers. It became a standard for work in the industry. UML provides several advantages over other similar languages and has become an important part of computer program design in the twenty-first century.
Overview
Unified Modeling Language is used during the design of new computer software. It allows the engineers working on the design to take what is known about the people who will use the program, the information they need, and the way they will use it and design a program that will meet their needs. UML allows the software engineers to lay out a blueprint to be followed by the computer coders who will create the program to fulfill its purpose.
UML is flexible and can be used to design programs of all sizes and functions. It is also particularly useful because it does not use any proprietary coding systems or hardware. OMG is non-profit and open source, so UML language can be used by anyone for any computer software engineering purpose. Because it is not restricted by these requirements, it can be used in a wide variety of ways and for many different companies. This gives it an advantage over design languages that require the use of proprietary software.
Those who work with UML generally require special training to do so. While the specifications for UML are available free of charge on OMG's website, they are written for professional software engineers who have a general understanding of what they are doing and need some guidance for using an aspect of UML, making understanding the instructions difficult for beginners. A number of books are available on the topic of working with UML. Training is also available both online and at many colleges, universities, and trade schools.
UML engineers first choose a methodology, or a way of gathering the information they need about the users and what they need the program to be able to do. UML offers several options to accommodate methodologies that allow engineers to choose the best method for their projects. Some are better for small projects, or for those that require greater security, or for those that will have a large number of engineers working on different aspects of the project, for instance.
The engineers then use the appropriate UML tools to support the methodology that has been chosen. The engineer can choose from a number of different diagram systems that can help the programmers who will complete the project understand what is needed. For instance, a use case diagram helps those working on the project to understand who the people are who will be using the final program and what their relationship is to each other and to the information that the program will process.
For example, in a program that will allow students to learn information and take tests on science, the users will be the students, the teachers who will review and access their progress, and perhaps parents and administrators who can also review progress. The material remains the same, but each group of users will have a different relationship to it, which UML can help the engineers map and diagram. This will help the programmers write code that will allow each group to have seamless access to the correct information.
The engineers also use UML to create sequence diagrams that show how the information will flow from one user to another; for instance, how the information from the student's efforts will be graded and then passed on to the area of the program where it is accessed by the teacher, and how that information is then gathered into useful forms for the administrators and parents. Engineers can also create state chart diagrams, where information that changes as it passes through various users can be tracked; for example, in a company payroll system, if an employee requests time off, the state chart might track that request to the immediate supervisor, who checks staffing levels and approves that aspect, and then passes the request to a manager for final approval.
UML is flexible enough to allow for many different ways to format and track information for multiple users.
Bibliography
"An Introduction to the Unified Modeling Language." North Carolina State University, agile.csc.ncsu.edu/SEMaterials/UMLOverview.pdf. Accessed 7 Nov. 2024.
Bell, Donald. "An Introduction to the Unified Modeling Language." IBM Developer Works, 26 June 2023, www.ibm.com/developerworks/rational/library/769.html. Accessed 7 Nov. 2024.
"Introduction to OMG's Unified Modeling Language (UML®)." OMG's Unified Modeling Language, July 2005, www.omg.org/gettingstarted/what‗is‗uml.htm. Accessed 7 Nov. 2024.
"Unified Modeling Language." Geeks for Geeks, 23 Oct. 2024, www.geeksforgeeks.org/unified-modeling-language-uml-introduction/. Accessed 7 Nov. 2024.
"Unified Modeling Language." University of Alabama at Huntsville, www.cs.uah.edu/~rcoleman/Common/SoftwareEng/UML.html. Accessed 7 Nov. 2024.