Пројектовање софтвера/Јануар 2020 — разлика између измена
(Направљена празна страница) |
(→Испит Јануар 2020: Fale dijagrami u 2. zadatku.) |
||
Ред 1: | Ред 1: | ||
== 1. zadatak == | |||
Napisati osobinu koja se koristi da se označi klasa koja nema potomke, tj. iz koje se ne može izvoditi. Iskoristiti pravilnu sintaksu za navođenje osobine. | |||
Odgovor: <span class="spoiler" data-solution="text">{leaf}</span> | |||
== 2. zadatak == | |||
Odabrati ispravne dijagrame aktivnosti koji generišu generišu slučajan broj i sve dok generisana vrednost ne bude jednaka 0. | |||
== 3. zadatak == | |||
Označiti elemente stanja po UML2: | |||
<div class="abc-list" data-solution="multiple"> | |||
# <span class="solution">Podstanje</span> | |||
# Samo-tranzicije | |||
# <span class="solution">Odloženi događaji</span> | |||
# <span class="solution">Unutrašnje tranzicije</span> | |||
# Tranzicije u druga stanja | |||
</div> | |||
== 4. zadatak == | |||
Modelira se sistem u kom se na Parkingu nalaze Automobili. Potrebno je koristeći kvalifikator selektovati automobile po njihovoj boji. Multiplikativnost koja odgovara opisanom slučaju je: | |||
<div class="abc-list" data-solution="single"> | |||
# <span class="solution">Na strani Automobil *</span> | |||
# Na strani kvalifikatora 0..1 | |||
# Na strani Automobil 1 | |||
# Na strani kvalifikatora * | |||
# Na strani Automobil 0..1 | |||
</div> | |||
== 5. zadatak == | |||
Označiti tačne tvrdnje za pakete na jeziku UML: | |||
<div class="abc-list" data-solution="multiple"> | |||
# <span class="solution">Paket može grupisati artefakte.</span> | |||
# Spoljašni paket implicitno uvozi imena sadržanog paketa. | |||
# <span class="solution">Paket je vlasnik sadržanih elemenata.</span> | |||
# Nekvalifikovana imena moraju biti jedinstvena u čitavom sistemu. | |||
# <span class="solution">Paket može sadržati druge pakete.</span> | |||
</div> | |||
== 6. zadatak == | |||
Povezati data zaduženja sa ulogama projektnog uzorka Fasada. | |||
{| class="wikitable" | |||
|+ Opcije | |||
! Zaduženja | |||
! Uloge | |||
|- | |||
| <div data-solution="select" data-options="a,b,c,d,e"> | |||
* Ne zna za klasu i objekat Fasade. <span class="spoiler">b</span> | |||
* Zahteve klijenta prosleđuje klasama podsistema. <span class="spoiler">a</span> | |||
* Implementira potrebne funkcionalnosti. <span class="spoiler">b</span> | |||
* Zna koja klasa podsistema je odgovorna za koje funkcionalnosti. <span class="spoiler">a</span> | |||
</div> | |||
| <div class="abc-list"> | |||
# Fasada | |||
# Klase podsistema | |||
# Subjekat | |||
# Konkretan subjekat | |||
# Klijent | |||
</div> | |||
|} | |||
== 7. zadatak == | |||
Upariti uzorke sa njihovim alternativnim nazivima. | |||
{| class="wikitable" | |||
|+ Opcije | |||
! Uzorci | |||
! Alternativni nazivi | |||
|- | |||
| <div data-solution="select" data-options="a,b,c,d,e,f,g,h"> | |||
* Kurzor (Cursor) <span class="spoiler">g</span> | |||
* Omotač (Wrapper) <span class="spoiler">d</span> | |||
* Ručka/telo (Handle/Body) <span class="spoiler">e</span> | |||
* Oznaka (Token) <span class="spoiler">b</span> | |||
* Virtuelni konstruktor (Virtual constructor) <span class="spoiler">f</span> | |||
* Transakcija (Transaction) <span class="spoiler">c</span> | |||
* Surogat (Surogate) <span class="spoiler">a</span> | |||
</div> | |||
| <div class="abc-list"> | |||
# Zastupnik | |||
# Podsetnik | |||
# Komanda | |||
# Dekorater | |||
# Most | |||
# Fabrički metod | |||
# Iterator | |||
# Klasni adapter | |||
</div> | |||
|} | |||
== 8. zadatak == | |||
Označiti tačna tvrđena za projektni uzorak Adapter: | |||
<div class="abc-list" data-solution="multiple"> | |||
# <span class="solution">Adapter može sadržati dodatne javne metode koje Klijent ne koristi s obzirom da Adapter vidi preko interfejsa Cilj.</span> | |||
# <span class="solution">Adapter se koristi kako bi interfejs jedne klase prilagodio interfejsu koji klijent očekuje.</span> | |||
# <span class="solution">Dvosmerni adapter se može koristiti i kao Cilj i kao Adaptirani.</span> | |||
# <span class="solution">Prilikom korišćenja projektnog uzorka Adapter nije potrebno menjati kod interfejsa Cilj, kao i klasa Klijent i Adaptirani.</span> | |||
</div> | |||
== 9. zadatak == | |||
U sistemu postoji 10 objekata Korisnik koji međusobno komuniciraju svaki sa svakim. Ukoliko se u sistem uvede projektni uzorak Posrednik preko kog bi objekti komunicirali, koliko će biti manje veza potrebno u sistemu? Smatrati da su veze bidirekcione i da je potreban jedan objekat Posrednika. | |||
Odgovor: <span class="spoiler" data-solution="text">35</span> | |||
== 10. zadatak == | |||
Označiti tačna tvrđena za projektni uzorak Dekorater: | |||
<div class="abc-list" data-solution="multiple"> | |||
# Konstrukcija projektnog uzorka ne dozvoljava da objekat klase Dopuna dekoriše druge objekte klase Dopuna. | |||
# <span class="solution">Korišćenje Dekoratera otežava testiranje.</span> | |||
# <span class="solution">Preporučljivo je da Komponenta nema atribute.</span> | |||
# Prilikom dekorisanja objekata, nije bitan redosled konkretnih dopuna, već samo njihov broj. | |||
# Dopuna menja interfejs Komponente kako bi proširila funkcionalnosti. | |||
</div> |
Верзија на датум 21. јануар 2022. у 18:05
1. zadatak
Napisati osobinu koja se koristi da se označi klasa koja nema potomke, tj. iz koje se ne može izvoditi. Iskoristiti pravilnu sintaksu za navođenje osobine.
Odgovor: {leaf}
2. zadatak
Odabrati ispravne dijagrame aktivnosti koji generišu generišu slučajan broj i sve dok generisana vrednost ne bude jednaka 0.
3. zadatak
Označiti elemente stanja po UML2:
- Podstanje
- Samo-tranzicije
- Odloženi događaji
- Unutrašnje tranzicije
- Tranzicije u druga stanja
4. zadatak
Modelira se sistem u kom se na Parkingu nalaze Automobili. Potrebno je koristeći kvalifikator selektovati automobile po njihovoj boji. Multiplikativnost koja odgovara opisanom slučaju je:
- Na strani Automobil *
- Na strani kvalifikatora 0..1
- Na strani Automobil 1
- Na strani kvalifikatora *
- Na strani Automobil 0..1
5. zadatak
Označiti tačne tvrdnje za pakete na jeziku UML:
- Paket može grupisati artefakte.
- Spoljašni paket implicitno uvozi imena sadržanog paketa.
- Paket je vlasnik sadržanih elemenata.
- Nekvalifikovana imena moraju biti jedinstvena u čitavom sistemu.
- Paket može sadržati druge pakete.
6. zadatak
Povezati data zaduženja sa ulogama projektnog uzorka Fasada.
Zaduženja | Uloge |
---|---|
|
|
7. zadatak
Upariti uzorke sa njihovim alternativnim nazivima.
Uzorci | Alternativni nazivi |
---|---|
|
|
8. zadatak
Označiti tačna tvrđena za projektni uzorak Adapter:
- Adapter može sadržati dodatne javne metode koje Klijent ne koristi s obzirom da Adapter vidi preko interfejsa Cilj.
- Adapter se koristi kako bi interfejs jedne klase prilagodio interfejsu koji klijent očekuje.
- Dvosmerni adapter se može koristiti i kao Cilj i kao Adaptirani.
- Prilikom korišćenja projektnog uzorka Adapter nije potrebno menjati kod interfejsa Cilj, kao i klasa Klijent i Adaptirani.
9. zadatak
U sistemu postoji 10 objekata Korisnik koji međusobno komuniciraju svaki sa svakim. Ukoliko se u sistem uvede projektni uzorak Posrednik preko kog bi objekti komunicirali, koliko će biti manje veza potrebno u sistemu? Smatrati da su veze bidirekcione i da je potreban jedan objekat Posrednika.
Odgovor: 35
10. zadatak
Označiti tačna tvrđena za projektni uzorak Dekorater:
- Konstrukcija projektnog uzorka ne dozvoljava da objekat klase Dopuna dekoriše druge objekte klase Dopuna.
- Korišćenje Dekoratera otežava testiranje.
- Preporučljivo je da Komponenta nema atribute.
- Prilikom dekorisanja objekata, nije bitan redosled konkretnih dopuna, već samo njihov broj.
- Dopuna menja interfejs Komponente kako bi proširila funkcionalnosti.