Пројектовање софтвера/К1 2023
Prvi kolokvijum 2023. godine održan je 1. novembra i trajao je 20 minuta.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Povezati pojmove s odgovarajućim definicijama principa (elemenata) OO modela.
- Osobina sistema da se razlaže na skup kohezivnih i slabo spregnutih elemenata modularnost
- Proces sakrivanja onih elemenata apstrakcije koji definišu strukturu i ponašanje kapsulacija
- Uprošćeni opis ili specifikacija sistema koja naglašava neke od detalja, dok potiskuje druge apstrakcija
- Rangiranje ili uređivanje apstrakcija hijerarhija
2. zadatak
Povezati definicije s odgovarajućim pojmovima
- Statički delovi modela, predstavljaju fizičke ili konceptualne elemente (imenice) Stvari strukture
- Organizacioni delovi modela, kutije u koje model može biti dekomponovan Stvari grupisanja
- Objašnjavajući delovi modela, komentari koji se primenjuju na bilo koji element Stvari anotacije
- Dinamički delovi modela, predstavljaju ponašanje kroz prostor i vreme Stvari ponašanja
- Apstrakcije koje su "građani prvog reda" u modelu Stvari
3. zadatak
Pri modelovanju nekog sistema za veći broj biblioteka, javila se potreba za klasama Biblioteka i Knjiga. Izabrati UML relaciju koja najviše odgovara odnosu datih klasa.
Izaberite jedan odgovor
- Asocijacija
- Realizacija
- Agregacija
- Kompozicija
- Generalizacija
Objašnjenje: Ne može da bude kompozicija jer biblioteka nije odgovorna za životni vek knjige i može da postoji biblioteka bez ijedne knjige.
4. zadatak
Dat je sledeći dijagram paketa koji sadrže klase s operacijama čije su liste parametara suspendovane iz prikaza:
Ako su klase A, B, C i D javne u svojim paketima, koje od sledećih deklaracija operacija s dijagrama su i ispravne
- +oc(b:B):A
- +ob(a:P1::A):C
- +oa(c:P2::C):B
- +oa(b:B):P3::C
- +oa(d:P3::D):P4::D
Objašnjenje: Kada je klasa javna u paketu 1 njenom imenu se može pristupiti preko Paket1::Klasa odakle god, a kao Klasa samo u paketu 1. Kada paket 1 uradi import iz paketa 2, svim javnim klasama paketa 2 se može pristupiti kao da su javne klase paketa 1. Znači preko Paket1::Klasa, Paket2::Klasa ili samo kao Klasa u paketima 1 i 2. Kada paket 1 uradi access iz paketa 2 onda javni članovi paketa 2 postaju privatni članovi paketa 1 pa je moguće Paket2::Klasa ili samo kao Klasa u paketima 1 i 2, ali nikako Paket1::Klasa; takođe, ukoliko paket 0 radi import ili access iz paketa 1, on neće uvesti ništa uvezeno iz paketa 2
5. zadatak
Koje od navedenih tvrdnji su tačne za dijagrame objekata?
- Objekat može da menja svoje stanje na istom dijagramu
- Ime objekta je neophodno navesti
- Element niza objekata može da se prikaže kao poseban objekat
- Aktivan objekat se isto prikazuje kao bilo koji drugi (pasivan) objekat
- Naziv objekta se piše podebljanim (bold) slovima
6. zadatak
Označiti tvrdnje koje su tačne za projektni uzorak Unikat (eng. Singleton):
- Konstruktor klase s ulogom Unikat ne sme da bude s javnim pravom pristupa
- Korišćenje projektnog uzorka Unikat je bolje od korišćenja globalne promenljive, jer omogućava globalnu tačku pristupa
- Unikat pruža bolju fleksibilnost u odnosu na uslužne klase, jer ne koristi statičke atribute
- Primerak (objekat) klase unikata uvek postoji od početka izvršavanja programa
- U sistemima s više niti bez dodatne sinhronizacije moguće je pojava utrkivanja (eng. race hazard) pri pozivanju metoda za dohvatanje primerka
Objašnjenje: e. je tačno jer do utrkivanja može da dođe ukoliko dve niti pozovu metod za dohvatanje pristupa pre nego što je on kreiran, pa prva izgubi procesor nakon što ispita (pirmerak == null) a pre nego što pozove konstruktor, čime se stvaraju dva objekta
7. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Šablonski metod (eng. Template Method):
- Prosti koraci algoritma u Apstraktnoj klasi moraju da budu apstraktni
- Uzorak koristi ideju invertovane kontorlne strukture
- Predstavlja objektni uzorak ponašanja
- Apstraktna klasa uvek definiše redosled koraka u algoritmu
- Metodi izvedene klase uvek pozivaju metode iz osnovne
8. zadatak
Označiti tvrdnje koje su tačne za projektni uzorak Prototip (eng. Prototype):
- Saradnja funckioniše tako pto se u okviru nadjačanog metoda kopija() u klasi Konkretnog prototipa kopirani objekat registruje u registru kopija, odakle ga zatim Klijent može dohvatiti
- Mana uzorka je što klijent mora da bude upoznat sa svim konkretnim prototipima
- Dobra strana uzorka je što nove vrste proizvoda mogu da se dodaju u vreme izvršenja
- Uz projektni uzorak Sastav se često kombinuje i Prototip
- Uzorak predstavlja klasni uzorak stvaranja
9. zadatak
Označiti tvrdnje koje su tačne za projektni uzorak Sastav (eng. Composite):
- Klasa List mora da definiše metod dodavanja elementa
- Klasa Sklop mora da definiše metod dodavanja elementa
- Objekat klase Sklop ne sme da bude deo drugog objekta klase Sklop
- Klase Sklop i Element su u relaciji agregacije (agregat je Sklop)
- Uzorak komponuje objekte u strukturu binarnog stabla
Objašnjenje: e. je netačno jer je stablo m-arno, ne binarno
10. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Dekorater (eng. Decorator):[1]
- Dekorater dinamički menja interfejs dekorisanog elementa
- Dekorater je objektni uzorak ponašanja
- Odgovornosti klasi subjekta se mogu dinamički dodavati
- Konkretna dopuna može da se koristi bez subjekta
- Dekorater propisuje redosled izvršavanja dopuna
Napomene
- ↑ Ponuđeni odgovri nisu bili sačuvani egzaktno već su rekonstruisani iz sećanja