Lekcija 7 Flashcards

1
Q

7.1 Šta je projekat (dizajn) arhitekture? Šta je model arhitekture sistema? Kada se definiše arhitektura sistema? Zašto je arhitektura važna? Šta omogućava arhitektura sistema? Kako se pravi model arhitektura? Dajte jedan primer. Za koje svrhe se koristi model arhitekture sistema?

A

Arhitektura softvera ukazuje nam kako bi sistem trebalo da bude organizovan i prikazuje ukupnu strukturu sistema.

Model arhitekture služi za olakšavanje diskusije o arhitekturi sistema ili za dokumentovanje arhitekture sistema radi razumevanja i daljeg razvoja sistema.

Smatra da je u ranim fazama procesa razvoja neophodno da se definiše ukupna arhitektura sistema.

Arhitektura softvera je važna jer utiče na performanse, robusnost, distrubutivnost i održivost sistema.

Postoje dva načina pravljenja modela arhitekture:
1. Način za olakšavanje diskusije o projektnom rešenju arhitekture: Koristi se u razgovorima sa akterima sistema i pri planiranju projekta, jer ne sadrži sve detalje. Model sadrži ključne komponente koje treba razviti, što je
dovoljno za planiranje njihovog razvoja.
2. Način dokumentovanja arhitekture koju treba projektovati: Cilj ovog načina korišćenja modela je da se proizvede kompletan model sistema kako bi se pokazale različite komponente sistema, njihovi interfejsi, i njihove veze. Detaljan opis arhitekture je potreban radi razumevanja i daljeg razvoja sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

7.2 Objasni zašto je potrebno da se projektuje arhitektura sistema pre nego što je završena specifikacija zahteva.

A

Smatra se da je u ranim fazama procesa razvoja
neophodno da se definiše ukupna arhitektura sistema. Inkrementalni razvoj arhitekture ne vodi uspehu, a promene u arhitekturi sistema su skupe. Zato je važno na početku projektovanja sistema da se postavi kvalitetna arhitektura softverskog sistema koja se kasnije neće menjati. Komponente je lako menjati, ali arhitekturu – nije.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

7.3 Objasni proces projektovanja arhitekture. Na koja pitanja treba naći odgovore u toku procesa projektovanja arhitekture? Šta su arhitektonski šabloni? Šta oni
sadrže? O kojim nefunkcionalnim zahtevima se mora voditi računa prilikom izboru arhitektonskog šablona? Kako se ocenjuje arhitektura sistema?

A

Projektovanje arhitekture softvera je kreativan proces u kome se projektuje organizacija sistema koja treba da zadovolji funkcionalne i nefunkcionalne zahteve sistema.

Arhitekte sistema treba da uzmu u razmatranje sledeća fundamentalna pitanja o sistemu:
1. Da li postoji opšta arhitektura sistema koja se može koristiti kao uzor za sistem koji se treba da projektuje?
2. Kako će sistem da se podeli po procesorima?
3. Koje arhitektonske mustre ili stilovi se mogu koristiti?
4. Koji će se fundamentalni pristup strukturiranju sistema primeniti?
5. Kako će se komponente strukture dalje podeliti u pod-komponente?
6. Koja će se strategija kontrole rada komponenti upotrebiti?
7. Koja je organizacija arhitekture najbolja za obezbeđenje
nefunkcionalnih zahteva sistema?
8. Kako će se vrednovati projektno rešenje arhitekture?
9. Kako će se dokumentovati arhitektura sistema?

Primena arhitektonskih šablona je način predstavljanja, deljenja i zajedničke upotrebe znanja o softverskim sistemima. Šabloni su apstraktni opisi dobre prakse, koja je testirana i oprobana u različitim sistemima i
okruženjima. Arhitektonski šabloni opisuju organizaciju sistema koja se pokazala uspešnom u ranijim sistemima. Svaki šablon ima svoju oblast primene, kao i slabosti i dobre osobine. To isto treba da bude dokumentovano za svaki šablon.

Pri izboru stila arhitekture i strukture sistema, treba voditi računa o nefunkcionalnim zahtevima sistema:
1. Performanse, bezbednost, zastita, raspolozivost, lakoca odrzavanja

Ocena arhitekture se može dobiti i njenim upoređenjem sa referentnim arhitekturama (ranije primenjenim i provereno dobrim) ili sa opštim arhitektonskim šablonima (uzorima). Konačnu ocenu arhitekture daće ocena rada celog sistema, i zadovoljenje svih funkcionalnih i nefunkcionalnih zahteva.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

7.4 Objasni zašto se mogu javite konflikte situacije pri projektovanju arhitekture u kojima su zahtevi za raspoloživost i bezbednost najvažniji nefunkcionalni zahtevi. Dajte jedan konkretan primer.

A

Pri projektovanju arhitekture, pojedini zahtevi vode ka konfliktnoj situaciju prilikom projektovanja arhitektura. Na primer, velike komponente poboljšavaju performanse, a male olakšavaju održavanje. Ako su oba zahteva važna, mora se onda tražiti kompromisno rešenje. Ponekad, za
pojedine delove sistema se onda, koriste različiti stilovi arhitekture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

7.5 Šta je arhitektonski pogled? Koji su fundamentalni (osnovni) arhitektonski pogledi? Objasnite ukratko svaki od njih. Pored fundamentalnih pogleda, koristi se i koncepcijski pogled. Šta je to? Da li je detaljna specifikacija arhitekture potrebna?

A

Arhitektonski pogled - prikaz značajnih elemenata modela analize.

Osnovni arhitektonski pogledi:
1. Logičan pogled – pokazuje ključne apstrakcije sistema kao
objekte ili klase objekata. Zgodan je za povezivanje
sistemskih zahteva sa ovim entitetima sistema.
2. Procesni pogled – pokazuje kako u fazi rada, sistem radi
korišćenjem povezanih procesa. Koristan je za ocenu
nefunkcionalnih karakteristika, kao što su performanse i
raspoloživost.
3. Razvojni pogled – pokazuje dekompoziciju softvera radi
njegovog razvoja, tj. prikazuje komponente koje su
implementirane od strane razvojnog tima. Ovaj pogled je
značajan za softverske menadžere i programere.
4. Fizički pogled – prikazuje hardvesrske i softverske
komponente i njihovu distribuciju po procesorima sistema.
Ovaj pogled je zgodan za planiranje razvoja i instaliranja
sistema.

Koncepcijski pogled je apstraktan pogled na sistem koji može biti osnova za dekompoziciju uopštenih zahteva na detaljnije specifikacije zahteva. To pomaže inženjerima da odluče oko komponenti i njihovoj višestrukoj upotrebi, i da predstave jednu liniju proizvoda umesto jednog sistema.

Detaljna specifikacija arhitekture sistema je potrebna kod kritičnih sistema, jer ona omogćava odobrenje projekta od strane regulacionih vlasti. Kod agilnih metoda razvoja softvera detaljna specifikacija nije neophodna, jer se slabije koristi, a njena priprema traži vreme i novac.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

7.6 Šta je arhitektonski šablon? Objasni MVC šablon (model-kontroler-pogled). Prikaži arhitekturu veb aplikacije urađenu prema MVC šablonu.

A

Arhitektonski šabloni opisuju organizaciju sistema koja se pokazala uspešnom u ranijim sistemima.

MVC arhitektura scvrstava sve podsistema u tri kategorije:Model, View i Controler.

«arhitektura»
controller —-1 model 1—- viewer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7.7 Šta je arhitektonski šablon?

A

Arhitektonski šabloni opisuju organizaciju sistema koja se pokazala uspešnom u ranijim sistemima. Šabloni su apstraktni opisi dobre prakse, koja je testirana i oprobana u različitim sistemima i okruženjima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

7.8 Šta je slojevita arhitektura? Dajte opis šablona slojevite arhitekture. Prikažite grafički primer slojevite arhitekturu softverskog sistema. Šta softverski slojevi omogućavaju?

A

Slojevita arhitektura obezbeđuje odvajanje i nezavisnost komponenata softvera primenom funkcionalnih slojeva. Svaki sloj zavisi od uređaja i servira koje nudi sloj ispod njega.

Organizuje sistem u vidu slojeva koji se odnose na funkcionalnost specifičnu za svaki sloj. Sloj obezbeđuje servise sloju iznad njega, tako da najniži sloj obezbeđuje ključne servise koji se najčešće koriste u svim
slojevima.

«grafički primer»
korisnički interfejs
—-
upravljanje interfejsom
—-
ključna funkcionalnost aplikacije
—-
podrška sistema
—-
interfejs na web pretraživaču
—-
uključenje u libsys - menadžer upita - menadžer štampanja
—-
distribuirana pretraga - preuzimanje dokumenata - menadžer prava pristupa - obračun troškova
indeks biblioteke
—–
db1 - db2 - db3 - db4 - dbn

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

7.9. Šta je arhitektura sa skladištem podataka? Ko koristi ovu arhitekturu? Dajte opis šablona arhitekture sa zajedničkim skladištem podataka. Dajte grafički prikaz jedne arhitekture sa zajedničkim skladištem podataka. Koja svojstva ima ova arhitektura? Šta su pasivna, a šta aktivna skladišta podartaka?

A
  • Šablon za projektovanje pod nazivom arhitektura sa skladištem podataka određuje skup komunicirajućih komponenti koje koriste i dele isto skladište podataka.
  • Ova arhitektura je pogodna za slučajeve u kojima jedne komponente pune bazu podataka, a druga grupa komponenata ih koristi. Sistemi za velikom količinom informacija koje se moraju uskladištiti za dugi niz godina.
  • Svi podaci sistema se upravljaju u centralnom skladištu kome mogu prići sve komponente sistema. Komponente ne komuniciraju direktno sa podacima, već preko skladišta.
  • Pasivna skladišta podataka su skladišta u kojima rad sa podacima zavisi od rada komponenata, dok kod aktivnih, skladišta mogu da podstaknu aktivnost komponenata, kada se dogodi neki unapred definisan događaj.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

7.10. Šta je model cevi i filtra? Šta je „cev“, a šta je „filter“? Opišite šablon arhitekture sa cevima i filtrima. Dajte primer i grafički prikažite primer jedne arhitekture sa cevima i filtrima. Za koje slučajeve je ova arhitektura pogodna, a za koje nije?

A
  • Sistem sa arhitekturom cevi i filtera prima veći broj ulaza i šalje rezultate podsistemima u vidu skupa izlaza. Podsistemi se nazivaju filtrima, a veze između podsistema cevima.
  • Svaki filter zna samo format podataka i sadržaj samo na svojim ulaznim cevima i ne zna filtere koji su ih proizveli. Filteri rade istovremeno, a sinhronizacija se obavlja preko cevi.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

7.11.Šta su aplikacioni sistemi-aplikacije? Šta su arhitekture aplikacija, šta sadrže? Kako odlučujete da li kupiti ili napravite softver? Kako koristiti modele arhitekture standardnih softverskih proizvoda?

A
  • Aplikacioni sistemi su softverski sistemi koji se koriste radi zadovoljenja poslovnih ili organizacionih potreba neke firme. Firme u istom poslovnom sektoru imaju slične potrebe, te i aplikacioni sistemi u tim sektorima imaju sličnu funkcionalnost, tj. skup funkcija koje podržavaju.
  • Arhitekture aplikacija odražavaju strukturu i organizaciju premerno
    organizacijama koje obavljaju slične funkcije. Aplikacione arhitekture
    sadrže glavne karakteristike određene klase softverskih sistema.
  • Ukoliko već sličan softver postoji na tržištu i moguće je uz male izmene dobiti ono što želimo, nećemo praviti novi, nego kupiti već postojeći. Ukoliko nam je potreban softver koji zahteba puno stvari koje već postojeći sistemi nemaju, potrebno je razviti nov softver.
  • Kompanije mogu kupiti već postojeće sisteme i da ga prilagode svojim
    potrebama.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

7.12.Šta su sistemi za transakcionu obradu? Koja je struktura sistema za transakcionu obradu? Prikažite arhitekturu softvera ATM sistema (bankomata)

A

Sistemi za transakcionu obradu se projektuju da obezbede obradu
zahteva korisnika za informacijama iz baze podataka ili zahteve za unos
novih podataka u bazu podataka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

7.13. Šta su informacioni sistemi? Prikažite opšti model informacionih sistema. Dajte primer nekog informacionog sistema. Kako se upravlja podacima kod informacionih sistema?

A

Svi sistemi koji koriste interakciju sa zajedničkom bazom podataka su
transakcioni informacioni sistemi. Informacioni sistem dozvoljava
kontrolisan pristup velikoj bazi informacija, kao što je katalog bibliotečkih jedinica, red vožnje letova…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

7.14.Šta su sistemi za obradu jezika? Kako izgleda arhitektura sistema za obradu jezika? Kakva je arhitektura kompajlera, tj. prevodioca programskih jezika? Dajte prikaz arhitekture sistema za prevođenje programskog jezika koja sadrži skladište.

A
  • Sistemi za obradu jezika prevode neki prirodan ili veštački jezik u neki
    drugi način za predstavljanje tog jezika.
  • U slučaju kompajlera (programskih prevodioca), interpreter je hardver koji obrađuje mašinske instrukcije, a apstraktna mašina je stvarni procesor. Kod dinamičkih tipova jezika, kao što je Python, interpreter može biti softverska komponenta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

7.15. Upotrebom osnovnog modela višeslojne arhitektura nekog informacionog sistema, predloži komponente koje bi mogle da bude deo informacionog sistema koji dozvoljava korisnicima da vide informaciju o dolazećim i dolazećim letovima na jednom aerodromu.

A

Bezbednost: Ako je bezbednost bitna, višeslojna arhitektura je dobro rešenje, da bi se najkritičnije vrednosti stavile pod kontrolu u unutrašnjim slojevima sistema, sa visokom dozom zaštite

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

7.16. Definišite arhitekturu sistema definisan sledećim opisom: Sistem upravlja procesom realizacije službenih putovanja zaposlenih u firmi ABC. Sistem treba da obezbedi odobrenje za službeni put, izvore finansiranja puta, rezervacije karata, hotela i dr., izveštaj lica koje je išlo na službeni put, isplatu dnevnica, plaćanje računa za karte, hotel i dr., izradu konačnog finansijskog obračuna, i arhiviranje celokupne dokumentacije vezane za službeni put. (povezan zadatak: 5.8)

A

Praktičan zadatak