82

Unit 2(advanced class modeling & state diagram)

Embed Size (px)

DESCRIPTION

Unit 2(advanced class modeling & state diagram)

Citation preview

Page 1: Unit  2(advanced class modeling & state diagram)
Page 2: Unit  2(advanced class modeling & state diagram)

2

Example – Car

Page 3: Unit  2(advanced class modeling & state diagram)

https://sites.google.com/a/cmrit.ac.in/manoj-c5559/

Page 4: Unit  2(advanced class modeling & state diagram)

UNIT – 2: ADVANCED CLASS MODELING, STATE MODELING:

Advanced object and class concepts; Association ends; N-ary associations; Aggregation; Abstract classes; Multiple inheritance; Metadata; Reification; Constraints; Derived data; Packages; Practical tips.

State Modeling: Events, States, Transitions and Conditions; State diagrams; State diagram behaviour; Practical tips.

Page 5: Unit  2(advanced class modeling & state diagram)

Advanced object and class concepts

Enumerations

Multiplicity

Scope

Visibility

Page 6: Unit  2(advanced class modeling & state diagram)

Enumeration Data type - a set of values together with a set of operations on those

values

To define a new simple data type, called enumeration type, we need 2 things:

A name for the data type

A set of values for the data type

enum {FALSE, TRUE};enum rank {TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,

NINE, TEN, JACK, QUEEN, KING, ACE};enum colors {BLACK, BLUE, GREEN, CYAN, RED};

The values are written in all caps because they are constants

Page 7: Unit  2(advanced class modeling & state diagram)

EnumerationsWhen constructing a model, we should carefully note enumerations,

because they often occur and are important to users.

Enumerations are also significant for an implementation; we may display the possible values with a pick list.

Do not use a generalization to capture the values of an Enumerated attribute.

An Enumeration is merely a list of values; generalization is a means for structuring the description of objects.

Page 8: Unit  2(advanced class modeling & state diagram)

Enumerations

In the UML an enumeration is a data type.

The second section lists the enumeration values.

Eg: Boolean type= { TRUE, FALSE}

Page 9: Unit  2(advanced class modeling & state diagram)
Page 10: Unit  2(advanced class modeling & state diagram)

ScopeScopeUML specifies two types of scope for members: instance and classifier.

Classifier members are commonly recognized as “static” in many programming languages. The scope is the class itself.Attribute values are equal for all instancesMethod invocation does not affect the instance’s state

Instance members are scoped to a specific instance.Attribute values may vary between instancesMethod invocation may affect the instance’s state (i.e., change

instance’s attributes)To indicate a classifier scope for a member, its name must be underlined.

Otherwise, instance scope is assumed by default.

Page 11: Unit  2(advanced class modeling & state diagram)

11

Scope

Individual member data (attributes) may have either class scope or instance scope.

Class scope - A single copy of an attribute is shared by all instances of a class. In UML you underline the attribute to indicate class scope:

productCount : int

Instance scope - Each instance of a class would have its own copy of the attribute. All attributes have instance scope by default.

Page 12: Unit  2(advanced class modeling & state diagram)

12

Scope examples

Page 13: Unit  2(advanced class modeling & state diagram)

Visibility

Visibility refers to the ability of a method to reference a feature from another class and has the possible values of public, protected & private.

Public—Visible anywhere that the class in which it appears is visible; denoted by +.

Package—Visible anywhere in the package containing the class in which it appears; denoted by ~.

Protected—Visible in the class in which it appears and all its sub-classes; denoted by #.

Private—Visible only in the class in which it appears; denoted by -

Restricting visibility is the same as restricting accessibility.

Page 14: Unit  2(advanced class modeling & state diagram)

VisibilityThe UML denotes visibility with a prefix

“+” public

“-” private

“#” protected

“~” package

Page 15: Unit  2(advanced class modeling & state diagram)

15

Visibility Example

Page 16: Unit  2(advanced class modeling & state diagram)

An n-ary association is like a common (binary) association, except that more than two association roles involved in it.

The UML symbol for n-ary associations is a diamond with lines connecting to related classes. If the association has a name, it is written in italics next to the diamond.

N-ary Association

Class1 Class2

Class3

N-aryassociation

Ternaryassociation

Page 17: Unit  2(advanced class modeling & state diagram)

N-ary Associations

Associations can connect more than one classNotation:

Student Advisor

Major

Page 18: Unit  2(advanced class modeling & state diagram)

N-ary Associations

datetrainNo

TraincarriageNo

seatNo

Seat

nametitle

Passenger

Reservation

1 1..*

1..*

Page 19: Unit  2(advanced class modeling & state diagram)

N-ary Associations

We may occasionally encounter n-ary associations (association among 3 or more classes).

But we should try to avoid n-ary associations- most of them can be decomposed into binary associations, with possible qualifiers and attributes.

Page 20: Unit  2(advanced class modeling & state diagram)

20

N-ary Association

Page 21: Unit  2(advanced class modeling & state diagram)

21

N-ary Association (cont’d)

decompose

Page 22: Unit  2(advanced class modeling & state diagram)

22

AggregationA special form of association that models a whole-part relationship between

an aggregate (the whole) and its parts.Models a “is a part-part of” relationship.

The aggregation association represents the part-whole relation between classes.Denoted by a solid diamond and linesDiamond attaches to the aggregate (whole) while lines attach to the partsMay have all association adornments

Whole Part

Car Door House

Page 23: Unit  2(advanced class modeling & state diagram)

23

Aggregation (cont.)

Aggregation tests: Is the phrase “part of” used to describe the relationship?

A door is “part of” a carAre some operations on the whole automatically applied to its

parts? Move the car, move the door.

Are some attribute values propagated from the whole to all or some of its parts? The car is blue, therefore the door is blue. A door is part of a car. A car is not part of a door.

Car Door House

Whole Part

Page 24: Unit  2(advanced class modeling & state diagram)

Aggregation

*Pizza Order

Slice

Crust

Sauce Serving

Cheese Serving

Topping Serving

Page 25: Unit  2(advanced class modeling & state diagram)

25

CompositionComposition is a form of aggregation with strong

ownership and coincident lifetime of the parts by the whole; the part object may belong to only one whole – the parts are usually expected to live and die with the whole. (usually, any deletion of the whole is considered to cascade to the parts}{filled diamond}

Page 26: Unit  2(advanced class modeling & state diagram)

Aggregation and Composition

Aggregation is a special form of association that specifies a whole-part relationship between the aggregate (the whole) and a component (the part); aggregation is the part-of relationship. { it is a special form of association in which a collection of objects, each having an independent existence, is associated with an single object} {unfilled diamond}

Composition is a form of aggregation with strong ownership and coincident lifetime of the parts by the whole; the part object may belong to only one whole – the parts are usually expected to live and die with the whole. (usually, any deletion of the whole is considered to cascade to the parts}{filled diamond}

Page 27: Unit  2(advanced class modeling & state diagram)
Page 28: Unit  2(advanced class modeling & state diagram)
Page 29: Unit  2(advanced class modeling & state diagram)

Metadata

The term "meta" comes from a Greek word that denotes something of a higher or more fundamental nature. Metadata, then, is data about other data.

The term refers to any data used to aid the identification, description and location of networked electronic resources

Page 30: Unit  2(advanced class modeling & state diagram)

Defining Metadata

Librarians equate it with a complete bibliographic record

Information technologists equate it to database schema or definitions of the data elements

Archivists include context information, restrictions and access terms, index terms, etc.

Page 31: Unit  2(advanced class modeling & state diagram)

Metadata

Metadata is data that describes other data. For example, a class definition is a metadata.

Models are inherently metadata, since they describe the things being modeled (rather than being the things).

Many real-world applications have metadata, such as parts catalogs, blueprints, and dictionaries. Computer-languages implementations also use metadata heavily.

Page 32: Unit  2(advanced class modeling & state diagram)

Derived Data

A derived element is a function of one or more elements, which in turn may be derived.

A derived element is redundant, because the other elements completely determine it.

Ultimately, the derivation tree terminates with base elements. Classes, associations, and attributes may be derived. The notation for a derived element is a slash in front of the element

name along with constraint that determines the derivation.

Page 33: Unit  2(advanced class modeling & state diagram)

Derived Data

Employee

Basic Pay

/gross pay

Page 34: Unit  2(advanced class modeling & state diagram)

Packages

A package is a group of elements (classes, association, generalization, and lesser packages) with a common theme.

A package partitions a model making it easier to understand and manage. Large applications my require several tiers of packages.

Packages form a tree with increasing abstraction toward the root, which is the application, the top-level package.

Notation for package is a box with a tab.

Page 35: Unit  2(advanced class modeling & state diagram)

Customer Order

Sales

Page 36: Unit  2(advanced class modeling & state diagram)

When to use Package

To create a overview of a large set of model elements

To organize a large model

To group related elements

Page 37: Unit  2(advanced class modeling & state diagram)
Page 38: Unit  2(advanced class modeling & state diagram)

State Modeling State model describes the sequences of operations that occur in

response to external stimuli.

The state model consists of multiple state diagrams, one for each class with temporal behavior that is important to an application.

The state diagram is a standard computer science concept that relates events and states.

Events represent external stimuli and states represent values objects.

Page 39: Unit  2(advanced class modeling & state diagram)

Elements of State Diagrams

The basic elements of state diagrams are

Events – An event is an occurrence at a point in time

states – the state in which the object finds itself at any moment

transitions – take the object from one state to another

actions – take place as a result of a transition

Page 40: Unit  2(advanced class modeling & state diagram)

EventsAn event is an occurrence at a point in time such as –

User presses left button

Indigo flight departs from Mumbai

An event happens instantaneously with regard to time scale of an application.

One event may logically precede or follow another, or the two events may be unrelated (concurrent; they have no effect on each other).

Page 41: Unit  2(advanced class modeling & state diagram)

Types of Events

An event may be one of 3 types

Signal event

Time event

Change event

Page 42: Unit  2(advanced class modeling & state diagram)

Signal EventA signal is an explicit one-way transmission of information from one

object to another.

An object sending a signal to another object may expect a reply, but the reply is a separate signal under the control of the second object, which may or may not choose to send it.

A signal event is the event of sending or receiving a signal (concern about receipt of a signal).

The difference between signal and signal eventa signal is a message between objects

a signal event is an occurrence in time.

Page 43: Unit  2(advanced class modeling & state diagram)

Time EventTime event is an event caused by the occurrence of an absolute

time or the elapse of a time interval.UML notation for an absolute time is the keyword when

followed by a parenthesized expression involving time.The notation for a time interval is the keyword after followed

by a parenthesized expression that evaluates to a time duration.

when (date = jan 1, 2000 )

Page 44: Unit  2(advanced class modeling & state diagram)

Change EventA change event occurs whenever a specified condition is met

Event name is specified as keyword whenParameter list is a Boolean expressionThe event occurs when both of the following conditions are met,

irrespective of the order when they happen The expression evaluates to true The object is in the required state

when (battery power < lower limit )

when (tire pressure < minimum pressure )

Page 45: Unit  2(advanced class modeling & state diagram)

StatesState is a condition or situation during the life of an object within

which it performs some activity, or waits for some eventsThe objects in a class have a finite number of possible states.Each object can be in one state at a time.A state specifies the response of an object to input events. At any given point in time, the system is in one state.It will remain in this state until an event occurs that causes it to

change state.

Event vs. States Event represents points in time.State represents intervals of time.

Page 46: Unit  2(advanced class modeling & state diagram)

States

A state is when a system is:

Doing something – e.g., heating oven, mixing ingredients, accelerating engine,

Waiting for something to happen – Waiting for user to enter password, waiting for sensor reading.

Page 47: Unit  2(advanced class modeling & state diagram)

Eg:

power turned on power turned off power turned on

Time Powered

Not powered

A state corresponds to the interval between two events received by an object.

The state of an object depends on past events.

Page 48: Unit  2(advanced class modeling & state diagram)

Basic UML Syntax

A state is drawn with a round box, with three compartments fornamestate variables (if any)actions to be performed

Name

state variables

actions

sometimesleft out whenempty

Page 49: Unit  2(advanced class modeling & state diagram)
Page 50: Unit  2(advanced class modeling & state diagram)

Transitions

A transition is a relationship between two states indicating that an object in the first state will enter the second state.

A transition is an instantaneous change from one state to another.

The transition is said to fire upon the change from the source state to target state.

A guard condition must be true in order for a transition to occur.

A guard condition is checked only once, at the time the event occurs, and the transition fires if the condition is true.

Page 51: Unit  2(advanced class modeling & state diagram)

51

TransitionA directed relationship between two states.

Contains five parts

Source state - current state before transition fires. Event trigger - external stimulus that has the potential to

cause a transition to fire. Guard condition - a condition that must be satisfied before

a transition can fire. Target state - new state after transition fires.

Page 52: Unit  2(advanced class modeling & state diagram)

Basic UML Syntax

A transition is drawn with an arrow, possibly labeled withevent causing the

transactionguard conditionAction to perform

AnEvent [guard] / SomeAction

Page 53: Unit  2(advanced class modeling & state diagram)

53

Idle

Initial State

Running

Final State

State

Transition

53

Page 54: Unit  2(advanced class modeling & state diagram)

Billing Example

State Diagrams show the sequences of states an object goes through during its life cycle in response to stimuli, together with its responses and actions; an abstraction of all possible behaviors.

Unpaid

Start End

PaidInvoice created paying Invoice destroying

Page 55: Unit  2(advanced class modeling & state diagram)

AddParticipant / Set count = 0

cancel seminar

event action, taken duringtransition

Setup

do/initialize seminarAvailable

do/initialize seminar

Full

do/finalize seminar

[ count = 20 ]

guard

Canceled

do/refund payments

cancel seminar

multipleexits

cancelseminar

aktivity, carried outwhile in that state

Page 56: Unit  2(advanced class modeling & state diagram)

Actions

Action

is an executable atomic computation

includes operation calls, the creation or destruction of another object, or the sending of a signal to an object

associated with transitions and during which an action is not interruptible -- e.g., entry, exit

Page 57: Unit  2(advanced class modeling & state diagram)

Predefined Action Labels

“entry/” identifies an action, specified by the corresponding action expression,

which is performed upon entry to the state (entry action)“exit/”

identifies an action, specified by the corresponding action expression, that is performed upon exit from the state (exit action)

“do/” identifies an ongoing activity (“do activity”) that is performed as long as

the modeled element is in the state or until the computation specified by the action expression is completed (the latter may result in a completion event being generated).

“include/” is used to identify a submachine invocation. The action expression

contains the name of the submachine that is to be invoked.

Page 58: Unit  2(advanced class modeling & state diagram)

State Diagrams notation

PaidUnpaidpaying

Invoice created

Invoice destroyed

name

state

final stateInitial state

transition

event

Page 59: Unit  2(advanced class modeling & state diagram)

Here’s a simple example SD for a washing machine.

State

Transition

Condition

Action

Page 60: Unit  2(advanced class modeling & state diagram)

60

A condition is typically some kind of event, e.g.:•Signal•Arrival of an object (data/material),•Etc…

Condition

Action

An action is the appropriate output or response to the event, e.g.:•Signal or message•Transfer of an object,•Calculation,•Etc…

Page 61: Unit  2(advanced class modeling & state diagram)

State Diagrams (Traffic light example)

Yellow

Red

Green

Traffic LightState

Transition

Event

Start

Page 62: Unit  2(advanced class modeling & state diagram)

Transitions

xx yyevent [guard] | action

The event that triggers the transition

Conditions that must be met for the transition to take place

The action that takes place when the transition is taken

Page 63: Unit  2(advanced class modeling & state diagram)

Initial and Final States

An example:

At Work At Homego home

go to work

die die

Page 64: Unit  2(advanced class modeling & state diagram)

64

State Diagrams

Page 65: Unit  2(advanced class modeling & state diagram)

65

Page 66: Unit  2(advanced class modeling & state diagram)

66

Page 67: Unit  2(advanced class modeling & state diagram)

67

Page 68: Unit  2(advanced class modeling & state diagram)

68

Phone Example

digit dialed (n)[incomplete]

Dialing Connecting

busy

connected

digit dialed (n)[valid] / connectdigit dialed (n)

[invalid]

Invalid

Ringing

Busy

68

Page 69: Unit  2(advanced class modeling & state diagram)

69

Page 70: Unit  2(advanced class modeling & state diagram)

States of Garment (Garments system)

Garment ordered

Material ordered

Material delivered

Marked out for cutting

Cut

Marked out for sewing

Sewn

Marked out for finishing

Finished

Deleted

Page 71: Unit  2(advanced class modeling & state diagram)

71

State Diagrams

A state diagram describes the behaviour of a system, some part of a system, or an individual object.

At any given point in time, the system or object is in a certain state. Being in a state means that it is will behave in a specific way in

response to any events that occur.

Some events will cause the system to change state. In the new state, the system will behave in a different way to

events.

A state diagram is a directed graph where the nodes are states and the arcs are transitions.

Page 72: Unit  2(advanced class modeling & state diagram)

72

Using Microsoft Visio

Visio can be used to draw UML diagrams It is component of Microsoft Office

Page 73: Unit  2(advanced class modeling & state diagram)

73

Using Microsoft Visio (continued)

Available Sets of Shapes in the UML Collection

Activity Diagrams

Collaboration Diagrams

Components

Deployment Diagrams

Sequence Diagrams

State Diagrams (Statecharts)

Static Structures (shown) – include Packages and Classes

Use Case Diagrams

Page 74: Unit  2(advanced class modeling & state diagram)

74

Using Microsoft Visio (concluded)

UML symbols can be displayed as icons with names or icons with descriptions

Both forms of display for the Use Case shape set are shown

Now, on to the demo!

Page 75: Unit  2(advanced class modeling & state diagram)

75

start state

stop state

transition from one state to another

self-transition (no change of state)

event [guard] / action transition label (each of the three parts is optional)

state

Page 76: Unit  2(advanced class modeling & state diagram)

The Inheritance Mechanism

Means of deriving new class from existing classes, called base classes

Reuses existing code eliminating tedious, error prone task of developing new code

Derived class developed from base by adding or altering code

Page 77: Unit  2(advanced class modeling & state diagram)

Multiple Inheritance

A derived class with several base classes is known as multiple inheritance

Multiple inheritance permits a class to have more than one super class and to inherit features from all parents.

We can mix information from 2 or more sources.

This is a more complicated from of generalization than single inheritance.

The advantage of multiple inheritance is greater power in specifying classes and an increased opportunity for reuse.

The disadvantage is a loss of conceptual and implementation simplicity.

Page 78: Unit  2(advanced class modeling & state diagram)

Credit Cards - Single Inheritance

Same basic features

Each is a little different

Page 79: Unit  2(advanced class modeling & state diagram)

Voice Mail - Multiple Inheritance

Voice mail has featuresof both mail and phone

Page 80: Unit  2(advanced class modeling & state diagram)

What Is A Constraint

A condition or restriction (a Boolean expression) expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element

Some are predefined in UML (“xor”), others may be user-defined

OCL (Object Constraint Language) is a predefined language for writing constraints

Page 81: Unit  2(advanced class modeling & state diagram)

81

Constraints

These are functional relation between entities of an object model.

Entity includes objects, classes, attributes, links and associations.

A constraint restricts the values that entities can assume.Simple constraints may be placed in object models and

complex may be in functional model.

Page 82: Unit  2(advanced class modeling & state diagram)

82

Employee

salary

boss

{ salary < = boss.salary }

Window

Lengthwidth

{ 0.8 <= length / width < = 1.5 }

Constraints on objects