Naziv predmeta

Objektno orijentirano modeliranje

Detalji
Kod
VSITE135
Skr.
OOM
ECTS
5
Godina
4
Semester
Zimski semestar
Vrsta
izborni
Razina HKO 6
Preddiplomski studij
E-Learning
0%
Aktivnosti
IT zg - Ljet 19/20
ECTS
Jedinice
Sati
Svega
P
1
15
2
30
A
0.5
15
1
15
L
0.5
11
1
15
S
0
0
0
0
KA
0
1
1
0
KP
0
2
1
0
PR
0
1
6
0
IP
0
1
1
0
IU
0
1
2
0
SU
3
1
90
90
NastavniciNositelji: mr. sc. Julijan Šribar, v. pred.
PreduvjetiNema
Sadržaj

Opće tehnike modeliranja. Objektno orijentirano modeliranje. Uvod u UML (Unified Modeling Language). Pregled razvojnog procesa. Use cases. Dijagrami klasa (atributi, asocijacija, agregacija, kompozicija, generalizacija, parametrizirane klase). Direktno i reverzno projektiranje. Dijagrami interakcije (sequence, collaboration). Dijagrami stanja i aktivnosti. Uvod u objektno orijentirani dizajn (nasljeđivanje, enkapsulacija, polimorfizam, apstraktna sučelja, parametrizirani tipovi). Uzorci u objektno orijentiranom dizajniranju (Design Patterns). Sučelja, tipovi i uloge. Dijagrami korisničkih funkcija. Procesi i niti. Modeliranje izvornog koda. Modeliranje izvršne inačice.

Ciljevi učenja

1. Ovladati osnovnim pojmovima vezanim uz objektno-orijentiranu tehnologiju.
2. Razumjeti glavne metodologije razvoja objektno-orijentiranih aplikacija.
3. Razumjeti i znati samostalno izrađivati UML dijagrame.
4. Razumjeti i znati primijeniti najčešće uzorke dizajna (design patterns).

Ishodi učenja

1. Ovladati osnovnim pojmovima vezanim uz objektno-orijentiranu tehnologiju.
2. Razumjeti glavne metodologije razvoja objektno-orijentiranih aplikacija.
3. Razumjeti i znati samostalno izrađivati UML dijagrame.
4. Razumjeti i znati primijeniti najčešće uzorke dizajna (design patterns).

Sposobnosti

Kolegij pruža specijalistička znanja s područja programiranja kao nadogradnju jezgre računarstva, te osposobljava polaznika za modeliranje prototipa programskog sustava na osnovu zahtjeva korisnika.

Preporučena literatura

1. Rambaugh, Jacobson, Booch; "The Unified Modeling Language Reference Manual", Addison-Wesley 1999. 2. Rambaugh, Jacobson, Booch; "The Unified Software Development Process", Addison-Wesley 1999;

Dodatna literatura
predavanja (P)
  1. Uvod: složenost programa, uzroci složenosti, ograničenja ljudskog mozga i kompleksni sustavi, dekompozicija problema (algoritamska, objektno orijentirana dekompozicija), značaj apstrakcije.
  2. Objektni model: evolucija programskih jezika, odnos OO programiranje, OO analiza, OO dizajn, elementi objektnog modela: apstrakcija, enkapsulacija, modularnost, nasljeđivanje, polimorfizam, identifikacija tipa (typing), konkurentnost, perzistencija.
  3. Klase i objekti: što je objekt, stanje, ponašanje i identitet objekta, život objekta - kreiranje i uništavanje, odnosi među objektima (veza, agregacija), što je klasa, sučelje i implementacija, odnosi među klasama, metaklasa, kvaliteta apstrakcije: uparenost, kohezija, dovoljnost, potpunost, primitivnost.
  4. Klasifikacija: značaj pravilne klasifikacije, problem klasifikacije, prepoznavanje objekata i klasa, analiza domene, analiza slučajeva korištenja (use cases).
  5. Metodologije razvoja: vodopadna (waterfall) metodologija, iterativno-inkrementalna metodologija, RUP, faze razvoja, rizici, agilni razvoj, XP (extreme programming) metodologija
  6. UML: smisao korištenja standardizirane notacije, povijesni pregled, komponente UML-a
  7. Slučajevi korištenja (use cases): primjer, preduvjeti i naknadni uvjeti (pre- i post-conditions), sudionici (glavni glumci, sporedni glumci, zainteresirane stranke, sustav pod razmatranjem), definiranje scenarija, dodatni slučajevi korištenja, uključivanje, proširivanje, grafička prezentacija.
  8. Dijagrami klasa (class diagrams): perspektive pri korištenju, grafički simboli za klasu, atributi klase, operacije, korištenje stereotipa, definiranje dohvatljivosti, napomene, asocijacije, usmjerenost asocijacije, uvjetovane asocijacije, kvalificirane asocijacije, refleksne asocijacije
  9. Dijagrami klasa (class diagrams): nasljeđivanje, ovisnosti, ograničenja, dijagrami objekata, agregacije i kompozicije, izvedene asocijacije i atributi, sučelja, asocijacijske klase, parametrizirane klase.
  10. Interakcijski dijagrami: dijagrami slijeda (sequence diagrams) i dijagrami komunikacije (communication diagrams) Dijagrami slijeda: aktivacija objekata, poruke (sinkrone, asinkrone, rezultat), stvaranje i uništavanje objekata, iteracija i uvjet.
  11. Dijagrami stanja (state diagrams): detalji stanja, aktivnosti unutar stanja, prijelaz. Dijagrami aktivnosti (activity diagrams): osnovni simboli, grananja, stapanja, višenitnost, definiranje odgovornosti - plivačke staze. Fizički dijagrami: prikaz komponente, odnosi među komponentama. Paketi: simbolički prikaz.
  12. Uzorci dizajna (design patterns): povijesni pregled, GoF (Gang of Four: Eric Gamma i suradnici), smisao uzoraka - ilustracija pomoću strategijskog uzorka (strategy pattern), podjela uzoraka: kreacijski, strukturni i uzorci ponašanja.
  13. Kreacijski uzorci: apstraktna tvornica, graditelj, tvornička metoda, prototip i singleton.
  14. Strukturni uzorci: adapter, most, kompozitni, dekorator, fasada, lagani, proxy.
  15. Uzorci ponašanja: lanac odgovornosti, naredba, interpretator, iterator, posrednik, podsjetnik, promatrač, stanje, strategija, metoda predloška, posjetitelj
auditorne vježbe (A)
  1. Klasifikacija objekata i klasa
  2. Princip dizajna po ugovoru i njegova implementacija u različitim programskim jezicima
  3. Kreiranje i korištenje testnih jedinica (unit tests).
  4. Refaktoriranje jednostavnog projekta
  5. Refaktoriranje jednostavnog projekta
  6. Definiranje slučajeva korištenja
  7. Definiranje slučajeva korištenja
  8. Izrada dijagrama slijeda
  9. Izrada dijagrama klasa
  10. Izrada dijagrama objekata
  11. Izrada dijagrama suradnje
  12. Izrada dijagrama stanja
  13. Izrada dijagrama aktivnosti
  14. Prepoznavanje i korištenje uzoraka dizajna
  15. Primjena uzoraka dizajna
laboratorijske vježbe (L)
  1. Izrada programa s osnovnim tipovima i jednostavnim hijerarhijama (nasljeđivanje, agregacije)
  2. Primjena dizajna po ugovoru u programskom kodu
  3. Pisanje i izvođenje testnih jedinica (unit tests)
  4. Refaktoriranje jednostavnog projekta
  5. Refaktoriranje jednostavnog projekta
  6. Pisanje scenarija u slučajevima korištenja
  7. Pisanje scenarija u slučajevima korištenja
  8. Crtanje dijagrama slijeda u grafičkom alatu
  9. Crtanje dijagrama klasa u grafičkom alatu
  10. Crtanje dijagrama klasa u grafičkom alatu
  11. Crtanje dijagrama objekata u grafičkom alatu
  12. Crtanje dijagrama suradnje u grafičkom alatu
  13. Crtanje dijagrama stanja u grafičkom alatu
  14. Crtanje dijagrama aktivnosti u grafičkom alatu
  15. Crtanje fizičkih dijagrama u grafičkom alatu
kolokvij - zadaci (KA)
  1. Nije definirano
kolokvij - teorija (KP)
  1. Kolokvij se polaže kroz test koji se sastoji od 30 kratkih zadataka teoretskog i praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (1) Objektni model, (2) Klase i objekti, (3) Klasifikacija, (4) Metodologije razvoja. Svaki zadatak se ocjenjuje s 1 - 5 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova.
  2. Kolokvij se polaže kroz test koji se sastoji od 30 kratkih zadataka teoretskog i praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (1) UML, (2) Slučajevi korištenja, (3) Dijagrami klasa, (4) Interakcijski dijagrami, (5) Dijagrami stanja, (6) Uzorci dizajna. Svaki zadatak se ocjenjuje s 1 - 5 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova.
projekt (PR)
  1. Student treba samostalno pripremiti 15 minutnu prezentaciju jednog od uzoraka dizajna. Prezentacija mora sadržavati opis uzorka, njegovu primjenu te ilustrativni programski primjer u nekom programskom jeziku po izboru. Temu potom student izlaže pred kolegama te odgovara na postavljena pitanja vezana uz prezentaciju.
ispit - zadaci (IP)
  1. Ispit se sastoji u crtanju UML dijagrama za određeni problem. Ocjenjuje se od 0 - 100 % i ulazi u konačnu ocjenu ispita.
ispit - teorija (IU)
  1. Kao preduvjet za konačnu ocjenu, student mora održati prezentaciju jednog od uzoraka dizajna. Ocjena prezentacije ulazi u konačnu ocjenu ispita. Sam ispit sastoji se od kratkih pitanjima vezanih uz gradivo na koje student odgovara usmeno. Konačna ocjena formira se na osnovu rezultat kolokvija, ocjena izlaznih testova, ocjene prezentacije te ocjena pismenog i usmenog dijela završnog ispita.
samostalno učenje (SU)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju