Page 291 -
P. 291
258 Part 3 • the analysis Process
shown in the example, all dialog during a CRC session is carried out in the first person, so that
even the textbook speaks: “I know my ISBN.” “I know my author.” These statements can then
be used to describe attributes in UML. These attributes can be called by their variable names,
such as edition and publisher.
Unified Modeling Language (UML) Concepts and
Diagrams
The UML approach is well worth investigating and understanding, due to its wide acceptance
and usage. UML provides a standardized set of tools to document the analysis and design of a
software system. The UML toolset includes diagrams that allow people to visualize the construc-
tion of an object-oriented system, similar to the way a set of blueprints allows people to visualize
the construction of a building. Whether you are working independently or with a large systems
development team, the documentation that you create with UML provides an effective means of
communication between the development team and the business team on a project.
UML consists of things, relationships, and diagrams, as illustrated in Figure 10.4. The first
components, or primary elements, of UML are called things. You may prefer another word,
such as object, but in UML they are called things. Structural things are most common. Structural
things are classes, interfaces, use cases, and many other elements that provide a way to create
models. Structural things allow the user to describe relationships. Behavioral things describe
how things work. Examples of behavioral things are interactions and state machines. Group
things are used to define boundaries. An example of a group thing is a package. Finally, annota-
tional things are used to add notes to diagrams.
Figure 10.4 UML Category UML Elements Specific UML Details
An overall view of UML and its
components: things, relationships, Things Structural Things Classes
and diagrams. Interfaces
Collaborations
Use Cases
Active Classes
Components
Nodes
Behavioral Things Interactions
State Machines
Grouping Things Packages
Annotational Things Notes
Relationships Structural Relationships Dependencies
Aggregations
Associations
Generalizations
Behavioral Relationships Communicates
Includes
Extends
Generalizes
Diagrams Structural Diagrams Class Diagrams
Component Diagrams
Deployment Diagrams
Behavioral Diagrams Use Case Diagrams
Sequence Diagrams
Communication Diagrams
Statechart Diagrams
Activity Diagrams