Terms and Concepts
A system is a collection of subsystems organized to accomplish a purpose and described by a set of models, possibly from different viewpoints. A subsystem is a grouping of elements, some of which constitute a specification of the behavior offered by the other contained elements. A model is a semantically closed abstraction of a system, meaning that it represents a complete and self-consistent simplification of reality, created in order to better understand the system. In the context of architecture, a view is a projection into the organization and structure of a system's model, focused on one aspect of that system. A diagram is the graphical presentation of a set of elements, most often rendered as a connected graph of vertices (things) and arcs (relationships).
Systems, models, and views are discussed in Chapter 32 . |
- Class diagram
- Component diagram
- Composite structure diagram
- Object diagram
- Deployment diagram
- Artifact diagram
Packages are discussed in Chapter 12 . |
Structural Diagrams
The UML's structural diagrams exist to visualize, specify, construct, and document the static aspects of a system. You can think of the static aspects of a system as representing its relatively stable skeleton and scaffolding. Just as the static aspects of a house encompass the existence and placement of such things as walls, doors, windows, pipes, wires, and vents, so too do the static aspects of a software system encompass the existence and placement of such things as classes, interfaces, collaborations, components, and nodes.The UML's structural diagrams are roughly organized around the major groups of things you'll find when modeling a system.
A class diagram shows a set of classes, interfaces, and collaborations and their relationships. Class diagrams are the most common diagram found in modeling object-oriented systems. You use class diagrams to illustrate the static design view of a system. Class diagrams that include active classes are used to address the static process view of a system.
Class diagrams are discussed in Chapter 8 . |
An component diagram shows the internal parts, connectors, and ports that implement a component. When the component is instantiated, copies of its internal parts are also instantiated.
Composite structure diagrams and component diagrams are discussed in Chapter 15 . |
An composite structure diagram shows the internal structure of a class or a collaboration. The difference between components and composite structure is small and this book treats them both as component diagrams.Object Diagram
An object diagram shows a set of objects and their relationships. You use object diagrams to illustrate data structures, the static snapshots of instances of the things found in class diagrams. Object diagrams address the static design view or static process view of a system just as class diagrams do, but from the perspective of real or prototypical cases.
Object diagrams are discussed in Chapter 14 . |
An artifact diagram shows a set of artifacts and their relationships to other artifacts and to the classes that they implement. You use artifact diagrams to show the physical implementation units of the system. (UML considers artifacts to be part of deployment diagrams, but we separate them for convenience of discussion.)
Artifact diagrams are discussed in Chapter 30 . |
A deployment diagram shows a set of nodes and their relationships. You use deployment diagrams to illustrate the static deployment view of an architecture. Deployment diagrams are related to component diagrams in that a node typically encloses one or more components.
Deployment diagrams are discussed in Chapter 31 . |
Behavioral Diagrams
The UML's behavioral diagrams are used to visualize, specify, construct, and document the dynamic aspects of a system. You can think of the dynamic aspects of a system as representing its changing parts. Just as the dynamic aspects of a house encompass airflow and traffic through the rooms of a house, so too do the dynamic aspects of a software system encompass such things as the flow of messages over time and the physical movement of components across a network.The UML's behavioral diagrams are roughly organized around the major ways you can model the dynamics of a system.
A use case diagram shows a set of use cases and actors (a special kind of class) and their relationships. You apply use case diagrams to illustrate the static use case view of a system. Use case diagrams are especially important in organizing and modeling the behaviors of a system.
Use case diagrams are discussed in Chapter 18 . |
A sequence diagram is an interaction diagram that emphasizes the time ordering of messages. A sequence diagram shows a set of roles and the messages sent and received by the instances playing the roles. You use sequence diagrams to illustrate the dynamic view of a system.
Sequence diagrams are discussed in Chapter 19 . |
A communication diagram is an interaction diagram that emphasizes the structural organization of the objects that send and receive messages. A communication diagram shows a set of roles, connectors among those roles, and messages sent and received by the instances playing the roles. You use communication diagrams to illustrate the dynamic view of a system.
Communication diagrams are discussed in Chapter 19 . |
A state diagram shows a state machine, consisting of states, transitions, events, and activities. You use state diagrams to illustrate the dynamic view of a system. They are especially important in modeling the behavior of an interface, class, or collaboration. State diagrams emphasize the event-ordered behavior of an object, which is especially useful in modeling reactive systems.
State diagrams are discussed in Chapter 25 . |
An activity diagram shows the flow from step to step within a computation. An activity shows a set of actions, the sequential or branching flow from action to action, and values that are produced or consumed by actions. You use activity diagrams to illustrate the dynamic view of a system. Activity diagrams are especially important in modeling the function of a system. Activity diagrams emphasize the flow of control within the execution of a behavior.
Activity diagrams, a special case of state diagrams, are discussed in Chapter 20 . |