The Unified Modeling Language (UML)
is a standard language for specifying, visualizing, constructing,
and documenting the artifacts of software systems, as well as for
business modeling and other non-software systems. The UML represents
a collection of best engineering practices that have proven successful
in the modeling of large and complex systems.1 The UML is a very
important part of developing object oriented software and the software
development process. The UML uses mostly graphical notations to
express the design of software projects. Using the UML helps project
teams communicate, explore potential designs, and validate the architectural
design of the software.
Goals of UML
The primary goals in the design of the UML were:
- Provide users with a ready-to-use, expressive visual modeling
language so they can develop and exchange meaningful models.
- Provide extensibility and specialization mechanisms to extend
the core concepts.
- Be independent of particular programming languages and development
processes.
- Provide a formal basis for understanding the modeling language.
- Encourage the growth of the OO tools market.
- Support higher-level development concepts such as collaborations,
frameworks, patterns and components.
- Integrate best practices.
Why Use UML?
As the strategic value of software increases for many companies,
the industry looks for techniques to automate the production of
software and to improve quality and reduce cost and time-to-market.
These techniques include component technology, visual programming,
patterns and frameworks. Businesses also seek techniques to manage
the complexity of systems as they increase in scope and scale. In
particular, they recognize the need to solve recurring architectural
problems, such as physical distribution, concurrency, replication,
security, load balancing and fault tolerance. Additionally, the
development for the World Wide Web, while making some things simpler,
has exacerbated these architectural problems. The Unified Modeling
Language (UML) was designed to respond to these needs. |