Chap 2-Intro to UML

advertisement
Chapter 2 UML Overview








Building blocks of the UML
Structure things in the UML
Behavioral things in the UML
Grouping things in the UML
Relationships in the UML
Diagrams in the UML
Extension mechanism of the UML
Simple Example - Hello World
Object Oriented Analysis and Design
1
Building Blocks of the UML
Object Oriented Analysis and Design
2
Building Blocks of the UML
 The vocabulary of the UML encompasses
three kinds of building blocks:
 Things: the abstractions that are first-class
citizens in a model;
 Relationships: relationships tie these things
together;
 Diagrams: diagrams group interesting
collections of things.
Object Oriented Analysis and Design
3
Things in the UML
 There are four kinds of things in the UML:
 Structural things: class, interface, collaboration,
use case, active class, component, artifact &
node
 Behavioral things: interaction, state machine,
activity
 Grouping things: package
 Annotational things: note
 These things are the basic object-oriented
building blocks of the UML.
Object Oriented Analysis and Design
4
Structural things in the UML
Object Oriented Analysis and Design
5
Structural things in the UML
 the nouns of UML models.
 the mostly static parts of a model, either
conceptual or physical
 Collectively, the structural things are called
classifiers
 eight kinds:




Logic view: class, interface, collaboration,
Requirement view: use case
Process view: active class
Implementation view: component, artifact, node
Object Oriented Analysis and Design
6
Structural things - Class
 A class is a description of a set of objects
that share the same attributes, operations,
relationships, and semantics.
 A class is represented using a
compartmented rectangle
Professor
Objects
Attributes
Professor Smith
Professor Mellon
Professor Jones
Object Oriented Analysis and Design
Operations
7
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
- maxLoad
+ submitFinalGrade()
+ acceptCourseOffering()
+ setMaxLoad()
+ takeSabbatical()
Review: Class Compartments
 A class is comprised of three sections
 The first section contains the class name
 The second section shows the structure
(attributes)
 The third section shows the behavior
(operations)
Class Name
Attributes
Operations
Object Oriented Analysis and Design
Professor
name
empID
create( )
save( )
delete( )
change( )
8
Review: Representing Objects
 An object is represented as rectangles with
underlined names
: Professor
ProfessorClark
a + b = 10
Class Name Only
ProfessorClark :
Professor
Professor Clark
Object Name Only
Class and Object Name
Object Oriented Analysis and Design
9
Structural things - Interface
 An interface is a collection of operations
that specify a service of a class or
component.
 Interfaces support “plug-and-play”
architectures
Tube
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate
Cube
Realization relationship
Object Oriented Analysis and Design
10
Review: Interface Representations
Tube
Elided/Iconic
Representation
(“lollipop”)
Pyramid
Shape
Canonical
(Class/Stereotype)
Representation
Object Oriented Analysis and Design
Cube
Tube
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate
Cube
11
Structural things - Collaboration
 In the context of a system's architecture, a
collaboration allows you to name a conceptual
chunk that encompasses both static and
dynamic aspects.
 A collaboration names a society of classes,
interfaces, and other elements that work
together to provide some cooperative behavior
that's bigger than the sum of all its parts.
 You use collaborations to specify the
realization of use cases and operations, and to
model the architecturally significant
mechanisms of your system.
Object Oriented Analysis and Design
12
Structural things - Collaboration
 A collaboration is a society of classes, interfaces,
and other elements that work together to provide
some cooperative behavior that's bigger than the
sum of all its parts.
 A collaboration is also the specification of how an
element, such as a classifier (including a class,
interface,component, node, or use case) or an
operation, is realized by a set of classifiers and
associations playing specific roles used in a specific
way.
 Graphically, a collaboration is rendered as an ellipse
with dashed lines.
Login
Object Oriented Analysis and Design
Login
13
Structural things – Use Case
 a use case is a description of set of sequence of
actions that a system performs that yields an
observable result of value to a particular actor.
 A use case is used to structure the behavioral things
in a model.
 A use case is realized by a collaboration.
 Graphically, a use case is rendered as an ellipse with
solid lines, usually including only its name.
Login
Object Oriented Analysis and Design
Login
14
Structural things – Active Class
 an active class is a class whose objects own one or
more processes or threads and therefore can initiate
control activity.
 An active class is just like a class except that its
objects represent elements whose behavior is
concurrent with other elements.
 Graphically, an active class is rendered as a class
with double lines on the left and right; it usually
includes its name, attributes, and operations.
EventManager
suspend()
flush()
Object Oriented Analysis and Design
15
Structural things – Component
 A component is a modular physical part of the
system design that hides its implementation
behind a set of external interfaces.
 The implementation of a component can be
expressed by wiring together parts and
connectors.
 Graphically, a component is rendered like a
class with a special icon in the upper right
corner.
Orderform
Object Oriented Analysis and Design
16
Structural things – Artifact
 An artifact is a physical and replaceable part of
a system that contains physical information
("bits").
 An artifact typically represents the physical
packaging of source or run-time information.
 Graphically, an artifact is rendered as a
rectangle with the keyword «artifact» above
the name.
<<artifact>>
Login.dll
Object Oriented Analysis and Design
17
Structural things – Node
 a node is a physical element that exists at run time
and represents a computational resource, generally
having at least some memory and, often, processing
capability.
 A set of components may reside on a node and may
also migrate from node to node.
 Graphically, a node is rendered as a cube, usually
including only its name.
<<Node>>
Node #1
Object Oriented Analysis and Design
18
Behavioral things in the UML
Object Oriented Analysis and Design
19
Behavioral things in the UML
 the verbs of UML models.
 the mostly dynamic parts of a model
 three primary kinds:
 Among a set of objects: interaction
 For an object: state machine
 The sequence of steps: activity
Object Oriented Analysis and Design
20
Behavioral things - Interaction
 an interaction is a behavior that comprises a set of
messages exchanged among a set of objects
within a particular context to accomplish a specific
purpose.
 The behavior of a society of objects or of an
individual operation may be specified with an
interaction.
 An interaction involves a number of other elements,
including messages, action sequences (the
behavior invoked by a message), and links (the
connection between objects).
 Graphically, a message is rendered as a directed
line, almost always including the name of its
operation.
display()
Object Oriented Analysis and Design
21
What Is an Interaction Diagram?
 An interaction diagram shows an interaction,
consisting of a set of objects and their
relationships, including the messages that
may be dispatched among them.
 It models the dynamic aspects of a system.
Sequence Diagrams
Object Oriented Analysis and Design
Collaboration Diagrams
22
What Is a Sequence Diagram?
 A sequence diagram is an interaction
diagram that emphasizes the time ordering
of messages.
 The diagram shows
 The objects participating in the interaction.
 The sequence of messages exchanged.
Sequence Diagrams
Object Oriented Analysis and Design
23
What Is a Communication Diagram?
 A communication diagram emphasizes the
organization of the objects that participate in
an interaction.
 The communication diagram shows
 The objects participating in the interaction.
 Links between the objects.
 Messages passed between the objects.
Communication Diagrams
Object Oriented Analysis and Design
24
Interaction Diagram Example - HelloWorldApp2.java
public class HelloWorldApp2 {
public static void main(String[] args) {
Greeting hello = new Greeting();
hello.greet("Hello World");
}
}
class Greeting {
public void greet(String s) {
System.out.println(s);
}
}
client
Object Oriented Analysis and Design
1: greet(String)
client
hello : Greeting
greet(String)
hello : Greeting
25
Behavioral things - State machine
 a state machine is a behavior that specifies the
sequences of states an object or an interaction
goes through during its lifetime in response to
events, together with its responses to those events.
 The behavior of an individual class or a
collaboration of classes may be specified with a
state machine.
 A state machine involves a number of other
elements, including states, transitions, events, and
activities.
 Graphically, a state is rendered as a rounded
rectangle, usually including its name and its
substates, if any.
waiting
Object Oriented Analysis and Design
26
Behavioral things - Activity
 an activity is a behavior that specifies the
sequence of steps a computational process
performs
 In an activity, the focus is on the flows among
steps without regard to which object performs
each step.
 A step of an activity is called an action.
 Graphically, an action is rendered as a rounded
rectangle with a name indicating its purpose. States
and actions are distinguished by their different
contexts.
waiting
Object Oriented Analysis and Design
27
Grouping things in the UML
Object Oriented Analysis and Design
28
Grouping things in the UML
 A package is a general-purpose mechanism for
organizing elements into groups.
 In all, there is one primary kind of grouping thing,
namely, packages.
 Packages are the basic grouping things with which
you may organize a UML model. There are also
variations, such as frameworks, models, and
subsystems (kinds of packages)
Bus ines s rules
Object Oriented Analysis and Design
29
Grouping things - Package
 Grouping things are the organizational parts of UML
models.
 Structural things, behavioral things, and even other
grouping things may be placed in a package.
 Unlike components (which exist at run time), a
package is purely conceptual (meaning that it exists
only at development time).
 Graphically, a package is rendered as a tabbed
folder, usually including only its name and,
sometimes, its contents.
A
B
(from
packageA)
(from
packageB)
PackageA
PackageB
Dependency relationship
Object Oriented Analysis and Design
30
Annotational things - Note





Annotational things are the explanatory parts of UML models.
These are the comments you may apply to describe,
illuminate, and remark about any element in a model.
There is one primary kind of annotational thing, called a note.
A note is simply a symbol for rendering constraints and
comments attached to an element or a collection of elements.
Graphically, a note is rendered as a rectangle with a dogeared corner, together with a textual or graphical comment.
One of these is
executed:
Object Oriented Analysis and Design
31
Relationships in the UML
Object Oriented Analysis and Design
32
Relationships in the UML
 There are four kinds of relationships in the UML:




Association
Dependency
Generalization
Realization
Window
+ open() : void
<<Interface>>
AbstractWindow
+ close() : void
+ open() : void
+ handleEvent(e: Event) : void
+ close() : void
Event
ConsoleWindow
Object Oriented Analysis and Design
DialogBox
Control
33
What Is an Association?
 The semantic relationship between two
or more classes that specifies
connections among their instances
 A structural relationship, specifying that objects of
one thing are connected to objects of another
<<entity>>
Student
Association
Name
Professor
Object Oriented Analysis and Design
<<entity>>
Schedule
<<entity>>
Course
Role Names
Works for
Employee Employer
Association
34
University
What Is an Association? – A example
class CatalogueEntry {
private string name;
private int number;
private double cost;
public double getCost () {
return cost;
}
}
class Part {
private CatalogueEntry
entry;
public double cost () {
return entry.getCost();
}
}
Object Oriented Analysis and Design
CatalogueEntry screw= new
CatalogueEntry
(“screw”, 28834,
0.02);
Part screw1 = new Part(screw) ;
screw1.cost();
35
What Is an Association? – A example
 An association is a structual relationship that desribes a set of
links.
 a link being a connection among objects.
Describes
: CatalogueEntry
name = “screw”
number = 28834
Fig. Links between objects cost = 0.02
: Part
Describes
: Part
 A link specifies a path along which one object can dispatch a
message to another (or the same)object.
: CatalogueEntry
Client
cost()
getCost()
: Part
Fig. Finding the cost of a Part
Object Oriented Analysis and Design
36
name = “screw”
number = 28834
cost = 0.02
What Is an Association? – A example
 In general, a link is an instance of an
association.
CatalogueEntry
- name
- number
- cost
Part
*
+ cost()
1
+ getCost()
Fig. Example of an association
Object Oriented Analysis and Design
37
Example : Associations mapping to VB
‘ Schedule.cls
Schedule
Public theStudent as Student
1
1
Student
Object Oriented Analysis and Design
‘ Student.cls
Public theSchedule as Schedule
38
Adornments that apply to associations.
 An association name: to describe the nature of the
relationship.
 When a class participates in an association, it has a specific
role that it plays in that relationship. A role is just the face the
class at the near end of the association presents to the class at
the other end of the association.
Association
Name
Person
job
nn
nn
-employee
-employer
Role Names
Object Oriented Analysis and Design
39
Company
Adornments that apply to associations.
 The multiplicity of an association's role: to state how many
objects may be connected across an instance of an association.
 Navigation: Given a plain, unadorned association between two
classes, it's possible to navigate from objects of one kind to
objects of the other kind.
 Unspecified
 Exactly one
1
 Zero or more (many,
0..*
unlimited)
*
 One or more
1..*
 Zero or one
0..1
 Specified range
2..4
 Multiple, disjoint
2, 4..6
ranges
Object Oriented Analysis and Design
Multiplicity
University
1
Navigation
40
0..*
Professor
Association - Aggregation
 A special form of association that models a
whole-part relationship between an
aggregate (the whole) and its parts
Whole
Part
Schedule
Student
Aggregation
Object Oriented Analysis and Design
41
Association - Composition
 A form of aggregation with strong
ownership and coincident lifetimes
 The parts cannot survive the whole/aggregate
Part
Whole
Student
Schedule
Composition
Object Oriented Analysis and Design
42
Association - Association Class
 In an association between two classes, the
association itself might have properties.
 A class “attached” to an association
 Contains properties of a relationship
 One instance per link
Company
*
-employer
1..*
-employee
Job
-salary
+ getSalary()
Object Oriented Analysis and Design
43
Person
Association - Association Class
Company
*
-employer
Person
1..*
-employee
Job
-salary
+ getSalary()
Design Decisions
Company
Object Oriented Analysis and Design
1
1..*
Job
-salary
+ getSalary()
44
*
1
Person
Association - Recursive association
prerequisites
0..*
Course
Object Oriented Analysis and Design
45
Association - Example
0..1
has
School
Department
1
1..n
1..n
1..n
1..n
assignedTo
member
-chairperson
1..n
n
attends
Student
n
Object Oriented Analysis and Design
1..n
teaches
Course
n
n
46
1..n
0..1
Instructor
Relationships: Dependency
 A relationship between two model elements
where a change in one may cause a
change in the other
 Non-structural, “using” relationship
Client
Class
Package
ClientPackage
Object Oriented Analysis and Design
Supplier
Client
Dependency
relationship
SupplierPackage
47
Componen
t
Supplier
Dependency
relationship
Dependency – Example
Course
Professor
class Professor {
public void teach(Course c) { ……..}
……………..
}
class Professor {
public void teach() { Course c = new Course(); ……..}
……………..
}
Object Oriented Analysis and Design
48
Example: HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello World!", 50, 25);
}
}
Applet
Dependency relationship
Graphics
HelloWorld
paint()
Object Oriented Analysis and Design
49
Relationships: Generalization
 A relationship among classes where one
class shares the structure and/or behavior
of one or more classes
 Defines a hierarchy of abstractions in which
a subclass inherits from one or more
superclasses
Generalization
relationship
 Single inheritance
 Multiple inheritance
 an “is-a-kind of” relationship
Employee
Engineer
Object Oriented Analysis and Design
50
Manager
Generalization - Example
• Employee is a generalization of Engineers and
Managers.
• Engineer is a specialization of Employee.
• Manager is a kind of Employee.
• Engineers and Managers inherit the Employee interface
(and in this case, some implementation too).
class Employee {…...};
class Manager : public Employee {..};
class Engineer : public Employee {…};.
class Employee {…...}
class Manager extends Employee {..}
class Engineer extends Employee {…}
Object Oriented Analysis and Design
51
Example: HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello World!", 50, 25);
}
}
Applet
Generalization relationship
Graphics
HelloWorld
paint()
Object Oriented Analysis and Design
52
Example: Single Inheritance
 One class inherits from another
Ancestor
Superclass
(parent)
Account
balance
name
number
Withdraw()
CreateStatement()
Generalizatio
n Relationship
Subclasses
Checking
Savings
Withdraw()
GetInterest()
Withdraw()
Descendents
Object Oriented Analysis and Design
53
Example: Multiple Inheritance
 A class can inherit from several other
classes
Animal
FlyingThing
multiple
inheritance
Airplane
Helicopter
Bird
Wolf
Horse
Use multiple inheritance only when needed, and always with
caution !
Object Oriented Analysis and Design
54
What Gets Inherited?
 A subclass inherits its parent’s attributes,
operations, and relationships
 A subclass may:
 Add additional attributes, operations,
relationships
 Redefine inherited operations (use caution!)
 Common attributes, operations, and/or
relationships are shown at the highest
applicable level in the hierarchy
Inheritance leverages the similarities among classes
Object Oriented Analysis and Design
55
Example: What Gets Inherited
GroundVehicle
weight
licenseNumber
Superclass
(parent)
owner
0..*
Person
1
register( )
generalization
Truck
Car
Subclass
size
tonnage
getTax( )
Object Oriented Analysis and Design
56
Trailer
Relationships: Realization
 One classifier serves as the contract that
the other classifier agrees to carry out
Realization relationship
Tube
Tube
<<Interface>>
Shape
Pyramid
Shape
Cube
draw()
move()
scale()
rotate()
Elided/Iconic
Representation
(“lollipop”)
Object Oriented Analysis and Design
Pyramid
Cube
Canonical
(Class/Stereotype)
Representation
57
Realization - Example
Circle
Shape
interface Shape {
public void draw() ;
}
class Shape {
public:
virtual void draw() = 0 ;
};
class Circle : public Shape {
public:
void draw() {…..}
……
};
class Circle implements Shape {
public void draw() {…..}
……
}
Object Oriented Analysis and Design
58
Diagrams in the UML
Object Oriented Analysis and Design
59
Diagrams in the UML 1.x
 The UML1.x includes nine such diagrams:


Class diagrams: to illustrate logical structure.



Object diagrams: to illustrate objects and links.
State diagrams: to illustrate behavior.
Component diagrams: to illustrate physical structure of
the software.

Deployment diagrams: to show the mapping of software
to hardware configurations.

Interaction diagrams (i.e., collaboration and sequence
diagrams): to illustrate behavior.
  Activity diagrams: to illustrate the flow of events in a usecase.
Object Oriented Analysis and Design
60
A diagram is a view into a model
A model is a complete
description of a system
from a particular
perspective
Activity
Diagrams
Scenario
Scenario
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Object Oriented Analysis and Design
State
State
Diagrams
Class
Diagrams
Diagrams
use-case
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
State
Diagrams
Diagrams
Models
Deployment
Diagrams
61
Component
Component
Diagrams
Component
Diagrams
Diagrams
Diagrams in the UML1.x
Modeling Requirements
Use Case diagram - organizing and modeling the behaviors of a system.
Modeling Structure:
Logic View
Class diagram - shows a set of classes, interfaces, and collaborations and their
relationships.
Component diagram - shows the organizations and dependencies among a set of
components.
Physical View
Deployment diagram - shows a set of nodes and their relationships.
Modeling Behavior
Sequence diagram - emphasizes the time ordering of messages.
Collaboration diagram - emphasizes the organization of the objects that
participate in an interaction.
Statechart diagram - emphasizes the event-ordered behavior of an object.
Activity diagram- emphasizes the flow of control among objects.
Object Oriented Analysis and Design
62
Projection of
Interaction
Projection of
state machine
Diagrams in the UML 2.0
 The UML2.0 includes thirteen diagrams:







Class diagram
Object diagrams
Component diagrams
Composite structure diagram
State diagram
Deployment diagram
Interaction diagrams
• communication and sequence diagrams)




Activity diagram.
Package diagram
Timing diagram
Interaction overview diagram
Object Oriented Analysis and Design
63
Diagrams in the UML 2.0
Object Oriented Analysis and Design
64
Diagrams - Class Diagram
 Class diagram shows a set of classes, interfaces,
and collaborations and their relationships
Object Oriented Analysis and Design
65
Diagrams - Class Diagram
 Class diagrams contain:
 Classes, interfaces, collaborations.
 Dependency, generalization, and association relationships
 Captures the vocabulary of a system
 Built and refined throughout development
 Purpose
 Name and model concepts in the system
 Specify collaborations
 Specify logical database schemas
 Developed by analysts, designers, and
implementers
Object Oriented Analysis and Design
66
A Simple Sales Order Example
Order
Product
Ship via
Object Oriented Analysis and Design
67
Class Diagram for the Sales Example
Sale
Salesperson
Customer
seller
buyer
Corporate
Object Oriented Analysis and Design
Product
Vehicle
item sold
Individual
68
Truck
shipping mechanism
Train
Effect of Requirements Change
Suppose you need a new
type of shipping vehicle ...
seller
Sale
buyer
Salesperson
item sold
Customer
Corporate
Product
Truck
Individual
shipping mechanism
Vehicle
Train
Airplane
Change involves adding a new subclass
Object Oriented Analysis and Design
69
Diagrams - Component Diagram
A component diagram shows the organizations and
dependencies among software components, including source
code components, binary code components, and executable
components.
Component diagrams contain:




Component packages.
Components
Interfaces
Dependency relationships
image.java
component.java
ImageObserver
Object Oriented Analysis and Design
70
Diagrams - Component Diagram
 Captures the physical structure of the
implementation
 Visualize the physical components in a
system.
 libraries, packages, files etc.
 Built as part of architectural specification
 Purpose
 Organize source code
 Construct an executable release
 Specify a physical database
 Developed by architects and programmers
Object Oriented Analysis and Design
71
Component Diagram - Example
Object Oriented Analysis and Design
72
Component Diagram - Example
Object Oriented Analysis and Design
73
Diagrams - Deployment Diagram
 A deployment diagram is a diagram that shows
the configuration of run time processing nodes
and the components that live on them.
 Captures the topology of a system’s hardware
 Built as part of architectural specification
 Purpose
 Specify the distribution of components
 Identify performance bottlenecks
 Developed by architects, networking engineers,
and system engineers
Object Oriented Analysis and Design
74
Deployment Diagram -Example
Object Oriented Analysis and Design
75
Deployment Diagram -Example
Object Oriented Analysis and Design
76
Diagrams - Sequence Diagram
 A sequence diagram emphasizes the time
ordering of messages.
Supplier Object
Client Object
:Supplier
:Client
Object Lifeline
Reflexive Message
1: doSomething()
1.1: doAnotherthing()
Message
Sequence number
Focus of Control
Object Oriented Analysis and Design
77
Diagrams - Collaboration Diagram
 A collaboration diagram emphasizes the
organization of the objects that participate in an
interaction.
Client Object
Supplier Object
Link
:Client
Message
Object Oriented Analysis and Design
:Supplier
1: doSomething()
78
Sequence Diagram V.S. Collaboration Diagram
 Sequence diagrams and collaboration diagrams
express similar information but show it in
different ways.
 Sequence diagrams show the explicit sequence
of messages and are better for real-time
specifications and for complex scenarios.
 Collaboration diagrams show the relationships
among objects and are better for understanding
all of the effects on a given object and for
procedural design.
Object Oriented Analysis and Design
79
Diagrams - Statechart diagram
 A statechart diagram shows a state machine,
consisting of states, transitions, events, and
activities.
 Statechart diagrams emphasize the event-ordered
behavior of an object, which is especially useful
in modeling reactive systems.
shutDown
keyPress
Idle
Running
Finished
Object Oriented Analysis and Design
80
Statechart diagram -Example
add student / numStudents = numStudents + 1
/ numStudents = 0
remove student / numStudents = numStudents - 1
Unassigned
closeRegistration
addProfessor
cancel
Cancelled
do: Send cancellation notices
close
removeProfessor
[ numStudents = 10 ]
cancel
cancel
Full
close[ numStudents < 3 ]
add student /
numStudents = numStudents + 1
Assigned
[ numStudents = 10 ]
close
closeRegistration [ has Professor assigned ]
closeRegistration[ numStudents >= 3 ]
Committed
do: Generate class roster
close[ numStudents >= 3 ]
remove student / numStudents = numStudents - 1
Object Oriented Analysis and Design
81
Statechart diagram -Example
superstate
/ numStudents = 0
Open
Closed
closeRegistration
Cancelled
do: Send cancellation notices
close
Unassigned
cancel
cancel
substate
close[ numStudents < 3 ]
Full
remove a professor
[ numStudents = 10 ]
add a professor
close
closeRegistration [ has Professor assigned ]
Assigned
closeRegistration[ numStudents >= 3 ]
add student /
numStudents = numStudents + 1
H
close[ numStudents >= 3 ]
remove student / numStudents = numStudents - 1
Object Oriented Analysis and Design
82
Committed
do: Generate class roster
Diagrams - Activity Diagram
 An activity diagram shows the flow from activity to activity within a
system.
initial state
Select site
action state
Bid Plan
[ not accepted ]
[ else ]
decisio
n
Do site work
guard
expression
concurrent fork
Do trade work
concurrent join
Finish construction
final state
Object Oriented Analysis and Design
83
Extension mechanism of the UML
Object Oriented Analysis and Design
84
Extension mechanism of the UML
 Stereotype
 Tagged value
 Constraint
Object Oriented Analysis and Design
85
Extension mechanism - Stereotypes
 A stereotype is an extension of the vocabulary of the UML,
allowing you to create new kinds of building blocks
similar to existing ones but specific to your problem.
 Stereotypes must be based on certain existing types or
classes in the metamodel. Stereotypes may extend the
semantics, but not the structure of pre-existing types and
classes. Certain stereotypes are predefined in the UML,
others may be user defined.
<<boundary>>
LoginForm
LoginForm
Stereotyped element as icon
Named Stereotype
Object Oriented Analysis and Design
86
Stereotypes
 Stereotypes define a new model element in
terms of another model element.
 Sometimes, you need to introduce new
things that speak the language of your
domain and look like primitive building
blocks.
 Represented with name in guillemets or as
a different icon
<<Interface>>
Shape
Shape
Object Oriented Analysis and Design
87
Extension mechanism - Tagged Values
 Many kinds of elements have detailed properties that do
not have a visual notation. In addition, users can define
new element properties using the tagged value
mechanism.
 A tagged value is an extension of the properties of a
UML element, allowing you to create new information in
that element’s specification.
 A tagged value is a keyword-value pair that may be
attached to any kind of model element The keyword is
called a tag.
Object Oriented Analysis and Design
88
Tagged Values - Example
Common examples of tagged values are:
•
{Author = (Dave,Ron)}
•
{Version Number = 3}
•
{Location = d:\java\uml\examples}
•
{Location = Node: Middle Tier}
MyClass
{Version =
1.02}
Object Oriented Analysis and Design
89
Extension mechanism - Constraint
 A constraint is an extension of the semantics of a UML
elements, allowing you to add new rules or to modify
existing ones.
 Constraints may be written as free-form text. If you want to
specify your semantics more precisely, you can use the
UML’s Objec Constraint Language(OCL).
Simple constraint Portfolio
{secure}
BankAccount
Corporation
{or}
Person
gender : {female,male}
Constraint across multiple elements
+husband
Formal constraint using OCL
+wife
0..1
0..1
{self.wife.gender = female and self.husband.gender = male}
Object Oriented Analysis and Design
90
Common Modeling Techniques
1) Modeling Comments - use notes
2) Modeling New Building Blocks - use stereotype.
3) Modeling New Properties - use tagged values.
4) Modeling New Semantics - use constraint
Object Oriented Analysis and Design
91
Simple Example – Hello World
Object Oriented Analysis and Design
92
Simple Example - Hello World
 Key Abstractions
 Mechanisms
 Components
Object Oriented Analysis and Design
93
Example - Key Abstractions
import java.awt.Graphics;
class HelloWorld extends java.applet.Applet
{
public void paint (Graphics g) {
g.drawString (“Hello World !”,10,10);
}
}
Applet
HelloWorld
paint()
Graphics
g.drawString (“Hello World !”,10,10)
Object Oriented Analysis and Design
94
HelloWorld
paint()
Example - Key Abstractions
Object
Component
ImageObserver
Container
jav
a
HelloWorld
applet
Panel
awt
lang
Applet
HelloWorld
Object Oriented Analysis and Design
95
Example - Mechanisms
:
:
run( )
run( )
callbackLoop( )
handleExpose( )
paint( )
Painting mechanism
Object Oriented Analysis and Design
96
Example - Components
HelloWorld.class
hello.html
hello.jpg
HelloWorld Component
Object Oriented Analysis and Design
97
hello.java
Download