Lesson 1
Unified Modeling Language
Unified Modeling Language (UML) is a standardized modeling language in the field of software engineering.
The standard is managed by the Object Management Group. UML includes a set of graphic notation techniques to create visual models of software-intensive systems. The whole software development industry has been explosive, partly due to the nature of software itself, a revolution driven by worldwide business growth and competition.
Establishing Standards
For those of us responsible for delivering these revolutionary business solutions, the challenge is daunting.
As part of an industry that is itself so volatile, every week there are new developments that threaten to make our current skills and experience obsolete. The software industry is very young. Unlike similar trades such as mechanical or electrical engineering, software engineering has not yet established itself as a formal discipline. Standards and methods remain illusory.
As a result of this, most study is focused on programming rather than engineering, gravitating toward the tangible and away from the abstract.
A necessary Step
This need for a mature and maturing industry is behind the drive for the UML and other related standards. Our industry needs a framework for measurable and proven engineering techniques. The UML is not a panacea for software industry ills. It is, however, one of the necessary steps in the right direction. This course will help you understand what this step is and how the UML can deliver solutions that will help you succeed.
UML Background and History
The Unified Modeling Language (UML) has been formally under development since 1994 and is a distillation of three major notations and a number of modeling techniques drawn from widely diverse methodologies that have been in practice over the previous two decades. During this time it has had an undeniable impact on the way we view systems development.
Despite early competition from existing modeling notations, UML has become the de facto standard for modeling object-oriented software for nearly 70 percent of IT shops. UML has been adopted by companies throughout the world, and today more than 50 commercial and academic modeling tools support software and business modeling using UML.
UML enables system developers to specify, visualize, and document models in a manner that supports scalability, security, and robust execution. Because UML modeling raises the level of abstraction throughout the analysis and design process, it is easier to identify patterns of behavior and thus define opportunities for refactoring and reuse. Consequently, UML modeling facilitates the creation of modular designs resulting in components and component libraries that expedite development and help insure consistency across systems and implementations.
Unlike previous methodologies, you do not have to change the way you work just to suit the demands of a vendor or methodologist. UML uses extension mechanisms to customize UML models to a particular application type or technology. While the extension mechanisms are a bit limited today, they do provide substantial support for tailoring UML to the needs of a specific project.
UML profiles collect predefined sets of extension mechanisms for a specific environment.
For example, in the UML specification itself you will find profiles for J2EE, COM, .NET, and CCM development.
Each profile provides customized modeling elements that map to the common elements and features in each of these architectures. This approach enables the modeler to focus time and energy on the project content instead of the unique modeling features of the implementation domain.
UML Origins
The Unified Modeling Language or UML, is a method used to specify all aspects of a software system. UML prescribes syntax for describing the structures of classes, components, programs, and software systems. UML also describes the interactions between these items. While the Unified Process relies heavily on UML, UML was developed separately from it.
UML was designed to be used with any iterative software development process.
The object-oriented movement began with the introduction of Smalltalk in the early 1980s. By the late 1980s, work had begun on developing methods and notations to describe object-oriented software systems. By the early 1990s, a wide variety of object- oriented development methods existed, each with its own notation and modeling language. While working at Rational Software Corp., developers Booch, Jacobson and Rumbaugh created UML in an attempt to unify the notations each had created earlier.
In November 1997, the Object Management Group (OMG) adopted UML as a standard.
UML Notation
UML is a notation that resulted from the unification of OMT (Object Modeling Technique [Rumbaugh 1991]), Booch [Booch, 1994], and OOSE (Object-Oriented Software Engineering [Jacobson 1992]). UML has also been influenced by other object-oriented notations, such as those introduced by Mellor and Shlaer [Mellor Shlaer, 1998], Coad and Yourdon [Coad 1995], Wirfs-Brock [Wirfs-Brock 1990], and Martin and Odell [Martin Odell, 1992].
UML Module Objectives
After completing this module, you will be able to:
- Explain why the UML was created
- Define what is and is not included in the UML specification
- Describe how the UML is being refined and extended
- Define the four views into the software development process: the use case view, the logical view, the component view, and the deployment view
In the next lesson, the history behind the UML specification will be discussed.
UML Design Foundations