Sadržaj se učitava...
mdi-home Početna mdi-account-multiple Djelatnici mdi-script Studiji mdi-layers Katedre mdi-calendar-clock Raspored sati FOI Nastava search apps mdi-login
Uzorci dizajna
Design Patterns
2025/2026
5 ECTSa
Informacijsko i programsko inženjerstvo 1.4 (IPI)
Baze podataka i baze znanja 1.4 (BPBZ)
Katedra za teorijske i primijenjene osnove informacijskih znanosti
RI
3. semestar
Osnovne informacijemdi-information-variant Izvođači nastavemdi-account-group Nastavni plan i programmdi-clipboard-text-outline Model praćenjamdi-human-male-board Ispitni rokovimdi-clipboard-check-outline Rasporedmdi-calendar-clock Konzultacijemdi-account-voice
Izvođenje kolegija
Studij Studijski program Semestar Obavezan
Informacijsko i programsko inženjerstvo 1.4 (IPI) 3 obavezan
Baze podataka i baze znanja 1.4 (BPBZ) 3 izborni
Cilj kolegija
Cilj predmeta je upoznavanje studenata s ponovno korištenim programskim arhitekturama. Mikro arhitekture u obliku uzoraka dizajna bitne su za razumijevanje uočenih problema jer sadržavaju njihov opis, primjenu i primjer programskog koda. Antiuzorcima dizajna prikazuju se primjeri iz loše prakse korištenja uzoraka dizajna. Upoznavanjem raznih vrsta uzoraka dizajna studenti će steći korisna iskustva u rješavanju prepoznatih problema na temelju čega mogu graditi vlastite blokove veće granulacije. Analizom ugrađenih mehanizama u programskim arhitekturama daje se globalni pogled na razvoj složenih programskih sustava, u kojima trebaju postojati različite osobine, kao što je internacionalizacija, lokalizacija, personalizacija, prilagođavanje izabranom mediju i/ili modelu, parametrizacija i slično.
Preduvjeti
Kolegij nema definirane preduvjete
Norma kolegija
Predavanja
30 sati
Seminar
15 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Kermek Dragutin Nositelj Predavanja
Seminar
13
3
2
1
1
2
Kaniški Matija Suradnik Seminar 12 1 2
Novak Matija Suradnik Predavanja 2 2 1
Sadržaj predavanja
  • Uvod u ponovno korištenje programskog koda
    Ciljevi ponovnog korištenja. Razvoj metoda ponovnog korištenja programskog koda. Dizajn sustava od postojećih elemenata.
  • Uvod u uzorke dizajna
    Što je uzorak i antiuzorak dizajna. Prepoznavanje uzoraka dizajna. UML. Dokumentiranje uzoraka dizajna. Klasifikacija uzoraka dizajna. Katalog uzoraka dizajna. Organiziranje kataloga i bitni elementi uzorka. Česti uzroci redizajna. Rješavanje problema primjenom uzoraka dizajna. Kako izabrati uzorak dizajna za određeni problem. Aspekti koji mogu varirati kod pojedinih uzoraka dizajna. Kako koristiti uzorak dizajna.
  • Refaktoriranje programskog koda
    Zašto refaktorirati (restrukturirati) programski kod. Kada i kako refaktorirati programski kod. Katalog refaktoriranja. Refaktoriranje u uzorke dizajna.
  • Uzorci dizajna kreiranja
    Svrha, primjena i ograničenja kreatorskih uzoraka dizajna. Abstract Factory. Builder. Factory method. Prototype. Singleton.
  • Uzorci dizajna strukture
    Svrha, primjena i ograničenja strukturnih uzoraka dizajna. Adapter. Bridge. Composite. Decorater. Facade. Flyweight. Proxy.
  • Uzorci dizajna ponašanja
    Svrha, primjena i ograničenja uzoraka dizajna ponašanja. Chain of Responsibility. Command. Interpreter. Iterator.Mediator. Memento. Observer. State. Strategy. Templete Method. Visitor.
  • Prepoznavanje GOF uzoraka dizajna
    Ciljevi prepoznavanja GOF uzoraka dizajna. Metode prepoznavanja GOF uzoraka dizajna na bazi stabla apstraktne sintakse, grafova, rudarenju podataka i strojnog učenja. Usporedba uspješnosti metoda prepoznavanja GOF uzoraka dizajna.
  • Budućnost uzoraka dizajna
    Novi pogled na GOF uzorke dizajna. Prijedlozi nove kategorizacije uzoraka dizajna. Novi uzorci dizajna. Dependency Injection. Null Object.
  • Arhitekturni uzorci dizajna
    Svrha, primjena i ograničenja arhitekturnih uzoraka dizajna. Monolitne arhitekture. Servisno usmjerene arhitekture.Mikroservisne arhitekture. Arhitekture računalnog oblaka.
Sadržaj seminara/vježbi
  • U okviru vježbi studenti će koristiti standardne programske alate koji se koriste za izradu programs
    U okviru vježbi studenti će koristiti standardne programske alate koji se koriste za izradu programskih primjera u izabranom programskoj jeziku, alate za dijagramske tehnike. U sklopu toga naučit će izabrati i koristiti najpoznatije uzorke dizajna u konkretnim situacijama. Moći će prepoznati vlastite uzorke dizajna te ih dokumentirati u skladu s uobičajenom praksom i predloškom.
Ishodi učenja kolegija
  • Izabrati, primijeniti i procijeniti prikladne uzorke u rješavanju određenih problema u procesu razvoja programskih proizvoda.
  • Objasniti ulogu uzoraka dizajna u procesu razvoja programskih proizvoda.
  • Objasniti, primijeniti i povezati strukturu uzoraka dizajna.
  • Opisati proces pronalažanje, predlaganja i prihvaćanja uzoraka dizajna.
  • Prepoznati i opisati različite kategorije uzoraka.
  • Primijeniti i usporediti različite osobine objektno orijentirane paradigme.
Ishodi učenja programa
  • Modelirati probleme iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja
  • Analizirati uvjete, donositi odluke, savjetovati druge te primijeniti odluke u zadanom kontekstu rješavanja problema iz područja informacijskih i poslovnih sustava
  • Vrednovati učinkovitost uvođenja i korištenja programskih rješenja i pripadajuće infrastrukture za konkretne problemske domene
  • Svrsishodno komunicirati na hrvatskom i stranom jeziku, unaprijediti komunikaciju sa svim dionicima (klijentima, korisnicima i kolegama) uz primjenu odgovarajuće terminologije uključujući popularizaciju suvremenih informatičkih trendova i tema
  • Primijeniti odgovarajuće metode i tehnike projektiranja, planiranja, razvoja i uvođenja složenog informacijskog sustava u suvremenim razvojnim okolinama
  • Oblikovati softversku arhitekturu složenog informacijskog sustava, odabrati i postaviti njegovu odgovarajuću tehnološku platformu i sigurnosne mehanizme te programirati dijelove složenog sustava
  • Utvrditi uvjete za primjenu ključnih informacijskih tehnologija, procijeniti njihov učinak i u zadanom kontekstu donositi odluke i davati savjete vezano uz upravljanje IT uslugama i resursima
Osnovna literatura
  • Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable of Object-Oriented Design. Addison-Wesley, Reading, MA, 1995.
  • Fowler, M. Refactoring - Improving the Design of Existing Code 2ed (with Kent Beck, John Brant, William Opdyke, and Don Roberts), Addison Wesley, 2018.
  • Kerievsky, J. Refactoring to Patterns, Addison Wesley, 2004.
  • E. Gamma: Design Patterns – Past, Present & Future, FOSE, Zurich, 2010., http://fose.ethz.ch/ slides/gamma.pdf
  • Richards, M., Ford, N. Fundamentals of Software Architecture: An Engineering Approach, O'Reilly Media, 2020.
Dopunska literatura
  • Metsker, S.J. Design Patterns Java Workbook, Addison-Wesley, 2002.
  • Metsker, S.J. Design Patterns in C#, Addison-Wesley, 2004.
Slični kolegiji
  • Mercer University, Design Patterns, http://www.paulemacneil.com/syl658.htm
  • University of Calgary, Design Patterns, http://sern.ucalgary.ca/courses/SENG/609.04/W98/
  • San Diego State University, Advanced Object-Oriented Design & Programming, http://www.eli.sdsu.edu/courses/spring98/cs635/
  • George Mason University, Advanced Software Design: Reusable Software Architectures, http://mason.gmu.edu/~hgomaa/swe721/SWE721IT821Syllabus.htm
  • The University of Chicago, Object Oriented Architecture, Design, and Methodolgy, http://people.cs.uchicago.edu/~mark/51023/
Redoviti studenti Izvanredni studenti
izvanredni rok
Datum: 15.04.2026.
Vrijeme: 16:00
Opis: Na Fakultetu
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.
2025 © Fakultet organizacije i informatike, Centar za razvoj programskih proizvoda