arhitekturalni dizajn

13
7/26/2019 Arhitekturalni dizajn http://slidepdf.com/reader/full/arhitekturalni-dizajn 1/13 POGLAVLJE 6: Dizajn arhitekture  Dizajn proces za identifikaciju podsistema, čineći sistem i framework za kontrolu podsistema i komunikaciju je zapravo arhitekturalni dizajn.  Rezultat ovog dizajn procesa je opis softverske arhitekture.  Arhitekturalni dizajn - početna faza dizajn procesa.  Predstavlja vezu među specifikacijom i dizajnom procesa.  Često se sprovodi paralelno sa nekom aktivnošću iz specifikacije.  Uključuje identificiranje glavne komponente sistema i njihove komunikacije. Arhitektura u malom se bavi arhitekturom individualnih programa. Arhitektura u velikom se bavi arhitekturom složenih poslovnih sistema koji uključuju druge sisteme, programe, i programske komponente. Prednosti eksplicitne arhitekture:  Komunikacija sa zainteresiranim stranama (arhitektura može biti korištena kao fokus diskusije sistemas sa zainteresiranim stranama)  Sistem analize (podrazumijeva analizu da li sistem može zadovoljiti svoje nefunkcionalne zahtjeve)  Visko-skalirani reuse (ponovna upotreba) (arhitektura može biti  korištena kroz različite sisteme) Arhitekturalna reprezentacija - neformalni blok dijagrami koji prikazuju entitete i veze koji su najčešće korištene metode za dokumentiranje softverske arhitekture. Box and line dijagrami:  Veoma apstraktni – ne prikazuju prirodu veza komponetni niti eksterno vidljive propertije podsistema.  Korisni za komunikaciju sa zainteresiranim stranama i za projektno planiranje. Upotreba:  Kao način olakšavanja rasprave o dizajnu sistema   Kao način dokumentiranja arhitekture koja je dizajnirana (cilj je proizvesti kompletan model sistema koji prikazuje različite komponente u sistemu, njihove interfejse i njihove veze) Dizajn arhitekture je kreativan proces, pa se proces razlikuje u zavisnosti od vrste sistema koji se razvija.

Upload: dino-ragib-smajic

Post on 02-Mar-2018

254 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 1/13

POGLAVLJE 6: Dizajn arhitekture

 

Dizajn proces za identifikaciju podsistema, čineći sistem i framework za kontrolu podsistema i

komunikaciju je zapravo arhitekturalni dizajn.

  Rezultat ovog dizajn procesa je opis softverske arhitekture.

  Arhitekturalni dizajn - početna faza dizajn procesa.   Predstavlja vezu među specifikacijom i dizajnom procesa.   Često se sprovodi paralelno sa nekom aktivnošću iz specifikacije.   Uključuje identificiranje glavne komponente sistema i njihove komunikacije. 

Arhitektura u malom se bavi arhitekturom individualnih programa.

Arhitektura u velikom se bavi arhitekturom složenih poslovnih sistema koji uključuju druge sisteme,programe, i programske komponente.

Prednosti eksplicitne arhitekture:

  Komunikacija sa zainteresiranim stranama (arhitektura može biti korištena kao fokus diskusijesistemas sa zainteresiranim stranama)

  Sistem analize (podrazumijeva analizu da li sistem može zadovoljiti svoje nefunkcionalnezahtjeve)

  Visko-skalirani reuse (ponovna upotreba) (arhitektura može biti korištena kroz različite

sisteme)

Arhitekturalna reprezentacija - neformalni blok dijagrami koji prikazuju entitete i veze koji su najčešćekorištene metode za dokumentiranje softverske arhitekture.

Box and line dijagrami:

  Veoma apstraktni – ne prikazuju prirodu veza komponetni niti eksterno vidljive propertije

podsistema.

  Korisni za komunikaciju sa zainteresiranim stranama i za projektno planiranje.

Upotreba:

  Kao način olakšavanja rasprave o dizajnu sistema 

 

Kao način dokumentiranja arhitekture koja je dizajnirana (cilj je proizvesti kompletan modelsistema koji prikazuje različite komponente u sistemu, njihove interfejse i njihove veze) 

Dizajn arhitekture je kreativan proces, pa se proces razlikuje u zavisnosti od vrste sistema koji se

razvija.

Page 2: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 2/13

Međutim, određeni broj zajedničkih odluka utiče na dizajn svih procese, te ove odluke utiču nanefunkcionalne karakteristike sistema.

  Da li ima generička aplikacija arhitekture koja se može koristiti? 

 

Kako će sistem biti distribuiran?  

Kojji su stilovi zadovoljavajući? 

 

Koji pristup će biti korišten da se struktuira sistem? 

  Kako će sistem biti rastavljen u module? 

  Koja kontrolna strategija bi se trebala koristiti?

  Kako će se vrijednovati dizajn? 

  Kako će arhitektura biti dokumentovana? 

Ponovna upotreba arhitekture:

 

Sistemi u istoj domeni često imaju sličnu arhitekturu koja odražava koncept domene. 

 

Aplikacijske linije proizvoda su napravljenje oko jezgre arhitekture sa varijantama kojezadovoljavaju djelimično zahtijeve klijenata. 

  Arhitektura sistema može biti dizajnirana oko jedne ili više arhitekturalnih paterna. 

Arhitektura i sistemske karakteristike:

  Performanse (Lokaliziranje kritičnih operacija i minimizacija komunikacija. Korištenje većih

komponenti.)

  Sigurnost (security) (Koristiti slojevite arhitekture s kritičnim dijelovima u unutarnjim slojevima.) 

  Sigurnost (safety) (Lokalizirati sigunosno-kritične osobine u mali broj podsistema.) 

 

Dostupnost (Uključiti redudantne komponente i mehanizme za tolerisanje grešaka.)   Održavanje (Koristiti komponente koje su zamijenjive.) 

Arhitekturalni pogledi:

  Koji pogledi ili perspektive su korisne pri dizajniranju i dokumentiranju sistemske arhitekture?

  Koje notacije bi se trebale koristiti za opisivanje arhitekturalni modela?

  Svaki arhitektualni model pokazuje samo jednu perspektivu sistema.

4+1 pogled softverske arhitekture:

 

Logički pogled – ključne apstrakcije u sistemu kao što su objekti ili klase objekata 

  Procesni pogled – kako je , za vrijeme izvršavanja, sistem sastavljen od interaktivnih procesa 

  Razvojni pogled - kako je sistem dekompoziran za razvoj

 

Fizički pogled – sistemski hardver i kako softverske komponente su distribuirane u procesoru

unutar sistema

Page 3: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 3/13

  Povezani-korištenje use case ili scenarija 

Arhitekturalni patterni

 

Patterni su sredstva za prezentovanje, dijeljenje i ponovnu upotrebu znanja.

 

Arhitekturalni pattern je stilizovani opis dobre prakse dizajna, koja je isprobana i testirana u

različitim okruženjima. 

 

Patterni trebaju uključivati informaciju o tome gdje su, a gdje nisu upotrebljivi. 

 

Patterni mogu biti predstavljeni tabelarno ili grafički. 

PATTERN: MVC

Opis: 

Razdvaja prezentaciju i interakciju od sistemskih podataka. Sistem je struktuiran u 3 logič ke

komponente koje su u međusobnoj interakciji.  Model komponenta upravlja sistemskim podacima i operacijama na tim podacima.

 

View komponenta definira i upravlja kako će podaci biti prezentovani korisniku. 

Controller komponenta upravlja korisničkom interkacijom i prosljeđuje ove interakcije do Viewi Model.

Kada se koristi:

Koristi se kada postoji više načina na poglede i interakciju sa podacima, također koristi se za budućezahtjeve za interakciju i prezentaciju nepoznatih podataka.

Prednosti:

Dopušta podacima da se mijenjaju neovisno o njihovoj prezentaciji i obrnuto. Podržava prezentacijuistih podataka na različite načine sa promjenama načinjenom u jednoj prezentaciji, a prikazanoj u

svakoj.

Nedostaci:

Može uključiti dosta dodatnog koda kada je model podataka i interakcije jednostavan.

Page 4: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 4/13

ORGANIZACIJA MODEL-VIEW-CONTROLLER WEB APLIKACIJA SA MVC PATTERNOM

Slojevita arhitektura

  koristi se za modeliranje interfejsa

podsistema

 

organizira sistem u set slojeva (ili apstraktnih mašina) od kojih svaki pruža odrđeni set servisa 

  podržava inkrementalni razvoj podistema različitih slojeva. Kada se interfej sloja mijenja, samo

 je susjedni sloj zahvaćen. 

PATTERN: SLOJEVITA ARHITEKTURA

Opis:

Organizira sistem u slojeve sa funkcionalnostima asociranim sa svakim slojem. Sloj pruža serviseslojevima iznad njega, pa tako najniži sloj predstavlja jezgro servisa koji su korišteni kroz servis.  

Kada se koristi:

Koristi se kada pravimo nove dijelove na vrhu već postojećeg sistema, kada je razvoj raširen na višetimova pri čemu svaki tim odgovara tačno nekom sloju funkcionalnosti, kada je zahtijevana višeslojnazaštita. 

Prednosti:

Dopušta zamjenu cijelih slojeva dokle god se interfejs održava.

Nedostaci:

U praksi,ne postoji jasna razliku između slojeva, tako slojevi na visokom nivou mogu da imaju

interakciju direktno sa nižim slojevima, mimo slojeva koji se nalaze između njih.Performanse mogu biti problem zbog više razina interpretacije zahtjeva za uslugom. 

Page 5: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 5/13

 

GENERIČKA SLOJEVITA ARHITEKTURA 

ZAKLJUČAK: 

  Softverska arhitektura je opis kako je softver organizovan.

 

Arhitekturalni dizaj obuhvaća odluke koji tip aplikacije, koja distribucija sistema, koji

arhiterkturalni stil će biti korišten. 

  Arhitekture mogu biti dokumentovane iz različitih perspektiva i pogleda kao što su konceptualni,

logički, procesni i razvojni pogled. 

  Arhitekturalni patterni su sredstva za ponovnu upotrebu znanja o generičkim sistemsim

arhitekturama. Opisuju arhitekturu, objašnjavaju kada može biti korištena, te opisuju njene

prednosti i nedostatke.

Arhitektura repozitorija:

Podsistemi moraju vršiti razmjenu podataka. To se realizuje na jedan od sljedećih načina: 

Page 6: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 6/13

  Dijeljeni podaci se čuvaju u centralnoj bazi podataka ili repozitoriju i svi podsistemi im mogu

prostupati. (Preporučljivo za velike količine podataka.) 

 

Svaki podsistem posjeduje vlastitu bazu podataka i prosljeđuje podatke eksplicitno drugom

podsistemu.

PATTERN: REPOZITORIJ

OPIS:

Upravljanje podataka u sistemu se vrši u centralnom repozitoriju koji je dostupan svim sis temskim

komponentama. Komponente ne vrše interakciju direktno, nego preko repozitorija. 

Kada se koristi:

Ovaj patern treba koristit kada imate sistem u kojima velike količine informacija su generirane i koje

trebaju da se spase na duže vrijeme. Također se   koristi u data-driven sistemima gdje je uključenepodataka u repozitoriju izaziva akciju ili alat.

Prednosti:

Komponente mogu biti neovisne, ne moraju znati za postojanje drugih komponenti. Izmjene učinjeneod strane jedne komponente mogu biti propagirane do svih komponenti. Svim podacima se možeupravljati konizstentno kao da su na jednom mjestu.

Nedostaci:

Repozitorij je jedino mjesto gdje se dešavaju greške pa problem u repozitoriju zahvati kompletan

sistem. Mogu se javiti neefikasnosti u organizaciji svih komunikacija kroz repozitorij. Raspodijelarepozitorija kroz nekoliko računara može biti teška. 

ARHITEKTURA REPOZITORIJA ZA IDE

Page 7: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 7/13

 

Klijent-server arhitektura:

 

Distribuirani modeli sistema koji pokazuju kako podaci i procesiranje je distribuirano preko

određenog broja komponenti. 

  Set samostalnih servera koji pružaju specifične servise. 

 

Set klijenata koji se pozivaju na ove servise. 

Mreža koja dozvoljava klijentima da pristupe serverima. 

PATTERN: KLIJENT-SERVER

U klijent/server arhitekturi, funkcionalnost sistema je organizirana kroz servise, gdje svaki servis pružasa odvojenog servera. Klijenti su korisnici ovih servisa i pristupaju serveru da mogu koristiti servise.

Kada se koristi:Koristi se kada su podaci u dijeljenoj bazi i treba da su pristupačni sa udaljene lokacije. Zato što se servermože replicirati, može se i koristiti kada je opterećenje na sistemu promjenljivo. 

Prednosti:

Page 8: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 8/13

Najveća prednost ovog modela je u tome da serveri mogu biti distribuirani preko mreže. Glavnefunkcionalnosti mogu biti dostupne svim klijentima i ne moraju biti implementirani od strane svih

servisa.

Nedostaci:Svaki servis je jedna tačka koja može biti tačka neuspjeha takva da nastane uskraćivanje pristupaservera kao i napada na server. Perfomanse mogu biti nepredvidive zato što ovise o mreži kao i osistemu. Moze biti problema ako je upravljanje serverima od različitih organizacija 

KLIJENT-SERVER: FILM LIBRARY

Pipe i filter arhitektura:

  Funkcionalne transformacije procesiraju ulaze i proizvode ozlaze

  Varijacije ovog pristupa su vrlo čete. Kada transformacije su sekvencijalne, ovaj batch

sekvencijalni model je često korišten u sistemima za procesiranje podataka.

  Nije za interaktivne sisteme.

PATTERN: PIPE i FILTER 

OPIS:

Procesuiranje podataka u sistemu je organizovano tako da svaka procesuirana komponenta je diskretna

Page 9: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 9/13

i nosi jedan tip podataka koji se transformišu. Podataci se kreću (kao u cijevi) od jedne komponenteprema drugoj za procesuiranje.

Korištenje: Najčešće se koriste u aplikacijama za procesiranje podataka gdje su ulazi procesirani u različitim fazama

da generišu povezane izlaze. 

Prednosti:

Lagani za razumijeti i podržavaju transformiranje i ponovnu upotrebu. Workflow stil odgovara strukturimnogih poslovnih procesa. Evolucija dodavanjem transformacija je jednostavna. Može bitiimplementiran kao sekvencijalan ili konkurentan sistem.

Nedostaci:

Format za transfer podataka mora biti dogovoren između komunikacijskih transformacija. Svakatransformacija mora biti analiziran ulaz i neobrađen izlaz u dogovorenu formu. Ovo povećava sistem i

može značiti da je ponovno korištenje funkcionalnosti nekompaktibilno sa strukturom podataka. 

Aplikacijske arhitekture:

  Aplikacijski sistemi su dizajnirani kako bi zadovoljili potrebe organizacije.

  Generička aplikacijsa arhitektura je erhitektura za tip softvera koji može biti konfigurisan i

adapritan kako bi se kreirao sistem koji zadovoljava sprecifične zahtjeve. 

Upotreba:

  kao početna tačka arhitekturalnog dizajna 

  kao dizajn checklista

  kao način organizovanja posla razvojnog tima 

  kao sredstvo za procjenu komponente za ponovnu upotrebu

  kao rječnik o aplikacijskim tipovima 

Primjeri aplikacijskih tipova:

 

aplikacije za procesiranje podataka (procesiraju podatke u serijam bez eksplicitne intervencijekorisnika prilikom procesiranja)

  aplikacije za procesiranje transakcija (procesiraju korisničke zahtjeve i ažuriraju podatke u bazi

podataka) – e-commerce sistemi, sistemi za rezervacije

 

sistemi za procesiranje događaja (akcije sistema zavise od interpretacije događaja iz okruženja

sistema)

Page 10: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 10/13

  sistemi za procesiranje jezika (namjere korisnika su specificiranje u formalnom jeziku koji je

procesiran i interpretiran od sistema) – kompajleri, interpreteri komandi

Sistemi za procesiranje transakcija – procesiraju korisničke zahtjeve za informacijama iz baze podataka

ili zahtjeve za ažuriranje iste 

Iz korisničke perspektive transakcija je koherentna sekvenca operacija koja vodi do dostizanja ciljeva. 

Korisnici kreiraju asihrone zahtjeve za servis koji je procesiran od strane transakcijskog menadžera. 

Arhitekture informacionih sistema:

  Informacioni sistemi imaju generičku arhitekturu koja može biti organizovana u slojevitu

strukturu.

  Ovo su transakcijski-bazirani sistemi, za interakciju obično zahtjeva ju transakcije sa bazom

podataka

 

Slojevi uključuju:   korisnički interfejs 

  korisničke komunikacije 

  povlačenje informacija 

  sistem baze podataka

Page 11: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 11/13

 

Web bazirani informacioni sistemi

  Informacije i sistemi za upravljanje resursima su danas najčešće web-bazirani sistemi gdje ej

korisnički interfejs implementiran upotrebom web pretraživača. 

  primjer: e-commerse je internet-bazirani sistem za upravljanje resursima koji prihvata

elektronske narudžbe za proizvode ili usluge i onda aranžira dostavu ovih proizvoda ili usluga

krajnjem kupcu.

Serverske implementacije:

  Ovi sistemi su često više-rangirane klijent/server arhitekture

  web server je zadužen za svu omunikaciju sa korisničkim interfejsom koji je implementiran

upotrebom web pretraživača 

  aplikacijski server je odgovoran za implementaciju specifičnih logičkih i informacionih skladišta

i zahtjeva za povlačenje informacija 

  Server baze podataka pomjera informacije do i od baze podataka i obrađuje transakcije. 

Sistemi za procesiranje podataka:

Page 12: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 12/13

  prihvataju prirodni ili vještački jezik kao ulaz i generiraju neku drugu reprezentaciju tog jezika 

  mogu uključivati interpretere koji izvode instrukcije u jeziku koji se procesira 

 

koriste se u situacijama gdje je najlakši način rješavanja problema opisivanje aloritma ili

sistema podataka

Kompajlerske komponente:

 

leksiči analizator, koji uzima za ulaz jezički tokeni konvertira ga u internu formu 

  tabela simbola, koja čuva informacije o imenima entiteta 

  sintasksni analizator, koji provjerava sintaksu jezika koji se prevodi

  sintaksno drvo, koje je interna struktura prezentacije programa koji se kompajlira

  semantički analizator, koji koristi informacije iz sintaksnog stveta i tabele simbola da provjeri

semantičku tačnost ulaznog teksta 

  generator koda, koji 'se kreće' sintaksnim drvetom i generira kod apstraktne mašine 

Page 13: Arhitekturalni dizajn

7/26/2019 Arhitekturalni dizajn

http://slidepdf.com/reader/full/arhitekturalni-dizajn 13/13

 

ZAKLJUČAK: 

 

Modeli aplikacijskih sistemskih arhitektura pomažu nam da razumijemo i poredimo aplikacije,

validiramo dizajn aplikacijskog sistema i procjenimo komponente za ponovnu upotrebu.

  Sistemi za procesiranje transakcija su interaktivni sistemi koji dozvoljavaju korisnicima da

pristupaju podacima u bazi podataka i da ih modificiraju.

  Sistemi za procesiranje jezika se koriste za prevođenje tekstova iz jednog jezika u drugi i za

izvođenje instrukcija specificiranih ulaznim jezikom. Uključuju prevoditelja i apstraktnu mašinu

koja izvršava generisani jezik.