The document discusses various diagram types used in the Unified Modeling Language (UML) for modeling software systems. It describes class diagrams, which show classes, relationships between classes, and class properties and methods. It also summarizes sequence diagrams, use case diagrams, state machine diagrams, activity diagrams, component diagrams, and deployment diagrams. The diagrams are used at different stages of software development for visualization, specification, construction, and documentation.
2. Modeling and documenting may often seem tedious
and boring but they are essential for helping to
reduce complexity and thus building better
software systems!
3. The Unified Modeling Language (UML) is a standard language for
Specifying Visualizing Constructing Documenting
Business Modeling Communications
5. Standard Diagrams in UML
• Structural Diagrams
Class Diagram
Object Diagram
Component Diagram
Deployment Diagram
• Behavioral Diagrams
Use Case Diagram
Sequence Diagram
Collaboration Diagram
Statechart Diagram
Activity Diagram
6.
7. • Class diagrams identify the class structure of a
system, including the properties and methods of
each class. Also depicted are the various
relationships that can exist between classes, such as
an inheritance relationship.
• Class
• Association
• Composition
• Dependency
• Aggregation
• Generalization
8. Class
• A Class is depicted using a rectangle divided into three sections. The top
section is the name of the Class. The middle section defines the properties
of the Class. The bottom section lists the methods of the class.
Association
• An Association is a generic relationship between two classes, and is
modeled by a line connecting the two classes. This line can be qualified
with the type of relationship, and can also feature multiplicity rules (e.g.
one-to-one, one-to-many, many-to-many) for the relationship.
Composition
• If a class cannot exist by itself, and instead must be a member of another
class, then that class has a Composition relationship with the containing
class.
Dependency
• When a class uses another class, perhaps as a member variable or a
parameter, and so "depends" on that class, a Dependency relationship is
formed.
9. Aggregation
• Aggregations indicate a whole-part relationship, and are known as "has-a"
relationships. An aggregation has a diamond end pointing to the part
containing the whole.
Generalization
• A Generalization relationship is the equivalent of an inheritance
relationship in object-oriented terms (an "is-a" relationship). A
Generalization relationship is indicated by an arrow with a hollow
arrowhead pointing to the base, or "parent", class.
Example
• Consider the example of a verterinary system. Animals served, such as
dogs and birds, are tracked along with their owners.
10.
11. Example
• Consider the example of a veterinary system. Animals served, such as
dogs and birds, are tracked along with their owners.
12. Class diagrams show the classes of the
system, their interrelationships
(including inheritance, aggregation, and
association), and the operations and
attributes of the classes.
Name
Attributes
Operations
Relations
• Associations
• Aggregation
• Generalization
13. A CRC card is an index card that is use to represent the
responsibilities of classes and the interaction between the
classes.
The cards are created through scenarios, based on the system
requirements, that model the conceptual view of the system.
15. Object diagrams model instances of classes. This type of
diagram is used to describe the system at a particular point in
time.
Object
• Objects are identified by placing the instance name followed by a colon
(:) in front of the class name. Property values are written as "name=value"
pairs. The icon for an object is a rectangle divided into sections.
Association
• Object diagrams can contain associations as well. Often, the constraints,
relationship details, and multiplicity rules found in the Class diagram are
left out to concentrate the diagram on the Objects and their properties.
16. Example
• We'll consider the case of John, a pet lover from Boston, MA and
client of the veterinary hospital. He has two pets, Rover, a dog, and
Tweety, a bird.
17. Use Case diagrams identify the functionality provided by the
system (use cases), the users who interact with the system
(actors), and the association between the users and the
functionality
Use Cases are used in the Analysis phase of software development
to articulate the high-level requirements of the system.
The primary goals of Use Case diagrams include:
Providing a high-level view of what the system does
Identifying the users ("actors") of the system
Determining areas needing human-computer interfaces
18. Actor
• An Actor is a user of the system
Use Case
• A Use Case is functionality provided by the system, typically described as
verb+object (eg. Register Car, Delete User).
Association
• Associations are used to link Actors with Use Cases, and indicate that an
Actor participates in the Use Case in some form.
19. Use Case Diagram: Graphical Notation
• A user placing an order with a sales company might follow these steps.
20. Use Case Diagram: Text Notation
Create Bug Report (Paragraph Version)
• The Tester initiates a new bug report. The Tester indicates
the source of the bug, a description of the problem, and
the person to whom the bug should be assigned. The
System records the bug as an open issue, and notifies the
Assigned Person that a new bug has been submitted.
21. Create Bug Report (Template Version)
• Primary Actor: Tester
• Goal in Context: Tester is testing an application and discovers a new bug.
He/She wants to report it so that it can be addressed.
• Scope: System - the quality assurance system for the XYZ Application
• Level: User
• Stakeholders and Interests:
• Tester: wants to record a new bug
Assignee: wants to be notified of any new bugs
QA Manager: wants all bugs recorded
• Precondition: none
• Trigger: Tester discovers a bug while testing an application
• Main Success Scenario:
• 1. Tester initiates a new bug report.
2. System records bug with date of submission.
3. System notifies assigned user.
• Extensions:1 a. Tester does not know who to assign bug report to: System
assigns bug to QA Manager.
22. Sequence diagrams document the interactions between classes to
achieve a result, such as a use case. These communications between
classes are known as messages.
The Sequence diagram lists objects horizontally, and time vertically,
and models these messages over time.
Object
• Objects are instances of classes, and are arranged horizontally.
Actor
• Actors can also communicate with objects, so they too can be listed as a
column.
Lifeline
• The LifeLine identifies the existence of the object over time.
Activation
• Activations, modeled as rectangular boxes on the lifeline, indicate when
the object is performing an action.
Message
• Messages, modeled as horizontal arrows between Activations, indicate the
communications between objects.
24. A sequence diagram is
An interaction diagram that
details how operations are
carried out.
What messages are sent
and when.
Sequence diagrams are
organized according to
time
Object: Class
Lifeline
Operations
Message
25.
26. Collaboration Diagrams describe interactions among classes and
associations.These interactions are modeled as exchanges of
messages between classes through their associations.
Collaboration diagrams are a type of interaction diagram.
Collaboration diagrams contain the following elements.
• Class roles, which represent roles that objects may play within
the interaction.
• Association roles, which represent roles that links may play
within the interaction.
• Message flows, which represent messages sent between objects
via links. Links transport or implement the delivery of the
message.
27.
28. State chart (or state) diagrams describe the states and
responses of a class. Statechart diagrams describe the
behavior of a class in response to external stimuli.
These diagrams contain the following elements:
• States, which represent the situations during the life of
an object in which it satisfies some condition, performs
some activity, or waits for some occurrence.
• Transitions, which represent relationships between
the different states of an object.
29.
30. A State Machine diagram
shows the possible states of
the object and the transitions
that cause a change in state.
?
What is different
between activities and
Statemachine diagram
31. Activity diagrams describe the activities of a class.These
diagrams are similar to statechart diagrams and use similar
conventions, but activity diagrams describe the behavior of a
class in response to internal processing rather than external
events as in statechart diagram.
• Swimlanes, which represent responsibilities of one or more
objects for actions within an overall activity; that is, they divide the
activity states into groups and assign these groups to objects that
must perform the activities.
• Action States, which represent atomic, or noninterruptible,
actions of entities or steps in the execution of an algorithm.
• Action flows, which represent relationships between the different
action states of an entity.
• Object flows, which represent the utilization of objects by action
states and the influence of action states on objects.
34. Component diagrams describe the organization of and
dependencies among software implementation
components.These diagrams contain components,
which represent distributable physical units, including
source code, object code, and executable code.
35.
36. Deployment diagrams describe the configuration of
processing resource elements and the mapping of
software implementation components onto them.These
diagrams contain components and nodes, which
represent processing or computational resources,
including computers, printers, etc.