Kolokvijum 2 SWE Flashcards

1
Q

Šta predstavlja upravljanje projektima i po čemu su softverski projekti osobeni?

A

Pod upravljanjem projektima se podrazumeva organizovanje, planiranje i raspoređivanje softverskih projekata. Upravljanje softverskim projektima odnosi se na aktivnosti koje treba da osiguraju da se softver isporuči na vreme i po planu, a saglasno zahtevima organizacije koja ga razvija i organizacije koja ga nabavlja.
Softverski projekti su specifični zbog toga što:
* Proizvod je nevidljiv
* Proizvod je fleksibilan
* Softversko inženjerstvo nema status zdrave inženjerske discipline kao što su mašinstvo, energetika, itd.
* Proces razvoja softvera nije standardizovan
* Mnogi softverski proizvodi su unikatni

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

Navesti i kratko opisati osobine dobro projektovanog softvera.

A

Osobine dobrog projekta su:
* Hijerarhija - dobar projekat bi trebalo da bude organizovan u dobro projektovanu hijerarhiju komponenata
* Modularnost - treba izvršiti dekompoziciju sistema u posebne celine - module (na primer, razdvojiti podatke i obradu) sa jasno definisanim interfejsom.
* Nezavisnost - treba grupisati slične stvari u nezavisne module. Ako se kasnije menjaju neke bitne odluke u projektu, posledice će biti lokalizovane.
* Jednostavan interfejs - treba izbeći komplikovan korisnički interfejs, interfejse sa velikim brojem mogućnosti upotrebe kao i interfejse čija bi izmena mogla izazvati neželjene efekte.

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

Kratko opisati i grafički ilustrovati proces upravljanja rizikom

A

FALI SLIKA
Proces upravljanja rizikom se sastoji od 4 faza:
* Identifikacija rizika - Identifikovati projektne, proizvodne i poslovne rizike
* Analiza rizika - Proceniti verovatnoću i posledice identifikovanih rizika
* Planiranje rizika - Skicirati planove da se izbegnu ili minimiziraju uticaji identifikovanih rizika
* Monitoring rizika - Nadgledati rizike u toku projekta

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

Ukratko opisati i navesti prednosti i nedostatke slojevitog (eng. layered) arhitekturnog modela

A

Slojeviti (Layered) model se koristi kod modeliranja interfejsa među podsistemima. Sistem se organizuje u skup slojeva (layera) od kojih svaki obezbeđuje jedan skup funkcionalnosti sloju iznad i služi kao klijent sloju ispod.
Prednosti Layered modela:
* Promena interfejsa jednog sloja može da utiče na maksimalno još dva sloja
* Laka zamena jednog sloja drugim ukoliko su im interfejsi identični
* Baziran je na visokom nivou apstrakcije
Nedostaci Layered modela:
* Ne mogu svi sistemi da se lako organizuju po ovom modelu

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

Ukratko opisati i navesti prednosti i nedostatke klijent/server arhitekturnog modela

A

Client-Server model se koristi kod distribuiranih sistema. Sastoji se od skupa stand-alone servera koji obezbeđuju specifične servise (štampa, Web, baza podataka, …), skupa klijenata koji pozivaju te servise i mreže koja omogućuje udaljeni pristup. Komponente ovog modela su serveri i klijenti, a konektori mreža i servisi servera.
Prednosti ovog modela su:
* Efikasno korišćenje mrežnih sistema.
* Omogućava korišćenje slabije HW-a za klijente, obzirom da server odrađuje većinu posla.
* Lako dodavanje novih servera i upgrade postojećih.
Nedostaci ovog modela su:
* Neefikasna razmena podataka između klijenata (moraju da idu preko servera).
* Redundantnost podataka.
* Ne postoji centralni registar imena servera i servisa. Nije lako otkriti koji serveri i servisi su na raspolaganju.

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

Navesti osnovne karakteristike, kao i prednosti i nedostatke event-driven arhitekturnih modela

A

Ovaj model se koristi kod sistema koji su upravljani eksterno generisanim događajima (events). Postoje 2 osnovne grupe ovih modela:
* Broadcast modeli
* Interrupt-driven modeli
Prednosti Event-driven modela:
* Podrška višestrukom korišćenju SW-a (reuse).
* Laka evolucija sistema.
* Lako uvođenje nove komponente u sistem (jednostavno se registruje za neki event).
Nedostaci Event-driven modela:
* Kada komponenta generiše događaj ona ne može da zna da li će neka komponenta da odgovori na njega i kada će obrada događaja biti završena.

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

Šta predstavlja verifikacija, a šta validacija?

A

Verifikacija odgovara na pitanje „Da li na pravi način gradimo proizvod?“ i ispituje da li je softver usaglašen sa svojom specifikacijom.
Validacija odgovara na pitanje „Da li gradimo pravi proizvod?“ i ispituje da li softver radi ono što korisnik stvarno traži.
Dva glavna cilja V&V su otkrivanje defekata u sistemu i procena da li je sistem upotrebljiv i koristan u realnim uslovima.

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

Šta predstavlja i koji su ciljevi inspekcije softvera?

A

Inspekcija softvera predstavlja analizu statičkih reprezentacija sistema da bi se otkrili problemi. Cilj inspekcije sosftvera je ispitivanje izvorne reprezentacije SW radi otkrivanja anomalija i defekata. Inspekcija ne zahteva izvršenje SW tako da se može izvoditi pre njegove implementacije. Može biti primenjena na bilo koju reprezentaciju SW a prema istraživanjima, najefikasnija primena je na slučajeve korišćenja.

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

Navesti, kratko opisati i uporediti različite metode testiranja softvera

A

Metode testiranja se mogu svrstati u 3 grupe:
* Metode crne kutije - Test inženjer pristupa SW koji testira preko interfejsa koji je namenjen krajnim korisnicima
* Metode bele kutije - Test inženjer pristupa izvornom kodu i može pisati kod koji linkuje sa bibliotekama koje su linkovane sa softverom koji se testira. Obično se koristi kod komponentnog testiranja.
* Metode sive kutije - Test inženjer može postaviti ili manipulisati nekom okolinom za testiranje i može videti stanje SW posle svake akcije. Koriste ih gotovo isključivo klijent-server test inženjeri ili inženjeri koji koriste bazu podataka kao repozitorijum informacija.
Kriterijumi za ovu kategorizaciju metoda su: da li se pri razvoju test slučajeva pristupa izvornom kodu SW koji se testira i da li se testiranje vrši preko korisničkog interfejsa (UI) ili preko programskog interfejsa (API).

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

Opisati i uporediti top-down i bottom-up pristupe projektovanja softvera

A

Top-down projektovanje SW-a:
* Polazi se od vrha sistema, odnosno od najviših slojeva i onda se polako dolazi do podsistema koji su na nižim nivoima. Loša strana ove tehnike je ta što se forsira razvoj pojedinih grana sistema dok neke druge nisu ni započete. Takođe, ova tehnika ne sagledava na pravi način već postojeće komponente koje se mogu iskoristiti.
Bottom-up projektovanje SW-a:
* Polazi se sa dna sistema, odnosno od najnižih slojeva i onda se polako dolazi do podsistema koji su na višim nivoima. Obično se kreće od gotovih komponenata koje se povezuju kako bi se realizovali neki delovi sistema. Loša strana ove tehnike je ta što se najviši slojevi podsistema (a koje korisnik direktno vidi) dobijaju u kasnim fazama implementacije.

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

Navesti i kratko opisati tipove održavanja softvera?

A

Tipovi održavanja softvera su:
* Održavanje u cilju ispravke softverskih grešaka - Izmena sistema kako bi se otklonili nedostaci koji sprečavaju da sistem radi u skladu sa svojom specifikacijom.
* Održavanje sa ciljem prilagođavanja softvera za drugačije radno okruženje - Promena sistema tako da može da radi u drugačijem okruženju (računar, OS, itd.) od onog za koje je inicijalno implementiran.
* Održavanje u cilju dodavanja nove ili izmene postojeće funkcionalnosti sistema - Modifikacija sistema kako bi zadovoljio nove zahteve.

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

Šta je refaktoring, a šta reinženjering? Navesti sličnosti i razlike.

A

1) Refaktorisanje je proces unapredjenja programa kako bi se smanjila njegova degradacija kroz izmene.
2) Predstavlja preventivno održavanje i uključuje izmenu programa kako bi se poboljšala njegova struktura, smanjila složenost ili povećala razumljivost.
3) Kada se refaktoriše program treba izbegavati dodavanje novih funkcionalnosti.
4) Koristi se kako bi se izbegla degradacija strukture i koda, a u cilju umanjenja cene i složenosti održavanja sistema.
1)Reinžinjering predstavlja ulaganje truda sa ciljem lakšeg održavanja i on se bavi restruktuiranjem i redokumentovanjem softvera.
2) Rekonsturisanje je ponovno pisanje dela ili celog nasledjenog sistema bez promene njegove funkcionalnosti.
3) Primenjiv je onda kada neki ali ne svi podsistemi većeg sistema zahtevaju često održavanje.
4) Prednosti su mu smanjenje cene i smanjenje rizika. (Aktivnosti u procesu reinženjeringa su prevodjenje izvornog koda, analiza programa u cilju boljeg razumevanja, unapredjenje strukture programa, modularizacija programa i reinženjering podataka).
5) Obavlja se nakon što je sistem bio održavan neko vreme i cena održavanja je porasla. Vrši se korišćenjem automatskih alata.

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

Navesti i kratko opisati kategorije strategija za upravljanje rizikom

A

Strategija izbegavanja
– Smanjiti verovatnoću pojave rizika
– Primenjeno kod defekta u komponentama
Strategije minimizacije
– Smanjiti uticaj rizika na projekat ili proizvod
– Primenjeno kod bolesti osoblja
Planovi za nepredviđene događaje
– Ako se rizik pojavi, ovi planovi definišu kako se radi
– sa rizikom
– Primenjeno kod finansijskih problema organizacije

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