What Is Unified Modeling Language
What Is Unified Modeling Language
What Is Unified Modeling Language
The Unified Modeling Language (UML) was created to forge a common, semantically and
syntactically rich visual modeling language for the architecture, design, and
implementation of complex software systems both structurally and behaviorally. UML has
applications beyond software development, such as process flow in manufacturing.
It is analogous to the blueprints used in other fields, and consists of different types of
diagrams. In the aggregate, UML diagrams describe the boundary, structure, and the
behavior of the system and the objects within it.
UML is not a programming language but there are tools that can be used to generate code
in various languages using UML diagrams. UML has a direct relation with object-oriented
analysis and design.
There are many problem-solving paradigms or models in Computer Science, which is the
study of algorithms and data. There are four problem-solving model categories:
imperative, functional, declarative and object-oriented languages (OOP). In object-
oriented languages, algorithms are expressed by defining ‘objects’ and having the objects
interact with each other. Those objects are things to be manipulated and they exist in the
real world. They can be buildings, widgets on a desktop, or human beings.
Object-oriented languages dominate the programming world because they model real-
world objects. UML is a combination of several object-oriented notations: Object-Oriented
Design, Object Modeling Technique, and Object-Oriented Software Engineering.
UML uses the strengths of these three approaches to present a more consistent
methodology that's easier to use. UML represents best practices for building and
documenting different aspects of software and business system modeling.
The history and origins of UML
‘The Three Amigos’ of software engineering as they were known, had evolved other
methodologies. They teamed up to provide clarity for programmers by creating new
standards. The collaboration between Grady, Booch, and Rumbaugh made all three
methods stronger and improved the final product.
The efforts of these thinkers resulted in the release of the UML 0.9 and 0.91 documents in
1996. It soon became clear that several organizations, including Microsoft, Oracle, and
IBM saw UML as critical to their own business development. They, along with many other
individuals and companies, established resources that could develop a full-fledged
modeling language. The Three Amigos published The Unified Modeling Language User
Guide in 1999, and an update which includes information about UML 2.0 in the 2005
Second Edition.
OMG oversees the definition and maintenance of UML specifications. This oversight gives
engineers and programmers the ability to use one language for many purposes during all
phases of the software lifecycle for all system sizes.
The UML is popular among programmers, but isn’t generally used by database developers.
One reason is simply that the UML creators did not focus on databases. Despite this, the
UML is effective for high-level conceptual data modeling, and it can be used in different
types of UML diagrams. You can find information about layering of an object-oriented
class model onto a relational database in this article about Database Modeling in UML.
UML is being continually refined. UML 2.0 extends UML specs to cover more aspects of
development, including Agile. The goal was to restructure and refine UML so that
usability, implementation, and adaptation are simplified. Here are some of the updates to
UML diagrams:
UML uses elements and associates them in different ways to form diagrams that
represent static, or structural aspects of a system, and behavioral diagrams, which capture
the dynamic aspects of a system.
• Class Diagram The most commonly used UML diagram, and the principal
foundation of any object-oriented solution. Classes within a system, attributes and
operations and the relationship between each class. Classes are grouped together
to create class diagrams when diagramming large systems.
• Component Diagram Displays the structural relationship of software system
elements, most often employed when working with complex systems with multiple
components. Components communicate using interfaces.
• Composite Structure Diagram Composite structure diagrams are used to show the
internal structure of a class.
• Deployment Diagram Illustrates system hardware and its software. Useful when a
software solution is deployed across multiple machines with unique
configurations.
• Object Diagram Shows the relationship between objects using real world examples
and illustrates how a system will look at any given time. Because data is available
within objects, they can be used to clarify relationships between objects.
• Package Diagram There are two special types of dependencies defined between
packages: package import and package merge. Packages can represent the
different levels of a system to reveal the architecture. Package dependencies can
be marked to show the communication mechanism between levels.
Taken from: https://www.lucidchart.com/pages/what-is-UML-unified-modeling-language