Embed
Email

UML

Document Sample
UML
Shared by: HC111213182926
Categories
Tags
Stats
views:
3
posted:
12/13/2011
language:
pages:
45
UML





Dr. Zhen Jiang

West Chester University

E-mail: zjiang@wcupa.edu

Outline

 Introduction to UML

 Objects and Classes

 Class Diagrams

◦ Class Icon

◦ Relationships

◦ Constraints

UML: Unified Modeling

Language

 The Unified Modeling Language (UML) is

an industry-standard language for

specifying, visualizing, constructing, and

documenting the artifacts of software

systems

 The UML definition was led by Grady

Booch, Ivar Jacobson, and Jim Rumbaugh

(all now at Rational Software)

Objects and Classes

 What’s object

◦ Identity

◦ State

◦ Behavior

 Sequence Diagram

 Statechart Diagram

 Messages and methods

 What’s class

◦ Objects and Classes

◦ Nature of a class

◦ Class Attributes

◦ Operation (Method)

◦ Interfaces

◦ Interfaces and Implementation

◦ Corresponding C++ code

Objects

 Conceptually, there are many ways to think

of an object

– something that can be seen or touched

– a thing to which some action is directed

– something that performs a query action

 The structure and behaviour of similar

objects are defined in their common class

 Objects have thee properties: identity , state,

and behaviour (query action)

Object Property 1: Identity

 Identity is that property of an object which

distinguishes it from all other objects

 Keep in mind, however, that an object may

not have a name; Similarly, an object might

have multiple names (aliases)

– For this reason, there is a subtle distinction

made between the concepts of "name" and

"identity"

Object Property 2: State

 The state of an object encompasses all of the

(usually static) properties of the object plus

the current (usually dynamic) values of each

of these properties

Object Property 3: Behaviour

 Behaviour is how an object acts and reacts,

in terms of its status changes and

message/information passing

 The state of an object represents the

cumulative results of its behaviour

Example Objects

 There are many physical objects we can

examine right in this room

– each person is an object

– any chair is not an object

– each light bulb is an object

– Any book is not an object

– this room itself is an object (full or not)

 See if the followings are objects or not:

◦ Desk

◦ Light

◦ Person

◦ Log

◦ The Earth

◦ Clock

◦ Machine

◦ Computer

◦ Saving account

 Answer: N,Y,Y, N,Y,Y,Y,Y,Y

Objects versus Classes

 How would we describe the state, behaviour,

and identity for each of these objects

 We have looked at objects and we have seen

that objects can be "classified" into classes

 As programmers, we work with both classes

and objects from those classes

Classes and Objects

 An object is called an "instance" of a class

 The terms instance and object are

interchangeable

 Creating an object from a class is often

called instantiation

 For example, there are many person objects

in this room -- each person is an instance of

the person class

The Nature of a Class

 A class describes the common structure

(attributes/state) and behaviour of its instances

 For example,





– 3.14, 2.71, and 5.5 can be classified as Floats





– the following shapes can be classified as Circles

 In a 2D drawing package, circles have a

radius, a line thickness, a line color, and a

fill color

 Each individual circle (instance) drawn by

the user has its own value for each attribute

 The programmer writes a Circle class and

the program instantiates a Circle object

every time the user draws a Circle



a snowman made from 9

Circle instances

Class Attributes

 An attribute is a named property of a class

that describes the range of values that

instances of the property may

hold.(Booch,1999)

 An attribute has a type that defines the

type of its instances.

 Only the object itself should be able to

change the value of its attributes.

 The values of the attributes define the

state of the object

Operation (Methods)

 An operation is the implementation of a

service that can be requested from any object

of the class to affect behavior (Booch, 1999)

 An operation can be:

– Question (does not change the value of the

object)

– Command (may change the value of the object)

Review

something

Object

action







action

state1 state2

operations/methods

attributes: {attribute1,

attribute2}

structure

operation/method

attribute1 attribute2

value

Light









Turn on/off

On Off

operations/methods:

Turn_on/off ( )

attributes: {True,

False}

structure

Turn_on

True False

Turn_off value

Class Diagram

 Introduction

 Class Icon

 Relationships

 Constraints

Introduction

 The class diagram is fundamental to object-

oriented programming

 UML’s class diagrams capture the attributes

and operations of each class as well the

relationships that exist between classes

Class Icon

 Class Icon

 Hiding Details

 Visibility Notation

 Attribute Specification

 Operation Specification

UML Class Icon

 The UML class icon is

a rectangle with three

compartments: Circle

– class name radius: float

– class attributes

center_x: int

– class operations

center_y: int

 Attributes are specified

in the following form: area()

– object:class name display()

Hiding Detail

 You can optionally leave out the attributes,

operations, or both in a class icon:



Circle Circle Circle

radius: float

area() center_x: int

display() center_y: int

UML Member Visibility

Notation

UML has three visibility prefixes for

members:

+ for public, # for protected, and – for

private

– e.g.

Circle

-radius: float

#area()

+display()

Full UML Attribute

Specification

 The full form of a UML attribute is as

follows:

[visibility] name [multiplicity] [: type] [= initial value]

[{property}]

– The property choices are changeable, addOnly, and frozen





Student Info

-id: string

-hasGraduated: bool = false

Full UML Operation

Specification

The full form of a UML operation is as

follows:

[visibility] name [(parameter-list)] [:return-type] [{property}]

– The property choices are sequential, concurrent, guarded, and

isQuery





The full form of a UML parameter is:

[direction] name : type [= default-value]

– The direction choices are in, out, and inout

UML Class Relationships

 A class relationship is a connection between

two (or more) classes

 The three most important class relationships

are generalizations, associations, and

aggregations

 UML provides a graphical representation for

each of the relationships using a different

line type for each relationship

Class Relationships

 Generalization

 Association

 Association Class

 Qualified Association

 Ternary Association

 Aggregation

Generalization

 A generalization is a relationship between a general

thing (superclass) and a more specific kind of that

thing (subclass)

 In the UML, generalization requires that objects of the

subclass may be used anywhere an object of the

superclass appears

Person







Student

Association

An association is a structural relationship that specifies

that objects of one thing are connected to objects of

another





Faculty Student

Association

Associations can be adorned with a name.





Teaching

Faculty Student

Association

Associations can be adorned with the roles.









teacher

Faculty learner Student

Association

Associations can be adorned with the multiplicity.





Faculty Student

1 4..*

Association Class (relation

attributes)

 Each object of association class is one

instance of relationship (link) in an

association.



1..*

Faculty 4..*

Student



Course

Qualified Association

 Qualified association relates two classes and

a qualifier.

 The qualifier is a special attribute that

reduces the effective multiplicity of an

association.

Directory file File

name

Ternary Association

 A ternary association is a structural relationship that

specifies that objects of one thing are connected to

objects of other two’s.





Project Language







Developer

Aggregation

 An aggregation is an association that

represents whole/part relationship

 The “whole” end of the association

relationship is adorned with an open

diamond shape (e.g. X is part of Y)

 e.g. door:Door is part of car:Car



X Y

Generalization, Aggregation, and

Association

 See if the following pairs of classes have

generalization, aggregation or association

 Faculty & student (as)

 Hospital & doctor (as)

 Door & Car (ag --)

 Member & Organization (ag --)

 People & student (ge )

 Department & Faculty (as)

 Employee & Faculty (ge <|--)

 Item & Printer (ge <|--)

 Account & Checking account (ge <|-- )

Constraints

 Constraints on Object

 Constraints on Relations (Ordering)

 General Constraints (Dependency)

Constraints on Object

The constraints restricts the values that

objects can be.

Example: No employee’s salary can exceed

the salary of the employee’s boss.





{salary <=boss.salary}

Employee Employer

Salary Salary

Constraints on Relations

(Ordering)

{Order} indicates that the elements of the

“many” end of an association have an explicit

order that must be preserved.





{ordered}

Paper 1

1.. Author

*

General Constraints

(Dependency)



 A dependency is a using relationship that states that a

change in specification of one thing may affect another

thing that uses it (but not necessarily the reverse)

General Constraints

(Dependency)

 Dependencies are often used when one class uses

another class as an argument of the operation



Aerodrome

Runway

checkRVR( r: Runway )

 Dependencies are also often used to express general

constraints.

member-of

Person {subset} Committee

chair-of

 (Class Name, attribute, method) vs (Table Name, field,

query)

 (Class & object) vs (Table & row)

 (Table 1, table 2, … ) vs Knowledge relearning with

OO techniques to quickly locate the information

Design

• Organize the data into “something” (i.e., object)

being queried.

• Observe the relationship between objects.

• Describe the queries into methods, changing,

updating, and even deleting the attribute information.

• If necessary, translate class, object, attribute value,

and method to table, row, field value, and query.


Related docs
Other docs by HC111213182926
Name:
Views: 0  |  Downloads: 0
Linear Regression
Views: 2  |  Downloads: 0
Au fil de nos lectures
Views: 13  |  Downloads: 0
2Summer2007STTNewsletter
Views: 0  |  Downloads: 0
JONES SUDDERS line card 032911
Views: 0  |  Downloads: 0
Chirurgie samenvatting
Views: 521  |  Downloads: 0
RIVERSIDE COMMUNITY COLLEGE DISTRICT
Views: 3  |  Downloads: 0
Chassis-based Media Converters
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!