Пројектовање софтвера/К1 2023

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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.

  1. Osobina sistema da se razlaže na skup kohezivnih i slabo spregnutih elemenata modularnost
  2. Proces sakrivanja onih elemenata apstrakcije koji definišu strukturu i ponašanje kapsulacija
  3. Uprošćeni opis ili specifikacija sistema koja naglašava neke od detalja, dok potiskuje druge apstrakcija
  4. Rangiranje ili uređivanje apstrakcija hijerarhija

2. zadatak

Povezati definicije s odgovarajućim pojmovima

  1. Statički delovi modela, predstavljaju fizičke ili konceptualne elemente (imenice) Stvari strukture
  2. Organizacioni delovi modela, kutije u koje model može biti dekomponovan Stvari grupisanja
  3. Objašnjavajući delovi modela, komentari koji se primenjuju na bilo koji element Stvari anotacije
  4. Dinamički delovi modela, predstavljaju ponašanje kroz prostor i vreme Stvari ponašanja
  5. 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

  1. Asocijacija
  2. Realizacija
  3. Agregacija
  4. Kompozicija
  5. 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:

Dijagram paketa iz četvrtog zadatka.

Ako su klase A, B, C i D javne u svojim paketima, koje od sledećih deklaracija operacija s dijagrama su i ispravne

  1. +oc(b:B):A
  2. +ob(a:P1::A):C
  3. +oa(c:P2::C):B
  4. +oa(b:B):P3::C
  5. +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?

  1. Objekat može da menja svoje stanje na istom dijagramu
  2. Ime objekta je neophodno navesti
  3. Element niza objekata može da se prikaže kao poseban objekat
  4. Aktivan objekat se isto prikazuje kao bilo koji drugi (pasivan) objekat
  5. Naziv objekta se piše podebljanim (bold) slovima[1]

6. zadatak

Označiti tvrdnje koje su tačne za projektni uzorak Unikat (eng. Singleton):

  1. Konstruktor klase s ulogom Unikat ne sme da bude s javnim pravom pristupa
  2. Korišćenje projektnog uzorka Unikat je bolje od korišćenja globalne promenljive, jer omogućava globalnu tačku pristupa
  3. Unikat pruža bolju fleksibilnost u odnosu na uslužne klase, jer ne koristi statičke atribute
  4. Primerak (objekat) klase unikata uvek postoji od početka izvršavanja programa
  5. 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):

  1. Prosti koraci algoritma u Apstraktnoj klasi moraju da budu apstraktni
  2. Uzorak koristi ideju invertovane kontorlne strukture
  3. Predstavlja objektni uzorak ponašanja
  4. Apstraktna klasa uvek definiše redosled koraka u algoritmu
  5. Metodi izvedene klase uvek pozivaju metode iz osnovne

8. zadatak

Označiti tvrdnje koje su tačne za projektni uzorak Prototip (eng. Prototype):

  1. 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
  2. Mana uzorka je što klijent mora da bude upoznat sa svim konkretnim prototipima
  3. Dobra strana uzorka je što nove vrste proizvoda mogu da se dodaju u vreme izvršenja
  4. Uz projektni uzorak Sastav se često kombinuje i Prototip
  5. Uzorak predstavlja klasni uzorak stvaranja

9. zadatak

Označiti tvrdnje koje su tačne za projektni uzorak Sastav (eng. Composite):

  1. Klasa List mora da definiše metod dodavanja elementa
  2. Klasa Sklop mora da definiše metod dodavanja elementa
  3. Objekat klase Sklop ne sme da bude deo drugog objekta klase Sklop
  4. Klase Sklop i Element su u relaciji agregacije (agregat je Sklop)
  5. 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):[2]

  1. Dekorater dinamički menja interfejs dekorisanog elementa
  2. Dekorater je objektni uzorak ponašanja
  3. Odgovornosti klasi subjekta se mogu dinamički dodavati
  4. Konkretna dopuna može da se koristi bez subjekta
  5. Uzorak propisuje redosled dekorisanja.

Napomene

  1. Ovo je prvo bilo označeno kao netačno, ali su posle žalbi priznata oba odgovora jer se u nekim alatima nazivi pišu podebljano, a u nekim ne. UML 2 standard ne propisuje da nazivi objekata moraju da se pišu podebljanim slovima.
  2. Ponuđeni odgovri nisu bili sačuvani egzaktno već su rekonstruisani iz sećanja