Пројектовање софтвера/Питалице — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Ispravka)
м (Ovaj UML kviz ne samo što više nije dostupan na adresi već im je crkao i HTTPS)
 
(Није приказано 10 међуизмена 4 корисника)
Ред 28: Ред 28:


== 3. zadatak ==
== 3. zadatak ==
Odnos interfejs–>klasa i klasa–>objekat, redom, isti je kao i odnos:
Odnos interfejs → klasa i klasa → objekat, redom, isti je kao i odnos:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# slučaj korišćenja->saradnja i saradnja->scenario
# slučaj korišćenja saradnja i saradnja scenario
# saradnja–>slučaj korišćenja i slučaj korišćenja->scenario
# saradnja → slučaj korišćenja i slučaj korišćenja scenario
# slučaj korišćenja->scenario i slučaj korišćenja->saradnja
# slučaj korišćenja scenario i slučaj korišćenja saradnja
# <span class="solution">slučaj korišćenja->saradnja i slučaj korišćenja->scenario</span>
# <span class="solution">slučaj korišćenja saradnja i slučaj korišćenja scenario</span>
</div>
</div>


Ред 45: Ред 45:
# <span class="solution">Poruka koja nije atomična predstavlja se strelicom ukoso naniže.</span>
# <span class="solution">Poruka koja nije atomična predstavlja se strelicom ukoso naniže.</span>
</div>
</div>
Objašnjenje: <span class="spoiler" data-solution="explanation">alt fragment je generalizacija opt fragmenta. Uslov u ''guard'' fragmenta mora biti ispunjen da bi se fragment izvršio, a ukoliko se ''guard'' ne specifikuje on implicitno ima logički tačnu vrednost za ''guard''. Videti takođe [https://www.uml-diagrams.org/sequence-diagrams-combined-fragment.html#operator-alt uml-diagrams.org.]</span>


== 5. zadatak ==
== 5. zadatak ==
Koliko iznosi multiplikativnost y projektnom uzorku Iterator na strani asocijacije konkretnog iteratora?
Koliko iznosi multiplikativnost u projektnom uzorku Iterator na strani asocijacije konkretnog iteratora?


Odgovor: <span class="spoiler" data-solution="text">*</span>
Odgovor: <span class="spoiler" data-solution="text">*</span>
Ред 64: Ред 65:
Izabrati nazive pojmova sa slike:
Izabrati nazive pojmova sa slike:
<div class="abc-list" data-solution="select" data-options="Krajnji čvor,Konkurentno spajanje (join),Sekvencijalno grananje (decision),Početni čvor,Kraj toka">
<div class="abc-list" data-solution="select" data-options="Krajnji čvor,Konkurentno spajanje (join),Sekvencijalno grananje (decision),Početni čvor,Kraj toka">
# [[Датотека:PS pitalice decision node.svg|64px|link=]] <span class="spoiler">Sekvencijalno grananje (decision)</span>
# [[Датотека:PS pitalice decision node.svg|64px|link=|class=transparent-svg|Čvor iz stavke pod a.]] <span class="spoiler">Sekvencijalno grananje (decision)</span>
# [[Датотека:PS pitalice join node.svg|64px|link=]] <span class="spoiler">Konkurentno spajanje (join)</span>
# [[Датотека:PS pitalice join node.svg|64px|link=|class=transparent-svg|Čvor iz stavke pod b.]] <span class="spoiler">Konkurentno spajanje (join)</span>
# [[Датотека:PS pitalice flow final node.svg|64px|link=]] <span class="spoiler">Kraj toka</span>
# [[Датотека:PS pitalice flow final node.svg|64px|link=|class=transparent-svg|Čvor iz stavke pod c.]] <span class="spoiler">Kraj toka</span>
# [[Датотека:PS pitalice initial node.svg|64px|link=]] <span class="spoiler">Početni čvor</span>
# [[Датотека:PS pitalice initial node.svg|64px|link=|class=transparent-svg|Čvor iz stavke pod d.]] <span class="spoiler">Početni čvor</span>
# [[Датотека:PS pitalice final node.svg|64px|link=]] <span class="spoiler">Krajnji čvor</span>
# [[Датотека:PS pitalice final node.svg|64px|link=|class=transparent-svg|Čvor iz stavke pod e.]] <span class="spoiler">Krajnji čvor</span>
</div>
</div>


Ред 83: Ред 84:


== 9. zadatak ==
== 9. zadatak ==
{{delimično rešeno}}
Da bi se definisala multiplikativnost ternarne asocijacije potrebno je:
Da bi se definisala multiplikativnost ternarne asocijacije potrebno je:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# Uzeti vrednost jedan za multiplikativnost jedne klase i odrediti multiplikativnost ostale dve.
# Uzeti vrednost jedan za multiplikativnost jedne klase i odrediti multiplikativnost ostale dve.
# Utvrditi multiplikativnost posmatrajući svaku klasu zasebno.
# Utvrditi multiplikativnost posmatrajući svaku klasu zasebno.
# Uzeti vrednost jedan za multiplikativnost preostale dve klase i odrediti multiplikativnost treće.
# <span class="solution">Uzeti vrednost jedan za multiplikativnost preostale dve klase i odrediti multiplikativnost treće.</span>
# Ponašati se kao da je asocijacija binarna i odrediti multiplikativnost u parovima.
# Ponašati se kao da je asocijacija binarna i odrediti multiplikativnost u parovima.
</div>
</div>
Objašnjenje: <span class="spoiler" data-solution="explanation">Ovo pitanje deluje da je preuzeto sa jednog onlajn UML kviza i nije poznato da li se zapravo nekad pojavilo na ispitu.</span>


== 10. zadatak ==
== 10. zadatak ==
Ред 154: Ред 155:
# <span class="solution">Sadrži zahtevane interfejse</span>
# <span class="solution">Sadrži zahtevane interfejse</span>
# <span class="solution">Može se zameniti drugom, adekvatnom komponentom bez narušavanja modela</span>
# <span class="solution">Može se zameniti drugom, adekvatnom komponentom bez narušavanja modela</span>
# <span class="solution">Implementira operacije zahtevanog interfejsa</span>
# Implementira operacije zahtevanog interfejsa
</div>
</div>
Objašnjenje: <span class="spoiler" data-solution="explanation">Ukoliko se misli na interfejs zahtevan od komponente, stavka pod e je tačna.</span>


== 18. zadatak ==
== 18. zadatak ==
Ред 177: Ред 179:
== 20. zadatak ==
== 20. zadatak ==
<code>&lt;&lt;exception>></code> je primer:
<code>&lt;&lt;exception>></code> je primer:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="single">
# <span class="solution">Stereotipa</span>
# <span class="solution">Stereotipa</span>
# Ograničenja
# Ograničenja
Ред 253: Ред 255:


== 30. zadatak ==
== 30. zadatak ==
[[Датотека:PS pitalice ball and socket.svg|thumb|Dijagram iz postavke zadatka.]]
[[Датотека:PS pitalice dijagram sekvence.svg|thumb|Dijagram iz postavke zadatka.]]
Na slici je grafička reprezentacija dijagrama: <span class="spoiler" data-solution="text">sekvence</span>
Na slici je grafička reprezentacija dijagrama: <span class="spoiler" data-solution="text">sekvence</span>


Ред 313: Ред 315:
Izabrati tačne tvrdnje:
Izabrati tačne tvrdnje:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Posrednik je uzorak koji smanjuje uparivanja klijenata sa podsistemom.</span>
# Posrednik je uzorak koji smanjuje uparivanja klijenata sa podsistemom.
# <span class="solution">Poređenje identiteta bilo koje dve pojave "lakog" objekta u kontekstu uvek vraća vrednost true.</span>
# <span class="solution">Poređenje identiteta bilo koje dve pojave "lakog" objekta u kontekstu uvek vraća vrednost true.</span>
# Forsiranje interakcije kroz posrednika može da ugrozi performanse.
# <span class="solution">Forsiranje interakcije kroz posrednika može da ugrozi performanse.</span>
# <span class="solution">Kod projektnog uzorka Fasada dozvoljena je komunikacija klijenta direktno sa klasama podsistema.</span>
# <span class="solution">Kod projektnog uzorka Fasada dozvoljena je komunikacija klijenta direktno sa klasama podsistema.</span>
# Posrednik koristi jednosmerni protokol u komunikaciji sa kolegama.
# Posrednik koristi jednosmerni protokol u komunikaciji sa kolegama.
Ред 321: Ред 323:


== 41. zadatak ==
== 41. zadatak ==
[[Датотека:PS pitalice dijagram stanja.svg|frame|center|Dijagram iz postavke zadatka.]]
Koliko iznosi vrednost x posle izvršavanja događaja sledećim redosledom: e2 e3 e2 e4 e5?
Koliko iznosi vrednost x posle izvršavanja događaja sledećim redosledom: e2 e3 e2 e4 e5?


Ред 360: Ред 363:
# Akcije su atomične.
# Akcije su atomične.
</div>
</div>
Objašnjenje: <span class="spoiler" data-solution="explanation">Akcije jesu elementarni jedinice aktivnosti, ali se ne izvršavaju atomično.</span>


[[Категорија:Пројектовање софтвера]]
[[Категорија:Пројектовање софтвера]]

Тренутна верзија на датум 30. октобар 2023. у 02:07

Na ovoj stranici skupljeni su razni ispitni primeri koji su se možda pojavili na ispitu ali im se ne zna rok pojavljivanja ili jednostavno nije bilo dovoljno dobro formulisanih pitalica iz tog roka kako bi se odvojili u stranicu roka.

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

1. zadatak

Izabrati tačne tvrdnje za uzorak Prototip:

  1. Osim uz pomoć fabričkog metoda, apstraktna fabrika se može implementirati i uz pomoć prototipa.
  2. Potklase konkretnog prototipa nisu u obavezi da implementiraju metodu clone().
  3. Prototip je objektni uzorak strukture.
  4. Prototip se često realizuje kao unikat.
  5. Poželjno je koristiti uzorak prototip prilikom pravljenja radnih okvira (framework).

2. zadatak

U MVC (model–view–controller) okviru mogu se uočiti sledeći projektni uzorci:

  1. Unikat
  2. Sastav
  3. Prototip
  4. Posmatrač
  5. Iterator
  6. Dekorater
  7. Strategija
  8. Šablonski metod
  9. Adapter

3. zadatak

Odnos interfejs → klasa i klasa → objekat, redom, isti je kao i odnos:

  1. slučaj korišćenja → saradnja i saradnja → scenario
  2. saradnja → slučaj korišćenja i slučaj korišćenja → scenario
  3. slučaj korišćenja → scenario i slučaj korišćenja → saradnja
  4. slučaj korišćenja → saradnja i slučaj korišćenja → scenario

4. zadatak

Izabrati tačne tvrdnje za dijagrame interakcije:

  1. Veza je komunikaciona putanja između uloga.
  2. Dijagram komunikacije je vrsta dijagrama strukture.
  3. Na dijagramu sekvence vertikalna osa predstavlja vreme, a horizontalna uloge.
  4. alt fragment je fragment koji se izvršava samo ukoliko je ispunjen uslov.
  5. Poruka koja nije atomična predstavlja se strelicom ukoso naniže.

Objašnjenje: alt fragment je generalizacija opt fragmenta. Uslov u guard fragmenta mora biti ispunjen da bi se fragment izvršio, a ukoliko se guard ne specifikuje on implicitno ima logički tačnu vrednost za guard. Videti takođe uml-diagrams.org.

5. zadatak

Koliko iznosi multiplikativnost u projektnom uzorku Iterator na strani asocijacije konkretnog iteratora?

Odgovor: *

6. zadatak

Izabrati tačne tvrdnje za uzorak Podsetnik:

  1. Čuvar i subjekat imaju isti interfejs ka podsetniku.
  2. Podsetnik je u obavezi da čuva objekat koji ga je snimio.
  3. Podsetnik dozvoljava pristup stanju samo subjektu.
  4. Podsetnik je objektni uzorak ponašanja.
  5. Podsetnik omogućava podršku za copy-on-write funkcionalnost.

7. zadatak

Izabrati nazive pojmova sa slike:

  1. Čvor iz stavke pod a. Sekvencijalno grananje (decision)
  2. Čvor iz stavke pod b. Konkurentno spajanje (join)
  3. Čvor iz stavke pod c. Kraj toka
  4. Čvor iz stavke pod d. Početni čvor
  5. Čvor iz stavke pod e. Krajnji čvor

8. zadatak

Dijagram iz postavke zadatka.

Izabrati tačne tvrdnje:

  1. Y je klasa.
  2. a je klasa.
  3. Broj 2 na strani asocijacije kod B znači da su dva objekta B y vezi sa tačno jednim objektom A.
  4. Broj 2 na asocijaciji predstavlja multiplikativnost.
  5. Broj 2 u uglastim zagradama predstavlja multiplikativnost.

9. zadatak

Da bi se definisala multiplikativnost ternarne asocijacije potrebno je:

  1. Uzeti vrednost jedan za multiplikativnost jedne klase i odrediti multiplikativnost ostale dve.
  2. Utvrditi multiplikativnost posmatrajući svaku klasu zasebno.
  3. Uzeti vrednost jedan za multiplikativnost preostale dve klase i odrediti multiplikativnost treće.
  4. Ponašati se kao da je asocijacija binarna i odrediti multiplikativnost u parovima.

Objašnjenje: Ovo pitanje deluje da je preuzeto sa jednog onlajn UML kviza i nije poznato da li se zapravo nekad pojavilo na ispitu.

10. zadatak

Odabrati domen i namenu sledećih projektnih uzoraka: (objektni/klasni uzorak strukture/stvaranja/ponašanja)

  1. Lanac odgovornosti: objektni uzorak ponašanja
  2. Komanda: objektni uzorak ponašanja
  3. Graditelj: objektni uzorak stvaranja
  4. Zastupnik: objektni uzorak strukture
  5. Most: objektni uzorak strukture

11. zadatak

Poređajte pojmove objektno-orijentisane metodologije po hronološkom redosledu: 1. objektno-orijentisana analiza; 2. objektno-orijentisano programiranje; 3. objektno orijentisano projektovanje

  1. 2, 1, 3
  2. 1, 2, 3
  3. 1, 3, 2
  4. 2, 3, 1

12. zadatak

Osnovni principi objektno-orijentisanog modela su:

  1. Perzistentnost
  2. Kapsulacija
  3. Hijerarhija
  4. Konkurentnost
  5. Apstrakcija
  6. Modularnost

13. zadatak

Apstrakcija realnog sistema iz određenog ugla posmatranja, a u skladu njegovog boljeg razumevanja predstavlja model tog sistema.

14. zadatak

UML je jezik za ______, što znači da je moguće mapirati model iz UML-a u programske jezike poput Jave ili C++, a čak i u tabelu relacione baze podataka podataka.

  1. dokumentovanje
  2. vizuelizaciju
  3. konstrukciju
  4. modelovanje

15. zadatak

Stvari strukture predstavljaju statičke delove modela i prikazuju logičke ili fizičke elemente.

16. zadatak

Projektni uzorci se u UML notaciji predstavljaju jednom vrstom stvari strukture:

  1. Klasom
  2. Scenarijom
  3. Slučajem korišćenja
  4. Saradnjom

17. zadatak

Odrediti tačnost tvrdnji koje važe za stvar strukture - komponentu:

  1. Realizuje implementirane interfejse
  2. Sadrži atribute
  3. Sadrži zahtevane interfejse
  4. Može se zameniti drugom, adekvatnom komponentom bez narušavanja modela
  5. Implementira operacije zahtevanog interfejsa

Objašnjenje: Ukoliko se misli na interfejs zahtevan od komponente, stavka pod e je tačna.

18. zadatak

Vrste relacija su:

  1. Realizacija
  2. Veza
  3. Interakcija
  4. Asocijacija

19. zadatak

Izabrati dijagrame ponašanja:

  1. Dijagram raspoređivanja
  2. Dijagram stanja
  3. Dijagram komponenata
  4. Dijagram interakcije

20. zadatak

<<exception>> je primer:

  1. Stereotipa
  2. Ograničenja
  3. Obeležene vrednosti

21. zadatak

Apstraktna klasa se označava:

  1. Ograničenjem {abstract}
  2. Pisanjem imena klase iskošenim (italic) slovima
  3. Pisanjem imena klase podebljanim (bold) slovima
  4. stereotipom <<abstract>>

22. zadatak

Obeležiti sintaksno ispravno napisane atribute

  1. flag:Boolean[1..*]=true
  2. #flag-Boolean=false
  3. !flag:Boolean=true
  4. ~/flag:Boolean

Objašnjenje: #flag-Boolean=false je sintaksno ispravno napisan atribut sa nazivom flag-Boolean. Da li se ovo pitanje zaista pojavilo na nekom ispitu nije poznato.

23. zadatak

Stereotip koji modelira eksplicitno generisanje iz šablona je (uneti bez <<>>): bind

24. zadatak

Dijagram iz postavke zadatka.

Na slici važi:

  1. Klijent zavisi od interfejsa
  2. K realizuje interfejs

25. zadatak

Simbol koji se nalazi u grafičkoj reprezentaciji ugnježđivanja klase je:

  1. ~
  2. !
  3. -
  4. +
  5. #

Objašnjenje: Tehnički, znak za ugnežđivanje klasa je mnogo približniji XOR (⊕) znaku.

26. zadatak

Neka se klasa panel nalazi u potpaketu awt paketa java. Tada se puno (kvalifikovano) ime na UML dijagramu predstavlja kao:

  1. java(awt(panel))
  2. java:awt:panel
  3. java.awt.panel
  4. java::awt::panel

27. zadatak

Uvoženje paketa realizuje se ključnom reči:

  1. <<import>>
  2. <<contain>>
  3. <<access>>

28. zadatak

Dijagram objekata je instanca klasnog dijagrama; prikazuje snimak stanja sistema u određenom vremenskom trenutku.

29. zadatak

Obeležiti tačne tvrdnje:

  1. Poruka može biti sinhrona i asinhrona
  2. Kada se sinhrona poruka pošalje, primalac se "zaključava" za sve ostale sinhrone poruke, dok se aktivnost predviđena tom porukom ne izvrši
  3. Signal je sinhrona poruka

30. zadatak

Dijagram iz postavke zadatka.

Na slici je grafička reprezentacija dijagrama: sekvence

31. zadatak

Na slici iz prethodnog zadatak blok označen sa : C (treći s leva na desno) predstavlja:

  1. Anonimnu ulogu tipa C
  2. Anonimni objekat klase C
  3. Ulogu sa nazivom C
  4. Objekat sa nazivom C

32. zadatak

Ako je poruka označena kao 3b.5.2:dohvati(), to znači da se u niti b porukom sa rednim brojem 5 pokreću dalje aktivnosti.

33. zadatak

Element projektnog uzorka koji opisuje uopšten projektni problem, strukture klasa ili objekata simptomatične za nefleksibilni dizajn i uslove koji se moraju ispuniti za primenu datog uzorka je:

  1. naziv
  2. postavka problema
  3. opis rešenja
  4. diskusija posledica

34. zadatak

Ovaj uzorak primenjujemo kada se objekti komponuju u strukturu stabla i omogućava da se uniformno tretiraju individualni objekti kao i njihove kompozicije. Reč je o projektnom uzorku Sastav

35. zadatak

Ovaj uzorak primenjujemo kada mora postojati tačno jedan objekat klase koji mora biti pristupačan klijentima preko poznate tačke pristupa c tim da klasa treba da bude proširiva izvođenjem. Reč je o projektnom uzorku Unikat

36. zadatak

Dijagram iz postavke zadatka.

U projektnom uzorku Posmatrač koje strane asocijacije treba da sadrže glavu strelice? (prvo se gleda asocijacija 1 pa asocijacija 2)

  1. → i ←
  2. ← i ←
  3. ← i →
  4. ⇿ i ⇿
  5. → i →

37. zadatak

Dijagram iz postavke zadatka.

Na slici je prikazan projektni uzorak Dekorater. Promenom ukrasa 1 sa iste strane asocijacije kao i -komponenta u ukras *, dobija se projektni uzorak Sastav.

38. zadatak

Izabrati vrstu iteratora koja najbolje odgovara ponuđenim tvrdnjama

  1. Na klijentu je odgovornost za progres obilaska: Spoljašnji
  2. Klijent samo zahteva od iteratora da izvrši neku operaciju: Unutrašnji
  3. Dobar za obilazak struktura oblika stabla: Unutrašnji
  4. Klijent eksplicitno zahteva od iteratora sledeći element: Spoljašnji

39. zadatak

Ovaj projektni uzorak se koristi kada se dinamički dodaje odgovornost nekom objektu i kada treba izbeći "eksploziju" klasa zbog prevelikog broja proširivanja izvođenjem. Reč je o uzorku Dekorater.

40. zadatak

Izabrati tačne tvrdnje:

  1. Posrednik je uzorak koji smanjuje uparivanja klijenata sa podsistemom.
  2. Poređenje identiteta bilo koje dve pojave "lakog" objekta u kontekstu uvek vraća vrednost true.
  3. Forsiranje interakcije kroz posrednika može da ugrozi performanse.
  4. Kod projektnog uzorka Fasada dozvoljena je komunikacija klijenta direktno sa klasama podsistema.
  5. Posrednik koristi jednosmerni protokol u komunikaciji sa kolegama.

41. zadatak

Dijagram iz postavke zadatka.

Koliko iznosi vrednost x posle izvršavanja događaja sledećim redosledom: e2 e3 e2 e4 e5?

Odgovor: 17

Objašnjenje:

  • Početno stanje, izvršava se x=3
  • Ulazi se u stanje A, izvršava se x++, x=4
  • Početno stanje u stanju A, ulazi se u stanje B, izvršava se x=x/2, x=2
  • Dešava se događaj e2, izlazi se iz stanja B, izvršava se x=x+3, x=5
  • Pri izvršavanju e2 izvršava se x=x*2, x=10
  • Ulazi se u stanje C i dešava se e3, čime se vraća u stanje B i izvršava x=x/2, x=5
  • Opet se dešava e2, izlazi se iz stanja B, izvršava se x=x+3, x=8
  • Pri izvršavanju e2 se opet izvršava x=x*2, x=16
  • Ulazi se u stanje C i dešava se e4, izvršava se x++, x=17
  • Dešava se e5, izlazi se iz stanja C i stanja A, izvršava se x--, x=16
  • Ulazi se u stanje D, izvršava se x++, x=17

42. zadatak

Odabrati domen i namenu sledećih projektnih uzoraka: (objektni/klasni uzorak strukture/stvaranja/ponašanja)

  1. Apstraktna fabrika: objektni uzorak stvaranja
  2. Fabrički metod: klasni uzorak stvaranja
  3. Muva: objektni uzorak strukture
  4. Stanje: objektni uzorak ponašanja
  5. Šablonski metod: klasni uzorak ponašanja

43. zadatak

Izabrati tačne tvrdnje:

  1. Artefakt kao pojava komponente predstavlja se stereotipom <<occurence>>.
  2. Akcija se sastoji od jedne ili više aktivnosti (ali ne može da se desi da nema aktivnosti).
  3. Particije mogu imati hijerarhijsku dubinu veću od 1.
  4. Klase se mogu pojaviti na dijagramu komponenata.
  5. Poželjno je koristiti centralni bafer prilikom modelovanja tabele baze podataka.
  6. Akcije su atomične.

Objašnjenje: Akcije jesu elementarni jedinice aktivnosti, ali se ne izvršavaju atomično.