Académique Documents
Professionnel Documents
Culture Documents
Nedelja
as
Tematska
jedinica
Veliki
softverski
projekti i UML
Predavanja
Lekcija ili aktivnost
Izazovi
kod
velikih
softverskih sistema, sadraj
UML-a
Klasni
dijagram,
dijagrami
stanja, komponentni dijagrami
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] 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
Predavanje br. 1
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:
3/18
Naziv predavanja: Veliki softverski projekti i UML
Upravljanje projektom
itd
4/18
Naziv predavanja: Veliki softverski projekti i UML
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:
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
slinim atributima
zajednikim operacijama
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
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)
zavisnost
Asocijacije klasa se na klasnom dijagramu prikazuju kao linije koje povezuju klase, kao to je dole
ilustrovano.
Guest
Hotel
Reservation
multiplicitet (multiplicity)
smer (direction)
ulogu (role)
7/18
Naziv predavanja: Veliki softverski projekti i UML
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
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.
niz sekundarnih dijagrama koji prikazuju manje vane klase sistema a koje su povezane sa
glavnim klasama,
8/18
Naziv predavanja: Veliki softverski projekti i UML
Client
Account
Transaction
Transaction
Deposit
Withdraw
Borrowing
Ime klase
Atributi klase
Operacije klase
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
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
10/18
Naziv predavanja: Veliki softverski projekti i UML
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
<component>
Komp4
<component>
<component>
<component>
Komp1
Komp2
Komp3
12/18
Naziv predavanja: Veliki softverski projekti i UML
Paket1
Paket2
Paket3
13/18
Naziv predavanja: Veliki softverski projekti i UML
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
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
Kupac ulazi u
radnju
Kupac ne nalazi
knjigu
Nadjena knjiga
Kupac pita za
knjigu
Plaanje
Kupac odlazi
Prodavac
ne
nalazi knjigu
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
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
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
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