gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica...

51
I n t r od u z i on e a ll A n a li s i e D e s i gn a d og g e tti I n t r od u z i on e a ll A n a li s i e D e s i gn a d og g e tti L u ca L i s t a

Transcript of gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica...

Page 1: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Intr

oduz

ione

al

l’A

nali

si e

Des

ign

ad o

gget

ti

Intr

oduz

ione

al

l’A

nali

si e

Des

ign

ad o

gget

ti

Luc

a L

ista

Page 2: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Il ci

clo

di v

ita d

el s

oftw

are

Il ci

clo

di v

ita d

el s

oftw

are

•R

equi

rem

ents

•A

naly

sis

•D

esig

n•

Prod

uctio

n•

Tes

ting

•M

aint

enan

ce

Page 3: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Il m

odel

lo W

ater

fall

Il m

odel

lo W

ater

fall

Ana

lysi

sA

naly

sis D

esig

nD

esig

n Prod

uctio

nPr

oduc

tion

Tes

ting

Tes

ting

Req

uire

men

tsR

equi

rem

ents

Page 4: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Il m

odel

lo E

volu

tion

ary

Il m

odel

lo E

volu

tion

ary

Req

uire

men

tsR

equi

rem

ents

Ana

lysi

sA

naly

sis

Des

ign

Des

ign

Prod

uctio

nPr

oduc

tion

Tes

ting

Tes

ting

Page 5: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Wat

erfa

ll vs

Evo

lutio

nary

Wat

erfa

ll vs

Evo

lutio

nary

Evo

luti

onar

y

•B

revi

cic

li di

svi

lupp

o co

mpl

eti

•Sc

elte

bas

ate

sulla

val

utaz

ione

de

i ris

chi

•In

tegr

azio

ne c

ontin

ua

Wat

erfa

ll

Dec

ompo

sizi

one

com

plet

a de

l si

stem

a da

ll’in

izio

Proc

esso

per

sin

goli

pass

i

Inte

graz

ione

alla

fine

Un

prod

otto

com

plet

o è

disp

onib

ile

solo

alla

fine

Un

prot

otip

o fu

nzio

nant

e è

disp

onib

ile si

n da

ll’in

izio

Page 6: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ana

lysi

sA

naly

sis

•C

ompr

ensi

one

e raz

iona

lizza

zion

ede

i req

uisi

ti –

la fo

rmul

azio

ne d

ei r

equi

siti

è sp

esso

inco

mpl

eta,

am

big

uao

impr

ecis

a–

chia

rifi

ca d

ei r

equi

siti

e ve

rifi

ca d

ella

con

sist

enza

•C

ostr

uzio

ne d

el m

odel

lo•

Iden

tifi

cazi

one

delle

cla

ssi d

egli

ogge

tti r

ileva

nti

per

l’ap

plic

azio

ne–

Evi

tare

rife

rim

enti

a st

ruttu

re in

form

atic

he, c

ome

arra

y,

list

e, e

tc. c

he sa

rann

o tr

atta

te p

iù ta

rdi

•U

so d

ell’

astr

azio

ne–

Rim

anda

re i

detta

gli a

una

fase

succ

essi

va

•Id

enti

fica

zion

e de

lle re

lazi

oni t

ra c

lass

i•

I no

mi d

i cla

ssi,

met

odi e

attr

ibut

i son

o im

port

anti!

Page 7: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e id

entif

icar

e le

cla

ssi

Com

e id

entif

icar

e le

cla

ssi

•D

all’

anal

isi t

estu

ale

dei r

equi

siti

, le

clas

si p

osso

no

es

sere

iden

tific

ate

con

i pi

ù im

por

tant

i sos

tant

ivi

•Po

sson

o sp

ecif

icar

e si

a ra

ppr

esen

tazi

oni d

i ent

ità

fisi

che

(im

pieg

ato,

libr

o, e

cc.)

che

co

ncet

ti (s

upe

rfic

ie, t

raie

ttori

a, p

agam

ento

, pre

stito

, ecc

.)

•G

li o

gge

tti d

evo

no

aver

e re

spo

nsab

ilità

chi

are

all’

inte

rno

del m

ode

llo

•L

e re

spo

nsab

ilità

dev

on

o es

sere

eq

uam

ente

di

stri

buite

tra

le d

iver

se c

lass

i

Page 8: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Err

ori d

a ev

itare

Err

ori d

a ev

itare

•E

limin

are

clas

si ri

don

dant

i–

dupl

icat

i di c

lass

i già

def

inite

(ste

sse

funz

iona

lità:

in

vest

itore

, com

prat

ore ,

ven

dito

re),

cla

ssi i

rrile

vant

i (s

cars

e fu

nzio

nalit

à: p

eso,

alte

zza,

pre

zzo)

, cla

ssi d

i so

la im

plem

enta

zion

e ( e

lenc

o li

bri ,

ecc.

)

•E

vita

re c

lass

i co

n tr

oppe

resp

onsa

bilit

à–

Meg

lio s

pezz

arle

in c

lass

i più

pic

cole

, con

ruol

i più

ch

iari

e de

fini

ti

•E

vita

re c

lass

i che

sian

o so

lo c

onte

nito

ri di

dat

i–

Ese

mpi

o: s

olo

met

odi getX()

, setX()

: equ

ival

e ad

av

er d

ichi

arat

o X

attr

ibut

o pu

bblic

o. L

a re

spon

sabi

lità

sull’

uso

di X

ce l’

haqu

alch

e al

tro

ogge

tto!

Page 9: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iden

tific

azio

ne d

ei m

etod

i e a

ttrib

uti

Iden

tific

azio

ne d

ei m

etod

i e a

ttrib

uti

•I

prim

i can

dida

ti m

etod

i pos

sono

ess

ere e

strat

to d

ai

prin

cipa

li ve

rbin

ella

des

criz

ione

testu

ale

dei r

equi

siti

•G

li at

trib

uti r

appr

esen

tano

le p

rinc

ipal

i pro

prie

tàde

gli

ogge

tti–

Util

izza

re n

uovi

og

getti

agg

rega

ti pe

r le

pro

prie

tà c

ompl

esse

che

m

erita

no u

n’id

entit

à in

dipe

nden

te (e

s.: l

’aut

odi

un

aut

ista

, il

cont

oco

rren

te b

anca

rio

di u

n ri

spar

mia

tore

)

–R

iman

dare

la d

escr

izio

ne d

egli

attr

ibut

i nec

essa

ri pe

r de

ttagl

i di

im

plem

enta

zion

e

•C

erca

re o

pera

zion

i com

uni a

più

cla

ssi e

ver

ific

are

se sia

poss

ibile

cre

are

una

clas

se a

stra

tta

Page 10: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Rap

port

o tr

a cl

ient

e se

rver

Rap

port

o tr

a cl

ient

e se

rver

Vis

ta d

el c

lien

t•

Il cl

ient

sa d

i cos

a ha

bi

sogn

o, e

che

vuol

e ri

chie

dere

al s

erve

r

•N

on g

li in

tere

ssa

come

il se

rver

fa

il la

voro

•N

on g

li in

tere

ssa

se il

lavo

ro lo

fai i

l ser

ver

o se

lo

del

ega

(es.

: pro

xy)

Vis

ta d

el s

erve

r•

Il se

rver

sa

qua

le la

voro

de

ve sv

olge

re a

rich

iesta

•N

on g

li in

tere

ssa

chi

effe

ttua

la ri

chie

sta

•Se

com

e sv

olge

re il

lav

oro

o a

chi c

hied

ere

per

svol

gere

le p

arti

che

non

sa co

mpl

etar

e

Page 11: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ass

egna

re R

espo

nsab

ilità

Ass

egna

re R

espo

nsab

ilità

•A

naliz

zare

il r

uol

ode

i var

i og

getti

•C

onc

entr

arsi

sul

com

por

tam

ento

e n

on

sulla

ra

ppr

esen

tazi

one

•D

efin

ire

le in

terf

acce

(le

ope

razi

oni c

he so

ddi

sfan

o le

re

spon

sabi

lità)

pri

ma

Un

a c

orre

tta

ass

egn

azio

ne d

elle

res

po

nsa

bilità

è la

chi

ave

di u

n a

bu

on

a m

odu

lari

tàe

rius

o

Page 12: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Col

labo

razi

one

tra

clas

siC

olla

bora

zion

e tr

a cl

assi

•L

e re

spo

nsab

ilità

van

no

sudd

ivis

e tr

a i v

ari o

gge

tti

del s

iste

ma

•N

on

dev

e es

iste

re u

n co

ntro

llo c

entr

aliz

zato

–U

n og

gett

o ch

e sv

olge

tutte

le o

pera

zion

i e u

sa og

getti

ch

e si

ano

solo

con

teni

tori

di d

ati e

quiv

ale

a un

prog

ram

mar

e in

term

ini d

i dat

i e fu

nzio

ni!

•U

n o

gge

tto d

eve

com

pier

e le

pro

prie

re

spon

sabi

lità

e del

egar

e ad

altr

i ope

razi

oni

spec

ific

he–

Leg

ge d

i Dem

eter

: non

usa

te o

gget

ti lo

ntan

i:In

vece

di: stockMarket.stocklist().add(stock);

usar

e:

stockMarket.add(stock);

Page 13: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iden

tific

azio

ne d

elle

resp

onsa

bilit

àId

entif

icaz

ione

del

le re

spon

sabi

lità

•O

gni

cla

sse

deve

tent

ate

di r

ifiu

tare

le

resp

onsa

bilit

à–

Dov

rei?

(Non

sono

io c

he lo

dev

o fa

re!)

–Po

trei

? (

Non

ho l

e ca

ratte

rist

iche

per

far

lo!)

•C

erca

te d

i far

e p

oco

lavo

ro–

Se u

na c

lass

e ha

dov

uto

acce

ttare

una

re

spon

sabi

lità

può

cerc

are

di f

ar f

are

il la

voro

a

qual

che

altr

o og

gett

o

•Po

tenz

iate

i co

llab

orat

ori,

no

n in

terf

erite

Page 14: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iden

tific

azio

ne d

elle

rela

zion

iId

entif

icaz

ione

del

le re

lazi

oni

•C

erca

re c

olla

bor

azio

ni

•C

erca

re a

ggre

gazi

oni

•C

erca

re g

ener

aliz

azio

ni

Com

e u

n c

lien

tcon

osce

il su

o se

rvic

epr

ovid

er?

•E

vita

re le

rela

zio

ni i

nut

ili e

di e

cced

ere

nelle

di

pend

enze

Rag

nate

le d

i dip

ende

nze

rend

ono r

igid

o il

codi

ce!

Page 15: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Scel

ta d

elle

pos

sibili

rel

azio

niSc

elta

del

le p

ossib

ili r

elaz

ioni

Lo

gich

e

•G

ener

aliz

zazio

ne: E

’ u

n..

•A

ggr

egaz

ione

: Ha

•D

ipen

denz

a: C

on

osce

Impl

emen

tazi

one

•E

redi

tari

età

•Is

tanz

iazi

one

di t

empl

ate

•C

omp

osiz

ione

b

y va

lue

•C

omp

osiz

ione

b

y re

fere

nce

Page 16: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ave

reo

Ess

ere

Ave

reo

Ess

ere

sottot

ipi p

osso

no

ess

ere u

sati

ogni

vol

ta c

he è

ri

chie

sta

la c

lass

e d

i bas

e.

•U

sare

ere

dita

riet

àse

è r

ichi

esto

il p

olim

orfi

smo

•M

ai m

odi

fica

re il

com

por

tam

ento

del

la c

lass

e di

ba

se p

er m

otiv

i ind

otti

dalle

sotto

clas

si c

oncr

ete.

•In

C+

+, l’

ered

itari

età

pu

bbl

ica

seg

ue il

“P

rinc

ipio

di L

isko

v”:

Page 17: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ere

dita

riet

à e r

i -us

o d

el c

odic

eE

redi

tari

età

e ri -

uso

del

cod

ice

•A

ttenz

ione

! L

’ ere

dita

riet

àpu

ò e

sser

e us

ata

per

evita

re d

i ris

criv

ere

codi

ce ch

e es

iste

già

in

altr

e cl

assi.

Que

sto

non

è O

O e

d è

da

evita

re!

•L

’agg

rega

zion

esp

esso

risp

onde

meg

lio a

qu

esta

esi

genz

a.

•Se

il r

appo

rto

fra

due

ogge

tti è

del

tip

o:–

èal

lora

si u

sa l’

ered

itari

età;

–ha

allo

ra si

usa

l’ag

greg

azio

ne.

Page 18: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ave

reo

Ess

ere

Ave

reo

Ess

ere

•Investor: è

una Strategy

o ha

una

Strategy

•StockMarket: è

un vector<Stock>

o ha

un vector<Stock>

•Auto: h

a4

Ruote

o è

4 vo

lte u

na Ruota

(im

poss

iblie

in C

++,

tipi

co in

EIF

FE

L)

Page 19: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

posi

zion

e:by

val

ueo

by

refe

renc

eC

ompo

sizi

one:

by v

alue

o b

y re

fere

nce

•T

ipi s

empi

ci( int, d

ouble, …

): b

y va

lue

•Pa

rte

dello

sta

todi

un

og

getto

: b

y va

lue

•U

n o

gge

tto v

iene

con

divi

so:

by

refe

renc

e

•A

lloca

to r

un

tim

e:

by

refe

renc

e

•U

sato

pol

imor

fica

men

te:

by

refe

renc

e

Page 20: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Des

ign

Des

ign

•A

vvic

inar

e il

mo

dello

ad

og

getti

del

l’an

alis

i ai

conc

etti

info

rmat

ici

•A

ggi

unt

a di

nuo

vi o

gge

tti i

nter

ni n

eces

sari

per

l’im

plem

enta

zion

e

•E

spre

ssio

ne d

elle

ope

razi

oni

ide

ntif

icat

e in

fase

di

anal

isi i

n te

rmin

i di a

lgor

itmi

•Su

ddi

visi

one

delle

ope

razi

oni

com

ples

se in

op

eraz

ioni

più

sem

plic

i–

da d

eleg

are

ad a

ltri o

gget

ti

•Sc

elta

del

le st

ruttu

re d

ati

Page 21: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Cic

lo d

i Des

ign

Cic

lo d

i Des

ign

Spe

cify

Sem

anti

cs

Spe

cify

Sem

anti

cs

Iden

tify

Obj

ects

an

d C

lass

es

Iden

tify

Obj

ects

an

d C

lass

es

Spe

cify

inte

rfa

ces

and

impl

emen

tatio

n

Spe

cify

inte

rfa

ces

and

impl

emen

tatio

n

Iden

tify

Rel

atio

nshi

ps

Iden

tify

Rel

atio

nshi

ps

Page 22: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iter

azio

ni s

ul D

esig

nIt

eraz

ioni

sul

Des

ign

•D

opo

ogni

cic

lo b

isog

na a

naliz

zare

i ri

schi

, la

stab

ilità

e la

com

ples

sità

delle

cla

ssi

•Se

una

cla

sse

è tro

ppo

com

ples

sa c

onvi

ene

divi

derl

a

•A

d o

gni

cic

lo il

num

ero

di m

odif

iche

dev

e di

min

uire

•A

rchi

tettu

re tr

oppo

com

ples

se d

evon

o es

sere

mod

ular

izza

te

Page 23: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Prod

uzio

nePr

oduz

ione

•C

odi

fica

, im

plem

enta

zio

ne d

el m

ode

llo

•N

on

sopr

avva

luta

re q

uest

a fa

se: r

ichi

ede

min

ore

sfor

zo s

e le

fasi

pre

cede

nti s

ono

fatte

ben

e

Su

dd

ivis

ion

e d

el t

emp

o p

er il

pri

mo

cic

lo

Ana

lysi

s30

%

Pro

d.15

%Tes

ting

20%

Des

ign

35%

Page 24: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Tes

tT

est

•D

ebug

gin

g :è

ovv

io…

il c

odi

ce n

on

dev

e da

re

erro

ri.

•U

se c

ases

: spe

cifi

can

o il

com

por

tam

ento

del

si

stem

a in

una

regi

one.

•Sc

enar

i : so

no

esem

pi c

onc

reti

di u

se c

ases

. Per

de

fini

zion

e se

tutti

gli

scen

ari s

on

o so

ddi

sfat

ti co

rret

tam

ente

il t

est è

pos

itivo

.

Page 25: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Use

Cas

ese

Scen

ari

Use

Cas

ese

Scen

ari

•U

no U

seC

ase

spec

ific

a al

cuni

dei

co

mpo

rtam

enti

rich

iest

i al s

iste

ma

•U

noSc

enar

ioè

una

real

izza

zione

con

cret

adi

uno

use

case

in u

na p

artic

olar

e ci

rcos

tanz

a–

Scen

aris

eco

nda

ripo

sson

o e

sser

e us

ati p

er

rap

pres

enta

re u

na v

aria

zio

nedi

un

tem

a di

un

o

scen

ario

pri

ncip

ale

(wh

at if

...)

Page 26: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Met

odi

di s

vilu

ppo

del

sof

twar

eM

eto

di d

i svi

lupp

o d

el s

oftw

are

Un

met

odo

com

pren

de:

•U

na n

otaz

ione

mez

zo c

omu

ne p

er e

spri

mer

e st

rate

gie

e dec

isio

ni

•U

n p

roce

sso

spec

ific

a co

me

deve

avv

enir

e lo

svi

lupp

o

Page 27: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Met

odi

Obj

ect O

rien

ted

Met

odi

Obj

ect O

rien

ted

–B

ooch

Met

hod

by G

rady

Bo

och

–O

MT

by J

im R

umba

ugh

–O

bjec

tory

(Use

Cas

es)

by I

var

Jaco

bso

n

–C

RC

by

R.W

irfs

-Bro

ck

•D

i più

rece

nte

intr

oduz

ione

: UM

L–

uno

sta

nda

rd O

MG

(Obj

ectM

anag

emen

t Gro

up),

da

l no

vem

bre

1997

Gra

dy B

ooch

Jim

Rum

baug

h

Ivar

Jac

obso

n

Page 28: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Un

ese

mpi

o co

ncre

toU

n e

sem

pio

conc

reto

•R

equi

siti:

–R

ealiz

zare

una

sim

ulaz

ione

di u

n m

ode

llo d

i m

erca

to a

zio

nari

o. D

iver

si i

nves

titor

i si

scam

bian

o ti

toli

su u

n m

erca

to a

zio

nari

o. G

li in

vest

itori

deci

don

o se

ven

dere

o a

cqui

star

e in

ba

se a

pro

prie

stra

tegi

e.

–Si

vu

ole

mis

urar

e •

l’an

dam

ento

dei

tito

li su

l mer

cato

•qu

ali s

ono

le st

rate

gie

più

redd

itizi

e

Page 29: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Poss

ibili

can

dida

ti cl

assi

Poss

ibili

can

dida

ti cl

assi

•R

equi

siti:

–R

ealiz

zare

una

sim

ulaz

ione

di u

n m

ode

llo d

i m

erca

to a

zio

nari

o. D

iver

si i

nves

titor

isi

scam

bian

o ti

toli

su u

n m

erca

to a

zio

nari

o. G

li in

vest

itori

deci

don

o se

ven

dere

o a

cqui

star

e in

ba

se a

pro

prie

stra

tegi

e.

–Si

vu

ole

mis

urar

e •

l’an

dam

ento

dei

tito

lisu

l mer

cato

•qu

ali s

ono

le st

rate

gie

più

redd

itizi

e

Page 30: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iden

tific

hiam

o cl

assi

e og

getti

Iden

tific

hiam

o cl

assi

e og

getti

•I

prim

i can

dida

ti cl

assi

poss

ono

ess

ere

pres

i da

l voc

abol

ario

del

pro

blem

a ch

e st

iam

o

anal

izza

ndo.

Ese

mpi

o:–

Inve

stito

re, T

itolo

, Ord

ine,

Str

ateg

ia

Page 31: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ana

lizzi

amo

un p

aio

di s

cena

riA

naliz

ziam

o un

pai

o d

i sce

nari

•C

ome

deci

dere

se v

ende

re o

acq

uist

are

un

titol

o

•C

ome

gest

ire

gli

ordi

nisu

l mer

cato

Page 32: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Dec

ider

e se

ven

dere

o a

cqui

star

e un

tito

loD

ecid

ere

se v

ende

re o

acq

uist

are

un ti

tolo

•A

cqui

sire

info

rmaz

ioni

sul

tito

lo•

Ana

lizza

re le

pre

staz

ioni

del

tito

lo–

Gua

dag

no,

per

dita

, sto

ria…

.

•A

naliz

zare

i pr

opri

guad

agni

o le

pro

prie

pe

rdite

•D

ecid

ere

in b

ase

alla

stra

tegi

a–

Qua

nto

acq

uist

are/

ven

dere

–A

che

pre

zzo

pia

zzare

l’or

dine

Page 33: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ges

tire

gli

ordi

niG

estir

e gl

i or

dini

•C

ont

rolla

re g

li or

dini

rela

tivi a

cia

scu

n ti

tolo

•V

erif

icar

e se

ci s

on

o o

rdin

idi v

endi

ta e

di

acq

uist

o c

ompa

tibili

–L

’off

erta

di v

endi

ta d

eve

aver

e un

pre

zzo

min

ore

o ug

uale

a qu

ello

del

l’of

fert

a di

acq

uist

o

•E

seg

uire

gli

ordi

ni–

Poss

ibili

tà d

i ese

cuzi

one

parz

iale

deg

li or

dini

–G

li or

dini

pos

sono

term

inar

e in

eseg

uiti

al t

erm

ine

di

una

valid

ità m

assim

a

Page 34: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Iden

tific

hiam

o al

cune

rela

zion

iId

entif

ichi

amo

alcu

ne re

lazi

oni

•U

n in

vest

itore

poss

iede

una

cer

ta q

uant

ità d

i tito

li–

ha u

na c

erta

stra

tegi

a di

acq

uist

o

Bu

yS

tra

teg

y

pri

ce

()b

uy

()

(fro

m n

as

da

q)

Sto

ck

sym

bo

l()

pri

ce

()

(fro

m n

as

da

q)

sto

ckI

nfo

am

ou

nt

: lo

ng

= (

0)

bu

yPri

ce

: d

ou

ble

= (

0)

sto

ckI

nfo

()a

vaila

ble

()

(fro

m I

nve

sto

r)

Po

rtfo

lio

Inve

sto

r

ca

pita

l_ :

do

ub

le =

( c

ap

ital )

bu

y()

se

ll()

(fro

m n

as

da

q)

0..

1

1-b

uyS

tra

teg

y_

0..

1

11

1

1

1

-po

rtfo

lio_

Page 35: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Rel

azio

ni d

ella

cla

sse Order

Rel

azio

ni d

ella

cla

sse Order

•In

ord

ine

è re

lativ

o a

un

tito

lo

•Sa

da

chi i

nves

titor

e è

stat

o im

mes

so

•Pu

ò re

aliz

zare

ven

dita

o a

cqui

sto

Sto

ck

(fro

m n

as

da

q)

Ord

er

pri

ce

_ :

do

ub

le =

( p

ric

e )

am

ou

nt_

: l

on

g =

( a

mo

un

t )

valid

ity_

: u

ns

ign

ed

int

= (

va

lidit

y )

exe

cu

te()

(fro

m n

as

da

q)

0..

11

-sto

ck

_

0..

11

Inve

sto

r(f

rom

na

sd

aq

)

#in

ves

tor_

0..

11

0..

11

Bu

yOrd

er

exe

cu

te()

(fro

m n

as

da

q)

Se

llOrd

er

exe

cu

te()

(fro

m n

as

da

q)

Page 36: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Che

sig

nifi

ca ac

quis

tare

o v

ende

reC

he si

gni

fica

acqu

ista

re o

ven

dere

•U

n in

vest

itore

:–

deci

de la

qua

ntità

e il

prez

zo d

i azi

oni

da

ven

dere

in b

ase

alla

sua

stra

tegi

a–

crea

l’or

dine

rela

tivo

al ti

tolo

da

acq

uist

are/

ven

dere

•Si

ris

erva

di n

on sp

ende

re il

cap

itale

che

può

serv

ire

per

eseg

uire

un

acqu

isto

(altr

imen

ti va

in ro

sso…

!)•

Si r

iser

va d

i non

ven

dere

azi

oni g

ià im

pegn

ate

in u

n or

dine

di v

endi

ta (v

ende

rebb

e le

stes

se az

ioni

due

vo

lte!)

–M

ette

rlo

l’or

dine

sul m

erca

to

Page 37: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e vi

ene

emes

so u

n or

dine

di a

cqui

sto

Com

e vi

ene

emes

so u

n or

dine

di a

cqui

sto

an

Inve

sto

r :

Inve

sto

ra

Str

ate

gy

: B

uy

Str

ate

gy

an

Ord

er

: B

uy

Ord

er

na

sd

aq

: S

toc

kM

ark

et

bu

y(s

toc

k, c

ap

ital,

bu

yPri

ce

, a

mo

un

tAva

ilab

le)

Bu

yOrd

er(

this

, s

toc

k,

pri

ce

, a

mo

un

t)

pri

ce

( )

ad

dB

uy(

an

Ord

er)

res

erv

e(c

os

t)

co

st(

)

Page 38: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Def

inia

mo

le st

rate

gie

Def

inia

mo

le st

rate

gie

•St

rate

gie

di a

cqui

sto:

–C

ompr

o se

il t

itolo

sta

sale

ndo

•Pe

rché

cre

do

che

co

ntin

uerà

a sa

lire

–C

ompr

o se

il t

itolo

è sc

eso

•Pe

rché

cre

do

che

poi

ris

alir

à

–C

ompr

o a

cas

o •

es.:

sim

ulo

il c

aso

in c

ui h

o a

vuto

not

izie

che

mi h

ann

o co

nvi

nto

–C

ompr

o al

tre

azio

ni d

i un

titol

o ch

e st

a pe

rden

do•

Cos

ì med

io il

pre

zzo

di a

cqui

sto,

e p

iù fa

cilm

ente

pos

so re

cupe

rare

•St

rate

gie

di v

endi

ta:

–V

endo

se h

o gu

adag

nato

•Pe

rché

cos

ì rea

lizz

o il

gua

dag

no

–V

endo

per

non

per

dere

ulte

rior

men

te (S

top-

loss

)•

Cos

ì no

n p

erd

o u

lter

iorm

ente

–V

endo

a c

aso

•es

.: si

mul

o il

cas

o in

cui

ho

bis

og

no

di s

oldi

Page 39: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e so

no o

rgan

izza

te le

stra

tegi

eC

ome

sono

org

aniz

zate

le st

rate

gie

Ra

nd

om

Bu

yStr

ate

gy

(fro

m n

as

da

q)

Ra

nd

om

Se

llStr

ate

gy

(fro

m n

as

da

q)

Sim

ple

Bu

yStr

ate

gy

(fro

m n

as

da

q)

Sim

ple

Se

llStr

ate

gy

(fro

m n

as

da

q)

Sm

art

Bu

yStr

ate

gy

(fro

m n

as

da

q)

Sto

pL

os

sS

tra

teg

y(f

rom

na

sdaq

)

Inve

sto

r(f

rom

na

sd

aq

)

Bu

yS

tra

teg

y

bu

y()

pri

ce

()

(fro

m n

asd

aq)

-bu

yStr

ate

gy_

0..

11

0..

11

Il m

odel

lo è

este

ndib

ilea

nuov

e po

ssib

ili s

trat

egie

ch

e po

sso

defi

nire

in s

egui

to

Page 40: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Stra

tegi

e m

ultip

leSt

rate

gie

mul

tiple

•C

ome

gest

ire

la p

ossib

ilità

di s

egui

re p

poss

ibili

str

ateg

ie a

sec

onda

del

le

circ

osta

nze?

•U

na st

rate

gia

mul

tipla

è a

nch’

essa

una

st

rate

gia

–A

stra

zio

ne!

Page 41: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Stra

tegi

e m

ultip

leSt

rate

gie

mul

tiple

Inve

sto

r(f

rom

na

sd

aq

)

Co

mp

os

iteB

uy

Str

ate

gy

bu

y()

ad

d()

(fro

m n

as

da

q)

Bu

yS

tra

teg

y

pri

ce

_ :

do

ub

le

bu

y()

pri

ce

()

(fro

m n

as

da

q)

0..

11

-bu

yS

tra

teg

y_

0..

11

1

1..

*

1

1..

*

str

ate

gie

s_

loo

p o

ver

sta

teg

ies

( s

)

{

lo

ng

bu

yAm

ou

nt

= s

->b

uy(

s,

ca

pita

l, p

ric

e,

am

ou

nt

);

if

( b

uyA

mo

un

t !=

0 )

{

p

ric

e_

= s

->p

ric

e()

;

retu

rn b

uyA

mo

un

t;

}

}

p

ric

e_

= 0

;

retu

rn 0

;

Que

sto m

odel

lo d

ire

lazi

one

si ch

iam

aC

omp

osit

e P

atte

rn.

E’

com

une

a m

olte

cir

cost

anze

nelle

qua

le è

nec

essa

rio

un a

lber

odi

ogg

etti

com

posi

ti

Page 42: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e ve

ngon

o ge

stiti

gli

ordi

niC

ome

veng

ono

gest

iti g

li or

dini

na

sd

aq

: S

toc

kM

ark

et

sel

lOrd

er

: O

rde

rb

uy

Ord

er

: O

rde

rb

uye

r :

Inve

sto

rs

elle

r :

Inve

sto

r

pri

ce

( )

pri

ce

( )

if (s

ellP

ric

e <

= b

uyP

ric

e)

{ p

ric

e =

se

llPri

ce

;

. .

.}

am

ou

nt(

)

am

ou

nt(

)

exe

cu

te(p

ric

e,

am

oun

t)

exe

cu

te(p

ric

e,

am

ou

nt)

se

ll(s

toc

k, p

ric

e,

am

ou

nt)

bu

y(s

toc

k, p

ric

e,

am

ou

nt)

am

ou

nt

=

m

in(s

ellA

mo

un

t,

bu

yAm

ou

nt)

Page 43: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e ve

ngon

o si

ncro

nizz

ate

le o

pera

zio

niC

ome

veng

ono

sinc

roni

zzat

e le

ope

razi

oni

•Pe

r si

mul

are

ogni

“to

rnat

a” d

i acq

uist

i e

ven

dite

:–

i div

ersi

in

vest

itori

devo

no s

egui

re le

pro

prie

st

rate

gie

e dec

ider

e gl

i or

dini

–il

mer

cato

dev

e ge

stir

e gl

i or

dini

Page 44: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ges

tione

sim

ulat

a de

l “m

ultit

aski

ng ”

Ges

tione

sim

ulat

a de

l “m

ultit

aski

ng ”

Ta

sk

do

Ta

sk(

) :

void

(fro

m n

asd

aq)

Ta

skM

an

ag

er

do

Ta

sk(

) :

void

ad

d(t

as

k :

Ta

sk*

) :

void

(fro

m n

as

da

q)

10

..*

10

..*

-ta

sks

_

Inve

sto

r(f

rom

na

sd

aq

)

do

Ta

sk(

) :

void

Sto

ckM

ark

et

(fro

m n

as

da

q)

do

Ta

sk

() :

vo

id

Page 45: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Com

e fu

nzio

na il

“m

ultit

aski

ng”

Com

e fu

nzio

na il

“m

ultit

aski

ng”

ma

in p

rog

ram

ma

na

ge

r :

Ta

sk

Ma

na

ge

rin

ves

tor3

:

Inve

sto

rin

ves

tor3

:

Inve

sto

rn

as

da

q :

Sto

ck

Ma

rke

tin

ves

tor1

:

Inve

sto

r

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

do

Ta

sk(

)d

oT

as

k( )

Page 46: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Def

iniz

ione

del

le im

plem

enta

zion

iD

efin

izio

ne d

elle

impl

emen

tazi

oni

#include "Task.h"

#include <map>

class Stock;

class BuyStrategy;

class StockMarket;

class Investor

: public Task

{ public:

Investor( double

capital, StockMarket* );

~Investor();

void setBuyStrategy( BuyStrategy

* buy

);

void doTask();

void print();

bool buy

( Stock*, double

price, long

amount

);

bool

sell( Stock*, double

price, long

amount

);

void reserve( double

);

void release( double

);

void reserve( Stock *, long );

void release( Stock *, long );

long amountAvailable( Stock * ) const;

private:

double

capital_;

double reservedCapital_;

StockMarket

* market_;

BuyStrategy

* buyStrategy_;

struct stockInfo

{

stockInfo() : buyPrice(0), amount(0),

reserved(0) {}

double buyPrice;

long amount;

long reserved;

long available() const

{ return

amount

-reserved; }

};

map<Stock*, stockInfo> portfolio_;

double buyPrice( Stock * ) const;

long amount( Stock * ) const;

long amountAvailable( Stock * ) const;

};

Page 47: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Impl

emen

tazi

one

met

odi

Impl

emen

tazi

one

met

odi

void Investor::doTask()

{

if

( market_ == 0 ) return;

vector<Stock*>::const_iterator

s;

for( s = market_->begin(); s != market_->end(); s++ )

{

Stock * stock = *s;

double buyPrice

= Investor::buyPrice( stock );

long amountAvailable

= Investor::amountAvailable( stock );

double capitalAvailable

= capital_-

reservedCapital_;

long buyAmount

= buyStrategy_->buy( stock, capitalAvailable, buyPrice, amountAvailable

);

double

price = buyStrategy_->price();

if

( buyAmount

< 0 )

{

// cout

<< "sell order: " << -buyAmount

<< " " << stock->symbol()

//

<< " at " << price << endl;

market_->addSell( new

SellOrder(

this, stock, price, -buyAmount

) );

} else

if

(buyAmount

> 0 )

{

//

cout

<< "buy order: " <<

buyAmount

<< " " << stock->symbol()

//

<< " at " << price <<

endl;

market_->addBuy( new

BuyOrder(this, stock, price,

buyAmount

) );

}

}

// print();

}

Page 48: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Met

tere

tutto

insi

eme

Met

tere

tutto

insi

eme

•Is

tanz

iare

i ti

toli

e il

mer

cato

•Is

tanz

iare

gli i

nves

titor

i

•A

sseg

nare

le st

rate

gie

–i p

aram

etri

so

no

det

erm

inat

i in

bas

e a n

umer

i ps

eudo

casu

ali

•C

onne

ttere

i di

vers

i og

getti

•…

far

par

tire

il m

ultit

aski

ng!

Page 49: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Il m

ain

pro

gram

(1)

Il m

ain

pro

gram

(1)

StockMarket nasdaq;

Stock msft( "MSoft", 4.0);

nasdaq.add( &msft

);

msft.setPrice( 5.0 );

vector<Investor> investors;

const unsigned int numberOfInvestors

= 200;

for( int

k = 0; k < numberOfInvestors; k++ )

investors.push_back( Investor( 100000,

&nasdaq

) );

const unsigned int initialBuyers

= 100;

for

( int

j = 0; j < initialBuyers; j ++ )

{

investors[j].buy( &msft, msft.price(),

20000 );

} vector<Investor>::iterator

i

for( i = investors.begin(); i !=

investors.end(); i++ )

i->print();

for( vector<Investor>::iterator

i =

investors.begin(); i != investors.end();

i++ )

{

CompositeBuyStrategy

* strategy

=

new CompositeBuyStrategy;

strategy->add( new StopLossStrategy

( 0.20 + drand48()*0.30 ) );

strategy->add( new RandomBuyStrategy

( 0.05 + drand48()*0.15, 0.05 +

drand48()*0.015, 0.02 + drand48()*0.48 )

);

strategy->add( new RandomSellStrategy

( 0.002 + drand48()*0.003, 0.05 +

drand48()*0.015, 0.02 + drand48()*0.48 )

);

strategy->add( new SmartBuyStrategy

( 3, 0.010 + drand48()*0.020, 0.3 +

drand48()*0.7 ) );

strategy->add( new SimpleBuyStrategy

( 1, 0.005 + drand48()*0.015, 0.3 +

drand48()*0.7 ) );

strategy->add( new SimpleSellStrategy

( 0.1 + drand48()*0.20 ) );

i->setBuyStrategy( strategy

);

}

Page 50: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Il m

ain

pro

gram

(2)

Il m

ain

pro

gram

(2)

TaskManager

manager;

for( vector<Investor>::iterator

i = investors.begin();

i != investors.end(); i++ )

manager.add( &*i );

manager.add( &nasdaq

);

const unsigned int numberOfTasks

= numberOfInvestors

+ 1;

const unsigned int numberOfTransactions

= 5000;

const unsigned

long iterations

= (unsigned

long)( numberOfTasks

) *

(unsigned

long)(numberOfTransactions);

for( unsigned

long i = 0; i < iterations

; i++ )

manager.doTask();

for( vector<Investor>::iterator

i = investors.begin(); i !=

investors.end(); i++ )

i->print();

Page 51: gn i D a t s i L ca u L I A - Istituto Nazionale di Fisica …people.na.infn.it/~lista/ProgrammazioneAdOggetti/tra...ca r e l e c l a ss i • D a ll ’ a n a li s i t e s t u a l

Ris

ulta

ti…R

isul

tati…

0123456789

110

0120

0130

0140

01

spec

ulaz

ione

crol

lo

Tem

po (

gio

rni?

)

Quo

tazi

one

($?,

���