Vous êtes sur la page 1sur 13

PREDMET

SE440 RAZVOJ VELIKIH SOFTVERSKIH SISTEMA


Predavanje broj 3
SE440-P03

Arhitektura sistema

Nedelja

as

1
2

Tematska
jedinica
Arhitektura
sistema

Predavanja
Lekcija ili aktivnost
Povezanost i kohezija
UML
paketski
Arhitektonski abloni

Rezultat znanja ili vetine


koje student treba da
dobije
Analiza kvaliteta arhitekture
sistema

dijagrami,

Primena
ablona

UML

primena

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. 3

SADRAJ

Contents
Uvod ........................................................................................................................................................ 3
1] Povezanost i kohezija.......................................................................................................................... 4
2] Softverska arhitektura.......................................................................................................................... 5
3] Paketski dijagrami ............................................................................................................................... 7
4] Tipina arhitektonska reenja.............................................................................................................. 8
5] Uloga modelovanja arhitekture softverskog sistema......................................................................... 10
Zakljuci................................................................................................................................................. 11
Pitanja/Zadaci........................................................................................................................................ 12
Reference/Linkovi.................................................................................................................................. 13

2/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

Predavanje br. 3

Arhitektura sistema
Uvod
U ovom predavanju prodiskutovaemo prvo osobinu povezanosti i kohezije softverskih sistema. Zatim,
baviemo se UML paketskim dijagramima. Na kraju emo specificirati arhitektonske ablone
relevantne za velike softverske sisteme.
Kljuna pitanja:
1) Kako se definie kvalitetna arhitektura softverskog sistema?
2) Kako se koriste UML paketski dijagrami da prikau arhitekturu velikih softverskih sistema?
3) Navesti tipina arhitektonska reenja velikih softverskih sistema?

3/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

1] Povezanost i kohezija
Arhitektura sistema se moe opisati kao skup povezanih blokova tj. modula. Kvalitetna arhitektura se
moe opisati sa

Minimizira se povezanost medju modulima

Maksimizira se kohezija svakog modula

Module 1

Module 2

Module 3

Slika : arhitektura sistema od tri povezana modula

Slika: nekvalitetna i kvalitetna povezanost dva bloka

Slika: kvalitetna kohezija modula

Slika: nekvalitetna kohezija modula

4/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

2] Softverska arhitektura
Pomenimo zakon koji je formulisao Conway (Conways Law):
Struktura softverskog sistema lii (slina je) na strukturu poslovne organizacije koja ima taj softverski
sistem.

Slika: struktura softverskog sistema sa 4 modula

Slika: struktura poslovne organizacije sa 4 organizacione celine

Softverska arhitektura definie:


Komponente softverskog sistema

Povezanost komponenti
Upravljanje vezom izmedju komponenti

Postoje tipine softverske arhitekture tj. arhitektonski abloni, npr.


Klijent-server arhitektura

3-slojna arhitektura (prezentacioni sloj+ aplikacioni sloj +memorijski sloj)

5/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

Kod klijent-server arhitekture, server prua neku vrstu usluge koju klijenti koriste. Klijenti ne moraju da
budu stalno povezani sa serverom, ve se po potrebi povezuju. A server ne mora da zna koji klijenti
e i kada zatraiti servis. Dakle, veza izmedju servera i klijenta se na odredjeni nain kontrolie.

Klijent
Server

Klijent

Klijent

Slika: klijent-server arhitektura

Prezentacioni
sloj

Aplikacion sloj

Memorijski sloj

Slika: 3-slojna arhitektura

6/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

3] Paketski dijagrami
Pojedine grupe UML elementata mogu se grupisati u pakete. Elementi paketi mogu biti :

Klase

Drugi paketi

Modeli (npr. use-case model ili interakcioni dijagram ili dijagram stanja, itd.)
Napomenimo da se paketski dijagrami mogu prikazati sa ili bez interfejsa.

Sistem se deli na pakete koristei razliite kriterijume, npr.

Skupovi klasa sa jakom kohezijom mogu da se grupiu u pakete

Razliite primene pojedinih paketa

itd

Npr. 3-slojna arhitektura se moe prikazati kao skup od 3 paketa:

prezentacioni paket
aplikacioni paket

memorijski paket
Na donjoj slici je 3-slojna arhitektura prikazana preko UML paketskog dijagram.

Prezentacioni
paket

Aplikacion
paket

Memorijski
paket
Slika: 3-slojna arhitektura prikazana preko UML paketskog dijagrama

Slika : dva paketa povezana sa interfejsom

7/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

4] Tipina arhitektonska reenja


Pomenuemo nekoliko tipinih arhitektonskih reenja koja su relevantna za velike softverske sisteme,
npr.

slojna arhitektura

objektno orijentisana arhitektura (Kod o.o. arhitekture, sistem je predstavljen kao skup klasa.)

skladina arhitektura (npr. baze podataka)

Npr., primeri slojevitih softverskih sistema su operativni sistemi i komunikacioni protokoli. Ova
arhitektura ima svojih prednost, npr. reupotreba slojeva i abstrakcija pojedinih slojeva, ali ponekad je
teko identifikovati slojeve koji su jasno razdvojeni. Postoji otvorena slojevita arhitektura (samo
susedni slojevi su povezani) i zatvorena slojevita arhitektura (ne moraju samo susedni slojevi da budu
u vezi). Kod 2-slojne arhitekture imamo npr. aplikacioni sloj (klijent) i server (baza podataka). Kod 3slojne arhitekture imamo primer: user-interface, poslovna logika i baza podataka. Primer 4-slojne
arhitekture: UI, aplikacije, domenski entiteti i baza podataka.

Sloj 4

Sloj 3

Sloj 2

Sloj 1

Slika: 4-slojna otvorena arhitektura

8/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

klasa

klasa

klasa

Slika: o.o. arhitektura

Slika: skladina arhitektura

9/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

5] Uloga modelovanja arhitekture softverskog sistema


Modelovanje arhitekture sistema je neophodno za dizajn sistema i implementaciju sistema. Ali, isto
tako, je vrlo korisno za proces planiranja projekta i upravljanja projektom. Naime, sledei aspekti

rokovi

raspodela posla

analiza trokova

analiza rizika

su svi zavisni od arhitekture sistema, i modelovanje arhitekture sistema direktno doprinosi reavanju
pomenutih problema. Potsetimo se da arhitektura sistema identifikuje znaajne komponente sistema i
relacije medju njima.

Posmatrajmo UML komponentni dijagram na donjoj slici, gde imamo prikazane 4 komponente i
zavisnosti medju njima. Ako planiramo implementaciju sistema sa donje slike, moramo uzeti u obzir
UML relacije zavisnosti (UM dependencies). Na osnovu relacija zavisnosti komponenti sa donje slike,
jasno je da prvo moramo implementirati komponentu Komp4, jer ostale komponente koriste
komponentu Komp4. Zatim, komponente Komp2 i Komp3 se mogu implementirati paralelno, jer su
medjusobno nezavisne. I komponenta Komp1 moe se implementirati posle implementacije Komp2 i
Komp3. Na osnovu ovoga se moe nacrtati Gantt dijagram, koji jje dole prikazan. Napomenimo, da je
mogue napraviti parcijalne tj. stubbed (odseene) implementacije komponenti Komp2, Komp3 i
Komp4, tako da je u realnosti mogue imati implementaciju komponenti Komp1,Komp2, Komp3,
Komp4 paralelno, ili delimino paralelno, to znai da je donji Gantt dijagram pojednostavljen.

<component>
Komp1

<component>

<component>

Komp2

Komp3

<component>
Komp4
Slika: UML komponentni dijagram za sistem od 4 komponente

Komp4
Komp2, Komp3
Komp 1
Slika: Gantt dijagram za gornji sistem

10/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

Zakljuci

Pomenimo zakon koji je formulisao Conway (Conways Law):Struktura softverskog sistema lii
(slina je) na strukturu poslovne organizacije koja ima taj softverski sistem.

Primeri slojevitih softverskih sistema su operativni sistemi i komunikacioni protokoli. Ova


arhitektura ima svojih prednost, npr. reupotreba slojeva i abstrakcija pojedinih slojeva, ali
ponekad je teko identifikovati slojeve koji su jasno razdvojeni. Postoji otvorena slojevita
arhitektura (samo susedni slojevi su povezani) i zatvorena slojevita arhitektura (ne moraju
samo susedni slojevi da budu u vezi). Kod 2-slojne arhitekture imamo npr. aplikacioni sloj
(klijent) i server (baza podataka). Kod 3-slojne arhitekture imamo primer: user-interface,
poslovna logika i baza podataka. Primer 4-slojne arhitekture: UI, aplikacije, domenski entiteti i
baza podataka.

11/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

Pitanja/Zadaci
1) ta je to objektno orijentisana arhitektura?
2) Objasniti slojevitu arhitekturu?
3) Nacrtati jedan UML paketski dijagram?
4) dati jedan primer o.o. arhitekture?

12/13
Naziv predavanja: Arhitektura sistema

SE440 Razvoj velikih softverskih sistema


Predavanje br. 3

Reference/Linkovi

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)
The
Benefits
of
Software
http://www.ibm.com/developerworks/rational/library/may06/eeles/index.html

Architecting,

13/13
Naziv predavanja: Arhitektura sistema

Vous aimerez peut-être aussi