Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994)...

48
1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac DAAD Project “Joint Course on Software Engineering” Version: July 30, 2003 (D May 14, 2003) Topic 13 Object-oriented Analysis Parts of this topic use material from the textbook H. Balzert, “Software-Technik”, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001 a) – f)

Transcript of Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994)...

Page 1: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

1

Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac

DAAD Project“Joint Course on Software Engineering”

Version: July 30, 2003 (D May 14, 2003)

Topic 13Object-oriented Analysis

Parts of this topic use material from the textbook H. Balzert, “Software-Technik”, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001

a) – f)

Page 2: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

2

2DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Sub-models in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 3: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

3

3DAAD project „Joint Course on Software Engineering“ ©

Product definition• requirements

specification• product model• user interface• user manual

Definition phase

Analysis andDefinition

Analysis andDefinition

Classical waterfall model: the place of OOA

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

Feasibility study• glossary• preliminary require-

ments specification • cost estimation• project plan

Planning phase

Balzert(2001)

Page 4: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

4

4DAAD project „Joint Course on Software Engineering“ ©

Methodology:How to develop a model?

Tools:Together, Rational Rose, Paradigm Plus

Modeling language:UML: diagrams

Model paradigm: Decomposition of the SW systems into objects

static / dynamic model(different views)

Aspects of OOA

Page 5: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

5

5DAAD project „Joint Course on Software Engineering“ ©

Approaches, literature, systems of OO analysis: early works

P. Coad, E. Yourdon. Objekt-orientierted Analysis. Prentice Hall, 1990J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen: Object-Oriented Model and Design. Prentice Hall, 1991 – OMT Object Modelling Technique – Tool OMToolG. Booch: Object-oriented Analysis and Design with Applications. The Benjamin/Cummings Publishing Company, 1994 – Tool Rational RoseI. Jacobson, M. Christerson, P. Jonsson, G. Övergaard. Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, 1994 – Use Case Model

Situation in 1996- more than 50 OOA methods- differences: notations, described aspects- Paradigm Plus: 1996, tool supports 11 methods

Page 6: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

6

6DAAD project „Joint Course on Software Engineering“ ©

UMLUnified Modeling Language

authors: Rumbaugh, Booch, Jacobson

Sept. 1999: version 1.3industry standard

March 2003: Version 1.5

graphical language:• collection of different diagram types for different views on the SW-

systemcritics:• UML = mixture of methods • UML only with syntax, without defined semantics

Page 7: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

7

7DAAD project „Joint Course on Software Engineering“ ©

Approaches, literature, systems of OO analysis: the official UML literature

J. Rumbaugh, I. Jacobson, G. Booch:The Unified Modeling Language Reference Guide, Addison Wesley, 1999

G. Booch, J. Rumbaugh, I. Jacobson: The Unified Modeling Language User Guide, Addison Wesley, 1999

I. Jacobson, G. Booch, J. Rumbaugh: The Unified Software Development Process, Addison Wesley, 1999

Page 8: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

8

8DAAD project „Joint Course on Software Engineering“ ©

History (1)

Peter Coad*30.12.1953 in San FranciscoHis book »Object-Oriented Analysis« (1990) (with E. Yourdon) helped to get OOA accepted. Introduced OOA patterns (1995)

Page 9: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

9

9DAAD project „Joint Course on Software Engineering“ ©

History (2)

Dr. James Rumbaugh*22.8.1947 in Bethlehem, PA, USA Fellow, Rational Software Corporation

Chief developer of the OMT method (Object Modeling Technique).

Page 10: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

10

10DAAD project „Joint Course on Software Engineering“ ©

Goal of OOA

like in case of structured analysis:• produce a formalised product model (as part of product definition)

• with it: specialize requirements document

combination of basic concepts:description of a system from different views

Page 11: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

11

11DAAD project „Joint Course on Software Engineering“ ©

Combination of basic concepts in object-oriented analysis

pseudocode

stateautomaton

classdiagram

OOA1990

ER (Entity Rlationship)

collabo-ration diagram

sequencediagram

use casediagram

entities &relations

classstructures

controlstructures

finiteautomaton

interactionstructures

workflow

Data Dictionary (Balzert: attribute structure)

Data flow diagram(Rumbaugh: functional model, 1991)

Page 12: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

12

12DAAD project „Joint Course on Software Engineering“ ©

Basic concepts of software developmentBalzert vol. 1, 2nd edition 2001

Function tree

Data-Dictio-nary1979

Class diagram 1980/1990

Box diagram

1973

Program flowchart

1966

Pseudocode

Decision tables

1957

Rules Petri Net1962

Sequ-encediagram

1987

Stateautomaton1954

Entity Relation-ship Model1976

Data flow diagram1966

Use Case Diagram1987

Activity diagram

1997

Collabo-ration diagram

Functional View Data-Oriented View Object-Oriented View

Algorith-mic View

Functionalhierarchy

BusinessProcess

Infor-mationFlow

Class structures

Data Structures

Rule-Based View

State-Oriented View

Controlstructures

If-Thenstructures

Entity types and relations

Finite State Automaton

Concurrentstructures

Interactionstructures

Scenario-Based View

Concepts and Views

Alte

rnat

ive

Not

atio

nsO

ften

used

Rar

ely

used

nearly all concepts allowed ☺

Page 13: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

13

13DAAD project „Joint Course on Software Engineering“ ©

OOA

from OOP:• object • operation• class • inheritance• attribute • message

from semantical data modelling:• aggregation• (generalization type/

specialization type)

from ER model:• associaltion with

cardinalities• (attribute)• (entity type)

from state automaton:• Mealy automaton• Moore automaton• Harel automaton

from time diagrams:• sequence diagram

from business processes:• use case

Sources of OOA

Page 14: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

14

14DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Submodels in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 15: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

15

15DAAD project „Joint Course on Software Engineering“ ©

OO paradigm: basic notions

basic notion: objectused in all phases of SW developmentmany definitions

basic idea: decomposition of a SW system into objects and (object) classes

Page 16: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

16

16DAAD project „Joint Course on Software Engineering“ ©

Basic concepts of OOoriginally: on the level of programming (1970,1985)

later: OOA, OOD (1990)

ObjectClass (collection of similar objects)Attribute (state, data of an object)Operation (behaviour)Message (sending messages to objects)Inheritance (class hierarchy)Polymorphism (overlaying of operations)

known from OOPknown

from OOP

basic concept class diagram encompasses these OO concepts

Page 17: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

17

17DAAD project „Joint Course on Software Engineering“ ©

Object-oriented analysis due to Booch (1994)

„Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain.“Source: G. Booch: Object-oriented Analysis and Design with Applications, 1994, page 39

Page 18: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

18

18DAAD project „Joint Course on Software Engineering“ ©

The notion of ‚object‘

In the literature we find very different definitions!

What is an object?What is an object?

The official definition ... ?

Page 19: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

19

19DAAD project „Joint Course on Software Engineering“ ©

The notion of object (1)

Hopkins, Smalltalk:• An Object is a combination of two parts:

1. ‚Data‘ – the state of the object is maintained within that object

2. ‚Operation‘ – all mechanisms to access and manipulate that state.

ParcPlace VisualWorks Tutorial:• Objects (are) software units that contain collections of

related data plus operations for manipulating that dataRumbaugh:• An object combines both data structure and behavior

in a single entity.

Page 20: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

20

20DAAD project „Joint Course on Software Engineering“ ©

The notion of object (2)

Booch:• Objects ... are data abstractions with an interface of

named operations and a hidden local state (1994, page 38).

A. Goldberg, Smalltalk – 80:• An object consists of some private memory and a set of

operations.

Booch:• An object has state, behavior, and identity; the

structure and behavior of similar objects are defined in their common class; the terms instance and object are interchangeable(1994, page 83).

Page 21: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

21

21DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Submodels in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 22: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

22

22DAAD project „Joint Course on Software Engineering“ ©

attribute operation

classobject

basic concepts

Statical and dynamical model

associations

packageinheritance

static concepts

use case scenario

state-automatonmessage

dynamic concepts

static model

dynamic model

also static?also

static?

also dynamic?

also dynamic?

Page 23: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

23

23DAAD project „Joint Course on Software Engineering“ ©

attribute operation

classobject

basic concepts

associations

packageinheritance

static concepts

use case szenario

state-automatonmessage

dynamic concepts

static model

dynamic model

Statical and dynamical model:used UML diagrams

class diagramspackage diagrams

component diagrams

state automatonactivity diagrams

sequence diagramscollaboration diagrams

? ?

use case-diagrams

?

Page 24: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

24

24DAAD project „Joint Course on Software Engineering“ ©

Diagrams in UMLuse case diagram: interaction of persons with systemsclass diagram: classes and their static relationssequence diagram: time-dependent flow of messagescollaboration diagram: the same as sequence diagrampackage diagram: modularisationstate diagram: dynamical behaviour of objectsactivity diagram: parallel processescomponent diagram: compilation units, hardware structureobject diagram: objects and their relations

Page 25: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

25

25DAAD project „Joint Course on Software Engineering“ ©

Application of UML diagrams in the phases of SW development(source: Informatik Spektrum, April 1998)

Requirements

Analysis

Design

Implementation

static model dynamic model

use case diagrams

class diagramspackage diagrams

class diagrams (refined, with inheritance

and associations)

component diagramscode classes definitions

activity diagrams

sequence diagrams

collaboration diagramsstate-automaton

code methods

object structure object behaviour

Page 26: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

26

26DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Submodels in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 27: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

27

27DAAD project „Joint Course on Software Engineering“ ©

Static OOA model: ‘seminar organisation’

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal seminarAll-inclusive price: FloatParticipants max: Short

Public seminarCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Page 28: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

28

28DAAD project „Joint Course on Software Engineering“ ©

DFD 0: Manage Seminars and Customers

invoice data sets

5 Manage

companies

4 Manage

customers

1 Managelecturers

2 Manage

seminars3

Record paying delay

6Read

invoice data

invoice

information

comp. booking data

booking data

notification letter

notific. letter

request datarequests

information

invoice copies

paying delays

seminar information

info to lecturer

lecturer data

invoice

request datarequests

seminar requestsseminar data

certi

ficat

eslis

t of p

artic

ipan

tssem

inar

sho

rt tit

le

pres

enta

tionN

o

lect

urer

dat

a

data base seminars and customers

payin

g de

lays

invo

ice

data

invo

ice

data

invo

ice

data

Page 29: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

29

29DAAD project „Joint Course on Software Engineering“ ©

Correlationsrequirements specification

product model 1: structured analysis

product model 2: OO analysis

relation ?

Problems:1. Is the information included in PM1 also included in PM2 (and vice

versa)?2. What about the understandability of the models?

(readability, problem adequacy)3. Is there a methodology to develop the corresponding model (easy to

establish)?

Page 30: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

30

30DAAD project „Joint Course on Software Engineering“ ©

Some relations to OOAClient

invoice data sets

5 manage

companies

4 manage

customers

1 managelecturers

2 manage

seminars3

record paying delay

6read

invoice data

invoice

information

comp. booking data

booking data

notification letter

notific. letter

request datarequests

information

invoice copies

paying delays

seminar information

info to lecturer

lecturer data

bill

request datarequests

seminar requestsseminar data

certi

ficat

eslis

t of p

artic

ipan

tssem

inar

sho

rt tit

le

pres

enta

tionN

o

lect

urer

dat

a

data base seminars and customers

payin

g de

lays

billi

ng d

ata

invo

ice

data

invo

ice

data

Interface: comparable with a class

Interface: comparable with a class

Product function (F):comparable with• use cases

(general F)• operation of a

class (specific F)

Product function (F):comparable with• use cases

(general F)• operation of a

class (specific F)

Data flows: collected sets of

attributes

Data flows: collected sets of

attributes

Page 31: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

31

31DAAD project „Joint Course on Software Engineering“ ©

Static OOA model: ‘seminar organisation’

*

*

0..1

Associate

Contractor

Participant

Substitute participant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Page 32: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

32

32DAAD project „Joint Course on Software Engineering“ ©

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

**0..1

1

*

*

10..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model: notions

Classes: - name- attribute- operations

Association

Cardinality

Role

Generalization /

Inheritance

Page 33: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

33

33DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model: problems (1)

To be able to read a final model

To be able to produce a model

To be able to assess a final model

But: is the model also

reasonable? Are there missing:• classes

• attributes• operations ?

Do we have the choice

of other classes?

Most challenging problem:

How to develop just this model?

Page 34: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

34

34DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model: problems (2)

12 classes:Why just these

ones ?

12 classes:Why just these

ones ?

Why not?

printDoP()

customerbill dateamount

delay of paymentname streetnumbercountryZIPcityphone

address

Page 35: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

35

35DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model: problems (3)

carried out: Booleannet price: Short

acquire()change()delete()printInfo()...

Presentation

additional attributes and

operations

additional attributes and

operations

5.2 Seminar dataD30 (PD30) Presentation data (max. 100 000):Presentation number, duration (in days), from, to,

daily period split-beginning, daily period split-end, beginning of the first day, end of the last day, presentation place (hotel/company, address, room), cooperation partner, public (yes/no), net price, cancel fee, min. participant rate, max. participant rate, actual participant, carried out (yes/no)

attributes and operations:

Why just these ones?

attributes and operations:

Why just these ones?

Page 36: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

36

36DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model: inheritance

3 generali-sation

classes

3 generali-sation

classes

has 3 derived classes

has 3 derived classes

Problem:comprehensible arrangement of classes (automatizationis subject of research)

Page 37: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

37

37DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Presentation custodian

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model : associations, roles

name of the association

name of the association

several roles in associations between

the same classes

several roles in associations between

the same classes

Page 38: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

38

38DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Static OOA model : cardinalities

some cardinalities

some cardinalities ?

Is a 1:1 relation between client and public presentation

Is a 1:1 relation between client and public presentation

Page 39: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

39

39DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Submodels in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 40: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

40

40DAAD project „Joint Course on Software Engineering“ ©

Combination of basic concepts in object-oriented analysis

pseudocode

stateautomaton

classdiagram

OOA1990

ER (Entity Relationship)

collabo-ration diagram

sequencediagram

use casediagram

entities &relations

classstructures

controlstructures

finiteautomaton

interactionstructures

workflow

Data Dictionary (Balzert: attribute structure)

Data flow diagram(Rumbaugh: functional model, 1991)

Page 41: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

41

41DAAD project „Joint Course on Software Engineering“ ©

What is to be specified in more detail for classes?

classes• general task of a class

attributes• meaning

(Which information is represented?)• structure, type: DD

operations• effect, transformational behaviour• parameter, types of parameter (signature of operation)

Customer

name: NameTaddress: AddressTfunction: Stringbusiness volume: Currency

produce notification()

Page 42: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

42

42DAAD project „Joint Course on Software Engineering“ ©

Example: specification of attributes (1)

Class CustomerAttribute Name

Description: the name of the customerType: NameT

Attribute AddressErgonomic Name: private addressDescription: the private address of the customerType: AddressTOptional attribute: yes

user interface? DD

Page 43: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

43

43DAAD project „Joint Course on Software Engineering“ ©

Example: specification of attributes (2)

Specification of the user defined Type NameTNameT = Salutation + (Title) + First name + NameAttribute Salutation

Type: enumRange: Mr., Mrs., MissDefault value: Mr.

Attribute TitleDescription: academic degreeType: enumRange: Dr., Prof., Prof. Dr., emptyExtendable: yes %new Titles possibleDefault value: emptyOptional Attribute: yes

Attribute First name...Attribute Name ...

DD - notation

Page 44: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

44

44DAAD project „Joint Course on Software Engineering“ ©

13. Object-oriented Analysis

a) Overview: approaches, history, literature

b) Object-oriented paradigm: basic notions

c) Submodels in UML

d) How to read a given static OOA model? (Class diagram: example „seminar organization“)

e) Detailed specification: DD, pseudocode

f) Packages

Page 45: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

45

45DAAD project „Joint Course on Software Engineering“ ©

Packages

Goal:Collect components to a larger unit.

Analog notion: Subsystem

UML• A package collects model elements (e.g. classes)

and diagrams• A package may contain packages.

Page 46: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

46

46DAAD project „Joint Course on Software Engineering“ ©

Packages in UML notation

Package name

Trading system

Stock

SalePurchase

Dependence

Page 47: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

47

47DAAD project „Joint Course on Software Engineering“ ©

*

*

0..1

Associate

Contractor

Participant

Substitute paricipant

Customer

Seminar supervisor

Referent

Is able to conduct

* * *

*

* 1*

1

**0..1

1

*

*

*

1

1

0..1

0..1

BookingRegistered: DateConfirmation: DateBill: DateChecked out: DateNotification: Date

Register()Check out()Produce notification()Prove payment()

Client booking Company booking

PresentationNumber: ShortDuration: ShortFrom: DateTo: DateDaily schedular start: TimeDaily schedular stop: TimeStart first day: TimeEnd last day: TimePlace: String <50>Address: AddressTParticipant max: ShortCanceled: YesNoET

Cancel()Produce honorar information()Register()Check out()Is free()Alternative seminars()

Company internal presentationAll-inclusive price: FloatParticipants max: Short

Public presentationCooperation partner: String<100>Cancel fee: FloatParticipant min: ShortParticipant actual: Short

Produce participant list()Produce participant certificate()

LecturerBiography: String<400>Daily honorar: Float

Seminar typeShort titel: String<10>Titel: String <50>Purpose: String<400>Method: String<400>Overview: String<400>Daily procedure: String<20>Durance: ShortDocuments: String<200>Target group: String<200>Preconditions: String<200> Charge without tax: FloatParticipant number max: ShortParticipant number min: short

PersonNumber: SerialName: NameTAddress: AddressTContact: ContactTBirthday: DateFirst registered: DateShort information: String <200>Notices: String <200>

Produce address lable()

AssociateEntitlement: RoleETPassword: String <6>Occupation: String <30>

Employer

CompanyShortname: String <10>Name: NameTAddress: AddressTContact: ContactTContact person: NamtTSector: String <30>Contact person birthday: DateFunction: String <30>Short information: String <200>Notices: String <200>Business volume: FloatClient since: Date

ClientFunction: String <50>Business volume: Currency

Produce Notification()

Package ‘Seminar management’: Offers of the company

Page 48: Topic 13 Object-oriented Analysis · Object-oriented analysis due to Booch (1994) „Object-oriented analysisis a method of analysis that examines requirements from the perspective

48

48DAAD project „Joint Course on Software Engineering“ ©

Package diagram ‚Seminar management‘

Person

Associate

Presentation

Lecturer

Public presentation

Company internal presentation

Seminar type

Seminar management