uml basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/umlbasics.pdf · uml history •...
TRANSCRIPT
![Page 1: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/1.jpg)
UML basics CorsodiLaureaMagistraleinIngegneriaInforma4ca
Lecturer: Valentina Presutti Academic Year: 2009/2010
Courtesy of Paolo Ciancarini
![Page 2: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/2.jpg)
The soul never thinks �without an image
Aristotle, De Anima
![Page 3: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/3.jpg)
Agenda
• Modeling notations • UML 1.* and UML 2.* • Models and Views • Basic diagrams • Structures, behaviors, interactions • Case study
![Page 4: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/4.jpg)
Modeling - a foundation of all engineering disciplines
Modelsimprovecommunica4onandunderstandingabout:
• whythesystemisneeded;• whatitsfunc4onalityshouldbe;• howitshouldbeimplemented
Owner User
Non-functional requirements
Functional requirements
Requirements
hardware
software
Implementation
Functional design
Implementation design
Design
Expresses needs
Fulfils needs
![Page 5: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/5.jpg)
Amodelingengineeringspiral
Domain
System models
Develop Deploy
System Manufacture
Domain models
Model
has needs
quality = satisfaction of needs
![Page 6: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/6.jpg)
• Software models are artifacts like…
Mechanical designs Electrical schemata Blueprints
Visualdocumenta4on
![Page 7: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/7.jpg)
Visual modeling a business process
Business Process
Places Order
Item
Ships the Item
via
Fulfill Order
Customer Sales Representative
![Page 8: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/8.jpg)
UML: a modeling language
• A modeling language allows the specification, the visualization and the documentation of a software development process
• The models are artifacts which clients and developers use to communicate
• The most used modeling languages are standard (eg. UML is a standard by OMG)
• UML 1.* is a modeling language • UML 2.0 is also a programming language
![Page 9: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/9.jpg)
Unified Modeling Language
An industrial standard (OMG) notation to: • Model a business, its roles and processes • Write the requirements of a software system • Describe its software architecture • State the structure and behavior of a software
artifact • Document a software application • Generate automatically an implementation
![Page 10: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/10.jpg)
OMG
• Object Management Group • Consortium of industries and interested
universities • Produces specifications of reference
architectures, eg. CORBA • UML has been adopted by OMG as
standard de facto
![Page 11: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/11.jpg)
Roots of UML
At the beginning of the ’90 there was a convergence:
Booch method OMT Fusion/OOSE
’94 – join Rational Software Corporation
(Grady Booch)
(Jim Rumbaugh)
’95 – joins Rational (Ivar Jacobson)
![Page 12: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/12.jpg)
The “tre amigos”
Booch: analysis by objects Rumbaugh: Object Modeling Technique (OMT) Jacobson: process Objectory In 1994-95 they define for Rational both UML and UP
The three amigos:
Grady Booch, Jim Rumbaugh, Ivar Jacobson
![Page 13: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/13.jpg)
![Page 14: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/14.jpg)
UML evolution
Booch
Unified Method 0.8
UML 1.1
OMT OOSE/Objectory
UML 0.9
OOPSLA ´95
WWW - June ´96
Beta version OOPSLA ´96 OMG, jan ´97
Draft
3 Amigos books: -- User Guide -- Reference Manual -- Process Book
on Web
other methods
public comments
UML 1.5 OMG, 2001; ISO, 2005
IBM buys Rational, 2003
UML 2.0 Approved OMG 2005
Standard ISO/IEC 19501
UML 1.4
![Page 15: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/15.jpg)
UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94, OO methods increased from 10 to 50 • Unification of ideas began in mid 90’s.
• 1994 Rumbaugh joins Booch at Rational – 1995 v0.8 draft Unified Method
• 1995 Jacobson joins Rational (Three Amigos) – 1996 June: UML v0.9 published
– 1997 Jan: UML 1.0 offered to OMG – 1997 Jul: UML 1.1 OMG standard
• Maintenance through OMG RTF – 1998 June: UML 1.2 – 1999 Sept: UML 1.3 – 2001 Sept: UML 1.4
• 2003 Feb: IBM buys Rational – 2003 March: UML 1.5 – 2004: UML 1.4.2 becomes the standard ISO/IEC 19501
– 2005: UML 2.0 – 2007 Nov: UML 2.1.2
pre-UML
UML 1.x
UML 2.0
![Page 16: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/16.jpg)
Main UML specification documents • Superstructure: defines the UML elements
(diagrams, etc) • Infrastructure: defines the UML metamodel • OCL (Object Constraint Language): formal
language for writing constraints and formulas • XMI (XML Metadata Interchange): DTD for UML
models • UML Diagram Interchange: XMI + graphic info
![Page 17: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/17.jpg)
Canonical diagrams (vers 1.5)
• Use case • Class (Object diagrams are class diagrams without classes ) • Behavior
– Statecharts – Activity – Interaction
• Sequence • Collaboration
• Implementation – Components – Deployment
![Page 18: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/18.jpg)
Canonicaldiagrams(Superstructure,vers.2.0)
Version 2.0 includes 13 canonical diagrams • Structure
1. Class 2. Composite structure 3. Component 4. Deployment 5. Object 6. Package
• Behavior 1. Activity 2. Statecharts 3. Usecase
• Interaction 1. Communication 2. Interaction Overview 3. Sequence 4. Timing
![Page 19: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/19.jpg)
Structure and behavior • UML focusses on two aspects of object
oriented design: structure and behavior • It aims at visualizing both
Tour Eiffel (1889) G. Balla: Dinamismo di cane al guinzaglio (1912)
![Page 20: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/20.jpg)
Discuss • Which ways do you know to pictorially
describe “behaviors” - or actions?
![Page 21: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/21.jpg)
Flowchart
![Page 22: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/22.jpg)
![Page 23: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/23.jpg)
Discuss • Are structures and behaviors all we
need for software design?
![Page 24: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/24.jpg)
Example
• The structure of a chess program could be stand-alone, client-server, agent based etc.
• Its behavior should be coherent with the rules of chess
• What is its goal? To play and win a chess game against an opponent
• This is its function
![Page 25: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/25.jpg)
Example
• The very same chess program, with identical structure and behavior, could be used with a different function?
• For instance, could it be used to learn to play chess?
• Or to write a chess book, like a chess game editor?
• Or to play a game of loser’s chess (where the winner if he who is checkmated)?
![Page 26: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/26.jpg)
Function • A software system is designed with
some functional requirements in mind • UML has a specific diagram for this:
Use Cases
Class Diagrams Basic business elements and their relationships.
Structure
Interaction Diagrams Behavior of core business elements in process.
Behavior Function
Process Description Overview of process goals, participants and collaboration.
Use Cases Interactions between a User and the system.
State Diagrams Life cycle of core system elements in process.
Deployment Diagrams Actual structure of the final system
Design time
Run time
![Page 27: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/27.jpg)
Modeling Requirements in UML
• Use case diagram – Describes the main user stakeholders – Describes the externally observable behavior
of system functions, usually to define system requirements
– Describes interactions between the system and external entities, including users and other systems
![Page 28: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/28.jpg)
Use Case: elements
Check Grades
Register actor
system boundary
use case
Validate User
<<include>>
Student
association
![Page 29: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/29.jpg)
Elements of a Use Case Diagram
• Actor: – Represents a role played by external entities
(humans, systems) that interact with the system • Use case:
– Describes what the system does (i.e., functionality) – Scenario: sequence of interactions between the
actors and the system • Relationships:
– Association between actors and use cases – Extension (or generalization) among actors – Dependency among use cases: include and extend
![Page 30: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/30.jpg)
Example
<<include>>
User
Student
Faculty Enter Grades
Validate User
Check Grades
Get Roster
Register
<<include>>
<<extend>>
User
Student Faculty
![Page 31: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/31.jpg)
Use Case Scenarios Use Case: Check Grades Description: View the grades of a specific year and semester Actors: Student Precondition: The student is already registered Main scenario: User System
3. The user enters the year and semester, e.g., Fall 2007.
1. The system carries out “Validate User”, e.g., for user “miner” with password “allAs”. 2. The system prompts for the year and semester.
4. The system displays the grades of the courses taken in the given semester, i.e., Fall 2007.
Alternative: The student enters “All” for the year and semester, and the system displays grades of all courses taken so far. Exceptional: The “Validate User” use case fails; the system repeats the validation use case.
![Page 32: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/32.jpg)
Exercise
• Draw a use case diagram and a related scenario for the following situation:
• A user can borrow a book from a library; a user can give back a book to the library
![Page 33: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/33.jpg)
Structure diagrams
![Page 34: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/34.jpg)
Object-Oriented Modeling • Use object-orientation as a basis of modeling • Models a system as a set of objects that interact with
each others • No semantic gap, seamless development process
Data-oriented
Conceptual/computational world Real world
Abstraction
Interpretation Object-oriented
![Page 35: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/35.jpg)
Key Ideas of OO Modeling • Abstraction
– Mechanisms to hide minor details so to focus on major details
• Encapsulation – Modularity: principle of separation of functional concerns – Information-hiding: principle of separation of design decisions
• Relationships – Association: relationship between objects or classes – Inheritance: relationship between classes, useful to represent
generalizations or specializations of objects
• Object-oriented language model = object (class) + inheritance + message send
![Page 36: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/36.jpg)
The basic building blocks of UML
– Elements: domain modeling concepts – Relationships: connection between model elements
that adds semantic information to a model – Diagrams: collections of entities and relationships
representing some “perspective” on a model
Water
Rivers Oceans
Fish
Penguins Crocodiles
Fresh water
Salt water have have
have live in
have
have
![Page 37: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/37.jpg)
UML 1.x Structural — nouns/static of UML models (irrespective of time)
Behavioral — verbs/dynamic parts of UML models.
Grouping — organizational parts of UML models.
Annotational — explanatory parts of UML models.
Basic building blocks - Things
Main
![Page 38: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/38.jpg)
Nouns in the requirements Conceptual or physical elements
Structural elements - 7 Kinds (Classifiers)
Student std_id grade changeLevel() setGrade() getGrade()
IGrade
Manage Course Registration
Register for Courses
Event Mngr thread time Start suspend() stop()
Course.cpp
Class Interface
Collaboration Use Case
Active Class (processes/threads)
Component Node
WebServer <<interface>> IGrade
setGrade() getGrade()
(collection of externally visible ops)
(chain of responsibility shared by a web of interacting objects, structural and behavioral)
(a system service - sequence of Interactions w. actor)
(replaceable part, realizes interfaces)
(computational resource at run-time, processing power w. memory)
![Page 39: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/39.jpg)
Rela4onships
1. Associations Structural relationship that describes a set of links, a link being a connection between objects. Variants: aggregation and composition
4. Dependency a change to one thing (independent) may affect the semantics of the other thing (dependent) (direction, label are optional)
2. Generalization a specialized element (the child) is more specific than the generalized element
3. Realization one element guarantees to carry out what is expected by the other element. (e.g, interfaces and classes/components; use cases and collaborations)
Student
IGrade
<<instanceOf>>
attends University
Student Person
Student
Jonh:Student Student
![Page 40: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/40.jpg)
Class
• Defines the structure of the states and the behaviors shared by all the instances
• Defines a template for creating instances – Names and types of all fields – Names, signatures, and implementations of all
methods
![Page 41: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/41.jpg)
Class diagram
• Most common diagram in OO modeling • Describes the static structure of a system • Consists of:
– Nodes representing classes – Links representing of relationships among
classes • Inheritance • Association, including aggregation and
composition • Dependency
![Page 42: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/42.jpg)
Notation for classes
• The UML notation for classes is a rectangular box with as many as three compartments
ClassName field1
……
fieldn method1
… methodn
The top compartment show the class name
The middle compartment contains the declarations of the fields, or attributes, of the class
The bottom compartment contains the declarations of the methods of the class
![Page 43: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/43.jpg)
Example
Point - x: int - y: int
+ move(dx: int, dy: int): void
Point
x y
Move
Point
A point defined by classes at three different abstraction levels
![Page 44: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/44.jpg)
Example
Point - Pages: array of Page
- nPages: int + display(k:int, p:Page): void
Document
Pages[] nPages
display
Document
![Page 45: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/45.jpg)
Field and Method Declarations
Visibility Notation public +
protected #
package ~
private -
• Field declarations – birthday: Date – +duration: int = 100 – -students[1..MAX_SIZE]: Student
• Method declarations – +move(dx: int, dy: int): void – +getSize(): int
![Page 46: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/46.jpg)
Visibility
![Page 47: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/47.jpg)
Exercise
Draw a class diagram for the following Java code
class Person { private String name; private Date birthday; public String getName() { // … } public Date getBirthday() { // … } }
![Page 48: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/48.jpg)
Objects vs. Classes Interpretation in the Real World
Representation in the Model
Object An object represents anything in the real world that can be distinctly identified.
An object has an identity, a state, and a behavior.
Class A class represents a set of objects with similar characteristics and behavior. These objects are called instances of the class.
A class defines the structure of states and behaviors that are shared by all of its instances.
![Page 49: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/49.jpg)
Object = Identity + State + Behavior
• Identity – Distinguishes an object from all other objects.
• State – Consists of a set of attributes (or fields), which have
names, types, and values • Behavior
– Defined by the set of operations (or methods) that may operate on the object
– Each method has a name, a type, and a value, where • The type consists of the return type and the list of parameter types of
the method, often called signature. • The value is the implementation of the method often expressed as a
sequence of statements, in languages like Java and C++
![Page 50: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/50.jpg)
Notation for Objects • Object: Rectangular box with one or two compartments • Object name: object name/role name:class name.
objectName: Classname
field1 = value1 ……
fieldn = valuen
The top compartment shows the name of the object and its class.
The bottom compartment contains a list of the fields and their values.
p1:Point
x = 10 y = 20
:Point
x = 30 y = 30
P2/origin:Point
x = 20 y = 30
![Page 51: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/51.jpg)
Association
• General binary relationship between classes or objects
• Represented as a line between boxes
Student Course
:John :SwEng
![Page 52: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/52.jpg)
Association • An association line may have an optional label
consisting of a name and a direction • The direction arrow indicates the direction of
association with respect to the name
Student Course enroll
An arrow may be attached to the end of path to indicate that navigation is supported in that direction
![Page 53: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/53.jpg)
Association • An association line may have an optional role
name and an optional multiplicity specification • The multiplicity specifies an integer interval, e.g.,
– l..u closed (inclusive) range of integers – i singleton range – 0..* entire nonnegative integer, i.e., 0, 1, 2, …
Student Faculty advisee advisor
1 0..*
![Page 54: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/54.jpg)
Association example • A Student can take up to five Courses • Every Student has to be enrolled in at least one course • Up to 300 students can enroll in a course • A class should have at least 10 students
54
Student Course takes 10..300 1..5
![Page 55: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/55.jpg)
Association - Multiplicity • A teacher teaches 1 to 3 courses • Each course is taught by only one teacher • A student can take between 1 to 5 courses • A course can have 10 to 300 students
55
Teacher Course teaches 1..3
Example
1
Students takes
1..5
10..300
![Page 56: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/56.jpg)
Net data structures • How we can represent a net of objects from the same class?
A 0..*
0..*
a1:A
b1:A d1:A f1:A
g1:A e1:A c1:A
• A class with an association to itself with both ends of the association marked with 0..*
![Page 57: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/57.jpg)
Hierarchic data structures • How we can represent a hierarchy of objects from the same class?
• A class with an association to itself with one end of the association marked with 0..* (children) and the other as 0..1 (parent)
A 0..*
0..1
a1:A
b1:A d1:A f1:A
g1:A e1:A c1:A
![Page 58: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/58.jpg)
Exercise
Explain the meaning of this diagram
Student Course enroll
advisee
advisor Teacher
teach
1..*
6..*
0..*
1 1
0..*
![Page 59: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/59.jpg)
Aggregation • An aggregation is a special form of association
representing has-a or part-whole relationship • It distinguishes the whole (aggregate class) from its parts
(component class) • WARNING: an aggregation does not bind the parts’ lifetime
to the whole (they can exist separately)
Whole Part
Course Students
![Page 60: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/60.jpg)
Hierarchic file system
• A directory can contain any number of elements (either a file or a directory)
• Any element is part of exactly one directory
Element
Directory File
1
*
![Page 61: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/61.jpg)
Non-hierarchic file system
• A directory can contain any number of elements (either a file or a directory)
• An element can be part of many directories
Element
Directory File
*
*
![Page 62: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/62.jpg)
Composition • A composition is a stronger form of aggregation • It implies exclusive ownership of the component
class by the aggregate class • The lifetime of the parts is entirely included in the
lifetime of the whole (a part can not exist without its whole)
Whole Part
Apartment Room
![Page 63: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/63.jpg)
Example
Department
member-of
Faculty
College
chair-of
Student
1
1 1
1
1 1
1..*
0..* 1..*
1..*
University
![Page 64: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/64.jpg)
Exercise
Imagine some possible aggregation or composition relationships among the following classes and draw a corresponding class diagram
– Employee – Manager – Office – Department
![Page 65: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/65.jpg)
Dependency • Relationship between the entities such that the
proper operation of one entity depends on the presence of the other entity, and changes in one entity would affect the other entity
• The common form of dependency is the use relation among classes
Class1 Class2 <<use>>
Program Compiler <<use>>
![Page 66: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/66.jpg)
Example
Registrar
+ addCourse(s: CourseSchedule, c: Course): void + removeCourse(s: CourseSchedule, c: Course): void + findCourse(title: String): Course + enroll(c: Course, s: Student): void + drop(c: Course, s: Student): void
CourseSchedule
Course
Student
Dependencies are often omitted from the diagram unless they convey some significant information
![Page 67: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/67.jpg)
Inheritance
• Important relationship in OO modeling • Defines a relationship among classes or
interfaces • Three kinds of inheritance
– extension relation between two classes (subclass and superclass)
– extension relation between two interfaces (subinterface and superinterface)
– implementation relation between a class and an interface
![Page 68: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/68.jpg)
Inheritance in UML
• An extension relation is called specialization and generalization
• An implementation relation is called realization
Superclass
Subclass
Superinterface
Subinterface
Interface
Class
extension of classes
implementation of interfaces
extension of interfaces
![Page 69: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/69.jpg)
Class and superclass
Point
Colored Point
Point
x y
Move
Colored Point
… color
… SetColor
![Page 70: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/70.jpg)
Notation for Interfaces
interface Drawable { void draw(Graphics g); } + draw(g: Graphics): void
<<interface>> Drawable
![Page 71: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/71.jpg)
Interfaces • A class and an interface
differ: a class can have an actual instance of its type (but can also have zero instances), whereas an interface must have at least one class to implement it
• Example: both the Professor and Student classes implement the Person interface
![Page 72: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/72.jpg)
Example
Student {abstract}
Undergraduate Graduate {abstract} No-degree
Master PhD
![Page 73: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/73.jpg)
Exercise
• Draw a class diagram showing possible inheritance relationships among classes Person, Employee, and Manager
• Draw a class diagram showing possible inheritance relationships among classes Person, Student, Professor, and Assistant
![Page 74: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/74.jpg)
Real example: DOM
![Page 75: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/75.jpg)
Real example: Facebook
![Page 76: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/76.jpg)
Strange examples
A 1
1
A 1
1
A A
![Page 77: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/77.jpg)
Behavior diagrams
Duchamp: Nude descending a staircase
![Page 78: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/78.jpg)
Modeling Behavior • Statechartdiagram
– Depictstheflowofcontrolinsideanobjectusingstatesandtransi-ons(finitestatemachines)
• Ac4vitydiagram– Describesthecontrolflowamongobjectsbyac4onsorganizedinworkflows(PetriNets)
• Sequencediagram– Depictsobjects’interac4onbyhighligh4ngthe-meorderingofmethodinvoca4ons
• Communica4on(collabora4on)diagram– Depictsthemessageflowsamongobjects
INTE
RA
CTI
ON
![Page 79: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/79.jpg)
Behavioral elements
Two primary kinds of behavioral elements:
Verbs in the requirements Dynamic parts of UML models: “behavior over time” Usually connected to structural elements
Interaction a set of objects exchanging messages, to accomplish a specific purpose.
ask-for-an-A
State Machine specifies the sequence of states an object goes through during its lifetime in response to events
inParty inStudy
harry: Student name = “Harry White”
paul: Professor name = “Paul Smith”
received-an-A/buy-beer
sober/turn-on-PC
![Page 80: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/80.jpg)
State diagram • Graph: net of states (nodes) and transitions (arrows) • Graph representing a finite state machine • Useful for modeling a reactive (event-driven) system • Animation by “token game”
Off On
push switch push switch
push switch push switch
push switch
![Page 81: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/81.jpg)
State diagram: elements
Idle
Initial State
Running
Final State
State
Transition
![Page 82: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/82.jpg)
Example: Unix process
Ready
Running
Waiting
Sys call
Sys return
Pre-empted
scheduled
end fork
![Page 83: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/83.jpg)
State
• Situation in the life of an object (or system) during which it: – Satisfies some condition, – Performs some activity, or – Waits for some events
• Set of values of properties that affect the behavior of the object (or system) – Determines the response to an event, – Thus, different states may produce different
responses to the same event
![Page 84: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/84.jpg)
Elements of a state diagram
Superstate
StateName
do/action activity
transition
State1
do/action1
State2
do/action2
State3
do/action3 [condition]
event
Start entry/starttone exit/stoptone
Dial
entry/number. append(n)
digit(n) [number.isValid()]
digit(n)
![Page 85: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/85.jpg)
Transition • Relationship between two states indicating that a
system (or object) in the first state will: – Perform certain actions and – Enter the second state when a specified event occurs
or a specified condition is satisfied • A transition consists of:
– Source and target states – Optional event, guard condition, and action
Source Event [Condition] / Action
Target
![Page 86: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/86.jpg)
Definition • Event
– An occurrence of a stimulus that can trigger a state transition
– Instantaneous and no duration • Action
– An executable atomic computation that results in a change in state of the model or the return of a value
![Page 87: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/87.jpg)
Example
dial digit(n) [incomplete]
Dialing Connecting
busy
connected
dial digit(n) [valid] / connect dial digit(n)
[invalid]
Invalid
Ringing
Busy
![Page 88: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/88.jpg)
Example
anomaly Normal Recovery
Identification
Pressure Recovery
Temperature Recovery
recovery success
recovery success
recovery success
temperature pressure
recovery failure
recovery failure
recovery failure
![Page 89: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/89.jpg)
Composite states
anomaly
Normal Recovery Identification
Pressure Recovery
Temperature Recovery
recovery success temperature pressure
Recovery
recovery failure
![Page 90: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/90.jpg)
Composite state
• Used to simplify diagrams • Inside, looks like a statechart • May have composite transitions • May have transitions from substates • Sequential and parallel
![Page 91: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/91.jpg)
Composites and transitions
Idle
Maintenance
Printing
Selecting Processing
Validating
Transition from substate
Transition to/from composite state
Active
![Page 92: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/92.jpg)
Including composite states
Start
entry / start dial tone exit / end dial tone
Partial Dialing
entry / number.append(n)
digit(n)
digit(n)
[number.isValid()]
Dialing
Dial Number
Include / Dialing
![Page 93: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/93.jpg)
Parallel composition
• Concurrency (multiple threads of control) • Synchronization
substate1 substate2
Superstate
substate3 substate4
![Page 94: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/94.jpg)
Example
Mod1 Mod2
Incomplete
Project
Midterm Final
Passed
Failed fail
![Page 95: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/95.jpg)
History pseudo state • A history pseudostate represents the most recent active
substate of its containing state • There are two kinds of this pseudostate: shallow or deep
(See the Superstructure sect 15.3.8 pag 541 for their definition)
![Page 96: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/96.jpg)
Consistency among diagrams
*
Student
0..*
*
1
practices enrolls
DegreeProgram Sport
FirstName LastName Age Role
Enrolls a differenr program
Changes carreer
Changes role
Studies Finishes education program
Student
Graduated Sporty
![Page 97: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/97.jpg)
Exercise: Cellular Phone • Draw a statechart describing the operation of a cellular
phone. Assume that the phone has keys for: – power on and off – keypad locking and unlocking – 0-9, #, and * – talk (or send) and end
Model the following operations: – power on/off – keypad locking/unlocking – making calls (e.g., dialing, connecting, talking), – receiving calls (e.g., ringing, talking)
![Page 98: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/98.jpg)
Activity diagram: elements
synchronization
Initialize course
[ count < 10 ]
A special kind of state diagram that shows the flow from activity to activity
Add student
Close course
[else]
Notify Registrar Notify Billing
fork/spawn
activity
guard
initial
final
![Page 99: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/99.jpg)
Example
![Page 100: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/100.jpg)
Example
![Page 101: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/101.jpg)
Example
![Page 102: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/102.jpg)
Example: business plan
![Page 103: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/103.jpg)
Activity partition • Partitions divide the nodes and edges to constrain and show a view of the contained
nodes • Partitions can share contents; they often correspond to organizational units in a
business model
![Page 104: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/104.jpg)
Swimlanes in an
activity diagram showing a workflow
![Page 105: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/105.jpg)
State vs activity diagrams
• Both diagrams describe behaviors, by state changes and actions, respectively
• In UML1 they are equivalent (in AD states are actions)
• In UML2 they differ: ActivityD are based on Petri Nets, StateD on Harel automata
• Also their typical usage is different: SD are single context, AD multiple context
![Page 106: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/106.jpg)
State vs activity diagrams
e2e4 e7e5 g1f3 b8c6
Pe2e4
Pe7e5
Cg1f3
Cb8c6
Whi
te
Bla
ck
![Page 107: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/107.jpg)
Exercise
Which is the maximum degree of parallelism in this activity diagram?
![Page 108: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/108.jpg)
Behavior diagrams: interaction
Balla: Dynamism of a Dog on a Leash, 1912
![Page 109: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/109.jpg)
Modeling Interaction • Statechartdiagram
– Depictstheflowofcontrolinsideanobjectusingstatesandtransi-ons(finitestatemachines)
• Ac4vitydiagram– Describesthecontrolflowamongobjectsbyac4onsorganizedinworkflows(PetriNets)
• Sequencediagram– Depictsobjects’interac4onbyhighligh4ngthe-meorderingofmethodinvoca4ons
• Communica4on(collabora4on)diagram– Depictsthemessageflowsamongobjects
INTE
RA
CTI
ON
![Page 110: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/110.jpg)
Interaction diagrams • A use case diagram presents an outside view of
the system • The inside behavioral view of a system is
shown by interaction diagrams
• Interaction diagrams describe how use cases are realized in terms of interacting objects
• Two types of interaction diagrams – Sequence diagrams – Collaboration (Communication) diagrams
![Page 111: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/111.jpg)
Sequence diagram
• A sequence diagram describes a sequence of method calls among objects
• There are several types of method calls
![Page 112: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/112.jpg)
Sequence diagram
A SD highlights the objects involved in an activity and the time ordering of method calls among them
http://www.agilemodeling.com/artifacts/sequenceDiagram.htm
![Page 113: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/113.jpg)
Example
![Page 114: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/114.jpg)
Sequence diagram: elements
message lifetime activation bar
object
![Page 115: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/115.jpg)
Sequence diagram: flow
: Customer : Order : Payment : Product : Supplier
place an order
process
validate
deliverif ( payment ok )
back order
if ( not in stock )
get address
mail to address
Sequence of message sending
![Page 116: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/116.jpg)
Using a SD for workflow
![Page 117: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/117.jpg)
Consistency among diagrams We can derive the dependencies shown in a class diagram from the interactions defined in a sequence diagram
![Page 118: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/118.jpg)
Exercise Draw a sequence diagram showing how a customer interacts with a travel agency, a station and a train to reach some destination
Draw a sequence diagram to show how a user prints a document on a printer, and a counter keeps a count of printed pages
![Page 119: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/119.jpg)
Communication (collaboration) diagram
• Communication diagrams show the message flow between objects in an application
• They also imply the basic associations (relationships) between classes
• Communication diagrams are drawn in the same way as sequence diagrams (and can be semantically equivalent to them)
![Page 120: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/120.jpg)
Communication diagram
p : Product
: Order : Payment
c : Customer
: Supplier
1.1 : ok := validate()
1.2 [ok] : deliver(c)
1.2.1 [not in stock] : back order(p)
1.2.2 : get address()
1 : place an order(c)
object
link
message
![Page 121: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/121.jpg)
Communication diagram
p : Product
: Order : Payment
c : Customer
: Supplier
1.1 : ok := validate()
1.2 [ok] : deliver(c)
1.2.1 [not in stock] : back order(p)
1.2.2 : get address()
1 : place an order(c)
Collaboration
![Page 122: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/122.jpg)
Sequence and communication
diagrams
• These two diagrams are equivalent
![Page 123: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/123.jpg)
Exercise
• Draw a communication diagram showing how a customer interacts with a travel agency, a station and a train to reach some destination
• Draw a communication diagram to show how a user prints a document on a printer, and a counter keeps a count of printed pages
![Page 124: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/124.jpg)
Basic diagrams we have seen
![Page 125: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/125.jpg)
Other diagrams
Diagrams we have seen in this lecture: • Use case, class, object, statechart, activity,
interaction (sequence and collaboration) We could add (using UML 1.*): • Component, Deployment We could add (using UML 2.*): • Composite structure, Package, Interaction
Overview, Timing
![Page 126: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/126.jpg)
Usage survey
![Page 127: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/127.jpg)
Main diagrams
The main diagrams that are used in most views are : • Use case diagram • Class diagram • Sequence diagram • Activity diagram
![Page 128: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/128.jpg)
Discuss • Which diagrams are most useful in each
lifecycle phase?
![Page 129: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/129.jpg)
Diagrams in lifecycle
Requirements Design Implementation ... ... ...
Use Case
Class diagram
Activity diagrams and Statecharts
Sequence diagram
![Page 130: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/130.jpg)
Conclusions • UML is a notation still evolving, defined by a
metamodel • It offers several diagram types, in order to
describe different views on a model • Basic diagrams are: use cases, classes,
behaviors (statechart+activity), interactions (sequence+communication)
• Several tools available • Needs a process to be used consistently and
effectively
![Page 131: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/131.jpg)
Summary
• UML includes a number of diagram-based notations to model software systems using an object oriented approach
• UML is not a process (it needs a process, like for instance the RUP)
• It is not proprietary: it is an OMG (Object Management Group) and ISO standard
![Page 132: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/132.jpg)
Exercise
• Draw,onsomegame‐playingdomain:– Aclassdiagram
– Anobjectdiagram– Astatechart– Asequencediagram
– Acommunica4ondiagram– Anac4vitydiagram
![Page 133: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/133.jpg)
Questions
• What is a software model? • Which are the UML canonical diagrams? • What is a use case? • What is a class diagram? • How do we describe a tree-like data structure in
a class diagram? • What is an interaction diagram? • What is the difference between statecharts and
activity diagrams?
![Page 134: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/134.jpg)
Readings
• On use cases www.ibm.com/developerworks/rational/library/5383.html
• On class diagrams www.ibm.com/developerworks/rational/library/content/
RationalEdge/sep04/bell/index.html
• On sequence diagrams www.ibm.com/developerworks/rational/library/3101.html
![Page 135: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/135.jpg)
UML Specification Documents
• OMG, UML Specification v. 1.5, 2003 • OMG, Meta Object Facility 2.0, 2006 • OMG, UML Superstructure 2.1.2, 2007 • OMG, UML Infrastructure 2.1.2, 2007 • Rumbaugh, Jacobson, Booch, The UML Reference
Manual, Addison Wesley, 1999 and 2004 (2nd ed)
![Page 136: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/136.jpg)
References on using UML
• Ambler, The Elements of UML 2.0 Style, Cambridge University Press, 2005
• Booch, Rumbaugh, Jacobson, The UML User Guide, Addison Wesley, 1998 and 2005 (2ed)
• Fowler, UML Distilled, 3ed, Addison Wesley, 2003 • Pilone and Pitman, UML 2.0 in a Nutshell, OReilly, 2005
![Page 137: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/137.jpg)
Useful sites • www.uml.org Documents defining the standard • www.omg.org • www.agilemodeling.com/essays/umlDiagrams.htm • softwarestencils.com/uml Images reusable in a graphic editor • www-306.ibm.com/software/awdtools/rmc/library • www.cs.gordon.edu/courses/cs211/ATMExample • opensource.objectsbydesign.com • www.cragsystems.co.uk/ITMUML/index.htm Online courseware • www.eclipse.org/modeling/mdt/uml2/docs/articles/Getting_Started_with_UML2/article.html
![Page 138: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/138.jpg)
Tools • Eclipse + several plugins, like Omondo • www-01.ibm.com/software/rational/ Rational Rose • jazz.net New IBM platform • argouml.tigris.org Argo or Poseidon • www.borland.com/us/products/together/index.html Borland Together • www.visual-paradigm.com Visual Paradigm suite • www.magicdraw.com/ • www.tabletuml.com • abstratt.com/ • www.umlgraph.org • code.google.com/p/raf-uml • metauml.sourceforge.net Beautiful UML diagrams in LaTeX
![Page 139: UML basics - stlab.istc.cnr.itstlab.istc.cnr.it/documents/swe0910/UMLBasics.pdf · UML History • OO languages appear, since mid 70’s to late 80’s • Between ’89 and ’94,](https://reader031.vdocument.in/reader031/viewer/2022022110/5c0cd2ea09d3f2e9148c8e4b/html5/thumbnails/139.jpg)
Questions?