Last Updated: January 2, 2007.
The Unified Modeling Language (UML) was developed by Grady Booch, Jim Rumbaugh and Ivar Jacobson (the Three Amigos) as a way to define large complicated systems. This small page summarizes and over-simplifies some of their important work. Although titled 'UML' some of the Rational Unified Process (RUP) has somehow crept in.
- UML has a Four+1 view of a system:
- Use Case View (the '+1' part).
This spans all the other views and is central to UML and the Rational Unified Process. It presents a user centric view of the system without regard to implementations. The Use Case view should focus our attention all through the software development process on what we are really trying to accomplish. The main elements of this View are
- Actors - outside entities that interact with the system. These can be people or other systems. Represented by a stick figure.
- Use Cases. Represented by an oval.
- Use Case Diagrams. Contain actors with relationships.
- Interaction (Sequence, Collaboration) Diagrams
- Packages
- Logical View
This view shows both the static and dynamic views of the system. The logical view concentrates on getting the best logical grouping of functionality into objects. The main objects of this View are
- Classes
- Stereotypes
- Packages
- Class Diagrams
- Relationships
- Collaborations
- Interactions
- Implementation View
This view concentrates on taking the Logical view and dividing the logical entities into actual software components.
- Components
- Component Diagrams
- Hierarchy of Classes and Packages
- Process View
This view is concerned with how all the independent flows of execution play together.
- Processes
- Interconnections between processes and threads
- Deployment View
This view details how the software is deployed into that somewhat important layer we call 'hardware'.
- System performance
- Design times for responses
- Quality of Service (QoS)
- Maintenance frequency and effects on uptime
- Computing nodes within the system
- Use Case View (the '+1' part).
- UML has eight and a half types of diagrams
- Activity - the actions taken by an operation
- Class diagram - the static relationships, methods, and fields of an object
- Collaboration - the relationship between components
- Sequence - flow of events over time (oddly enough contains the same info as Collaboration)
- Component - the physical components
- Deployment - how to push the software to hardware
- Object - objects and their relationships
- Statechart - operation of system shown through states
- Use Case - the functions of a system from the user's perspective