conceptual modeling a short discussion. outline conceptual modeling the goal of conceptual modeling...

49
Conceptual Modeling A Short Discussion

Post on 22-Dec-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Conceptual ModelingConceptual Modeling

A Short Discussion

Page 2: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

OutlineOutline

Conceptual modeling The goal of conceptual modeling

The OO solution The object model (conceptual)

Syntax and semantics

Object modeling approach Home Heating System

Page 3: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Conceptual ModelingConceptual Modeling

Early modeling to understand the problem Conducted in cooperation with the customer

Domain experts Domain engineers

No real problem analysis if the customer is not involved Power of OO

It is simple and people can quickly participate effectively

Page 4: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

The OO SolutionThe OO Solution

The OO model closely resembles the problem domain Base your model on the objects in the problem domain

Iteratively refine the high-level model until you have an implementation Attempt to avoid big conceptual jumps during the

development process

Page 5: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

J. Q. Public

VISA

123 4567 887766 998

J. Q. Public

Drivers LicenseState of Michigan

A-12345603-12-63

ObjectsObjects

Page 6: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Person class

J. Q. Public

VISA

123 4567 887766 998

J. Q. Public

Drivers LicenseState of Michigan

A-12345603-12-63

Attributesnameageheightweight

Operationsmovechange-job

Attributesheightwidthid-number

Operationsissuechange

Person objects

Card objects Card class

abstracts to

Attributes and OperationsAttributes and Operations

Page 7: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Characteristics of ObjectsCharacteristics of Objects

Identity Discrete and distinguishable entities

Classification Abstract entities with the same structure (attributes) and behavior

(operations) into classes Polymorphism

The same operation may behave differently on different classes Inheritance

Sharing of attributes and operations based on a hierarchical relationship

Page 8: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

The Class DiagramsThe Class Diagrams

Page 9: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

ObjectsObjects

Something that makes sense in the application context (application domain) J.Q. Public Joe’s Homework Assignment 1 J. Q. Public’s drivers license

All objects have identity and are distinguishable NOT objects

Person

Drivers license

Page 10: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

ClassesClasses

Describes a group of objects with similar properties (attributes), common behavior (operations), common relationships to other classes, and common semantics

Person J. Q. Public Joe Smith D. Q. Public

Card Credit card Drivers license Teller card

Page 11: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

D. Q. Public32

Person

J. Q. Public35

Person

Class with attributes Objects with values

person ID: integername: Stringage: integer

Person Objects have an identity

Do not explicitly list object identifiersSSN OK!

Class diagram Instance diagram

name: Stringage: integer

Person

Class Diagrams

Page 12: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Examples

name: Stringage: integer

height: integerweight: integerSSN: integer

Person

height: integerwidth: integer

thickness: integerid-number: integer

Card

Page 13: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

issue()revoke()

height: integerwidth: integer

thickness: integerid-number: integer

Card

rotate(angle: integer)move(x: integer, y: integer)

height: integerwidth: integer

Shape

Operations and MethodsOperations and Methods

Transformation that can be applied to or performed by an object

May have arguments

Page 14: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Object Notation - Summary

operation-1(argument-list-1) : result-type-1operation-2(argument-list-2) : result-type-2operation-3(argument-list-3) : result-type-3

attribute-1 : data-type-1 = default-value-1attribute-2 : data-type-2 = default-value-2attribute-3 : data-type-3 = default-value-3

Class name

Page 15: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Associations

Conceptual connection between classes A credit card is issued-by a bank A person works-for a company

J.Q. Public35

Person

Michigan State Univ

CompanyWorks-for

Class diagrams

Instance diagram

Credit Card BankIssued-by

Person CompanyWorks-for

Page 16: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Associations are Bi-directional

There is no direction implied in an association (Rumbaugh - OMT)

Countryname

Drivers-licenselic.-number: integer

Personname

Cityname

Has-capital

Is-issued

Page 17: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Associations Have Direction

Unified adds a direction indicator Inconsistently used

Countryname

Drivers-licenselic.-number: integer

Personname

Cityname

Has-capital

Is-issued

Page 18: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Multiplicity

One object can be related to many objects through the same association

One person holds one credit card

One person can hold zero or more credit cards (* stands for many)

name: String

Person

card-number: integer

Credit-cardHolds

name: String

Person

card-number: integer

Credit-cardHolds 0..*

Page 19: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

One person can hold zero or more credit cards (0..*) Each card has zero or one holder (0..1)

J. Q. Public35

Person 123 456 789

Credit-Card

111 222 333

Credit-Card

Holds

Holds

name: String

Person

card-number: integer

Credit-cardHolds 0..*0..1

111 222 333

Credit-Card

D.Q. Public32

Person

Multiplicity (Cont.)Multiplicity (Cont.)

Page 20: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

D. Q. Public

32

Person

J. Q. Public35

Person 123 456 789

Credit-Card

111 222 333

Credit-Card

111 222 333

Credit-Card

Holds

Holds

AuthorizedHolds

Authorized

Authorized

Authorized

Multiplicity (Cont.)

•One person can hold zero or more credit cards (0..*) •Each card has one holder (no indication or 1)•Each card has one or more authorized users (1..*)•One person can be authorized to use zero or more cards•Driver’s License is optional (0..1)

Explicit enumeration is also possible (2, 3, 2..5, etc.)

name: String

Person

card-number: integer

Credit-cardHolds 0..*

Authorized

1

1..* 0..*

Driver’s License

License-number: integer

0..1

*

Holds

Page 21: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Language

Person

Project1..*

1..*

1..*

J. Q. Public

35

Person

Compiler

Project

C++

Language

TicTacToe

Project

LISP

Language

Higher order associationsHigher order associations

Ternary association Project, language, person

Seldom needed (and should be avoided)

Page 22: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

How to represent salary and job title?

Use a link attribute!

name: Stringage: integerSSN: integer

address: String

Person

name: Stringaddress: String

CompanyWorks-for 0..*

name: Stringage: integerSSN: integer

address: String

Person

name: Stringaddress: String

CompanyWorks-for 0..*

salary: integerjob-title: String

Link AttributesLink Attributes

Associations can have properties the same way objects have properties

Page 23: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Folding Link Attributes

Why not this?

Salary and job title are properties of the job not the person

In this case, a link attribute is the only solution

name: Stringage: integerSSN: integer

address: Stringsalary: integerjob-title: String

Person

name: Stringaddress: String

CompanyWorks-for 0..*

name: Stringage: integerSSN: integer

address: String

Person

name: Stringaddress: String

CompanyWorks-for 0..*

salary: integerjob-title: String

0..*

Page 24: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Another ApproachAnother Approach

name: Stringage: integerSSN: integer

address: String

Person

name: Stringaddress: String

Company

Position

Salary:integerGrade:integer

Title:string

*

Page 25: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

name: Stringage: integerSSN: integer

address: String

Person

name: Stringaddress: String

CompanyWorks-for 0..* 0..*

salary: integerjob-title: String

employeremployeeboss

workerManages 0..*

0..1

Role NamesRole Names

Attach names to the ends of an association to clarify its meaning

Page 26: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Aggregation symbol

Document Paragraph Sentence1..* 1..*

AggregationAggregation

A special association, the is-part-of association A sentence is part of a paragraph (a paragraph consists

of sentences) A paragraph is part of a document (a document

consists of paragraphs)

*

Page 27: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Car

Wheel Body Gearbox Engine

Door Hood Trunk Piston Valve Crankshaft

1..*1..* 1..*

4

Aggregation (Cont.)Aggregation (Cont.)

Often used in parts explosion

Page 28: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Generalization and Inheritance

The is-a association Cards have many

properties in common Generalize the common

properties to a separate class, the base-card

Let all cards inherit from this class, all cards is-a base-card (plus possibly something more)

issue()revoke()

height: integerwidth: integer

thickness: integerid-number: integer

Card

expire()

class: vehicleissued: dateexpires: date

Drivers License

expire()

issued: dateexpires: date

ID Card

validate()

credit-limit: integerissued: date

Credit Card

Page 29: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

name

City

name

Airline

namelicense

Pilot

name

Passenger

heat()clean()

name

Airport

cancel()delay()

dateflight #

Flight

heat()refuel()clean()

modelserial #

hours flown

Plane

reserve()

location

Seat

Based-In 0..*

Departs

Works-for

Arrives Used-For

Certified-On

Owns

Located-In

0..*

Offers

Pilots

Confirmed-for

0..*

0..*

0..*

1..*

0..*

0..*0..*

0..*

30..*

ExampleExample

Page 30: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Company DepartmentDivision

Person

0..*

Works-for

0..* 0..*

Aggregation Versus AssociationAggregation Versus Association

Can you use the phrase is-part-of or is-made-of Are operations automatically applied to the parts (for

example, move) - aggregation Not clear what it should be……

Page 31: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Car

Wheel

Body

Gearbox

Engine

4

Minivan Compact Jeep

Roll Bar

Aggregation Versus InheritanceAggregation Versus Inheritance

Do not confuse the is-a relation (inheritance) with the is-part-of relation (aggregation)

Use inheritance for special cases of a general concept

Use aggregation for parts explosion

Page 32: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Program

SimpleStatement

CompoundStatement

Block0..*

Recursive AggregatesRecursive Aggregates

A recursive aggregate contains (directly or indirectly) an instance of the same kind of aggregate

Page 33: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Object Modeling SummaryObject Modeling Summary

Classes Name Attributes Operations

Associations Roles Link attributes

Aggregation Inheritance

Page 34: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Object Modeling ApproachObject Modeling Approach

Page 35: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Object Modeling ApproachObject Modeling Approach

Start with a problem statement High-level requirements

Define object model Identify objects and classes Prepare data dictionary Identify associations and aggregations Identify attributes of objects and links Organize and simplify using inheritance Iterate and refine the model Group classes into modules

Page 36: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

90

80

70

60

50

On

Off

Controller

Fuel Valve

Burner

Water Pump

Hot Water

Fuel

Temp Sensor

Water Valve

Control Panel

Home

The Home Heating SystemThe Home Heating System

Page 37: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Home Heating Requirements

The software shall control the heat in each room The room shall be heated when the temperature is

2F below desired temp The room shall no longer be heated when the

temperature is 2F above desired temp The flow of heat to each room shall be individually

controlled by opening and closing its water valve The valve shall be open when the room needs heat

and closed otherwise The user shall set the desired temperature on the

thermostat The operator shall be able to turn the heating system

on and off The furnace must not run when the system is off

When the furnace is not running and a room needs heat, the software shall turn the furnace on

To turn the furnace on the software shall follow these steps

open the fuel valve turn the burner on

The software shall turn the furnace off when heat is no longer needed in any room

To turn the furnace off the software shall follow these steps

close fuel valve turn burner off

The purpose of the software for the Home Heating System is to control the heating system that heats the rooms of a house. The software shall maintain the temperature of each room within a specified range by controlling the heat flow to individual rooms.

Page 38: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

RequirementsStatements

ExtractNouns

TentativeObject Classes

EliminateSpurious Classes

ObjectClasses

Candidate ClassesController

Fuel Valve

Burner

Water Pump

Hot Water

Fuel Temp Sensor

Water Valve

software

Home Heating System

heating systemroom

house

temperature

heatdesired temp

operator

thermostatfurnace

on-off switch Control Panel

Home

range

Identify Object ClassesIdentify Object Classes

Page 39: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Eliminate Bad ClassesEliminate Bad Classes

Redundant classes Classes that represent the same

thing with different words Irrelevant classes

Classes we simply do not care about

Vague classes Classes with ill defined boundaries

Attributes Things that describe individual

objects

Operations Sequences of actions are often

mistaken for classes Roles

The name of a class should reflect what it is, not the role it plays

Implementation details Save that for implementation

Page 40: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Controller

Fuel Valve Burner

Water Pump

Hot Water

Fuel

Temp Sensor Water Valve

software

Home Heating System

heating system

room

house

temperature

heat desired temp

operatorthermostat

furnace

Redundant Irrelevant Vague Attributes

Operations ImplementationRolesNone NoneNone

heat flow

on-off switch Control Panel

homeuser

range

Eliminate ClassesEliminate Classes

Page 41: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Controller

Fuel Valve

Burner

Water Pump

Temp Sensor

Water Valve

Home Heating System

Room

Operator

Thermostat Furnace

on-off switchControl Panel

Classes After EliminationClasses After Elimination

Page 42: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Prepare Data DictionaryPrepare Data Dictionary

Water Tank The storage tank containing the water that circulates in

the system.

Pump-1 The pump pumping water from the Water Tank to the

radiators in the rooms

Page 43: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Possible Associations

Not much information from the prose requirements

A lot of information from the system design

A room consists of a thermometer and a radiator A radiator consists of a valve and a radiator element The home heating system consists of a furnace, rooms, a

water pump, a control panel, and a controller The furnace consists of a fuel pump and a burner The control panel consists of an on-off switch and a

thermostat The controller controls the fuel pump The controller controls the burner The controller controls the water pump The controller monitors the temperature in each room The controller opens and closes the valves in the rooms The operator sets the desired temperature The operator turns the system on and off The controller gets notified of the new desired temperature

Page 44: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Home HeatingSystem

Control Panel

On-Off Switch Thermostat

Room

Operator

Water Valve Temp Sensor

Furnace

Burner

Water Pump

Fuel Valve

Controller

Pushes Adjusts

Notifies

M

onitor

A

ctuates Ignites

Opens/Closes

Runs

1..*

Object ModelObject Model

Page 45: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Home HeatingSystem

Control Panel

On-Off Switch Thermostat

Room

Operator

Water Valve Temp Sensor

Furnace

Burner

Water Pump

Fuel Valve

Controller

Pushes Adjusts

No

tifies

Mo

nito

r

He

ats

IgnitesOpens/Closes

Runs

1..*

1..*

1..*

Object Model - ModifiedObject Model - Modified

Page 46: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Temp Sensortemperature

Thermostatdesired-temp

On-Off switchsetting

AttributesAttributes

Page 47: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Home HeatingSystem

Control Panel

On-Off Switch Thermostat

Room

Operator

Water Valve Temp Sensor

Furnace

Burner

Water Pump

Fuel Valve

Controller

Pushes Adjusts

No

tifies

Mo

nito

r

He

ats

IgnitesOpens/Closes

Runs

1..*

1..*

1..*

Final Object ModelFinal Object Model

setting desired-temp

temperature

Page 48: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Iterate

Iterate the ModelIterate the Model

Keep on doing this until you, your customer, and your engineers are happy with the model

Page 49: Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax

Operation vs MethodOperation vs Method

Operation: specifies object behavior Service: represented by set of operations. Message: object requests execution of an opern. from

another object by sending it mesg. Method: mesg is matched up with method defined by the

class to which the receiving object belongs (or any of its superclasses)

Operations of class are public services offered by class. Methods of its classes are the implementations of these

operations.