31-49 Flashcards
Који су најважнији савремени концепти развоја који су настали из потребе за смањивањем ризика у
развојном процесу
- Inkrementalni razvoj
- Odredjivanje koraka prema rokovima
- Pojacana komunikacija medju subjektima
- U zizi su objekti a ne procesi
- Pravljenje prototipova
Објаснити концепт инкременталног развоја
Umesto da se razvoj posmatra kao jedna velika celina, sa slooenim
projektom i implementacijom, ta celina se deli u niz inkrementalnih faza. Te faze se nazivaju inkrementi ili ciklusi. Svaki inkrement ima sve osnovne podfaze, kao sto su: analiza zahteva, dizajn, implementacija i testiranje.
Dobit:
- Svaka faza je manja i jednostavnija, cime je pojednostavljeno plani-
ranje i implementacija.
- Veca tacnost planiranja troskova i rokova i tacnije izvestavanje o
toku razvoja.
- Klijent moze da odgovori na svaki napredak.
Rizik:
- Ako u prvim koracima zanemarimo predstojece korake, onda postoji rizik da ce u narednim koracima biti potrebne vece izmene.
- Ako se u prvim koracima uzmu u obzir svi prestojeci, onda postoji
rizik da se njihova slozenost priblizi slozenosti citavog sitema (“na-
duvavanje koraka”), cime ovakav pristup gubi smisao.
- Cesto nije moguce sagledati unapred broj, cenu i ukupno trajanje
svih koraka.
Објаснити концепт одређивања корака према роковима?
Za svaki inkrementalan korak se prvo odrede budoet i rokovi, a tek
posle toga poslovi koji ce tim korakom biti obuhvaceni.
Dobit:
- Drasticno smanjivanje rizika od prekoraaenja budzeta ili rokova;
- Uspostavljanje ritma redovnog isporucivanja novih verzija sistema;
- Redovnija kontrola kvaliteta i visi stepen poverenja izmedju subjekta;
- Postepeno prilagodjavanje korisnika novim elemetnima sistema.
Mane:
- Uspostavljanje tesnih okvira inkrementalnog koraka moze oterati pojedine korake i podici ukupnu cenu i trajanje razvoja;
- Neki elementi sistema se ne mogu prirodno podeliti u razlicite korake;
- Svaki korak zahteva troskove isporucivanja sto u zbiru moze da po-
stane velika stavka u slucaju velikog broja malih koraka;
- U prvim koracima se obicno biraju poslovi koji donose vecu dobit;
- Pri kraju razvoja postoji rizik da se ne implementiraju poslovi “cija
je cena veca od dobiti” iako su znacajni za sistem kao celinu.
Објаснити концепт појачане комуникације међу субјектима?
U planiranju (i svakog pojedinacnog koraka) se ukljucuju u razmatranje sve vrste subjekata u sto vecem broju.
Dobit:
- Dobija se tacnija slika o potrebnim ciljevima iz razlicitih uglova;
- Smanjuje se rizik razvoja neupotrebljivog resenja;
- Subjekti se kroz proces razvoja pripremaju za upotrebu.
Mane:
- Previse informacija mooe dovesti do preteranog planiranja, a time i
do “naduvavanja” pojedinacnih koraka.
- Prevelikim razmatranjem misljenja subjekata koji su navikli na postojece procese i ne sagledavaju planirane izmene. Moze se smanjiti obim sustinskih funkcionalnih izmena u okviru koraka, a time i nepotrebno povecati broj koraka da se dode do “konacnog” resenja.
Објаснити концепт давања предности објектима у односу на процесе?
U srediste paznje se stavljaju objekti pre procesa.
Dobit:
- Objekti su obicno stabilniji od procesa (manje se menjaju i manje
su sanse da se skroz obrisu);
- Prilagodjeniju su inkrementalnom pristupu;
- Smanjuje se rizik od pogresnih odluka u ranijim fazama razvoja (u
ranijim fazama je vise akcenat na objektima, a na kasnijim na pro-
cesima).
Rizik:
- Potpuno zanemarivanje procesa u ranim fazama moze voditi ka pogresnoj arhitekturi sistema sto se kasnije tesko menja;
- Sasvim detaljno razmatranje procesa u ranim koracima moze da dovede do “naduvavanja” koraka.
Објаснити концепт прављења прототипова
U okviru analize problema se pravi prototip koji odroava nacin funkcionisanja i upotrebe softvera.
Dobit:
- Olaksava se netehnickim subjektima da u ranim fazama razvoja uoce odredjene nedostatke;
- Smanjuje se rizik od pogresnih odluka u ranim fazama razvoja.
Rizik:
- Prototipovi obicno odrazavaju funkcionalne aspekte i elemente korisnickog interfejsa, ali ne i unutrasnju strukturu softvera. Zbog toga su samo delimicno odgovarajuci objektno orijentisanim metodologijama;
- Nedovoljno siroko napravljen prototip i nedovoljno siroko razmatranje prototipa mogu da prikriju nedostatke u drugim aspektima IS;
- Previse paznje posvecene prototipu preti da “naduva” fazu njegove
izrade, kao i da skrene tok razvoja na prototip umesto na sistem kao
celinu.
У којим околностима су настале објектно оријентисане развојне методологије?
- Postojanje metodologija koje strukturirano pristupaju analizi i opi-
sivanju procesa; - Potreba za strukturiranim opisivanjem podataka;
- Potreba za opisivanjem entiteta koji menjaju stanja;
- Podizanje nivoa apstraktnosti posmatranja elemenata sistema;
- Programiranje upravljano dogadjajima;
- Vizuelni korisni£ki interfejsi;
- Povecana modularnost softvera;
- Skracivanje razvojnog ciklusa;
- Tranzicija modela;
- Visestruka upotrebljivost softvera;
- i drugo . . .
Za razliku od strukturnih, koje su u srediste paznje stavljale uredjivanje procesa i algoritama, objektno orijentisane metodologije u srediste paznje stavljaju uredjivanje objekata kojima se opisuje sistem. Razvoj objektno orijentisanih metodologija je poceo u vreme kada su slabosti prethodnih metodologija bile uglavnom poznate. U njih su ugradjeni neki od predstavljenih savremenih koncepata razvoja.
Објаснити основне концепте приступања објектно оријентисаних развојних методологија проблему
развоја.
- U zizu se stavljaju objekti, a ne procesi;
- Sve objektno orijentisane metodologije se odlikuju skracivanjem trajanja razvojnog ciklusa:
- RUP (i druge) propisuju inkrementalni razvoj,
- Agilne metodologije propisuju odredjivanje koraka prema rokovima i troskovima;
- Pojacana komunikacija medju subjektima u svim fazama.
Шта је објекат? Објаснити својим речима и навести једну од познатих дефиниција.
“Objekti imaju stanje, ponasanje i identitet” (Booch, 1994)
Objekat je apstrahcija neceg konkretnog u domenu problema. Ima stanje, ponasanje i znanje (ne mora svo troje). Ima svoj oivotni ciklus:
- Nastajanje
- Postojanje
- Nestajanje
Шта је класа? Атрибут? Метод?
- Klasa predstavlja skup objekata koji imaju isto ponasanje (isti skup
metoda) i isti skup atributa. - Metodi su funkcije definisane u okviru neke klase. Skup metoda
opisuje ponasanje objekta (klase). - Atributi su polja klase. Trenutne vrednosti atributa opisuju trenut-
no stanje objekta.
Који су основни концепти на којима почивају технике објектно оријентисаних методологија?
- enkapsulacija
- interfejs
- polimorfzam
- nasledjivanje
Nasledjivanje je specijalizacija i generalizacija u hijearhiji klasa. Smanjuje dupliran kod i koristi se za dinamicki polimorfizam.
Објаснити концепт енкапсулације.
Ideja je da se podaci i funkcije koje rade sa tim podacima spoje u
jednu klasu. Klasa se deli na javni i privatni deo. Podaci se uglavnom nalaze u privatnom delu, sa izuzecima (javne staticke konstante su relativno prihvatljive). Javne funkcije opisuju klasu i njenu svrhu u okviru modula u kojem se koristi.
Svrha je apstrahovanje strukture metodima i visi nivo medjusobne nezavisnosti klasa od modula u kojem se upotrebljava.
Објаснити концепт интерфејса
Klasa je opisana korisniku preko javnih metoda klase (plavi, javni deo
kapsule sa slike). Korisnik interfejsa ne mora da zna implementaciju klase da bi je koristio.
Svrha interfejsa je sakrivanje slozenosti implementacije. Sustina objekta je u njegovom ponasanju.
Napomena: Ako objekat ima vise interfejsa, znaci da ima vise funkcija, pa je potrebno razmotriti njegovo razlaganje na vise objekata.
Објаснити концепт полиморфизма
Poenta polimorfizma je da se jedan kod sto vise puta iskoristi.
Vrste:
- hijearhijski (dinamicki): dobijen kombinacijom dinamickog pove-
zivanja i nasledjivanja;
- parametarski (staticki): sabloni;
- implicitni: retko koji jezici ovo podrzavaju.
Pisemo apstrakniji kod koji ima vecu upotrebljivost.
Објаснити концепт наслеђивања и одговарајуће односе
Nasledjivanje klase je ekvivalentno uvodjenju jednosmerne parcijalno uredjene relacije “jeste” izmedju klasa.
Klasa A “jeste” klasa B akko svaki objekat klase A ima sve osobine
koje imaju i objekti klase B.
Ako A “jeste” klasa B kaoe se i da je:
- A “izvedena” klasa iz B ili A “je potomak” klase B
- B “osnovna” klasa za A ili B “je predak” klase A
Predstavlja osnovu za gracjenje hijerarhija klasa.
Svrha:
- Nasledjivanje se koristi za eksplicitno oznacavanje slicnosti medju klasama (objektima).
- Predstavlja osnovu za hijerarhijski polimorfizam: ako se to moze uraditi sa svakim objektnom klase B, onda se to moze uraditi i sa svakim objektom klase A koja je izvedena iz B.
Nasledjivanje se posmatra u dva smera, kao specijalizacija ili generalizacija:
- klasa A je poseban (specijalan) slucaj klase B
- klasa B je opstiji (generalan) slucaj klase A