Vous êtes sur la page 1sur 18

PREDMET

SE440 RAZVOJ VELIKIH SOFTVERSKIH SISTEMA


Predavanje broj 1
SE440-P01

Veliki softverski projekti i UML (Unified Modelling Llanguage)

Nedelja

as

Tematska
jedinica
Veliki
softverski
projekti i UML

Predavanja
Lekcija ili aktivnost

Rezultat znanja ili vetine


koje student treba da
dobije

Veliki softverski projekti, UML

Izazovi
kod
velikih
softverskih sistema, sadraj
UML-a

Klasni
dijagram,
dijagrami
stanja, komponentni dijagrami

Upotreba UML 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.

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Sadraj

Contents
Uvod ........................................................................................................................................................ 3
1] Veliki softverski projekti ....................................................................................................................... 4
2] UML ..................................................................................................................................................... 5
3] Klasni dijagram pojmovi/primena ..................................................................................................... 6
4] Nasledje klasa ................................................................................................................................... 10
5] Komponentni dijagrami...................................................................................................................... 11
6] Relacija zavisnosti elemenata modela .............................................................................................. 13
7. Maine stanja primeri ..................................................................................................................... 14
Zakljuak................................................................................................................................................ 16
Pitanja/Zadaci........................................................................................................................................ 17
Reference/Linkovi/Dopunska literatura ................................................................................................. 18

2/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Predavanje br. 1

Veliki softverski projekti i UML (Unified


Modelling Language)
Uvod
Softverski sistem je sistem sastavljen od komponenti koje medjusobno komuniciraju a koje su
bazirane na softveru koji predstavlja deo kompjuterskog sistema, dok je kompjuterski sistem sistem
koji predstavlja kombinaciju hardvera i softvera. Softverski sistem se sastoji od itavog niza odvojenih
programa. Dok je kompjuterski program u stvari skup tj. lista instrukcija, softverski sistem ukljuuje u
sebe i sistemsku dokumentaciju.

Ovo predavanje zapoinje razmatranjem koji su izazovi kod razvoja velikih softverskih sistema tj. kod
velikh softverskih projekata. Isto tako, u ovom predavanju daemo pregled tj. uvod u UML (Unified
Modelling Language). Potsetiemo se od kojih modela se sastoji UML, i koje su osobine i svrha ovih
modela. Takodje, proanaliziraemo nasledje i agregaciju klasa tj. objekata.
Kljuna pitanja:

Koji su izazovi kod razvoja velikih softverskih sistema?


emu slue klasni dijagrami i paketski dijagrami?

emu slue sekvencijalni dijagrami i dijagrami aktivnosti?


Koja je svrha use-case dijagrama i dijagrama stanja?

ta je to generalizacija i agregacija i kompozicija?


ta je to veliki softverski sistem?

3/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

1] Veliki softverski projekti


Veliki softverski projekti su veliki izazov za softveriste, i postoji mnogo problema i problematinih
situacija kod razvoja velikih softverskih sistema. Vani aspekti kod razvoja velikih softverskih sistema
su:

Modelovanje pomou UML

Upravljanje projektom

Reverzibilno inenjerstvo (reverse engineering)

Analiza zahteva softvera

Verifikacija i validacija (ukljuujui testiranje)

Softverska arhitektura i dizajn

Kod velikih softverskih projekata sledei su problemi:

Izvorni kod se stalno menja.


Stalno se pojavljuju nove greke (bugs) koje je potrebno popraviti.

Zahtevi se stalno menjaju.


Tim softverista moe biti georafski distribuiran.

Vrlo je teko upravljati velikim softverskim projektima.


Vrlo je teko planiranje velikih softverskih projekata.

Veliki je rizik od neuspeha kod velikih softverskih projekata.


Potrebne su promene u toku izrade i upravljanja velikih softverskih projekata.

itd

4/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

2] UML
UML je grafiki jezik koji slui kod modelovanje OO softvera. Poslednja verzija je UML 2, ali moe se
oekivati dalja evolucija ovog jezika. UML je samo jezik tj. sistem oznaka tj. sistem obeleavanja
(notation tj. notacija) a nije metod modelovanja ili metod razvoja softvera. UML je postao standard u
softverskoj industriji, i postoji niz UML alata na tritu. UML je skup itavog niza modela:

Use-case (korisniki) dijagrami

Klasni dijagrami

Sekvencijalni dijagrami

Dijagrami aktivnosti

Dijagrami stanja

Paketski dijagrami

itd

UML klasni dijagrami opisuju modularnu strukturu sistema, informacionu strukturu sistema, i relaciju
izmedju pojedinih grupa podataka. UML paketski dijagrami prikazuju generalnu arhitekturu sistema i
veze izmedju komponenti sistema. Sekvencijalni dijagrami se bave sekvencijama poruka izmedju
objekata, interakcijama iymedju korisnika i sistema, i pojedinim scenarijima aktivnosti sistema. Usecase dijagrami daju listu funkcija sistema, vizuelni pregled glavnih yahteva sistema, i pogled na sistem
sa korisni;ke take gledita. Dijagrami stanja opisuju reakcije sistema na dogadjaje, i dinamiko
ponaanje sistema. A dijagrami aktivnosti prikazujuposlovne procese, i povezanost zadataka.

Klasni dijagrami prikazuju operacije grupisane po klasama, takodje prikazuju naslednost klasa i
agregaciju klasa. Na osnovu klasnih dijagrama moe se direktno pristupiti implementaciji tj. pisanju
izvornog koda programa.

5/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

3] Klasni dijagram pojmovi/primena


KLASNI DIJAGRAM - POJMOVI:
Klasa opisuje skup slinih objekata sa

slinim atributima

zajednikim operacijama

zajednikim relacijama sa drugim klasama

zajednikim znaenjem

Npr. neki papagaj ima ime, teinu, boju, i moe dan jede, peva, itd. To se moe predstaviti grafiki kao
dole na slici, gde je Papagaj ime klase, a atributi su: ime i boja, a operacije jesti() i spavati().

Papagaj
ime
boja
jesti()
pevati()
Slika : Klasa Papagaj

Klasa oznaava u stvari skup slinih objekata, i objekti se takodje predstavljaju kao instance klase.
Objekti se takodje mogu predstaviti grafiki, kao dole na slici.

Pera:Papagaj
ime: Pera
boja : uta
jesti()
pevati()
Slika : Objekat Pera iz klase Papagaj

6/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Klasni dijagrami prikazuju skupove klasa i njihove medjusobne relacije. Neka relacija dve klase
predstavlja vezu izmedju te dve klase. U okviru UML definisano je nekoliko tipova relacija izmedju
klasa:

asocijacija

agregacija (i kompozicija)

generalizacija (tj. nasledje)

zavisnost

Asocijacije klasa se na klasnom dijagramu prikazuju kao linije koje povezuju klase, kao to je dole
ilustrovano.

Guest

Hotel

Reservation

Slika : klasni dijagram

Asocijacije klasa imaju sledee karakteristike:

multiplicitet (multiplicity)

smer (direction)

ulogu (role)

7/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

KLASNI DIJAGRAM-PRIMENA:
Klasni dijagram predstavlja jedan statiki model,gde se vide relacije izmedju klasa tj. relacije koje
povezuju klase (asocijacije klasa, agregacija klasa, nasledje klasa), a takodje atributi i operacije klasa.
Dakle, klasni diagram ne opsuje neku konkretnu putanju kod izvravanja ovog modela, ve prikazuje
sve mogue putanje i sve vane take modela. Npr. dijagram dole opisuje softver banke, gde se vidi
statika struktura modela. Ovaj dijagram je dobijen na osnovu problemskog domena (problem domain)
gde se opisuje softver banke na poetku razvoja softvera. Na dijagramu su prikazana samo imena
klasa i veze izmedju njih. Imamo klase: Client, Account, Transaction, Deposit, Withdraw, i Borrowing.
Ucrtane su I asocijacije klasa, pri emu su klase Transaction i klase Deposit, Withdraw, Borrowing
povezane nasledjem.

Client

Transaction

Account

Deposit

Withdraw

Borrowing

Slika: klasni dijagram

Klasni dijagram prikazuje statiku strukturu sistema ili podsistema, a i statiku strukturu samim klasa
(atributi, operacije). Klasni dijagram se koristi sve vreme razvojnog procesa (faze razvojnog procesa:
problemski domen tj. opis zahteva, analiza zahteva, dizajn, implementacija, itd), pri emu se ovaj
klasni dijagram postepeno razvija i komplikuje i dopunjava kako detaljima tako i novim klasama.

Kod velikh projekta, kompletni klasni dijagram ima puno klasa, i takav dijagram postaje nepregledan.
Poeljno je velike klasne dijagrame predstaviti u nekoliko delova. Npr. gornji klasni dijagram moe se
predstaviti iz dva dela, prvi deo obuhvata glavne glase (klase Client, Account, Transaction), a drugi
deo samo klasu Transactioni I njene podklase Deposit, Withdraw, I Borrowing. Takodje atributi I
operacije ne moraju biti napisane na glavnom klasnom dijagramu ve na sekundarnom klasnom
dijagramu, ili ak se svaka klasa moe predstaviti posebno, sa detaljnim spiskom atributa I operacija.

Dakle, veliki klasni dijagrami se mogu predstaviti na tri nivoa:


jedan glavni klasni dijagram koji prikazuje glavne klase sistema,

niz sekundarnih dijagrama koji prikazuju manje vane klase sistema a koje su povezane sa
glavnim klasama,

i niz individualnih dijagrama klasa gde se detaljno prikazuje svaka klasa.

8/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Client

Account

Transaction

Slika: glavni klasni dijagram (top-level class diagram)

Transaction

Deposit

Withdraw

Borrowing

Slika: sporedni (sekundarni) klasni dijagram (second-level class diagram)

Ime klase

Atributi klase

Operacije klase

Slika: individualni klasni dijagram

Zadaci:
1. Nacrtaj klasni dijagram za softver sportske radnje.
2. Klasni dijagram sportske radnje predstaviti preko glavnog klasnog dijagrama I sporednog
klasnog dijagrama.
Reference:
UML 2, M.J.Chonoles, J.A.Schardt, Wiley publishing, isbn 0-7645-2614--6

9/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

4] Nasledje klasa
Generalizacija tj. nasledje klasa opisuje hijerarhijsku vezu klasa izmedju superklase (superclass) i
podklasa (subclass). Npr. superklasa Student a podklase GraduaredStudent i UndergraduateStudent.
Podklasa nasledjuje od superklase

atribute

operacije

asocijacije

Pri tome, podklasa moe da nadjaa (override) neku nasledjenu metodu. A superklasa moe biti
proglaena abstraktnom klasom to znai da takva klasa nema objekata. Dole je grafiki prikazana
naslednost klasa.

Student

GradStudent

Fakultet

UndgrStudent

Slika: Nasledje klasa

10/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

5] Komponentni dijagrami

Kod razvoja softverskih sistema sledee dve tehnike su korisne u cilju smanjenja rizika da ovaj proces
prodje najbolje mogue:

Smanjenje i jasno definisanje veze (interfejsa) izmedju softverskih komponenti neke aplikacije,
Ponovna upotreba postojeih komponenti ija je funkcionalnost ve potvrdjena

Dakle, predstavljanje sistema kao skupa komponenti, gde su komponente povezane preko interfejsa
(dva tipa interfejsa, ulazni tj. zahtevani interfejs i izlazni tj. pruajui interfejs), moe biti vrlo
korisno jer omoguuje ponovnu upotrebu komponenti i optimizaciju interfejsa.

Komponente mogu biti individualne klase ili kolekcije klasa. Medjutim, kakva god bila unutranja
struktura komponente, mora se definisati zahtevani interfejs i pruajui interfejs komponente.
Komponentni dijarami prikazuju skup komponenti povezanih preko njihovih interfejsa. Komponentni
dijagrami su deo UML-a. Komponentni dijagrami se koriste kod dizajna neke komponente ili celog
sistema. Komponentni dijagrami omoguuju da se detaljni dizajn neke komponente dekomponuje od
dizajna celog sistema. Na donoj slici prikazana je komponenta koja se npr. zove Payment sa
pruajuim interfejsom (provided interface) koji se zove npr. Transaction i sa zahtevanim interfejsom
(required interface) koji se npr. zove ID. Ova slika (komponentni dijagram) sadri samo jednu
komponentu, medjutim obino komponentni dijagrami sadre niz komponenti povezanih preko njihovih
interfejsa.

Provided
inbterface
Zzzzz
<component>
Xxxx

Required
interface
Yyyy
Slika: prikaz jedne komponente i njenih interfejsa

11/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Modelovanje/primena komponentnih dijagrama:

Komponentni dijagrami od samog poetka pa do kraja razvojnog procesa softverskog sistema UP


(UP- Ujedinjeni proces) se koriste kao jedno izvanredno sredstvo za dokumentovanje tj. prikazivanje
sistema. Na samom poetku UP moe se kreirati komponentni dijagram kao poetna skica sistema.
Isto tako, na kraju UP, komponentni dijagram moe da definie precizno interfejse izmedju
komponenti.

U toku procesa razvoja komponentnih dijagrama, sledei su zadaci:

Identifikovati komponente i relacije zavisnosti ( UML dependencies) izmedju komponenti

Identifikovati podkomponente u okviru komponenti

Precizirati interfejse izmedju komponenti

Komponente i relacije zavisnosti (dependencies)izmedju komponenti mogu se identifikovati na


samom poetku razvojnog procesa, im se use-case model oformi. Dole je dat primer jednog
komponentnog dijagrama sistema (ukljuujui i relacije zavisnosti) koji je dobijen na samom poetku
rsazvojnog procesa.

<component>
Komp4

<component>

<component>

<component>

Komp1

Komp2

Komp3

Slika: komponentni dijagram sa definisanim relacijama zavisnosti

12/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

6] Relacija zavisnosti elemenata modela


UML modeli su sastavljeni od elemenata (klasni dijagram, komponentni dijagram, paketski dijagram,
itd.). UML definie relaciju zavisnosti (dependency relationship tj. jednostavno dependency, ili
mnoina dependencies) izmedju elemenata modela (klasa, komponenti, paketa, itd), koja oznaava
da neki element zavisi od drugog elementa, tj. da za njegovo funkcionisanje je neophodna ta
komponenta. Relacija zavisnosti se na dijagramu predstavlja kao isprekidana strelica, i dole je dat
primer prikazivanja relacija zavisnosti na jednom paketskom dijagramu (svaki paket moe da obuhvata
po itav niz klasa). Strelica (isprekidana) od Paket1 prema Paket2 ukazuje da Paket1 zavisi od
Paket2. Pri tome, Paket2 moe da ima klase koje nisu javne, tako da samo javne klase su dostupne
za Paket1, odnosno asocijacije izmedju klasa u Paket1 i Paket2 mogu biti uspostavljene samo sa
javnim klasama u Paket2.

Paket1

Paket2

Paket3

Slika: relacije zavisnosti izmedju elemenata modela

13/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

7. Maine stanja primeri


Maine stanja (Dijagrami stanja):
Maine stanja se najvie koriste da prikau ponaanja klasa, ali mogu se koristiti da opiu stanja
drugih elemenata modela, npr. use cases, actors, podsistema i operacija. Maine stanja se mogu
koristiti kod analize sistema da opu sloena ponaanja elemenata sistema u sistemskom okruenju,
npr. ponaanje nekog korisnika. Takodje, kod dizajna sistema, koriste se da opiu objekte. Oni
spadaju u UML dijagrame, koji se mogu koristiti da prikau aktivnosti, komunikacione dijagrame, i
sekvencijalne dijagrame. Takodje za dizajn protokola.

Primer:
Maine stanja se puno koriste kod dizajna. Dole je nacrtan dijagram stanja tj. maina stanja koja
opisuje podatak o rezervaciji u hotelu.

Rezervisano

Gost doao
Otkazan
boravak
ili
vreme isteklo

Boravak u toku

Gost otiao

Slika: Maina stanja koja opisuje podatak o rezervaciji u hotelu

Primer:
Dole je nacrtan dijagram stanja tj. maina stanja koja opisuje interakciju izmedju prodavca u radnji
koja prodaje knjige, i kupca koji se interesuje za neku odredjenu knjigu .

14/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Kupac ulazi u
radnju

Kupac ne nalazi
knjigu

Nadjena knjiga

Kupac pita za
knjigu

Plaanje

Kupac odlazi
Prodavac
ne
nalazi knjigu

Slika: MS opisuje kupovinu knjige

ZADACI:
1. Nacrtati mainu stanja za sluaj komandne table televizora
2. Napisati scenarije za interakciju izmedju prodavca I kupca u muzikoj radnji, gde kupac npr.
eli da kupi odredjeni CD i da plati gotovinom. Predstaviti ove scenarije pomou maine
stanja.
REFERENCE:
D.Gustafson, Software engineering, isbn 0-07-137794-8, McGraw-Hill

15/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Zakljuak

Kod razvoja softverskih sistema sledee dve tehnike su korisne u cilju smanjenja rizika da
ovaj proces prodje najbolje mogue: Smanjenje i jasno definisanje veze (interfejsa) izmedju
softverskih komponenti neke aplikacije,Ponovna upotreba postojeih komponenti ija je
funkcionalnost ve potvrdjena. Dakle, predstavljanje sistema kao skupa komponenti, gde su
komponente povezane preko interfejsa (dva tipa interfejsa, ulazni tj. zahtevani interfejs i
izlazni tj. pruajui interfejs), moe biti vrlo korisno jer omoguuje ponovnu upotrebu
komponenti i optimizaciju interfejsa.

Komponente mogu biti individualne klase ili kolekcije klasa. Medjutim, kakva god bila
unutranja struktura komponente, mora se definisati zahtevani interfejs i pruajui interfejs
komponente. Komponentni dijarami prikazuju skup komponenti povezanih preko njihovih
interfejsa. Komponentni dijagrami su deo UML-a. Komponentni dijagrami se koriste kod
dizajna neke komponente ili celog sistema. Komponentni dijagrami omoguuju da se detaljni
dizajn neke komponente dekomponuje od dizajna celog sistema.

16/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Pitanja/Zadaci

1. Nacrtati komponentni dijagram gde su tri komponente povezane preko svojih interfejsa?
2. Zato su korisni komponentni dijagrami?
3. Dati primer nasledja gde je jedna superklasa I dve podklase? Definisati metode za ove
podklase I superklasu? Prikazati klasni dijagram za ovu hijerarhiju klasa?
4. Nacrtaj klasni dijagram za softver sportske radnje.
5. Klasni dijagram sportske radnje predstaviti preko glavnog klasnog dijagrama I sporednog
klasnog dijagrama.
6. Nacrtati mainu stanja za sluaj komandne table televizora
7. Napisati scenarije za interakciju izmedju prodavca I kupca u muzikoj radnji, gde kupac npr.
eli da kupi odredjeni CD i da plati gotovinom. Predstaviti ove scenarije pomou maine
stanja.

17/18
Naziv predavanja: Veliki softverski projekti i UML

SE440 Razvoj velikih softverskih sistema


Predavanje br. 1

Reference/Linkovi/Dopunska literatura

1] http://www.cs.toronto.edu/~sme/CS302
2] http://en.wikipedia.org/wiki/Software_system
3]
http://www.websphereusergroup.org.uk/wug/files/presentations/25/25_19_ArchitectLargeSystems.pdf
4] UML, S.Bennett, J. Skelton, K.Lunn, McGraw-Hill, isbn 0-07-710741-1
5] UML 2, M.J.Chonoles, J.A.Schardt, Wiley publishing, isbn 0-7645-2614--6
6] D.Gustafson, Software engineering, isbn 0-07-137794-8, McGraw-Hill

18/18
Naziv predavanja: Veliki softverski projekti i UML

Vous aimerez peut-être aussi