uml 101. 2uml language? –provides the semantics and syntax (notation) for each model element e.g.,...
Post on 21-Dec-2015
224 views
TRANSCRIPT
UML 101UML 101
2
UMLUML• Language?
– Provides the semantics and syntax (notation) for each model element
• e.g., class, interface, association, attributes, etc. etc.
• Unified? – Major modeling languages merged to UML in 90s.
• Object Management Group (www.omg.org)
– Many religious wars before UML is born. • UML: class, association, generalization, aggregation• Booch: class, use, inheritance, containment• OMT: class association, generalization, aggregation• Class, association, subtype,
3
• What UML provides– Modeling semantics and notation– 13 diagrams– Modeling viewpoints
• What UML does not provide– Method:
• e.g. how to identify classes?
– Methodology
4
13 Diagrams in UML 2.x 13 Diagrams in UML 2.x • Use case
– Interactions b/w a system and its users or other external entities/systems. Requirements to a system.
– UML 1.x
• Class– Classes, interfaces, etc., and
relationships b/w them.– UML 1.x
• Object– Object instances of the classes
defined in class diagrams– UML 1.x
• Component– Components and the interfaces
they use to interact with each other.
– UML 2.0
• Composite structure– The internals of a class or
component – UML 2.0
• Package – The hierarchal organization of
groups of classes and components.
– UML 2.0
5
• Communication– The ways in which objects
interact– Renamed from UML 1.x’s
collaboration diagrams
• Sequence – Interactions b/w objects where
the order of the interactions is important.
– UML 1.x
• Timing– Interactions b/w objects where
timing is an important concern. – UML 2.0
• Interaction overview– Collect communication,
sequence and timing diagrams together.
• State machine– The state of an object
throughout its lifetime, and the events that can change that state.
– UML 1.x
• Activity– Sequential and parallel
activities in a system– UML 1.x
• Deployment– A system’s deployment– UML 1.x
6
Modeling ViewpointsModeling Viewpoints• Viewpoints
– A technique for abstraction using a selected set of architectural concepts and structuring rules
• to focus on particular concerns within a given system.
• Why viewpoints?– It is often impossible for a single developer to understand
everything about a software system all at once. • It is essential in a project to undertake a development or
maintenance task without understanding everything about the system.
• 5 viewpoints in UML– Logical, process, development, physical and use case
viewpoints
7
Kruchten’s 4+1 View ModelKruchten’s 4+1 View Model
• Logical view– Describes the abstract
descriptions of a system’s parts.
– Models what a system is made up of and how the parts interact with each other.
– Class, object, composite str, comm, seq, timing, interaction overview and state machine diagrams
• Process view– Describes the processes
within a system • e.g., Biz processes,
processes/threads
– Activity diagrams
• Development view– Describes a system’s
parts are organized into modules and components.
• Modules/architecture/layers
– Composite str, package and component diagrams
8
• Physical view– Describes how a system’s
design is realized as a set of real-world entities.
• e.g., app installation, machine/host configuration, network configuration
– Deployment diagrams
• Use case view– Describes the functionality
of a system being modeled from the perspective of the outside world.
• Use cases and scenarios that consolidate the other views.
– All of the other views rely on this view to guide them.
– Use case diagrams
9
ClassesClasses
ClassAttribute1Attribute2Attribute3Operation1Operation2Operation3
Class
Attribute1Attribute2
Class
Operation1Operation2
Class
CustomerfirstName: Stringlastname: Stringid: int
getId(): int
Addressstreet: Stringcity: Stringstate: StringzipCode: intgetStreet(): StringsetStreet(street: String): void
10
PackagesPackagescs680
edu
umb
cs680
Customer Address
cs680
edu::umb::cs680
Customer Address
edu::umb::cs680::Customer
Customer(from cs680)
11
VisibilityVisibility
Address
+ city: String
getCity(): String
• Defines who can access an attribute or operation.– Public (+), protected (#), package (~) and private (-)
Customer
cs680
SpecialAddress
cs681
Customer
12
Address
# city: String
getCity(): String
Customer
cs680
SpecialAddress
cs681
Customer
Note: Java’s protected visibility allows any other classes in the same package toaccess to protected attrs/ops of a class. It is a combination of UML’s protected andpackage visibility.
13
Address
~ city: String
getCity(): String
Customer
cs680
SpecialAddress
cs681
Customer
14
Address
- city: String
getCity(): String
Customer
cs680
SpecialAddress
cs681
Customer
Note: Use private/protected visibility as often as possible to encapsulate/hidethe internal attrs/ops of a class.
15
AssociationAssociation
CustomerfirstName: StringLastname: Stringid: int
getAddress(): Address
AddressStreet: Stringcity: Stringstate: StringzipCode: int
getCity(): String
1
- homeAddr
CustomerfirstName: StringLastname: Stringid: inthomeAddr: Address
getAddress(): Address
16
CustomerfirstName: StringLastname: Stringid: int
getHomeAddress(): AddressgetOfficeAddress(): Address
AddressStreet: Stringcity: Stringstate: StringzipCode: int
getCity(): String
1
- homeAddr
CustomerfirstName: StringLastname: Stringid: inthomeAddr: AddressofficeAddr: AddressgetHomeAddress(): AddressgetOfficeAddress(): Address
1
- officeAddr
17
CustomerfirstName: StringLastname: Stringid: int
getAddress(): Address [1..2]
AddressStreet: Stringcity: Stringstate: StringzipCode: int
getCity(): String
Customer
firstName: StringLastname: Stringid: intaddresses: Address [1..2]
getAddress(): Address [1..2]
1..2
- addresses
18
CustomerfirstName: StringLastname: Stringid: int
getAddress(): Address[*]
AddressStreet: Stringcity: Stringstate: StringzipCode: int
getCity(): String
Customer
firstName: StringLastname: Stringid: intaddresses: Address [*]
getAddress(): Address [*]
*
- addresses
19
CustomerfirstName: StringLastname: Stringid: int = “0”
getId(): int
20
HW5HW5
• Read SP 20 to 25
• Imagine (or eat!) an ice cream, and model ice creams. Make an ice cream model with a UML tool. Paste your model to a PPT file, and upload it to the course repository. – Make a new directory “hw5-ice-cream” and upload
your PPT file there.– Contact my TA for all technical questions
• Due: Sept 27 (Thu), 6pm
21
UML Modeling ToolsUML Modeling Tools• Visual Paradigm (Community Edition)
– http://www.visual-paradigm. • JUDE (Community Edition)
– http://jude.change-vision.com/jude-web/• EclipseUML
– http://www.omondo.com/• MagicDraw
– http://www.nomagic.com/• Poseidon (Community Edition)
– http://www.gentleware.com/index.php?id=ce• Green
– http://green.sourceforge.net/• A List of UML Tools
– http://en.wikipedia.org/wiki/List_of_UML_tools