4+1 View of UML Diagrams
Considering that the UML diagrams can be used in different stages in the life cycle of a system, let us take a look at the "4+1 view" of UML diagrams. The 4+1 view offers a different perspective to classify and apply UML diagrams. The 4+1 view is essentially how a system can be viewed from a software life cycle perspective. Each of these views represents how a system can be modeled. This will enable us to understand where exactly the UML diagrams fit in and their applicability.
These different views are:- Design View: The design view of a system is the structural view of the system. This gives an idea of what a given system is made up of. Class diagrams and object diagrams form the design view of the system.
- Process View: The dynamic behavior of a system can be seen using the process view. The different diagrams such as the state diagram, activity diagram, sequence diagram, and collaboration diagram are used in this view.
- Component View: Next, you have the component view that shows the grouped modules of a given system modeled using the component diagram.
- Deployment View: The deployment diagram of UML is used to identify the deployment modules for a given system. This is the deployment view of the
- Use case View: Finally, we have the use case view. Use case diagrams of UML are used to view a system from this perspective as a set of discrete activities or transactions.
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.