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
2023/2024
5 ECTSa
Baze podataka i baze znanja 1.3 (BPBZ)
Organizacija poslovnih sustava 1.3 (OPS)
Informacijsko i programsko inženjerstvo 1.3 (IPI)
Informatika u obrazovanju 1.3 (IUO)
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
Cilj kolegija
Cilj kolegija 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
15
11
2
1
1
2
Novak Matija Suradnik
Levak Iva Suradnik Seminar 4 1 2
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. Katalog uzoraka dizajna. Organiziranje kataloga. Rješavanje problema primjenom uzoraka dizajna. Kako izabrati i koristiti uzorak dizajna za određeni problem.
  • Kreatorski uzorci dizajna
    Svrha, primjena i ograničenja kreatorskih uzoraka dizajna. Abstract Factory. Builder. Factory method. Prototype. Singleton.
  • Strukturni uzorci dizajna
    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.
  • Arhitekturni uzorci dizajna
    Svrha, primjena i ograničenja arhitekturnih uzoraka dizajna. Postavljanje strukture. Layers. Pipes and Filters. Blackboard. Distribuirani sustavi. Broker. Interaktivni sustavi. Model-View-Controler. Prilagodljivi sustavi. Microkernel. Reflection.
  • Uzorci za upravljanje resursima
    Svrha, primjena i ograničenja uzoraka za upravljanje resursima. Lookup. Lazy acquisition. Eager acquisition. Partial acquisition. Caching. Pooling. Coordinator. Resource Lifetime Manager. Leasing. Evictor.
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
  • prepoznati, primijeniti i usporediti različite osobine objektno orijentirane paradigme
Ishodi učenja programa
  • Primijeniti etička načela, zakonsku regulativu i norme koje se koriste u struci
  • Analizirati i procijeniti uvjete za primjenu suvremenih informacijskih i komunikacijskih tehnologija (ICT), savjetovati druge u primjeni iste te u zadanom kontekstu odrediti utjecaj primjene na pojedinca, organizaciju i društvo.
  • Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja
  • Primijeniti, utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz rješavanje problema iz područja informacijskih i poslovnih sustava
  • Analizirati i ocijeniti učinkovitost uvođenja i korištenja ICT (programskog rješenja i pripadajuće opreme) za konkretne problemske domene informacijskih i poslovnih sustava
  • Procijeniti i preporučiti programska rješenja za konkretne problemske domene informacijskih i poslovnih sustava
  • Voditi interdisciplinarni tim i raditi u takvom timu
  • Predstaviti i popularizirati suvremena trendove u informatici u stručnim i laičkim krugovima
  • Unaprijediti metode komuniciranja i komunikaciju s klijentima, korisnicima i kolegama na verbalan i pisani način uz primjenu odgovarajuće terminologije uključujući i sposobnost komunikacije o struci na stranom jeziku
  • Unaprijediti i primijeniti metode stručnog rada pronalaženjem i vrednovanjem suvremenih izvora znanja
  • Valorizirati stručnu literaturu na hrvatskom i stranom jeziku
  • Razviti vlastite planove i planove drugih članova tima u upravljenju karijerom u struci i vlastitih poduzetničkih poduhvata s obzirom na potrebe poslovnog okruženja
  • Planirati proces cjeloživotnog osobnog i profesionalnog razvoja i definirati optimalne individualne strategije učenja
  • Projektirati, planirati, izraditi i uvesti svaki poslovni složeni informacijski sustav i/ili voditi projektni tim u slučaju kada na tim poslovima mora biti uključen veći broj stručnjaka
  • Razumjeti poslovni sustav organizacije i u suradnji s poslovnim stručnjacima optimalizirati njezine poslovne procese te izraditi strateški plan primjene ICT-a
  • Oblikovati softversku arhitekturu složenog informacijskog sustava, odabrati i postaviti odgovarajuću tehnološku platformu i programirati najsloženije dijelove složenog sustava
  • Primijeniti metode planiranja i upravljanja poslovanjem uz pomoć ICT u osnovnim vertikalnim područjima primjene ICT
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz ključne aspekte primjene i razvoja informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja)
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metode i koncepte planiranja, upravljanja organizacijom i obračuna poslovanja
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metodološke pristupe razvoju organizacijskih i informacijskih sustava
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke za primjenu koncepata elektroničkog poslovanja podržanih odgovarajućim arhitekturama informacijskih sustava (klasične ili distribuirane)
  • Osmisliti projekt učinkovitog unapređenja poslovne tehnologije poslovnog sustava uz korištenje suvremenih ICT te realizirati takav projekt vlastitim razvojem ili izborom prikladnog standardnog softvera
  • Odabrati i primijeniti odgovarajuće sigurnosne mehanizme pri projektiranju i izgradnji informacijskog sustava
  • Odabrati i primijeniti metode i tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • Utvrditi uvjete za primjenu, savjetovati, procijeniti učinak i donositi odluke vezane uz procese, metode i tehnologije upravljanja IT uslugama i resursima te podrške i pružanja različitih vrsta usluga vezanih uz ICT
  • Objasniti stručnoj i općoj publici informatička rješenja za unapređenje poslovne tehnologije
  • Analizirati i valorizirati atribucije (atribute) objekata poslovnog sustava te postaviti formalni model objektnog sustava kao temelj izgradnje informacijskog sustava
  • Izgraditi informacijski sustav temeljen distribuiranim komponentama kao i na autonomnim i međusobno kompetitivnim izvorima znanja i razriješiti konflikte koji se javljaju među izvorima znanja
  • Primijeniti metode i tehnike izgradnje digitalnih arhiva i dugotrajnog pohranjivanja podataka
  • Primijeniti metode i tehnike pretraživanja i klasifikacije informacija
  • Prepoznati kritične procese i klase podataka poslovnog sustava, izgraditi formalni model procesa i klasa te ga optimizirati i ponuditi prijedloge poboljšanja poslovnog sustava
  • Modelirati poslovna pravila, poslovne podatke kao i pravila za izvođenje transakcijskih podataka koji nisu eksplicitno zadani
  • Modelirati i izgraditi sustav izvođenja analitičkih podataka iz transakcijskih metodama rudarenja i drugim metodama, te izgradnje skladišta podataka u koja se ti podaci pohranjuju
  • Modelirati i izgraditi sustave poslovne inteligencije temeljene na skladištima podataka, kao i njihovo pretraživanje korištenjem metoda višedimenzionalnih kocaka podataka (OLAP)
  • Izgraditi računalni sustav za pohranu podataka i znanja korištenjem suvremenih alata za izradu baza podataka, baza znanja i semantici podataka
  • Izgraditi i optimizirati bazu podataka i bazu znanja primjenom odgovarajućih strategija organizacije podataka i sigurnosti informacijskog sustava
  • Modelirati raspodjelu podataka prema mjestu korištenja podataka, izgraditi sustav replikacije baze podataka i izgraditi distribuiranu bazu podataka
  • Modelirati i izgraditi sustave temeljene na znanju, kao što su višeagentni sustavi, deduktivni sustavi (uključujući i ekspertne sustave), semantički Web sustavi, neuralne mreže itd.
  • Procijeniti potrebe za strategijskim i upravljačkim promjenama u organizacijama
  • Primijeniti metode upravljanja životnim ciklusom informacijskog sustava organizacije
  • Primijeniti metode korporacijskog upravljanja i strategijskog menadžmenta uz potporu informacijske tehnologije
  • Razviti i validirati sustav mjerenja organizacijske učinkovitosti uz primjenu odgovarajućih programskih alata
  • Analizirati tržište primjenom informacijsko-komunikacijskih tehnologija
  • Analizirati poslovne procese i preporučiti primjenu odgovarajuće informacijske i komunikacijske tehnologije za unapređenje poslovnih procesa
  • Organizirati sustav vođenja u javnoj upravi uz primjenu informacijske tehnologije
  • Razviti elemente kontinuuma strategijskog upravljanja: misiju, organizacijske vrijednosti, viziju, strateške ciljeve
  • Analizirati potrebu za e-poslovanjem i primijeniti koncepte e-poslovanja
  • Procijeniti spremnost organizacije za uvođenje suvremenih ERP sustava i definirati projekt uvođenja istih
  • Razumjeti povijesni aspekt edukacijskih sustava, društvenu uvjetovanost odgojno-obrazovne prakse i diferenciranost suvremenih odgojno-obrazovnih koncepcija
  • Poznavati organizaciju sustava odgoja i obrazovanja te ustroj odgojno-obrazovnog procesa na svim razinama
  • Razumjeti odrednice djelovanja i ponašanja ljudske jedinke i grupnu dinamiku (razrednog odjeljenja, timova, kolektiva …)
  • Organizirati nastavni proces
  • Artikulirati nastavni sat primjenjujući primjerene nastavne metode i oblike rada, didaktičke principe i nastavna sredstva
  • Voditi pedagošku dokumentaciju, ispitivanje,ocjenjivanje i vrednovanje u skladu s zakonskom regulativom i kriterijima osobne i profesionalne etičnosti
  • Poučavati učenike primjeni različitih oblika učenja, samovrednovanju i samoreguliranom učenju
  • Upravljati razrednim odjeljenjem, i surađivati s roditeljima i drugim strukturama unutar i izvan odgojno-obrazovne institucije
  • Analizirati građu računala, suvremene računalne arhitekture te primijeniti ta znanja u dizajnu obrazovnog informacijskog sustava, kao i u nastavi
  • Primijeniti principe proceduralnog programiranja, izgradnje struktura podataka i algoritama
  • Interpretirati povijest informatike i računarstva
  • Analizirati i usporediti računalne Web i desktop alate za prezentaciju informacija i primijeniti ih u nastavi
  • Formulirati problem iz realnog svijeta u smislu problemskog zadatka u informatici te ga znati riješiti i rješenje evaluirati
  • Analizirati, preporučiti, implementirati i koristiti sustave za e-učenje u skladu s metodičkim i pedagoškim principima
  • Izvoditi proces poučavanja u multikulturalnim i multietničkim sredinama i drugim posebnim uvjetima (treća dob, centri izvrsnosti …)
  • Osmisliti postupke za upravljanje procesom učenja i poučavanja u rizičnim situacijama
  • Predstavljati informatička znanja i vještine kao učinkovite instrumente za podupiranje integracijskih procesa
  • Predstavljati nastavnicima mogućnosti korištenja informatike u odgojno-obrazovnom procesu
  • Preispitivati, strukturirati i restrukturirati svoja osobna i profesionalna iskustva (razvijati refleksivnu praksu)
  • Koristiti stečena znanja o vizualnom oblikovanju i sadržajima u ostvarivanju kreativnih vizualnih projekata pri radu s računalom.
  • Modelirati postojeće vizualne sadržaje za potrebe konkretnih osobnih (ili učeničkih) računalnih radova (web dizajn, grafički dizajn, dizajn multimedija,…).
  • Koristiti vještine učenja potrebne za cjeloživotno učenje i nastavak obrazovanja na diplomskom studiju.
  • Upoznati Nacionalni okvirni kurikulum. Upoznati metodologiju izradbe školskog i nastavnog kurikuluma. Upoznati primjenu nastavnog kurikuluma u praksi.
Osnovna literatura
  • Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable of Object-Oriented Design. Addison-Wesley, Reading, MA, 1995.
  • Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M. Pattern-Oriented Software Architecture: A System of Patterns. Addison-Wesley, Reading, MA, 1996.
  • Kircher, M., Jain, P. Pattern-Oriented Software Architecture Volume 3: Patterns for Resource Management , Wiley , 2004.
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
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