Vous êtes sur la page 1sur 15

PREDMET

SE440 RAZVOJ VELIKIH SOFTVERSKIH SISTEMA


Predavanje broj 2
SE440-P02

Sekvencijalni dijagrami i o.o. dizajn

Nedelja

as

Rezultat znanja ili vetine


koje student treba da
dobije

Tematska
jedinica

Predavanja
Lekcija ili aktivnost

Sekvencijalni
dijagrami i o.o.
dizajn

Sekvencijalni dijagrami, poruke


objekata, scenariji

Osobine
sekvencijalnih
dijagrama,
notacija
sekvencijalnih dijagrama

O.o. dizajn, detaljni o.o. dizajn,


primena
sekvencijalnih
dijagrama

Primena o.o. dizajna, tehnika


detaljnog o.o. dizajna

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.

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

Predavanje br. 2

Sekvencijalni dijagrami i o.o. dizajn


Uvod
U ovom predavanju prvo emo detaljno prodiskutovati sekvencijalne dijagrame i njihovu primenu,
poruke objekata i scenarije upotrebe sistema. A posle toga, razmotriemo metodologiju o.o. dizajna,
pri emu emo pregledati koje su faze i koji modeli ulaz i izlaz iz o.o. dizajna. Takodje, analiziraemo
asocijacije klasa i injihovu identifikaciju?

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

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

Slika : Sekvencijalni dijagram za scenario Y-X-W-Z

4/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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(.......)

Slika: Poruke objekata

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(..)

Slika : Sekvencijalni dijagram

5/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

bitne sposobnosti sistema

konkretnu upotrebu sistema

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 :

Scenario 1: Aktivnost 1, aktivost 2, aktivnost 3

Scenario 2: Aktivnost 4, aktivost 5, aktivnost 6

Scenario 3: Aktivnost 7, aktivost 8

6/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

4] Primena sekvencijalnih dijagrama


Postavlja se pitanje kada i kako koristiti sekvencijalne dijagrame? Sekvencijalni dijagrami se mogu
koristiti u sledeim situacijama:

za poredjenje razliitih tj. alternativnih dizajn opcija

identifikaciju uskih grla sistema (tj. objekata kroz koje prolazi mnogo poruka)

analizu dizajn ablona (design patterns)

elaboraciju scenarija

analizu korisnikog interfejsa

Treba naglasiti da kod primene sekvencijalnih dijagrama

putanje poruka na sekvencijalnom dijagramu moraju biti konzistentne sa klasnim


asocijacijama

imena klasa na sekvencijalnim dijagramima i klasnim dijagramima moraju biti konzistentna

XX

XX

YY

YY
asocijacija

Slika: konzistentnost klasnog dijagrama I sekvencijalnog dijagrama

Sekvencijalni dijagrami se mogu koristiti na sledee naine:

modelovanje interakcije objekata sistema (high-level interakcija, tj. interakcija ne samo


izmedju dva objekta ve interakcija itavog niza objekata)

modelovanje interakcije podsistema (sistemski sekvencijalni dijagram)

modelovanje interakcije objekata za neki use-case

modelovanje interakcije objekata u toku neke operacije

7/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

OO (objektno-orijentisan) dizajn je jedan pristup softverskom dizajnu.U ovom pristupu softverski


system se planira tj. projektuje kao skup objekata koji su u medjusobnoj interakciji. Rezultati tj. izlazni
podaci iz OO orijentisane analize softvera predstavlja ulaz za OO dizajn. Medjutim, ova dva procesa
su u povratnoj sprezi I rayvijaju se iterativno, kao to se vidi na donjoj slici. Dakle, izlazi iz OO analize
nisu do kraja razvijeni kada se koriste kod OO dizajna, to znai da se OO analiza i OO dizajn
obavljaju paralelno, iterativno i u medjusobnoj vezi. Problemski domen je inicijalni opis softvera
(softverski zahtevi). Konstrukcija softvera (software construction) obuhvata detaljni dizajn, kodiranje,
debugging, integraciju, i razvojno testiranje.

Problemski
domen

OO analiza

OO dizajn

Construction

Slika : veza izmedju OO analize i OO dizajna

Sledei su izlazi OO analize tj. ulazi OO dizajna:


Konceptualni model je rezultat OO analize i on opisuje objekte u problemskom domenu
Use-case modelovanje
Sistemski sekvencijalni dijagrami, koji za razliite use-case scenarije prikazuju dogadjaje (i
redosled dogadjaja) koje spoljni akteri proizvode

Use-case
model

Konceptualni model

Sekvencijalni
dijagrami

Klasni dijagram

Sekvencijalni
dijagrami

Slika: artifakti OO analize i OO dizajna

8/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

Potsetimo se osnovnih koncepata OO programiranja: klase/objekti, sakrivanje podataka, nasledje


klasa, upotreba interfejsa funkcija (definisanje potpisa funkcije bez potrebe da se uradi
implementacija funkcije), polimorfizam funkcija.

Sledei su koncepti OO dizajna:


Kreiranje klasnog dijagrama na osnovu konceptualnog dijagrama, gde se obino vri
mapiranje entiteta iz konceptualnog dijagrama u klase
Identifikacija atributa
Upotreba dizajn ablona (design-patterns) ako je to mogue
Definisanje aplikacionog okvira (application framework) ako je to mogue, gde je aplikacioni
okvir termin koji oznaava skup biblioteka ili klasa koje mogu biti upotrebljene za standardnu
strukturu neke aplikacije , i to za odredjeni operativni sistem

A sledei su izlazi (izlazni rezultati) OO dizajna:


Sekvencijalni dijagrami, gde se sistemski sekvencijalni dijagrami pretvaraju (proiruju) da bi se
dodali objekti koji upravljaju dogadjajima u sistemu (sekvencijalni dijagrami se sastoje od
vertikalnih linija koje prikazuju objekte a horizontalne linije predstavljaju poruke izmedju
objekata I to po redosledu po kom nastaju)
Klasni dijagram koji prikazuje statiku strukturu sistema

9/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

6] Detaljni O.O. dizajn


Detaljni dizajn (aktivnosti i modeli) obuhvata:

Detaljna specifikacija klasa

Detaljna specifikacija relacija klasa

Detaljna specifikacija interakcija

Ovi modeli detaljnog dizajna treba ustvari da predstavljaju specifikaciju programa.

Tokom analize nisu bili vani

Detalji vidljivosti klasa,

i detalji asocijacija klasa,

takodje detaljna specifikacija atributa,

i detaljna specifikacija operacija

I detaljni interakcioni dijagrami

Dodavanje interfejs klasa, kontrolnih klasa

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

Slika: aktivnosti/modeli razvoja softverskog sistema

10/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

Slika: Asocijacija dve klase

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

Postoje vie prilaza za odredjivanje asocijacije izmedju objekata. Jedan pristup je da

se identifikuju asocijacije koje postoje u problemskom domenu.

Drugi prilaz je da

se identifikuju asocijacije preko identifikacije funkcionalnosti koja je potrebna. Ako jedan


objekat treba da ima funkcionalnost koja zahteva pristup drugim objektima, tada jedna
asocijacija, ili niz asocijacija, mora postojati izmedju dva objekta.

Da napomenemo, primenom tehnike dizajna odozgo-nadole, tj. postepenim poveavanjem nivoa


detaljnosti modela objekata, moe se klasni model pribliiti implementaciji, i pri tome optimizirati u
skladu sa atributima dizajna, a to je visoka kohezija klase, tj. ugrupnjavanju slinih funkcija, i niska
povezanost izmedju klasa su poeljne osobine modela objekata, koje ga pribliavaju optimalnosti.
Znai kreiranje klasa se obavlja imajui na umu kriterijum kohezije i povezanosti. Prema tome,
identifikacija asocijacija tj veza izmedju objekata je vrlo vaan deo kreiranja klasnog modela.

11/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

8] Paketska dekompozicija i klasna apstrakcija


Veliki sistem moe se podeliti na niz podsistema, i svaki podsistem predstaviti kao paket. Ovo je dole
ilustrovano na slici. Na ovaj nain se vri apstrakcija celog jednog podsistema tako to se zanemaruju
detalji unutar podsistema. Onda, npr. interakcija ovih podsistema moe se modelovati preko
sistemskog sekvencijalnog dijagrama.

Podsist
em1
Podsist
em1

Podsist
em1

Slika: paketska dekompozicija

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

Slika: detaljni (low-level) klasni dijagram

Restoran

Klijent

Slika: apstraktni (high-level) klasni dijagram

12/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

Zakljuak

A sledei su izlazi (izlazni rezultati) OO dizajna:


Sekvencijalni dijagrami, gde se sistemski sekvencijalni dijagrami pretvaraju (proiruju) da bi se
dodali objekti koji upravljaju dogadjajima u sistemu (sekvencijalni dijagrami se sastoje od
vertikalnih linija koje prikazuju objekte a horizontalne linije predstavljaju poruke izmedju
objekata I to po redosledu po kom nastaju)
Klasni dijagram koji prikazuje statiku strukturu sistema

Sekvencijalni dijagrami se mogu koristiti na sledee naine:

modelovanje interakcije objekata sistema

modelovanje interakcije podsistema

modelovanje interakcije objekata za neki use-case

modelovanje interakcije objekata u toku neke operacije

13/15
Naziv predavanja: Sekvencijalni dijagrami i o.o. dizajn

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

SE440 Razvoj velikih softverskih sistema


Predavanje br. 2

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

Vous aimerez peut-être aussi