Académique Documents
Professionnel Documents
Culture Documents
Sekvencijalni Dijagrami I O.O. Dizajn: Se440 Razvoj Velikih Softverskih Sistema
Sekvencijalni Dijagrami I O.O. Dizajn: Se440 Razvoj Velikih Softverskih Sistema
Nedelja
as
Tematska
jedinica
Predavanja
Lekcija ili aktivnost
Sekvencijalni
dijagrami i o.o.
dizajn
Osobine
sekvencijalnih
dijagrama,
notacija
sekvencijalnih dijagrama
Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadrana. Bez prethodne pismene dozvole od
strane Univerziteta METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili memorisanje nekog dela ili itavih
sadraja ovog dokumenta., kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji drugi nain.
Copyright 2010 BELGRADE METROPOLITAN UNIVERSITY. All rights reserved. No part of this publication may be
reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying,
recording, scanning or otherwise, without the prior written permission of Belgrade Metropolitan University.
Oktobar, 2013.
Sadraj
Contents
Uvod ........................................................................................................................................................ 3
1] Sekvencijalni dijagrami ........................................................................................................................ 4
2] Poruke objekata................................................................................................................................... 5
3] Scenariji ............................................................................................................................................... 6
4] Primena sekvencijalnih dijagrama....................................................................................................... 7
5] O.o. dizajn ........................................................................................................................................... 8
6] Detaljni O.O. dizajn............................................................................................................................ 10
7] Identifikacija asocijacija ..................................................................................................................... 11
8] Paketska dekompozicija i klasna apstrakcija .................................................................................... 12
Zakljuak................................................................................................................................................ 13
Pitanja/Zadaci........................................................................................................................................ 14
Reference/Linkovi.................................................................................................................................. 15
2/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
Predavanje br. 2
Kljuna pitanja:
1) Kada se primenjuju sekvencijalni dijagrami?
2) Kakva je veza izmedju klasnih dijagrama i sekvencijalnih dijagrama?
3) Koji su ulazni modeli a koji izlazni modeli iz postupka o.o. dizajna?
3/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
1] Sekvencijalni dijagrami
Sekvencijalni dijagrami su deo UML-a. Na ovom dijagramu vertikalne linije predstavljaju instance klasa
tj. objekte. Svaka ova vertikalna linija je oznaena na vrhu sa imenom klase i dve take i onda ime
objekta tj. instance te klase. Horrizontalne linije predstavljaju pozive funkcija (tj. metoda objekata). Rep
strelice je na klasi koja poziva, a vrh strelice na klasi koja je pozvana (tj. na vertikalnoj liniji koja
predstavlja tu klasu). Ime funkcije (metode) je na strelici. Na liniji se moe postaviti vertikalni blok ija
duina predstavlja vreme izvravanja te funkcije. Sekvencijalni dijagrami mogu da se koriste da opiu
tzv. scenarije tj. nizove akcija koje su date u fazi zahteva (tzv. problemski domen,engl. problem
domain).
ObjektX: KlasaXX
Y:YY
Z:ZZ
W:WW
4/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
2] Poruke objekata
Poruke objekata su nain na koji objekti interaktuju. Poruka nekom objektu od strane nekog objekta
izaziva neku operaciju. Interakcija izmedju objekata je ilustrovana na donjem dijagramu. Operacija u
okviru nekog objekta proizvodi poruku koju prima drugi objekt, npr. operacija koju primi objekat X ima
oblik:
X.operation1(parameters),
a poruka koju primi objekat Y ima oblik: Y.operation2(parameters). Prema tome, ako objekat Y
zahteva operaciju operation1(parameters) objekta X, Y e poslati poruku X.operation1(parameters), a
ako objekat X zahteva operaciju operation2(parameters) objekta Y, onda X e poslati poruku
Y.operation2(parameters).
X.operation1(..)
Objekat X
Objekat Y
Y.operation2(.......)
U toku izvravanja nekog o.o. programa, objekti alju poruke. Npr. u nekom bankovnom programu,
objekat u klasi Account moe da poalje poruku objektu u klasi Transaction, u cilju izvravanja neke
transakcije na raunu, recimo uplate novca na raun. Ovakav tip informacije je bitan za dizajnera o.o.
sistema. Interakcije objekata se opisuju pomou tzv. sekvencijalnih dijagrama. Sekvencijalni dijagram
je deo UML-a. Ovaj dijagram ima vertikalne linije, koje predstavljaju objekte. Horizontalne strelice
prikazuju pozivanje funkcija. Rep strelice je kod pozivajue klase, a vrh strelice kod pozvane klase. na
strelici se napie ime funkcije. Ako kaemo da dijagrami stanja prikazuju treanzicije jednog objekta,
onda sekvencijalni dijagram prikazuje tranzicije sistema kao celine. Sekvencijalni dijagrami su
dragoceni za prikazivanje scenarija tj. konkretnih use-case sluajeva.
objeka1
objekat2
objekat3
funkcija1(..)
5/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
3] Scenariji
Tzv. scenario je definisan kao opis niza tj. sekvence akcija opisanih u problemskom domenu (fazi
zahteva). Odnosno, scenario je sekvena akcija koje kompletiraju tj. zaokruuje neki odredjeni
korisniki zadatak. Alternativne sekvence aktivnosti se analiziraju samo ako imaju razliite scenarije.
Scenariji se koriste da ilustruju
U okviru UML, sekvencijalni dijagrami (tj. interakcioni dijagrami ) se koriste da opiu scenarije.
Takodje, scenariji se mogu specificirati kao lista sekvence (niza) aktivnosti. Scenariji tj. sekvence
aktivnosi omoguuju da se odrede funkcije sistema, kao i objekti potrebni da podre ove funkcije.
Primer :
6/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
identifikaciju uskih grla sistema (tj. objekata kroz koje prolazi mnogo poruka)
elaboraciju scenarija
XX
XX
YY
YY
asocijacija
7/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
5] O.o. dizajn
Postoji itav niz metoda softverskog dizajna baziranih na objektima (klasama). U moderno vreme, na
velikim projektima, glavnu ulogu igraju
Naslednost klasa
Polimorfizam funkcija
Problemski
domen
OO analiza
OO dizajn
Construction
Use-case
model
Konceptualni model
Sekvencijalni
dijagrami
Klasni dijagram
Sekvencijalni
dijagrami
8/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
9/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
i dodavanje kolekcionih klasa (klase iz biblioteke, npr. C++ biblioteke ili Java biblioteke, u
zavisnosti koji implementacioni jezik je izabran )
Dakle detaljni klasni dijagram i detaljni sekvencijalni dijagram su predmet detaljnog dizajna.
Usecase
model
Analiz
a
Dizajn
sistema
Detaljni
dizajn
Implerm
entacija
10/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
7] Identifikacija asocijacija
Poto se izvri identifikacija objekata, posle toga moe se pristupiti identifikaciji asocijacija izmedju
objekata. Asocijacija oznaava relaciju/vezu/povezanost izmedju dva objekta. Postoje razliiti oblici
asocijacija. Asocijacija izmedju dva objekta znai da kod implementacije programa, postojae veza
izmedju objekata. Naime asocijacija e definisati kakav pristup jedan objekat ima prema drugim
objektima. Ovo je od sutinske vanosti kod efikasne implementacije funkcionalnosti.
Relacija izmedju dve klase u UML-u se zove asocijacija. Na klasnom dijagramu asocijacije su
predstavljene pravim linijama. Asocijacija nastaje ako su dve klase u nekoj vezi tj. nekoj povezanosti
tj. Interakciji. Evo nekih primera,
klasa Director (direktor) je u vezi sa klasom Worker (radnik) jednostavno na osnovu injenice
da direktor upravlja radnicima
klasa Journez (put) je u vezi sa klasom Car (auto) na osnovu injenice da avion obavlja neko
putovanje
Director
Worker
manages
Asocijacijama mogu da se daju imena u cilju eksplicitnog dokumentovanja veze izmedju dve klase.
Alternativno, umesto imena asocijacije, mogu se koristiti imena uloga koje klase imaju u nekoj
aocijaciji, za svaku klasu pojedinano. Npr. klasa Univezitet i klasa Student su povezane, i klasa
Univerzitet ima ulogu domaina (Host) a klasa Student ima ulogu lana univerziteta (StudentMember).
Kod dokumentovanja asocijacija, treba izabrati jedan od ova dva naina, ili koristiti imena asocijacija ili
njihovih uloga, roles..
University
Host
Student
Member
Slika : Uloge asocijacije
Drugi prilaz je da
11/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
Podsist
em1
Podsist
em1
Podsist
em1
Drugi vid apstrakcije je klasna apstrakcija. Naime, pojedine klase na klasnom dijagramu se mogu
apstrahovati. Na taj nain imamo dva tipa klasnog dijagrama:
high-level klasni dijagram (tj. apstraktni tj. nedetaljan klasni dijagram), gde su pojedine klase
izbaene
low-level klasni dijagram (tj. detaljni klasni dijagram), gde su sve klase ukljuene
Dole je dat primer detaljnog i apstraktnog klasnog dijagrama, gde vidimo da je jedna klasa izbaene iz
apstraktnog klasnog dijagrama u odnosu na detaljni klasni dijagram.
Restoran
Rezervaci
ja
Klijent
Restoran
Klijent
12/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
Zakljuak
13/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
Pitanja/Zadaci
1. Napisati scenarije za softver apoteke?
2. Nacrtati klasni dijagram sa ucrtanim asocijacijama klasa za softver apoteke?
3. Nacrtati sekvencijalne dijagrame za softver apoteke?
4. Dati jedan primer klasne apstrakcije?
14/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn
Reference/Linkovi
1] http://www.cs.toronto.edu/~sme/CS302
2] http://en.wikipedia.org/wiki/Object_orijented_design
3]
http://www.websphereusergroup.org.uk/wug/files/presentations/25/25_19_ArchitectLargeSystems.pdf
15/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn