Skip to main content

IT - Object-Oriented Modeling

Subject name

Object-Oriented Modeling

Details
Code
VSITE135
Abbrev.
OOM
ECTS
5
Year
4
Semester
Winter semester
Type
elective
NQF Level 6
Bachelor study
E-Learning
0%
Activities
IT zg - Sum 24/25
ECTS
Units
Hours
Total
T
1
15
2
30
N
0.5
15
1
15
L
0.5
11
1
15
S
0
0
0
0
PN
0
1
1
0
PT
0
2
1
0
PR
0
1
6
0
EN
0
1
1
0
ET
0
1
2
0
AL
3
1
90
90
TeachersLeaders: mr. sc. Julijan Šribar, v. pred.
Assistants: Paolo Stabile, str. sur.
PrerequisitsNone
Content

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.

Learning objectives

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).

Learning outcomes

1. Master basic principles related to object oriented technology.
2. Understand main methodologies of the object oriented development.
3. Understand and be able to create UML diagrams independently.
4. Understand and be able to apply the most common design patterns.

Competencies

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.

Recommended Literature

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;

Additional Literature
lectures (T)
  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
numeric exercises (N)
  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
laboratory exercises (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
preliminary exam - numeric (PN)
  1. Not defined
preliminary exam - theory (PT)
  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.
project (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.
exam - numeric (EN)
  1. Ispit se sastoji u crtanju UML dijagrama za određeni problem. Ocjenjuje se od 0 - 100 % i ulazi u konačnu ocjenu ispita.
exam - theory (ET)
  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.
autonomus learning (AL)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju

Ulica Vjekoslava Klaića 7, 10000 Zagreb, tel. 01/3764200 fax. 01/3764264