Title: UML 101
1UML 101
2UML
- 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
413 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.xs 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 systems deployment
- UML 1.x
6Modeling 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
7Kruchtens 41 View Model
- Process view
- Describes the processes within a system
- e.g., Biz processes, processes/threads
- Activity diagrams
- Development view
- Describes a systems parts are organized into
modules and components. - Modules/architecture/layers
- Composite str, package and component diagrams
- Logical view
- Describes the abstract descriptions of a systems
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
8- 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
- Physical view
- Describes how a systems design is realized as a
set of real-world entities. - e.g., app installation, machine/host
configuration, network configuration - Deployment diagrams
9Classes
Class
Class
Class
Attribute1 Attribute2 Attribute3
Attribute1 Attribute2
Operation1 Operation2
Class
Operation1 Operation2 Operation3
Customer
Address
firstName String lastname String id int
street String city String state
String zipCode int
getId() int
getStreet() String setStreet(street String)
void
10Packages
cs680
cs680
Customer
Address
eduumbcs680
edu
umb
Customer
Address
cs680
eduumbcs680Customer
Customer (from cs680)
11Visibility
- Defines who can access an attribute or operation.
- Public (), protected (), package () and
private (-)
cs680
Address
city String
Customer
getCity() String
cs681
SpecialAddress
Customer
12cs680
Address
city String
Customer
getCity() String
cs681
SpecialAddress
Customer
Note Javas protected visibility allows any
other classes in the same package to access to
protected attrs/ops of a class. It is a
combination of UMLs protected and package
visibility.
13cs680
Address
city String
Customer
getCity() String
cs681
SpecialAddress
Customer
14cs680
Address
- city String
Customer
getCity() String
cs681
SpecialAddress
Customer
Note Use private/protected visibility as often
as possible to encapsulate/hide the internal
attrs/ops of a class.
15Association
Customer
Address
firstName String Lastname String id int
Street String city String state
String zipCode int
1
- homeAddr
getAddress() Address
getCity() String
Customer
firstName String Lastname String id
int homeAddr Address
getAddress() Address
16Customer
Address
1
firstName String Lastname String id int
Street String city String state
String zipCode int
- homeAddr
1
getHomeAddress() Address getOfficeAddress()
Address
getCity() String
- officeAddr
Customer
firstName String Lastname String id
int homeAddr Address officeAddr Address
getHomeAddress() Address getOfficeAddress()
Address
17Customer
Address
firstName String Lastname String id int
Street String city String state
String zipCode int
1..2
- addresses
getAddress() Address 1..2
getCity() String
Customer
firstName String Lastname String id
int addresses Address 1..2
getAddress() Address 1..2
18Customer
Address
firstName String Lastname String id int
Street String city String state
String zipCode int
- addresses
getAddress() Address
getCity() String
Customer
firstName String Lastname String id
int addresses Address
getAddress() Address
19Customer
firstName String Lastname String id int 0
getId() int
20HW5
- 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
21UML 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?idce
- Green
- http//green.sourceforge.net/
- A List of UML Tools
- http//en.wikipedia.org/wiki/List_of_UML_tools