Dole navedeni zadaci su dostupni za izradu zakljucno sa 24.05.2010.
Uskoro sledi novi spisak zadataka!!!
- Proizvodu može da se dohvati vrsta. Helikopter, deo i element su proizvodi.
Helikopter se sastoji od delova, a delovi od elemenata.
Helikopter ima serijski broj proizvodnje.
Elisa, vrata i motor su delovi. Šraf, žica i ploča su elementi.
Skladište sadrži proizvoljan broj proizvoda.
Može da se dodaje jedan proizvod i da se proizvod zadate vrste izvadi iz skladišta.
Sadržaj skladišta može da se pretražuje na više načina da bi se pronašla željena vrsta proizvoda.
Aktivan aviomehaničar ima ime, može da mu se dohvati kvalifikacija,
može da se zaposli u nekoj fabrici helikoptera i može da proizvodi proizvode
koje stavlja u zadato skladište. Postoje aviomehaničar bez licence, sa licencom i visokokvalifikovani aviomehaničari.
Aviomehaničar bez licence proizvodi elemente na osnovu zadatog originala.
Aviomehaničar sa licencom proizvodi delove na osnovu elemenata iz skladišta.
Specijalizovani aviomehaničari sa licencom servisiraju vrata, motore, elisu.
Delovi se različito proizvode za različite tipove helikoptera.
Visokovalifikovani aviomehanicar proizvodi i servisira helikopter
tako što im ugradi vrata, elisu
i motor iz skladišta. Avio industrija jedne zemlje zapošljava aviomehaničare,
poseduje skladište i proizvodi helikoptere čiji tip se određuje prilikom formiranja avio industrije jedne zemlje.
Projektovati na jeziku UML model opisanog sistema.
Koristiti poznate projektne uzorke ( Iterator, Factory, Template Method).
Priložiti dijagram klasa sa naznakom korišćenih projektnih uzoraka,
dijagram sekvence za proizvodnju helikoptera i dijagram komponenata
stavljajući klase koje čine logičku celinu u istu komponentu.
- Svakoj apstraktnoj primitivi može da se kreira kopija (klon),
da se izračuna celobrojna veličina koja predstavlja broj bajtova
koje bi primitiva zauzela u nekoj datoteci i da se konvertuje u String.
Znak je primitiva opisana sa dva podatka: kodom znaka (char), i stilom znaka
(nabrojivi tip sa dozvoljenim vrednostima: bold, italici i underline).
Piksel je primitiva opisana sa četiri bajta. Prva tri bajta
predstavljaju komponente boje (crvenu, zelenu i plavu), a četvrti predstavlja faktor prozirnosti.
Element je primitiva koji sadrži niz primitiva ograničenog kapaciteta.
Stvara se prazan element zadatog kapaciteta, a onda mu se dodaju primitive, redom posebnim metodom.
Prekoračenje kapaciteta niza primitiva izaziva izuzetak.
Veličina elementa se određuje izračunavanjem veličine sastavnih primitiva.
Tekst je element koji sadrži samo znakove i informaciju o dužini sadržaja (short).
Slika je element sadrži samo piksele, kao i informacije o širini i visini slike,
izražene u broju piksela (dva kratka cela broja). Stvara se prazna slika zadate širine i visine,
na osnovu kojih se određuje kapacitet niza piksela.
Dokument je element koji ima svoje ime (String) čija se veličina meri zauzećem niza karaktera sa dodatnim kratkim
celim brojem za opis dužine. Dokument može da sadrži samo tekstove, slike i druge dokumente.
Projektovati na UML-u model opisanog sistema uz primenu projektnih uzoraka
(Template Method, Composite, Prototype, Proxy,...).
Rešenje treba da sadrži dijagram klasa sa naznakom korišćenih projektnih uzoraka
i dijagram sekvence koji prikazuje scenario formiranja jednog dokumenta sastavljenog od tekstova,
slika i drugih dokumenata.
- Radni okvir za igre na tabli ne zavisi od konkretne igre,
već obuhvata apstrakcije koje bi se koristile u raznim igrama.
Figura za igre ima oznaku (jedno slovo) i informaciju o polju table na kojem se trenutno nalazi.
Može da se dohvati jednoslovna oznaka, i polje na kojem se nalazi,
kao i da se figura stavi na neko polje i da se premesti na drugo polje na tabli.
Dužnost je figure da proveri da li je prema pravilima igre i trenutnom stanju na tabli traženo premeštanje dozvoljeno.
Polja dvodimenzionalne table za igre mogu da budu prazna ili da sadrže po jednu figuru.
Mogu da se dohvate koordinate polja na tabli, da se dohvati tabla kojoj pripada polje i da se dohvati figura na polju.
Tabla sadrži zadat broj vrsta i kolona polja.
Može da se postavi figura na dato mesto table, da se dohvati figura s datog mesta, da se figura premesti s
jednog na drugo mesto, da se ukloni figura s datog mesta i da se dohvati polje s datim koordinatama.
Apstraktan igrač igra figurama zadate oznake na zadatoj tabli.
Može da odigra potez pomerajući jednu svoju figuru na drugo mesto na tabli. Ako potez nije dozvoljen,
igrač treba da ponovi potez. Igra sadrži jednu tablu za igru i nekoliko igrača.
Stvara se sa praznom tablom zadatih dimenzija i popunjenim nizom igrača.
Može da se postavi početno stanje igre, da se proveri da li je igra završena i da se odigra partija.
U toku partije igračima se ciklički omogućava da odigraju potez.
Iks-oks je igra koju igraju dva igrača na tabli od 3×3 polja sa figurama oznaka X i O.
Čovek je igrač koji vuče poteze preko tastature.
Računar je igrač koji automatski vuče poteze na početnom, srednjem ili naprednom nivou.
Priložiti:
dijagram klasa;
prikaz korišćenih projektnih uzoraka (Template, Strategy);
dijagram sekvence koji prikazuje odvijanje partije.
- Službenik u banci se opisuje (automatski dodeljenim) identifikacionim brojem, imenom i prezimenom
i zvanjem (tekst).
Službenici imaju opis i hijerarhijski su organizovani.
Šef ekspoziture banke je aktivan službenik koji ima svoje podređene službenike,
a sam može biti podređen svom šefu banke.
Radnik je službenik koji ne može imati podređene službenike.
Radnik izvršava neku osnovnu obradu zahteva koji mu je dat.
Posebno zaduženim radnicima, bez obzira na vrstu, mogu biti dodata i neka zaduženja.
U zavisnosti od dnevnog režima rada (pre podne, posle podne),
jedan korak u osnovnoj obradi zahteva, koji je nezavisan od vrste radnika, se menja,
dok se dodatna zaduženja ne menjaju.
Šalterski radnik, kurir i referent su aktivni radnici banke koji obavljaju različite osnovne
obrade u šalterskoj službi. Šalterska služba ima izvesan broj šaltera na kojima je
po jedan šalterski radnik. Iza svakog šaltera postoji red od nekoliko referenata.
Neki referenti su u drugim prostorijama. Šalterski radnik prima zahtev klijenta i
predaje ga najbližem referentu u pozadini šaltera. Referent u pozadini šaltera, ako je slobodan,
rešava zahtev, a ako ne obradi zahtev, prosleđuje ga narednom najbližem referentu.
Poslednji referent u redu iza šaltera, ukoliko sam ne obradi zahtev, pravi pošiljku u
koju stavlja zahtev i koju adresira nekom referentu, a zatim je ubacuje u
poštansko sanduče za kurira koji ih raznosi referentima u drugim prostorijama.
Dodatno zaduženje radnika "brojača" u šalterskoj službi može biti brojanje zahteva.
Projektovati na jeziku UML model opisanog sistema hijerarhijskih zvanja u banci.
Koristiti poznate projektne uzorke.
Priložiti dijagram klasa, dijagram objekata (bez navođenja atributa) za šaltersku službu
s jednim šalterom i radnicima svih vrsta
od interesa u trenutku kad šalterski radnik obrađuje zahtev i kurir nosi zahtev nekom
referentu, dijagram sekvence i dijagram aktivnosti obrade jednog zahteva koji biva
potpuno obrađen tek od strane referenta u nekoj prostoriji i
dijagram komponenata stavljajući klase koje čine logičku celinu u istu komponentu.
-
Apstraktnom izrazu može da se izračuna vrednost realnog tipa i može da se
sastavi tekstualni oblik. Konstanta je izraz čija vrednost ne može da se promeni posle inicijalizacije.
Tekstualni oblik sadrži vrednost konstante.
Promenljiva je izraz koji ima ime i realnu vrednost (podrazumevano 0)
koja može da se promeni i posle inicijalizacije. Tekstualni oblik sadrži ime promenljive.
Sve promenljive moraju da imaju različita imena
(pokušaj stvaranja promenljive s već korišćenim imenom je greška).
Zbir i proizvod su izrazi koji se inicijalizuju s dva izraza
(na primer: a i b) i čije su vrednosti jednake a+b, odnosno a*b.
Tekstualni oblici su (a+b), odnosno (a*b), gde su a i b tekstualni oblici operanada.
Apstraktna naredba može da se izvršava i da se sastavi njen tekstualni oblik.
Dodela je naredba koja sadrži jednu promenljivu (na primer a) i jedan izraz (na primer b).
Pri izvršavanju se izračunata vrednost izraza stavlja u promenljivu.
Tekstualni oblik je a=b;, gde su a i b tekstualni oblici sadržane promenljive i izraza.
Petlja je naredba koja sadrži jedan ceo broj (na primer k) i proizvoljan broj naredbi.
Stvara se prazna, posle čega se naredbe dodaju jedna po jedna.
Pri izvršavanju sadržane naredbe se izvršavaju k puta, po redosledu dodavanja.
Tekstualni oblik petlje je loop(k){nar;nar;…;nar}, gde su k – celobrojna vrednost i nar – tekstualni oblik
jedne sadržane naredbe.
Priložiti:
· dijagram klasa bez sadržaja pojedinih klasa;
· detaljan sadržaj svih klasa;
· dijagram objekata koji predstavlja naredbu loop(3){a=(b+c)*d;b=2*a}
· dijagram sekvence koji prikazuje stvaranje i izvršavanje naredbe loop
· prikaz korišćenih projektnih uzoraka (Factory, Visitor);
-
Simbol sadrži jedan znak i odnos širine i visine pri iscrtavanju znaka.
Može da se dohvati sadržani znak i da se odredi širina iscrtavanja za datu visinu.
Font sadrži proizvoljan broj simbola. Stvara se prazan posle čega se simboli dodaju jedan po jedan.
Može da se dohvati broj simbola u fontu i da se dohvati simbol koji sadrži zadati znak.
Vektor u ravni se zadaje realnim komponentama u pravcu koordinatnih osa.
Može da se vektoru doda drugi vektor. Apstraktna figura u ravni može da se
pomeri za zadati vektor pomaka, da se napravi kopija fugure i da se figura
prikaže na zadatom platnu. Duž je figura koja sadrži dva vektora položaja krajnjih tačaka.
Tekst je figura koja sadrži zadati niz znakova koji se iscrtava simbolima zadate visine primenom
zadatog fonta sa zadim vektorom položaja donjeg levog temena prvog simbola. Visina i font mogu da se
promene. Crtež je figura koja sadrži proizvoljan broj figura. Stvara se prazan posle čega se figure
dodaju jedna po jedna. Aplikacija ima jedinstveno platno koje može da iscrtava sadržane crteže.
Crteži mogu da mu se dodaju i uklanjaju jedan po jedan.
Priložiti:
dijagram klasa
prikaz korišćenih projektnih uzoraka (Singleton, Composite,...,naglasiti ako je uzorak atipičan, uz obrazloženje);
dijagram objekata koji prikazuje crtež s jednom duži i jednim tekstom;
dijagram sekvence za jedno prikazivanje platna u najopštijem slučaju.
-
Vozilo ima zadatu širinu, dužinu, vrstu.
Može da se odredi površina koju zauzima,
i da se sastavi tekstualni opis koji se sastoji od vrste i površine vozila.
Automobil i kamion su vozila. Mesto na parkingu ima zadatu širinu i dužinu.
Može da se smesti jedno vozilo na mesto na parkingu,
da se vozilo ukloni i može da se ispita da li je mesto prazno.
Greška je ako vozilo ne može da se smesti na dato mesto.
Parking ima određeni broj mesta različite veličine.
Parking se kreira prazan posle čega mesta mogu da
se dodaju jedno po jedno. Na parking, vozila mogu
da dolaze i sa njega odlaze jedno po jedno.
Greška je ako vozilo ne može da nađe slobodno mesto koje mu odgovara.
Parking može da se obiđe po redosledu mesta i po redosledu dolazaka vozila,
a pri tome da se uzmu u obzir samo mesta sa vozilima jedne vrste,
samo popunjena mesta, samo prazna mesta ili sva mesta.
Postoji proizvoljan broj semafora koji prikazuju informacije o broju raspoloživih i zauzetih mesta na parkingu.
Priložiti:
dijagram klasa;
prikaz korišćenih projektnih uzoraka (Visitor, Iterator, Template);
dijagram aktivnosti pri dolasku jednog vozila na parking;
dijagram stanja parkinga.
-
Vektor u prostoru se zadaje realnim koordinatama.
Vektoru može da se doda drugi vektor.
Položaj apstraktnog predmeta se zadaje vektorom.
Može da se izračuna zapremina predmeta.
Orijentisan predmet je predmet koji ima i pravac u prostoru koji je određen drugim vektorom.
Sfera je predmet zadatog poluprečnika.
Valjak je orijentisan predmet zadat poluprečnikom osnove i visinom.
Struktura je orijentisan predmet koji može da sadrži proizvoljan broj predmeta.
Struktura se kreuraprazna posle čega može da joj se doda po jedan predmet.
Radnik ima ime koje može da se dohvati. Radnik može da napravi jedan predmet po svom nahođenju.
Priložiti:
dijagram klasa;
prikaz korišćenih projektnih uzoraka (Composite, Factory, Decorator,...),
dijagram objekata koji predstavlja radnika koji pravi strukturu koja već sadrži jednu sferu
i jedan valjak i upravo želi da strukturi doda još jednu sferu;
dijagram sekvence za izradu jedne strukture koja sadrži samo sfere i valjke.
- Roba predviđa dohvatanje naziva, cene i količine i izračunavanje vrednosti.
Artikal je roba koja sadrži naziv, jediničnu cenu i količinu.
Roba s porezom je roba koja na cenu pridružene robe zaračunava zadati porez.
Roba s popustom je roba koja od cene pridužene robe odbija zadati popust.
Magacin može da sadrži proizvoljno mnogo robe. Magacin je inicijalno prazan,
a kasnije može da se doda
i da se izvadi zadata roba.
Robe u magacinu mogu da se
preuzmu po redosledu naziva i po redosledu vrednosti. Izveštaj može da ispisuje sadržaj zadatog magacina.
Može da se postavlja redosled prikazivanja robe u magacinu.
Priložiti:
dijagram klasa;
prikaz korišćenih projektnih uzoraka (Iterator, Strategy,...);
dijagram aktivnosti sastavljanja izveštaja za slučaj kada se na svaku robu prvo dodaje porez
i posle toga odbija popust.
-
Apstraktnom predmetu može da se izračuna zapremina i težina.
Skladište može da sadrži proizvoljan broj predmeta.
Može da se doda jedan predmet i da se izvadi predmet sa zadatim rednim brojem
(predmet se uklanja iz skladišta). Pomoću objekta pokazivača na tekući predmet skladišta
mogu da se dohvataju uzastopni predmeti iz skladišta (predmeti ostaju u skladištu).
Apstraktan nadzornik nadgleda određeni realni parametar skladišta.
Parametar se određuje nakon svake promene u skladištu kao zbir odgovarajućih
parametara svih predmeta u skladištu. Ukoliko je parametar veći od neke zadate
veličine prekida se tekuća prozivka nadzornika i ispiše se poruka. Nadzornici mogu jedan po
jedan da se prijavljuju i odjavljuju od skladišta. Nadzornik zapremine i nadzornik težine prate
ukupnu zapreminu, odnosno težinu predmeta u skladištu.
Priložiti:
dijagram klasa;
prikaz korišćenih projektnih uzoraka (Visitor, Iterator, Template,...);
dijagram aktivnosti prilikom dodavanja jednog predmeta skladištu.
- Softverski proizvod se karakteriše svojom vrstom.
Informacioni sistem, aplikacija i softverski modul su softverski proizvodi.
Informacioni sistem se sastoji od aplikacija, a aplikacije od softverskih modula.
Informacioni sistem ima jedinstveni identifikacioni broj. Veb aplikacija, klijent/server aplikacija i
desktop aplikacija su aplikacije. Modul za poslovnu logiku, modul za rad sa bazom podataka i
modul za prikaz podataka su softverski moduli. Kolekcija softverskih rešenja sadrži proizvoljan broj
softverskih proizvoda. Može da se dodaje original jednog softverskog proizvoda i da se kopija
softverskog proizvoda zadate vrste dohvati iz kolekcije softverskih rešenja. Sadržaj kolekcije softverskih
rešenja može da se pretražuje na više načina da bi se pronašla željena vrsta softverskog proizvoda.
Neki od načina pretraživanja kolekcije softverskih rešenja su pretraživanje po datumu i pretraživanje po
veličini. Softverski inženjer ima ime, može da mu se dohvati status, može da se zaposli u nekoj softverskoj
kompaniji i može da proizvodi softverske proizvode koje stavlja u zadatu kolekciju softverskih rešenja.
Mlađi programer, stariji programer i vodeći projektant su statusi softverskih inženjera. Mlađi programer
kreira softverske module. Stariji programer programira aplikacije pomoću softverskih modula iz kolekcije
softverskih rešenja. Specijalizovani stariji programeri programiraju veb aplikacije, klijent/server aplikacije
ili desktop aplikacije. Aplikacije se različito programiraju za različite klijente. Smatrati da su moduli dovoljno
opšti, odnosno da nisu različiti za različite klijente. Vodeći projektant integriše informacione sisteme tako što
povezuje veb aplikacije, klijent/server aplikacije i desktop aplikacije iz kolekcije softverskih rešenja.
Softverska kompanija zapošljava softverske inženjere, poseduje kolekciju softverskih rešenja i proizvodi
informacione sisteme za različite klijente. Neki od klijenata su banka i kladionica.
Projektovati na jeziku UML model opisanog sistema. Koristiti poznate projektne uzorke (Factory, Visitor,...).
Priložiti dijagram klasa sa naznakom korišćenih projektnih uzoraka i dijagram sekvence i
dijagram aktivnosti za proizvodnju informacionog sistema. Akcijama se smatraju programiranje modula, programiranje
aplikacija i integrisanje informacionog sistema.