Introduction to UML
UML represents the collaborative effort of three individuals. Grady Booch, James Rumbaugh and Ivar Jacobson in the nineteen eighties and nineties were all developing methodologies for object oriented design. Even though they each or developing their own set of models they also found themselves collaborating with each other. All three were united at Rational Software Corporation now a subsidiary of IBM Corporation. The first release of UML (version 1.0) was adopted by the Object Management Group (OMG), an independent standards body, and released in 1997. OMG version 1.5 is being discussed in this lesson and version 2.0 is currently undergoing comment in preparation for adoption.
There are many web sites with offer free resource and learning materials on UML. A couple of sites I would start with are:
- www.uml.org - Maintained by the Object Management Group (OMG).
- http://www-306.ibm.com/software/rational/ - Maintained by IBM Corporation
It is important to understand that UML represents a methodology that includes diagrams to support the entire development lifecycle. This far exceeds the scope of diagramming we have seen in the lesson so far (i.e. flowcharts). The closest UML diagram to what we know is a flowchart is an activity diagram. However, there are also elements of UML sequence diagrams and statechart diagrams which can be represented within our flowcharts. Since this is not a lesson on object oriented analysis and design, we will not cover all of the diagrams included in UML.
Why Learn UML?
UML is a tool used by systems analysts to develop object oriented programming applications. If it is a tool for systems analysts, why is UML covered in this lesson? As mentioned in a previous paragraph, there are parts of UML which worked very well in helping us create class files and class file logic. We have a restated how important models are in creating a plan for program logic. We will learn the UML diagrams which are most likely to show up in an entry level programming class textbook or as part of the programming specifications for a new or existing program.
UML Goals (from OMG UML 1.5 Specification
The OMG Specification document defines UML and is the primary resource for those working with UML. The specification also identifies the benefits of UML and the design goals.
- Provide users with a ready-to-use, expressive visual modeling language to develop and exchange meaningful models.
- Furnish extensibility and specialization mechanisms to extend the core concepts.
- Support specifications that are independent of particular programming languages and development processes.
- Provide a formal basis for understanding the modeling language.
- Encourage the growth of the object tools market.
- Support higher-level development concepts such as components, collaborations, frameworks and patterns.
- Integrate best practices.
Logic Tip: As of this writing the OMG UML standard is at 1.5 with 2.0 announced. You can find more information on OMG specifications on the OMG web site.