V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product...
-
Upload
hilary-logan -
Category
Documents
-
view
215 -
download
1
Transcript of V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product...
![Page 1: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/1.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
1
Product Definition with theUnified Modeling Language
Jean-Paul RigaultProfessor at ESSI (École supérieure en sciences
informatiques)University of Nice Sophia Antipolis, FranceEmail: [email protected]
![Page 2: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/2.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
2
Objectives
Overview of the Unified Modeling Language
Specific emphasis on the first phases of the development cycle
Requirements capture: Use Case Modeling Analysis: Class and Object Modeling
![Page 3: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/3.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
3
Contents
The Object-Oriented Paradigm A world of objects The importance of modeling
Overview of the UML History and objectives Basic concepts and building blocks
Requirement Capture Functional requirements: Use Cases, Scenarios Formalizing Scenarios: Activity, Sequence, Collaboration
Diagrams Analysis: from Use Cases to Objects
Objects and Classes: Class Diagrams Refining scenarios
References
![Page 4: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/4.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
4
The Object-Oriented Paradigm
![Page 5: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/5.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
5
A World of Objects
The (application) world is composed of objects
These objects are linked together Static relationships
These objects react to stimuli (messages) Either internal or external Originating from other objects or from outside the
system These objects have an internal state
Internal data (attributes) and status of the links with other objects
The state may change when the objects are stimulated
![Page 6: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/6.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
6
The Essence of the Object-Oriented Approach
Identify objects Reduce the gap between the application
world and its computer representation Identify attributes and operations (messages)
Identify static relationships (links) between objects
Architectural decomposition Peer to peer relationships (usually semantic) Hierarchical relationships (usually structural)
Links are the media for messages
![Page 7: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/7.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
7
The Essence of the OO ApproachCommunication by Messages
Usually asymmetric The emitter knows (designates) the receiver The receiver does not know the emitter
Message may carry values (parameters) Messages are usually (but not only)
implemented by operation call Function call with specific syntax to designate the
receiver
y = an_object.f(x1, x2, …);
![Page 8: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/8.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
8
The Essence of the OO ApproachTypes of Messages
Synchronous Function/procedure call, wait for return
Asynchronous Send an event, no return expected
Balking Do not delivered if the receiver is not waiting
for it and notify sender Timed Out Periodic Etc.
![Page 9: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/9.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
9
What's in an Object?
Object = Identity + State + Behavior
Objects should be distinguishableThe identity is independent from the state
Operations, events, messages…Public interface
Internal dataRelationships with other objectsUsually encapsulated
![Page 10: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/10.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
10
What's in a Class
Class = group of objects with Identical structure: same attributes and links Identical behavior: same operations
Instance = a particular object belonging to a class
Although similar in structure and behavior, instances are distinguishable one from the other
A class defines a type Set of values (all instances of the class) Legal operations
![Page 11: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/11.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
11
The Object-Oriented Approach
anOtherObjectInternal
data(attributes)
anObject
Internaldata
(attributes)
message(parameters)
(static) link op1
op2
![Page 12: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/12.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
12
The Object-Oriented Approach
Vehicle
CarVan
AircraftBoat
Basic Concepts
Abstraction
TestVerifValid
Exec Simulation
Real World
Vehicle
Plane Boat Car
Abstraction
Model
RealizationCode
![Page 13: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/13.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
13
Object-Oriented Modeling
Modeling is customary in all engineering disciplines
A model is a simplification of reality The four aims of modeling
Visualize the system Specify the structure and behavior of the
system Provide a template to help us in building the
system Document the decisions we have made
![Page 14: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/14.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
14
Object-Oriented Modeling (cont.)
Principles of modeling The choice of a way of modeling influences how
a problem is attacked, and how a solution is elaborated
Every model may be expressed at different levels of precision or abstraction
The best models are connected to reality No single model is sufficient;
we usually need several nearly independent models
![Page 15: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/15.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
15
Object-Oriented Glossary
Abstraction Separate usage information
from implementation details Modularity
Group semantically related things together
Encapsulation Hiding unnecessary
information Message
Dynamic flow of information between objects
They need links to travel
Link Static relationship between
objects They provides the
infrastructure for exchanging messages
Object An abstraction of a "thing"
in the application world It has crisp boundaries It owns a state, a behavior,
and an identity It has links with other
objects It exchanges messages
with them
![Page 16: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/16.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
16
Object-Oriented Glossary (cont. 1)
Class A group of objects with
identical structure and behavior
A model for a group of objects
It defines a type Type
A set of values together with the legal operations on these values
Instance of an X An object following the
model given by X
Instance of a class An object following the
model given by the class Association
A relationship between to classes, modeling the links that the instances of the two classes may have together
A model of the links between the instances of the classes
Links are instances of associations
![Page 17: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/17.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
17
Overview of the UML
![Page 18: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/18.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
18
ContentsOverview of the UML
Brief history Purpose of the UML A conceptual view of the UML
![Page 19: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/19.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
19
Many OOAD methods(> 50)
Coad-Yourdon
Shlaer-Mellor
Fusion
etc.
Brief History of the UML
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
Booch (Rose)Good for design
and construction
Rumbaugh (OMT)Good for analysis and
data-intensive systems
Jacobson (OOSE)Good for the capture
of requirements
UML
0.8UML
0.9
Rational
UML
1.0
UML
1.1
OMG request
UMLconsortium
UML
1.2
UML
1.3
UML
2.0?
OMG
OMG vote
![Page 20: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/20.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
20
What is the UML?
The UML is a language for Visualizing Specifying Constructing Documenting
the artifacts of a software-intensive system
![Page 21: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/21.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
21
Where Can the UML Be Used?
Software intensive systems… Enterprise information systems; Banking and financial
services Telecommunications Transportation; Defense; Aerospace Medical electronics Scientific applications Distributed Web-based services etc.
But also non-software systems Workflow Patient healthcare systems Hardware design…
![Page 22: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/22.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
22
The UML and the Software Development Methodologies
The UML is methodology independent However it is better suited to a
development process that is Use case driven Architecture centric Iterative and incremental
![Page 23: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/23.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
23
The UML and the MethodologiesUse Case Driven
Use cases model the major ways of using the system
Use cases are a systematic and intuitive way for capturing functional requirements
They represent the expected behavior of the system as seen by end users, analysts, and testers
They drive the whole development process
Analysis, design, and tests are all drawn from use case
![Page 24: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/24.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
24
The UML and the MethodologiesUse Case Driven (cont.)
Use CaseModel
AnalysisModel
DesignModel
TestModel
DeploymentModel
ImplementationModel
specified by
realized bydistributed by
implemented by
verified by
![Page 25: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/25.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
25
The UML and the MethodologiesArchitecture Centric
The 4+1 views of architecture modeling
Threads and processesConcurrency andSynchonizationProcess View
Threads and processesConcurrency andSynchonizationProcess View
Implementation ViewComponents and files
ReleasesConfigurationmanagement
Implementation ViewComponents and files
ReleasesConfigurationmanagement
Design ViewVocabulary of the systemand its solutionFunctionalRequirements
Design ViewVocabulary of the systemand its solutionFunctionalRequirements
Support hardwareDistribution, installation
Deployment View
Support hardwareDistribution, installation
Deployment View
Use Case ViewBehavior of the systemServices for end users
Use Case ViewBehavior of the systemServices for end users
![Page 26: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/26.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
26
The UML and the MethodologiesIterative and Incremental
InceptionInception ElaborationElaborationConstructionConstructionTransitionTransition
What?For whom?How much?
Market studyEconomic
opportunity
RequirementanalysisDomain
modeling
Productdevelopment
Handlingchanges
Transfertoward
end users
time
![Page 27: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/27.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
27
The UML and the MethodologiesIterative and Incremental (cont.)
Elaboration Construction TransitionInception
Phases
Requirements Capture
Analysis & Design
ImplementationTest
ManagementEnvironmentDeployment
Process Components
Supporting Components
Iterations
preliminaryiteration(s)
iter.#1
iter.#2
iter.#n
iter.#n+1
iter.#n+2
iter.#m
iter.#m+1
Organizationalong content
Organization along time
![Page 28: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/28.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
28
A Conceptual View of the UML
Building blocks (modeling elements) Rules to assemble the blocks Common mechanisms
![Page 29: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/29.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
29
A Conceptual View of the UMLBuilding Blocks (Modeling Elements)
"Things" Abstractions, first-class citizen in the model
Relationships Tie "things" together
Diagrams Group interesting collections of things and
express (some of) their relationships
![Page 30: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/30.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
30
A Conceptual View of the UMLBuilding Blocks: "Things"
Structural "things" The "nouns" of the model class, interface, collaboration, use case, active
class, component, node Behavioral "things"
The "verbs" of the model interaction, state machine
Organizing (grouping) "things" package
Annotational "things" note
![Page 31: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/31.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
31
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 1)
class interface
Personnameaddressmove()marry()
attributes
operations
name
Persistent
Persistentsave()restore()
Object
bill : Person
![Page 32: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/32.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
32
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 2)
collaboration Defines an interaction A society of roles,
objects, or other elements to provide some cooperative and synergic behavior
Possibly structural as well a behavioral
Used to model Patterns (design or analysis patterns)
MVC pattern
Model
Controler
View
![Page 33: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/33.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
33
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 3)
use case Set of sequences of
actions that a system performs and that yields an observable result
A set of related services provided by the system, together with scenarios of use
Place an order
![Page 34: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/34.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
34
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 4)
active class A class owing its
own thread of control
Its behavior is concurrent with other elements
PerformanceControler
activate()suspend()
![Page 35: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/35.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
35
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 5)
component Physical and replaceable
part of a system Realize a set of interface Source code, library…
node Physical element that
exists at run time representing computational resource
FileServer
person.cpp
![Page 36: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/36.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
36
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 6)
interaction Exchange of
messages between objects
state machine Sequence of states
through which an object or an interaction goes during its lifetime, in response to eventsbill : Customer
: BillingSystem
pay() Wait password
Check password
state
transitionpasswd entered
![Page 37: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/37.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
37
A Conceptual View of the UMLBuilding Blocks: "Things" (cont. 7)
package General-purpose
mechanism for organizing model elements into groups
Purely conceptual (exists only at development time)
note Explanatory parts,
comments May be attached to
any modeling element
ProductDefinition
Model
This is a package
![Page 38: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/38.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
38
A Conceptual View of the UMLBuilding Blocks: Classifiers
Classifier Describe structural and behavioral features Can have instances Can be involved in a generalization relationship
UML classifiers class, interface, datatype, signal component, node use case subsystem (specialized package)
![Page 39: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/39.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
39
A Conceptual View of the UMLBuilding Blocks: Relationships
dependency A semantic relationship between two things When the target changes, the source might have to change
association A structural relationship describing a set of links Some special cases (aggregation, composition)
generalization Objects of the specialized element are substitutable for
objects of the more general element realization
Semantic relationship between classifiers wherein one component specifies a contract that the other guarantees to carry out
![Page 40: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/40.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
40
A Conceptual View of the UMLBuilding Blocks: Relationships (cont. 1)
dependency
Link Instance of association
Graphicinterface
MFC
ProductDefinition
Model
DesignModel
Man Womanwedlock
association
bill : Man
hilary : Woman
![Page 41: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/41.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
41
A Conceptual View of the UMLBuilding Blocks: Relationships (cont. 2)
generalization realization
Vehicle
Plane Boat
Man Woman
Person
Persistent
Person
Persistent
Person
![Page 42: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/42.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
42
Dynamicdiagrams
A Conceptual View of the UMLBuilding Blocks: Diagrams
Class diagram Object diagram Use case diagram Sequence diagram Collaboration
diagram Statechart diagram Activity diagram Component diagram Deployment diagram
Static diagrams
Static (implementation) diagrams
Interaction diagrams
State-transition diagrams
![Page 43: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/43.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
43
A Conceptual View of the UMLModeling Software Architecture
Mapping the UML building blocks on the 4+1 views
Same diagrams as for the Design ViewFocus on active classes
Process View
Same diagrams as for the Design ViewFocus on active classes
Process View
Implementation ViewComponent diagrams
Interaction, statecharts,and activity
diagrams
Implementation ViewComponent diagrams
Interaction, statecharts,and activity
diagrams
Design ViewClass & object diagramsInteraction, statecharts,and activitydiagrams
Design ViewClass & object diagramsInteraction, statecharts,and activitydiagrams
DeploymentDiagrams
Interaction, statecharts,and activity diagrams
Deployment View
DeploymentDiagrams
Interaction, statecharts,and activity diagrams
Deployment View
Use Case ViewUse case diagrams
Interaction, statecharts, and activitydiagrams
Use Case ViewUse case diagrams
Interaction, statecharts, and activitydiagrams
![Page 44: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/44.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
44
A Conceptual View of the UMLRules
Well-formed model Rules for
Names Scopes Visibility Integrity Execution
Badly-formed models
Elided Incomplete Inconsistent
Badly-formed models cannot be avoided during the project life-cycle
![Page 45: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/45.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
45
A Conceptual View of the UMLCommon mechanisms
Specifications (usually textual-like) Representations stating
the exact details of a model element (its properties)
Adornments Graphical or textual adornments supplying
extra semantics Common divisions Extensibility mechanisms
![Page 46: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/46.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
46
A Conceptual View of the UMLCommon mechanisms: Divisions
Separation principles Separation Class/Instance
Class and objects Association and links Use cases and scenarios…
Separation Interface/Implementation Interface: declaration of a contract Implementation: one concrete realization of that
contract Interface and concrete classes Use case and collaboration Operation and method
![Page 47: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/47.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
47
A Conceptual View of the UMLCommon mechanisms: Extensibility
stereotypes Extend the UML vocabulary New kinds of building blocks derived from
existing ones tagged values
Extend the properties of an UML building block New information in the element's specification
constraints Extend the semantics of a building block New rules or modification of existing ones Specialized language: Object-Constraint
Language (OCL)
![Page 48: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/48.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
48
A Conceptual View of the UMLCommon mechanisms: Extensibility (cont. 1)
stereotypes
bill
Person
« instanceOf »
Graphicinterface
MFC
« access »
« abstract »Person
Person
« interface »Persistentsave()restore()
Persistentsave()restore()
![Page 49: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/49.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
49
A Conceptual View of the UMLCommon mechanisms: Extensibility (cont. 2)
Iconified stereotypes
« actor »Customer
Customer
« realize »
« subsystem »Billing Billing
« model »Design View Design View
![Page 50: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/50.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
50
A Conceptual View of the UMLCommon mechanisms: Extensibility (cont. 3)
tagged values and properties
Person{version = 1.0 author = jpr}
name {frozen}addressage
move() marry() single()
{pre: age > 18 and single()}
constraints
![Page 51: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/51.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
51
Requirement Capture
![Page 52: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/52.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
52
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 53: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/53.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
53
A Simplified Automatic Teller Machine
The ATM is associated with only one bank
It gives access to all the accounts the customer owns in the bank
Several types of transactions can be chained in a single session
Withdrawal, deposit, transfer between the customer’s own accounts, consulting an account
The customer may obtain a printed receipt for each transaction
![Page 54: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/54.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
54
A Simplified Automatic Teller Machine (cont. 1)
The card contains an ID number an expiration date a secret code
The card must be verified by the ATM
The customer cannot make more than 3 attempts to enter the correct code, otherwise the card is swallowed
Interface Keyboard and screen, with menus The customer may cancel the
current transaction at meaningful points
![Page 55: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/55.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
55
A Simplified Automatic Teller Machine (cont. 2)
The connections with the bank are kept to a minimum
When a session is opened, a connection makes it possible to known all the accounts the customer owns
Every night, the information about the current day transactions are transferred to the bank
From time to time an employee manually
empties the machine and/or fills it with bank notes
supplies consumables and does any maintenance that may be needed
![Page 56: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/56.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
56
Which requirements are to be captured?
Functional requirements Modeled as Use Cases
Non functional requirements Some are specific to one use case Some relate to technical issues addressed by
implementation diagrams and models Other in some supplementary documents, out
of the UML scope…
![Page 57: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/57.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
57
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 58: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/58.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
58
Identifying System BoundariesIdentifying Actors
Actors are anything which interface with the system
People, other systems, hardware, software, networks… They are roles, not necessarily full-fledged objects
Some questions to help identify actors: Who uses, installs, starts up, shuts down, maintains the
system? Who provides (gets) information to (from) the system? What other systems use the system?
Actors are not part of the system They are just at the boundary They won’t produce code!
![Page 59: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/59.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
59
Identifying System BoundariesIdentifying Actors (cont.)
ATM example Customer using the
teller machine Bank Maintenance
technician
What about the card itself?
Customer
Bank
Technician
![Page 60: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/60.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
60
Identifying System BoundariesIdentifying Use Cases
Use cases describe the services the actors want the system to do for them
Questions to ask: What do the actors expect from the system? Does the system store information? Which actors
create, consult, update or delete this information? Does an actor need to notify the system about a
change in its internal state? Are there external events the system must know
about? Which actor informs the system about these events?
![Page 61: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/61.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
61
Identifying System BoundariesIdentifying Use Cases (cont. 2)
Customer expects the following
Processing various sorts of transactions
Get a receipt Verification of the card Authentification Chaining transactions
together
Bank expects the following
Be requested the list of accounts corresponding to a given card
Get the information about the daily transactions
Technician expects the following
Authentification Access to special reset
and maintenance functions
![Page 62: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/62.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
62
Identifying System BoundariesIdentifying Use Cases (cont. 2)
Do not model at too low level! Bad Customer use cases
insert the card enter secret code, get ticket select transaction type, select accounts, select
amount… Even worse
push the Enter button on the keyboard… Do not model outside the system!
Bad Customer use cases chosing a particular ATM machine deciding how much money to withdraw
![Page 63: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/63.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
63
Identifying System BoundariesIdentifying Use Cases (cont. 3)
Organize use cases Give a meaningful name to each use case
usually an active verbal form Organize use cases hierarchically
ATM example: Customer use cases revisited
Handle Session, which includes Verify Card Authentify Customer Get Customer Information Handle Transaction with optional Deliver Receipt
Handle Deposit, Handle Withdrawal…-
![Page 64: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/64.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
64
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 65: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/65.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
65
Diagramming Use CasesTop Level Use Case Diagram
Handle Session
Transfer Daily
Maintain
Bank
Technician
Customer
associationsystem boundary
![Page 66: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/66.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
66
Diagramming Use CasesStereotyped Dependencies
HandleSession
« include »
VerifyCard
« include »
AuthentifyCustomer
« include »
Get CustomerInformation
HandleTransaction
« include »
DeliverReceipt
« extend »
![Page 67: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/67.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
67
Diagramming Use CasesStereotyped Dependencies (cont.)
« include » The included use case is a mandatory part of
the including one
« extend » The extending use case is an optional part of
the extended one
Including« include »Included
Extended« extend »Extending
![Page 68: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/68.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
68
Diagramming Use CasesGeneralization (cont.)
Handle
Transaction
Handle
Deposit
Handle
Withdrawal
Handle
Consult
Handle
Transfer
![Page 69: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/69.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
69
Diagramming Use CasesGeneralization (cont.)
The specialized and generalized use cases are in a “sort of” relationship
Generalized
Specialized
![Page 70: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/70.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
70
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 71: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/71.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
71
Elaborating scenariosUse Case and Scenarios
Use cases classify the ways of using the system
To each use case correspond many possible usage scenarios
Thus scenarios are instances of use cases specify use cases
Each use case has generally a primary scenario several secondary (more exceptional) scenarios
![Page 72: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/72.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
72
Elaborating scenariosPrimary Scenario
Use Case: Handle SessionScenario: Primary (typical)Precondition: the ATM is
free1. The scenario starts when
the customer inserts the card
2. The ATM accepts the card3. The customer enters the
secret code correctly4. The ATM gets the
customer information from the bank
5. The customer performs a transaction
6. When the transaction is finished, the customer may ask for another transaction (go to 5) or quit
7. The scenario is finished when the customer decides to quit; the card is ejected
Postcondition: the ATM is free
![Page 73: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/73.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
73
Elaborating scenariosExample of Secondary Scenarios
Use Case: Handle SessionScenario: Secondary
(customer interrupt)Precondition: the ATM is
free1. The scenario starts when
the customer inserts the card
2. The ATM accepts the card3. The customer enters the
secret code correctly4. The customer cancels the
session
5. The ATM ejects the card and the scenario is finished
Postcondition: the ATM is free
![Page 74: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/74.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
74
Elaborating scenariosExample of Secondary Scenarios
Use Case: Handle SessionScenario: Secondary (bad
card)Precondition: the ATM is
free1. The scenario starts when
the customer inserts the card
2. The ATM rejects the card: this ends the scenario
Postcondition: the ATM is free
Use Case: Handle SessionScenario: Secondary (bad
code)Precondition: the ATM is free1. The scenario starts when the
customer inserts the card2. The ATM accepts the card 3. The customer fails to enter a
correct code three times4. The card is swallowed; this
ends the scenarioPostcondition: the ATM is free
![Page 75: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/75.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
75
Elaborating scenariosScenarios and Use Case Inclusion
Use Case: Handle SessionScenario: Primary (typical)Precondition: the ATM is free1. The scenario starts when
the customer inserts the card
2. Include Verify CardThe card is accepted
3. Include Authentify CustomerThe customer enters the secret code correctly
4. The ATM gets the customer information from the bank
5. The customer performs a transaction
6. The customer executes the transactionInclude Handle Transaction
7. When the transaction is finished, the customer may ask for another transaction (go to 5) or quit
8. The scenario is finished when the customer decide to quit; the card is ejected
Postcondition: the ATM is free
![Page 76: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/76.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
76
Elaborating scenariosScenarios and Use Case Extension
Use Case: Handle TransactionScenario: Primary (typical)Precondition: the customer has
decided to perform a transaction (in Handle Session)
1. The scenario starts when the customer decides not to quit the session
2. The customer selects and execute the transaction
3. Extension point: Deliver Receipt4. The scenario is finished; go back
to Handle SessionPostcondition: the transaction is
recorded
DeliverReceipt
« extend »
Handle Transactionextension point:
at the end of transaction: Deliver Receipt
![Page 77: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/77.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
77
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 78: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/78.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
78
Dividing Large SystemsArchitectural Patterns
3-tier architecture pattern
The database plays a crucial role The system use cases are distributed among
the various subsystems It is difficult to change a subsystem
« subsystem »User Interface
« subsystem »Business Rules
« subsystem »Database
![Page 79: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/79.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
79
Dividing Large SystemsArchitectural Patterns (cont. 1)
Pipe and filter architecture pattern
Each subsystem is responsible for some transformation on the data
Subsystems can be substituted easily, since the only dependence is on the data
« subsystem »Take Orders
« subsystem »Ship Orders
« subsystem »Handle
Payments
« subsystem »Data
![Page 80: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/80.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
80
Dividing Large SystemsArchitectural Patterns (cont. 2)
Object-oriented architecture pattern
Subsystems own data and associated functions The dependencies are more flexible Each function exists in only one place
« subsystem »Take Orders
« subsystem »Ship Orders
« subsystem »Handle
Payments
![Page 81: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/81.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
81
Dividing Large SystemsDecomposing the ATM in subsystem
« subsystem »User Interface
« subsystem »Session Control
« subsystem »Transaction
Archive
« subsystem »SessionControl
« subsystem »Bank
Connection
« subsystem »Transaction
Archive
« subsystem »HardwareControl
![Page 82: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/82.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
82
Dividing Large SystemsTesting the architecture
Each subsystem should have A single functionality Strong internal cohesion Loose external coupling Minimal communication with other subsystems A clear and precise interface with other
subsystems that use it
![Page 83: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/83.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
83
Dividing Large SystemsTesting the architecture (cont.)
« subsystem »Session Control
« subsystem »Bank Connectionget_customer_info
« subsystem »Transaction Archiveget_daily_tranactionsarchive_transaction
« subsystem »Hardware Controlcontrol_card_devicecontrol_cash_deviceetc.
![Page 84: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/84.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
84
Dividing Large SystemsAllocating use cases to subsystems
Use case related to session and transactions
in subsystem Session Control except Get Customer Information Bank
Connection Transaction induces a subordinate use case in
Transaction Archive Daily Transfer use case
in subsystem Bank Connection with subordinate use case in Transaction
Archive
![Page 85: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/85.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
85
ContentsRequirement Capture
A simplified Automatic Teller Machine Which requirements are to be
captured? The activities in Requirement capture
Identification of system boundaries: actors and use cases
Diagramming use cases Elaborating scenarios Dividing large systems Diagramming scenarios
![Page 86: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/86.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
86
Diagramming Scenarios
Scenarios are instances of use cases Natural language for expressing
scenarios has a strong power of expression lacks precision makes it difficult to express information like
timing and concurrency Need for formal (UML) expression of
scenarios and use cases
![Page 87: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/87.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
87
Diagramming ScenariosUML ways of expressing scenarios
Activity diagrams Several scenarios (even a full use case) at once Similar to Petri nets, Graphcet, (concurrent) flow
charts… Interaction (sequence and collaboration)
diagrams Only one scenario per diagram Involve/introduce (high level) objects Sequence diagram
Accent on the time flow Collaboration diagram
Accent on the messages between objects
![Page 88: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/88.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
88
Diagramming ScenariosActivity Diagrams
Express a flow of control Composed of Action States connected by
Transitions Transitions may be conditional A Transition is taken if its origin Action State has
completed its action and if its (optional) condition is true
Verify Date [date OK]
Verify Code
condition
transition
action state
![Page 89: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/89.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
89
Diagramming ScenariosActivity Diagrams (cont.)
Verify Card
[card KO]
[card OK]
[code KOand no moreattempts]
Verify Code [code KOand nb attemptsless than 3]
[code OK]
Get CustomerInformation
Eject Card
PerformTransaction
[not Quit]
[Quit]
HandleSessionUse Case
![Page 90: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/90.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
90
Diagramming ScenariosActivity Diagrams: Concurrency
Wait forthirst
Put coffeein filter
Pour waterin coffeemachine
Find cups
Put filterin coffeemachine
Switchmachine
onWait forcoffee
[there is coffee]
[no more coffee]
Get one
[there is beer]
[let’s starve]
Pour coffee
Drink it
![Page 91: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/91.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
91
Diagramming ScenariosSequence Diagrams
Describe one scenario Involve objects and messages Accent is on the time flow of events
![Page 92: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/92.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
92
Diagramming ScenariosSequence Diagrams (cont.)
get_Customer_Information()
select_transaction(sel)
display_menu()
quit
: Customer : Bank
time card_taken
eject_cardcard_returned
insert_card
: ATM
: Session« create »
: Transaction« create »
display_menu()
![Page 93: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/93.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
93
Diagramming ScenariosCollaboration Diagrams
Describe one scenario Involve objects and messages Accent is on messages exchanged
between objects
Sequence and Collaboration diagrams are equivalent
![Page 94: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/94.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
94
Diagramming ScenariosCollaboration Diagrams (cont.)
: Customer
: ATM
: Bank
: Session
: Transaction
1: insert_card
7: card_taken
4: select_transaction
3: get_customer_information
5: « create »
2: « create »
6: eject_card
![Page 95: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/95.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
95
Diagramming ScenariosActivity Diagrams and Objects
Objects do not appear on activity diagrams
However, it is possible to have them appear, in two different manners
Through swim lanes, describing the responsibilities of each object in the overall scenarios
As objects created as a consequence of the execution of some action
![Page 96: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/96.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
96
Diagramming ScenariosActivity Diagrams and Objects (cont.)
Select Withdrawal Setup
WithdrawalAsk Account
Select Account
Ask Amount
Select Amount
DeliverCash
Customer Session WithdrawalArchiveManager
: TransactionRecord
RegisterTransaction
![Page 97: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/97.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
97
Diagramming ScenariosWhich diagram to choose?
Expressing use case and scenarios in the customer’s language (usually natural) remains mandatory
Using formalisms will make descriptions more precise help the analysis work
Do not use too much formalism! For instance, remember that sequence and
collaboration diagrams are equivalent and that is generally useless to use both to describe the same scenario
The same applies to activity diagrams and statecharts
![Page 98: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/98.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
98
Diagramming ScenariosWhich diagram to choose? (cont. 1)
Interaction diagram (sequence and collaboration)
Only one scenario at a time May be very precise and detailed The number of diagrams may become huge Risk of redundancy in the diagrams for
scenarios with only little variations (difficult to maintain)
Some useful features are awkwardly represented (e.g., loops)
![Page 99: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/99.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
99
Diagramming ScenariosWhich diagram to choose? (cont. 2)
Activity diagrams: the most complete Accent is on the flow of control Describe at once a full set of scenarios Describe concurrent operations Created objects and responsibilities of objects may be
represented They may become too complex Risk to forget the objects and to do functional
analysis Activity diagrams with swim lanes and
explicit objects are often a good compromise
![Page 100: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/100.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
100
Analysis: from Use Cases to Objects
![Page 101: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/101.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
101
ContentsAnalysis
Analysis model Class diagrams Collaborations
![Page 102: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/102.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
102
Use Case Model and Analysis Model
Use case model Language of the customer External view of the
system Structured by use cases
Contract between customer and developer
May be redu
ndant or inconsistent Captures the functionality
Defines use cases
Analysis model Language of the developer Internal view of the system Structured by stereotyped
classes and packages Uses primarily by
developers, designers, programmers
Should not be redundant or inconsistent
Outlines a realization of the functionality
Defines use cases realization
![Page 103: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/103.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
103
Analysis Model
Realizing a use case Finding classes collaborating for realizing the use
case Finding their attributes and operations Finding relationships between these classes Refining the use case and scenarios description to
take the new classes into account A group of class collaborating for realizing
a use case is called a Collaboration
collaborationuse case
Class1
Class2
![Page 104: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/104.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
104
Analysis Stereotypical Classes
Entity class Long-lived (persistent) information
Control class Coordination, sequencing,
control…
Boundary class Interaction between the
system and its actors
« entity »
« control »
« boundary »
![Page 105: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/105.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
105
Class DiagramsClass Diagram for the ATM
Cardis inserted into
ATM interface
Session
Transaction
0..1 0..1
*Transaction
Record
0..1 1
CustomerInformation
0..1 1
{ordered}
![Page 106: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/106.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
106
Class DiagramsAssociations: Names and Roles
Companyemploys
Person
Personparent
child
employer employee
role role
![Page 107: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/107.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
107
Class DiagramsAssociations: Cardinality
Companyemploys
Person0..1
0..*
Manwedlock
Woman0..1 0..1
Personparent
child2
*
![Page 108: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/108.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
108
Class DiagramsAssociations: Cardinality (cont.)
from 1 to 4
C2 exactly 2
C1..4
C1..* at least 1
C* 0 or more (0..*)
C2, 4..7, 10..* 2, 4 to 7, 10 or more
![Page 109: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/109.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
109
Class DiagramsAssociations: Association as Class
Exactly one instance of class Job per link
Companyemploys
Person0..1
0..*
Jobsalaryfunctionpromote()
![Page 110: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/110.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
110
Class DiagramsAssociations: Constraints
Companyemploys
Person0..1
*Unemployment
Agency0..1
*{xor}
Companyemploys
Person0..1*
manages{subset}
![Page 111: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/111.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
111
Class DiagramsAssociations: Aggregation
Whole/Parts relationships "is part of", "is composed of" Antisymetric
Two forms Weak aggregation (simply Aggregation) Strong aggregation (Composition)
![Page 112: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/112.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
112
Companyemploys
Person*
0..1
Class DiagramsAssociations: (Weak) Aggregation
Weak coupling Sharing is possible Lifetime of component is not dependent of composite
Family*
*
![Page 113: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/113.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
113
Strong coupling No sharing Life-time of component ends with composite
Class DiagramsAssociations: Composition
Car
Wheel Engine Body4 1 1
Stock
*
0..1 0..1here, cardinalityat most 1
![Page 114: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/114.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
114
Class DiagramsAssociations: Composition (cont.)
Composition association and attributes are equivalent
Car
the_wheels[4]: Wheelthe_engine: Enginethe_Body: Body
![Page 115: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/115.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
115
Class DiagramsClass Diagram for the ATM (once more)
Cardis inserted into
ATM interface
Session
Transaction*
TransactionRecord
0..1 1
CustomerInformation
0..1 0..1
0..1 1
*
![Page 116: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/116.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
116
Class DiagramsClass Diagram for the ATM (cont.)
Transaction
Deposit Transfer
Withdrawal Consult
![Page 117: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/117.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
117
Class DiagramsGeneralization
Relationship Between classes No cardinality Transitive
"Is A", "Is A Sort Of" Substituability principle
Multiple inheritance is supported Multiple classification partially supported Dynamic classification is (less) partially
supported
![Page 118: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/118.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
118
Class DiagramsGeneralization: Substituability Principle
B derives from A: Any instance of B is also an instance of A for
any purpose of an A Any instance of B may be substituted to an
instance of A B may
Add new properties to the ones inherited from A Redefine operations inherited from A
B cannot get rid of properties inherited from A
![Page 119: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/119.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
119
Class DiagramsGeneralization: Polymorphism
Figure
Circle Square
surface()
Ellipse
surface()
Rectangle
surface()
Drawing
surface()*
components
sum = 0for all fig in components sum = sum + fig.surface()
![Page 120: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/120.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
120
Class DiagramsMultiple Inheritance
Triangle
Figure
Ellipse Rectangle
Circle Square Isosceles TrRightAngled Tr
RightAngled Isosceles Tr
{overlapping}
![Page 121: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/121.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
121
Class DiagramsGeneralization and Aggregation
Both relationships are transitive antisymmetric
Generalization is a disjunctive relationship (OR)
Aggregation is a conjunctive relationship (AND)
![Page 122: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/122.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
122
Class DiagramsInheritance and Aggregation (cont.)
Civil EngineeringEquipment Engine
Crane Truck
Truck-Crane
Vehicle Engine
Plane Boat
Seaplane
![Page 123: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/123.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
123
Class DiagramsAbstract Classes and Interfaces
Abstract classes Class with no instances May have attributes
operations (abstract or not)
Interfaces Abstract classes Without attributes With only an abstract
operations (list of services)
Figure « abstract »
« abstract » surface()
Figure
surface()
Drawable « interface »
draw()
Drawable
draw()
![Page 124: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/124.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
124
Class DiagramsMultiple Classification and Interfaces
Roles Views …
Drawable
draw()
Persistent
save()restore()
surface()move()draw()save()restore()
Figure
![Page 125: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/125.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
125
Handle Session
CollaborationsRealization of a Use Case
List all the classes (or roles) or objects that together realize a given use case
Allow traceablity from Use Case Model to Class Model
Session TransactionCustomer
Information
ATM interface
![Page 126: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/126.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
126
References
![Page 127: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/127.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
127
The Object-Oriented ApproachGenerality
Object-Oriented Software EngineeringIvar JacobsonAddison Wesley, 1993
Object Oriented Analysis and DesignGrady BoochSecond Edition, The Benjamin/Cummings Publ. Co., 1994
Object-Oriented Software ConstructionBertrand MeyerPrentice Hall, 1988
![Page 128: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/128.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
128
The Object-Oriented ApproachMethodology
The Unified Software Development Process
Ivar Jacobson, Grady Booch, James RumbaughAddison Wesley, 1999
Object Solutions: Managing the Object-oriented Project
Grady BoochAddison Wesley, 1996
![Page 129: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/129.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
129
The Unified Modeling LanguageOfficial References
OMG Unified Modeling Language Specification
Object Management Group, Inc.Version 1.3, June 1999
URL's: http://www.omg.com http://www.rational.com/uml
![Page 130: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/130.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
130
The Unified Modeling LanguageTutorial Books
The Unified Modeling Language User Guide
Grady Booch, James Rumbaugh, Ivar JacobsonAddison Wesley, 1999
The Unified Modeling Language Reference Guide
Grady Booch, James Rumbaugh, Ivar Jacobson Addison Wesley, 1999
UML in a NutshellSinan Si AlhirO ’Reilly, 1998
![Page 131: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/131.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
131
The Unified Modeling LanguageUsing the UML
UML DistilledMartin Fowler (with Kendall Scott)Addison Wesley, 1997
Visual Modeling with Rational Rose and UML
Terry QuatraniAddison Wesley, 1998
![Page 132: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/132.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
132
The Unified Modeling LanguageUse Cases
Writing Effective Use CasesAlistair CockburnAddison Wesley, 2001
Applying Use Cases: A Practical GuideGeri Schneider, Jason P. Winters Addison Wesley, 1998
![Page 133: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/133.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
133
The Unified Modeling LanguageThe Object Constraint Language (OCL)
The Object Constraint Language: Precise Modeling with UML
Jos Warmer, Anneke Kleppe Addison Wesley, 1999
![Page 134: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/134.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
134
The Unified Modeling LanguageThe UML for French Readers
Modélisation objets avec UMLPierre-Alain Muller, Nathalie Gaertner 2e édition, Eyrolles, 2000
UML en actionPascal Roques, Franck ValléeEyrolles, 2000
De Merise à UMLNasser Kettani, Dominique Mignet, Pascal Paré, Camille Rosenthal-SabrouxEyrolles, 1998
![Page 135: V 1.0 -- 10/23/2015 10:07:20 AM© 2000 Jean-Paul RigaultUML: Product Definition -- 1 Product Definition with the Unified Modeling Language Jean-Paul Rigault.](https://reader038.fdocuments.in/reader038/viewer/2022110101/56649eeb5503460f94bfc753/html5/thumbnails/135.jpg)
V 1.0 -- 04/20/23 02:55 AM © 2000 Jean-Paul RigaultUML: Product Definition --
135
The End…