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
2020/2021
5 ECTSa
Organizacija poslovnih sustava 1.3 (OPS)
Informacijsko i programsko inženjerstvo 1.3 (IPI)
Informatika u obrazovanju 1.3 (IUO)
Baze podataka i baze znanja 1.3 (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
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
15
15
2
1
1
3
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
  • Primijeniti etička načela, zakonsku regulativu i norme koje se koriste u struci
  • Procijeniti uvjete za primjenu suvremenih informacijskih i komunikacijskih tehnologija (IKT), savjetovati druge u primjeni IKT-a te u zadanom kontekstu odrediti utjecaj na pojedinca, organizaciju i društvo.
  • 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
  • Voditi interdisciplinarni tim i raditi u takvom timu te razviti planove upravljanja karijerom za sebe i članove tima uključujući elemente cjeloživotnog učenja i razvoj kompetencija poduzetnosti
  • 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
  • Optimizirati procese poslovnog sustava organizacije u suradnji sa stručnjacima odabirom metoda i koncepata planiranja, upravljanja organizacijom i analize poslovanja
  • 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
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metodološke pristupe razvoju organizacijskih i informacijskih sustava
  • Osmsliti projekt učinkovitog unapređenja poslovnog sustava u osnovnim vertikalnim područjima uz korištenje suvremenih IKT, realizirati takav projekt vlastitim razvojem ili izborom odgovarajućeg standardnog softvera
  • Analizirati objekte poslovnog sustava te postaviti formalni model objektnog sustava kao temelj izgradnje informacijskog sustava.
  • Dizajnirati i izgraditi sustav temeljen na distribuiranim bazama podataka i velikim izvorima znanja korištenjem tehnika izgradnje velikih i distribuiranih podatkovnih sustava i razrješavanja konflikata između kompetitivnih izvora znanja.
  • Izgraditi računalni sustav za pohranu podataka i znanja uključujući digitalne arhive.
  • Predložiti poboljšanja poslovnog sustava temeljem optimiziranog modela poslovnih procesa i poslovnih pravila.
  • Modelirati i izgraditi analitički podatkovni sustav skladišta podataka i višedimenzionalnih kocaka temeljen na postojećem transakcijskom sustavu.
  • Izgraditi i optimizirati model procesa, klasa podataka i poslovnih pravila poslovnog sustava te predložiti poboljšanja poslovnog sustava.
  • Modelirati i izgraditi sustave temeljene na znanju i sustave za podršku u odlučivanju.
  • Identificirati potrebe za strategijskim i upravljačkim promjenama u organizacijama
  • Primijeniti metode upravljanja životnim ciklusom informacijskog sustava organizacije te osmisliti i primijeniti suvremene strategije nastupa na tržištu informatičkih proizvoda i usluga
  • Definirati elemente strategijskog kontinuuma i primijeniti metode strategijskog upravljanja uz potporu informacijsko komunikacijske tehnologije.
  • Razviti i validirati sustav mjerenja organizacijske učinkovitosti uz primjenu IKT
  • Analizirati tržište primjenom informacijsko-komunikacijskih tehnologija
  • Analizirati poslovne procese te preporučiti i primijeniti odgovarajuće informacijske i komunikacijske tehnologije za unapređenje poslovnih procesa
  • Prezentirati razvoj i organizaciju odgojno-obrazovnih sustava, povijest informatike i računarstva, ustroj odgojno-obrazovnog procesa, društvenu uvjetovanost odgojno-obrazovne prakse i primijeniti suvremene odgojno-obrazovne koncepcije
  • Organizirati nastavni proces uključujući i poučavanje upotrebom tehnologije i u kriznim uvjetima te osmisliti postupke za upravljanje procesom učenja i poučavanja uz primjenu odrednica djelovanja i ponašanja ljudske jedinke i dinamike grupe
  • 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 sa 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
  • Primijeniti i sukreirati suvremene računalne sustave u dizajnu obrazovnog informacijskog sustava u nastavi u skladu s pedagoškim i metodičkim principima te ih popularizirati sukladno trendovima i potrebama
  • Primijeniti principe proceduralnog programiranja, interneta, weba, stolnih aplikacija u kontekstu rješavanja problema iz realnog svijeta
  • Formulirati problem iz realnog svijeta u smislu problemskog zadatka u informatici te ga znati riješiti i rješenje evaluirati
  • Izvoditi proces poučavanja u multikulturalnim i multietničkim sredinama i drugim posebnim uvjetima (treća dob, centri izvrsnosti …)
  • Strukturirati i procjenjivati osobna i profesionalna iskustva (razvijati refleksivnu praksu) uključujući cjeloživotno učenje
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.2025.
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.
2024 © Fakultet organizacije i informatike, Centar za razvoj programskih proizvoda