13
PREDMET SE440 RAZVOJ VELIKIH SOFTVERSKIH SISTEMA Predavanje broj 3 SE440-P03 Arhitektura sistema Nedelja Čas Tematska jedinica Predavanja Lekcija ili aktivnost Rezultat – znanja ili veštine koje student treba da dobije 1 Arhitektura sistema Povezanost i kohezija Analiza kvaliteta arhitekture sistema 3 2 UML paketski dijagrami, Arhitektonski šabloni Primena UML , primena šablona Copyright © 2010 – UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili memorisanje nekog dela ili čitavih sadržaja ovog dokumenta., kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji drugi način. 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-P03

Embed Size (px)

DESCRIPTION

Razvoj velikih softverskih sistema

Citation preview

Page 1: SE440-P03

PREDMET

SE440 RAZVOJ VELIKIH SOFTVERSKIH SISTEMA

Predavanje broj 3

SE440-P03

Arhitektura sistema

Nedelja Čas Tematska jedinica

Predavanja Lekcija ili aktivnost

Rezultat – znanja ili veštine koje student treba da

dobije

1 Arhitektura sistema

Povezanost i kohezija Analiza kvaliteta arhitekture sistema

3

2 UML paketski dijagrami, Arhitektonski šabloni

Primena UML , primena šablona

Copyright © 2010 – UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili memorisanje nekog dela ili čitavih sadržaja ovog dokumenta., kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji drugi način.

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.

Page 2: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

2/13

SADRŽAJ

Contents

Uvod ........................................................................................................................................................ 3

1] Povezanost i kohezija.......................................................................................................................... 4

2] Softverska arhitektura.......................................................................................................................... 5

3] Paketski dijagrami ............................................................................................................................... 7

4] Tipična arhitektonska rešenja.............................................................................................................. 8

5] Uloga modelovanja arhitekture softverskog sistema......................................................................... 10

Zaključci................................................................................................................................................. 11

Pitanja/Zadaci ........................................................................................................................................ 12

Reference/Linkovi.................................................................................................................................. 13

Page 3: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

3/13

Predavanje br. 3

Arhitektura sistema

Uvod

U ovom predavanju prodiskutovaćemo prvo osobinu povezanosti i kohezije softverskih sistema. Zatim,

bavićemo se UML paketskim dijagramima. Na kraju ćemo specificirati arhitektonske šablone

relevantne za velike softverske sisteme.

Ključna pitanja:

1) Kako se definiše kvalitetna arhitektura softverskog sistema?

2) Kako se koriste UML paketski dijagrami da prikažu arhitekturu velikih softverskih sistema?

3) Navesti tipična arhitektonska rešenja velikih softverskih sistema?

Page 4: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

4/13

1] Povezanost i kohezija

Arhitektura sistema se može opisati kao skup povezanih blokova tj. modula. Kvalitetna arhitektura se može opisati sa

• Minimizira se povezanost medju modulima

• Maksimizira se kohezija svakog modula

Slika : arhitektura sistema od tri povezana modula

Slika: nekvalitetna i kvalitetna povezanost dva bloka

Slika: kvalitetna kohezija modula

Slika: nekvalitetna kohezija modula

Module 1

Module 2 Module 3

Page 5: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

5/13

2] Softverska arhitektura

Pomenimo zakon koji je formulisao Conway (Conway’s Law):

Struktura softverskog sistema liči (slična 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 definiše:

• Komponente softverskog sistema

• Povezanost komponenti

• Upravljanje vezom izmedju komponenti

Postoje tipične softverske arhitekture tj. arhitektonski šabloni, npr.

• Klijent-server arhitektura

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

Page 6: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

6/13

Kod klijent-server arhitekture, server pruža 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 zatražiti servis. Dakle, veza izmedju servera i klijenta se na odredjeni način kontroliše.

Slika: klijent-server arhitektura

Slika: 3-slojna arhitektura

Server

Klijent

Klijent

Klijent

Prezentacioni sloj

Aplikacion sloj

Memorijski sloj

Page 7: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

7/13

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 koristeći različite kriterijume, npr.

• Skupovi klasa sa jakom kohezijom mogu da se grupišu u pakete

• Različite primene pojedinih paketa

• itd

Npr. 3-slojna arhitektura se može prikazati kao skup od 3 paketa:

• prezentacioni paket

• aplikacioni paket

• memorijski paket

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

Slika: 3-slojna arhitektura prikazana preko UML paketskog dijagrama

Slika : dva paketa povezana sa interfejsom

Prezentacioni paket

Aplikacion paket

Memorijski paket

Page 8: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

8/13

4] Tipi čna arhitektonska rešenja

Pomenućemo nekoliko tipičnih arhitektonskih rešenja koja su relevantna za velike softverske sisteme, npr.

• slojna arhitektura

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

• skladišna 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 teško 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.

Slika: 4-slojna otvorena arhitektura

Sloj 4

Sloj 3

Sloj 2

Sloj 1

Page 9: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

9/13

Slika: o.o. arhitektura

Slika: skladišna arhitektura

klasa klasa klasa

Page 10: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

10/13

5] Uloga modelovanja arhitekture softverskog sistem a

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, sledeći aspekti

• rokovi

• raspodela posla

• analiza troškova

• analiza rizika

su svi zavisni od arhitekture sistema, i modelovanje arhitekture sistema direktno doprinosi rešavanju pomenutih problema. Potsetimo se da arhitektura sistema identifikuje značajne 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 može se implementirati posle implementacije Komp2 i Komp3. Na osnovu ovoga se može nacrtati Gantt dijagram, koji jje dole prikazan. Napomenimo, da je moguće napraviti parcijalne tj. „stubbed“ („odsečene“) implementacije komponenti Komp2, Komp3 i Komp4, tako da je u realnosti moguće imati implementaciju komponenti Komp1,Komp2, Komp3, Komp4 paralelno, ili delimično paralelno, što znači da je donji Gantt dijagram pojednostavljen.

Slika: UML komponentni dijagram za sistem od 4 komponente

Komp4

Komp2, Komp3

Komp 1

Slika: Gantt dijagram za gornji sistem

<component>

Komp1

<component>

Komp2

<component>

Komp3

<component>

Komp4

Page 11: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

11/13

Zaklju čci

• Pomenimo zakon koji je formulisao Conway (Conway’s Law):Struktura softverskog sistema liči (slična 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 teško 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.

Page 12: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

12/13

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?

Page 13: SE440-P03

SE440 Razvoj velikih softverskih sistema Predavanje br. 3

Naziv predavanja: Arhitektura sistema

13/13

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 Architecting, http://www.ibm.com/developerworks/rational/library/may06/eeles/index.html