Пројектовање софтвера/К2 2021 — разлика између измена
м (Objašnjenje za 5. zadatak) |
|||
(Није приказано 5 међуизмена 3 корисника) | |||
Ред 41: | Ред 41: | ||
== 3. zadatak == | == 3. zadatak == | ||
Kako se na jeziku UML označava sekcija slučaja korišćenja, u kojoj se naznače tačke ponašanja u kojim se dati slučaj korišćenja proširuje drugim slučajevima korišćenja? | Kako se na jeziku UML označava sekcija slučaja korišćenja, u kojoj se naznače tačke ponašanja u kojim se dati slučaj korišćenja proširuje drugim slučajevima korišćenja? | ||
Odgovor: <span class="spoiler" data-solution="text">extension points</span> | Odgovor: <span class="spoiler" data-solution="text">extension points</span> | ||
== 4. zadatak == | == 4. zadatak == | ||
Koje od navedenih tvrdnji su tačne za sledeći dijagram stanja: | Koje od navedenih tvrdnji su tačne za sledeći dijagram stanja: | ||
[[Датотека:PS K2 2021 zadatak | [[Датотека:PS K2 2021 zadatak 4.svg|center|frame|Slika uz četvrti zadatak.]] | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# Ovakav automat stanja prihvata kao ispravnu i kompletnu praznu sekvencu znakova. | # Ovakav automat stanja prihvata kao ispravnu i kompletnu praznu sekvencu znakova. | ||
Ред 60: | Ред 60: | ||
[[Датотека:PS K2 2021 zadatak 5.svg|center|frame|Slika uz peti zadatak.]] | [[Датотека:PS K2 2021 zadatak 5.svg|center|frame|Slika uz peti zadatak.]] | ||
Odgovor: <span class="spoiler" data-solution="text">z,z1,z11,t11,f1,z12,t12,t1,t,f3,z,z1,z12,t12,t1,t,f2,x,x1</span> | Odgovor: <span class="spoiler" data-solution="text">z,z1,z11,t11,f1,z12,t12,t1,t,f3,z,z1,z12,t12,t1,t,f2,x,x1</span> | ||
Objašnjenje: <div class="spoiler" data-solution="explanation"> | |||
# Pri pokretanju, ulazi se u stanje B i izvršava se z. | |||
# Pri ulasku u B prelazi se u njegovo podstanje B1 i izvršava se z1. | |||
# Pri ulasku u B1 po prvi put prelazi se u njegovo podstanje B11 i izvršava se z11. | |||
# Čekamo u B11 dok se ne desi događaj e1, kada izlazimo iz B11 i izvršava se t11. | |||
# Prilikom prelaska izvršava se f1. | |||
# Prelazimo u B12, i pri ulasku izvršava se z12. | |||
# Čekamo u B12 kad dolazi e3, i tada izlazimo i iz B12, i iz B1 i iz B, pa se izvršavaju t12, t1 i t. | |||
# Prilikom prelaska izvršava se f3. | |||
# Vraćamo se nazad u B, zatim ulazimo opet u B1 i izvršavaju se z i z1. | |||
# Nakon ulaska u B1 vraćamo se u B12, a ne u B1, jer je početno stanje sa čuvanjem plitke istorije, i izvršava se z12. | |||
# Čekamo u B12 dok se ne desi e2, i kao i ranije izvršavaju se t12, t1 i t pri izlasku. | |||
# Prilikom prelaska izvršava se f2. | |||
# Ulazi se u A, kada se izvršava x. | |||
# Nakon ulaska u A prelazi se u njegovo podstanje A1, i izvršava se x1. | |||
</div> | |||
== 6. zadatak == | == 6. zadatak == | ||
Ред 86: | Ред 103: | ||
# <span class="solution">Klasa ''Podsetnik'' ispoljava dva interfejsa - uski prema klasi ''Čuvar'' i široki prema klasi ''Subjekat''.</span> | # <span class="solution">Klasa ''Podsetnik'' ispoljava dva interfejsa - uski prema klasi ''Čuvar'' i široki prema klasi ''Subjekat''.</span> | ||
# ''Čuvar'' proverava i koristi stanje objekta ''Podsetnik''. | # ''Čuvar'' proverava i koristi stanje objekta ''Podsetnik''. | ||
# | # ''Subjekat'' odlučuje u kom trenutku će da sačuva svoje kompletno stanje ili deo stanja. | ||
# <span class="solution">''Subjekat'' kreira objekat ''Podsetnika''.</span> | # <span class="solution">''Subjekat'' kreira objekat ''Podsetnika''.</span> | ||
# Objekat ''Podsetnika'' nema unutrašnje stanje. | # Objekat ''Podsetnika'' nema unutrašnje stanje. | ||
</div> | </div> | ||
Objašnjenje: <span class="spoiler" data-solution="explanation">Stavka pod c je na kolokvijumu bila označena kao tačna, ali pošto čuvanje izvršava Čuvar prihvaćena je žalba za ovo.</span> | |||
== 9. zadatak == | == 9. zadatak == | ||
Ред 107: | Ред 125: | ||
# <span class="solution">Objektni uzorak ''Adapter'' treba koristiti kada je potrebno istovremeno adaptirati više potklasa neke klase.</span> | # <span class="solution">Objektni uzorak ''Adapter'' treba koristiti kada je potrebno istovremeno adaptirati više potklasa neke klase.</span> | ||
# <span class="solution">Klasa ''Adapter'' sme imati metode koje nisu deo interfejsa ''Cilj''.</span> | # <span class="solution">Klasa ''Adapter'' sme imati metode koje nisu deo interfejsa ''Cilj''.</span> | ||
# Dvosmerni adapter i klasni i objektni adapter. | # Dvosmerni adapter realizuje i klasni i objektni adapter. | ||
# <span class="solution">Klasni uzorak ''Adapter'' dopušta klasi ''Adapter'' da nadjača i tako redefiniše neke metode adaptirane klase.</span> | # <span class="solution">Klasni uzorak ''Adapter'' dopušta klasi ''Adapter'' da nadjača i tako redefiniše neke metode adaptirane klase.</span> | ||
</div> | </div> |
Тренутна верзија на датум 29. јул 2022. у 19:54
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Izabrati odgovarajuću sintaksu za sekvenciranje poruka, koja odgovara sledećem opisu:
U toku posmatrane interakcije, u aktivnosti koja sledi na strani prijema 2. poruke dolazi do konkuretnog grananja; u niti B se poziva 1. operacija po redu, koja izaziva aktivnost u kojoj se kao 4. poruka po redu, dok god je uslov x>5
ispunjen, pokreće aktivnost iz koje se poziva operacija f()
kao 3. po redu.
- 2B.1.4*[x>5].3:f()
- 3.1B.4[x>5].2:f()
- 2.B1.4*||[x>5].3:f()
- 2.1B.*[x>5]4.3:f()
- 2.B1.[x>5]*4.3:f()
2. zadatak
Povezati načine pristupa drugoj strani konektora kod dijagrama komunikacije sa njihovim ukrasima:
Pristup | Ukras |
---|---|
|
|
3. zadatak
Kako se na jeziku UML označava sekcija slučaja korišćenja, u kojoj se naznače tačke ponašanja u kojim se dati slučaj korišćenja proširuje drugim slučajevima korišćenja?
Odgovor: extension points
4. zadatak
Koje od navedenih tvrdnji su tačne za sledeći dijagram stanja:
- Ovakav automat stanja prihvata kao ispravnu i kompletnu praznu sekvencu znakova.
- Ovakav automat stanja prihvata kao ispravnu i kompletnu sledeću sekvencu znakova:
;
- Ovo je primer automata Moor-ovog tipa.
- Ovakav automat stanja prihvata kao ispravnu i kompletnu sledeću sekvencu znakova:
<>;
- Ovakav automat stanja prihvata kao ispravnu i kompletnu sledeću sekvencu znakova:
<a>bbb;
- Ovaj automat radi beskonačno.
5. zadatak
Sistem modelovan priloženim dijagramom stanja se pušta u rad. Redom se dešavaju događaji e1, e3, e2. Navesti akcije koje sistem izvršava kao posledicu navedene sekvence događaja, po redosledu izvršavanja. Odgovor (sekvencu akcija) dati navođenjem naziva akcija razdvojenih zapetama, bez razmaka. Primer: ako se redom izvršavaju akcije sa nazivima akcija1, akcija2 i akcija3, odgovor treba dati u formatu "akcija1,akcija2,akcija3" (bez znakova navoda).
Odgovor: z,z1,z11,t11,f1,z12,t12,t1,t,f3,z,z1,z12,t12,t1,t,f2,x,x1
Objašnjenje:
- Pri pokretanju, ulazi se u stanje B i izvršava se z.
- Pri ulasku u B prelazi se u njegovo podstanje B1 i izvršava se z1.
- Pri ulasku u B1 po prvi put prelazi se u njegovo podstanje B11 i izvršava se z11.
- Čekamo u B11 dok se ne desi događaj e1, kada izlazimo iz B11 i izvršava se t11.
- Prilikom prelaska izvršava se f1.
- Prelazimo u B12, i pri ulasku izvršava se z12.
- Čekamo u B12 kad dolazi e3, i tada izlazimo i iz B12, i iz B1 i iz B, pa se izvršavaju t12, t1 i t.
- Prilikom prelaska izvršava se f3.
- Vraćamo se nazad u B, zatim ulazimo opet u B1 i izvršavaju se z i z1.
- Nakon ulaska u B1 vraćamo se u B12, a ne u B1, jer je početno stanje sa čuvanjem plitke istorije, i izvršava se z12.
- Čekamo u B12 dok se ne desi e2, i kao i ranije izvršavaju se t12, t1 i t pri izlasku.
- Prilikom prelaska izvršava se f2.
- Ulazi se u A, kada se izvršava x.
- Nakon ulaska u A prelazi se u njegovo podstanje A1, i izvršava se x1.
6. zadatak
Koje od sledećih tvrdnji su tačne za projektni uzorak Iterator:
- Kurzor je naziv specifične vrste iteratora.
- Unutrašnji iterator je fleksibilniji od spoljašnjeg.
- Kod spoljašnjeg iteratora je na klijentu odgovornost za progres obilaska.
- Agregat ne sme da definiše algoritam obilaska ni za jednu vrstu iteratora.
- Unutrašnji iterator mora posedovati javni metod za dohvatanje tekućeg elementa.
7. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Stanje:
- Predstavlja klasni uzorak ponašanja.
- Mana uzorka je što prelasci između stanja konteksta nisu eksplicitni.
- Objekti stanja se često realizuju preko projektnog uzorka Unikat.
- Prilikom promene stanja, spolja izgleda kao da objekat konteksta menja svoju klasu.
- Konkretan objekat stanja ne sme da menja stanje svog konteksta.
8. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Podsetnik?
- Klasa Podsetnik ispoljava dva interfejsa - uski prema klasi Čuvar i široki prema klasi Subjekat.
- Čuvar proverava i koristi stanje objekta Podsetnik.
- Subjekat odlučuje u kom trenutku će da sačuva svoje kompletno stanje ili deo stanja.
- Subjekat kreira objekat Podsetnika.
- Objekat Podsetnika nema unutrašnje stanje.
Objašnjenje: Stavka pod c je na kolokvijumu bila označena kao tačna, ali pošto čuvanje izvršava Čuvar prihvaćena je žalba za ovo.
9. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Muva?
- Klijenti stvaraju objekte muve njenim kloniranjem ili direktnom konstrukcijom.
- Objekti deljenih muva mogu biti varijacije Unikata sa ograničenim brojem objekata.
- Glavna mana ovog uzorka su potencijalni troškovi pronalaženja ili izračunavanja spoljašnjeg stanja muve.
- Često se kombinuje sa uzorkom Sastav, tako da se formira stablo sa deljenim muvama u čvorovima i nedeljivim muvama u listovima.
- Koristi se sa ciljem da se izbegne hiperprodukcija objekata.
10. zadatak
Koje od navedenih tvrdnji su tačne za projektni uzorak Adapter?
- Klasa Cilj predstavlja klasu koju treba adaptirati prema očekivanom interfejsu za klijenta.
- Objektni uzorak Adapter treba koristiti kada je potrebno istovremeno adaptirati više potklasa neke klase.
- Klasa Adapter sme imati metode koje nisu deo interfejsa Cilj.
- Dvosmerni adapter realizuje i klasni i objektni adapter.
- Klasni uzorak Adapter dopušta klasi Adapter da nadjača i tako redefiniše neke metode adaptirane klase.