Design Patterns
Opis predmeta
Proučavaju se opća načela te konkretne metode oblikovanja prilagodljivih i modularnih programskih podsustava. Uvodi se pojam oblikovnog obrasca kao isprobanog rješenja za razred čestih problema u pojedinim problemskim domenama. Razmatraju se klasifikacije obrazaca prema razini apstrakcije, svrsi i području primjene, zajedno s odgovarajućim predstavnicima. Pretpostavljena su osnovna znanja iz domene objektno orijentiranog programiranja stečena na uvodnim kolegijima.
Ishodi učenja
- prepoznati simptome neprikladne programske organizacije
- objasniti prednosti dinamičkog polimorfizma, predložaka i implicitnog tipiziranja.
- objasniti glavna načela programskog oblikovanja i prepoznati slučajeve njihovog kršenja
- procijeniti kvalitetu različitih programskih organizacija na temelju ključnih načela oblikovanja
- prepoznati različite oblikovne obrasce u nekomentiranom izvornom kôdu
- usporediti prikladnost različitih oblikovnih obrazaca u kontekstu konkretnog oblikovnog problema
- primijeniti oblikovna načela za koncipiranje kvalitetnih programskih komponenti
Oblici nastave
Predavanja
Predmet predviđa tri sata predavanja tjedno.
LaboratorijPredmet predviđa četiri laboratorijske vježbe. http://www.zemris.fer.hr/~ssegvic/ooup/
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 40 % | 20 % | 50 % | 0 % | ||
Međuispit: Pismeni | 0 % | 40 % | 0 % | |||
Završni ispit: Pismeni | 0 % | 40 % | ||||
Ispit: Pismeni | 50 % | 80 % | ||||
Ispit: Usmeni | 20 % |
Tjedni plan nastave
- Statička i dinamička svojstva programskih sustava. Značaj interakcije programskih komponenata i programske organizacije. Osnove razvojnih procesa.
- Simptomi neprikladne organizacije. Veza između promjene zahtjeva i nereda programske organizacije. Dijagrami razreda prema metodi OMT. Dijagram fizičke organizacije.
- Tehnike za izražavanje fleksibilnih programa. Dinamički polimorfizam u C++-u, C-u i Pythonu. Statički polimorfizam u C++-u. Objektno-orijentirano oblikovanje, ugovorno oblikovanje, zauzimanje inicijalizacijom.
- Logička načela oblikovanja: nadogradnja bez promjene, Liskovino načelo supstitucije, načelo inverzije ovisnosti, načelo jedinstvene odgovornosti, načelo izdvajanja sučelja. Fizička načela oblikovanja: inkrementalno testiranje, dodjeljivanje razina, cikličke ovisnosti.
- Oblikovni obrasci. Strategija. Okvirna metoda. Promatrač
- Dekorator. Naredba.
- Rješavanje problema za vježbu.
- Međuispit
- Generičke tvornice. Jedinstveni objekt. Iterator.
- Prilagodnik. Kompozit. Stanje.
- Proxy. Most.
- Prototip. Posjetitelj.
- Metoda tvornica. Model-pogled-upravljač.
- Rješavanje problema za vježbu.
- Završni ispit
Studijski programi
Sveučilišni preddiplomski
[FER3-EN] Computing - studij
Elective Courses
(6. semestar)
[FER3-EN] Electrical Engineering and Information Technology - studij
Elective Courses
(6. semestar)
Literatura
(.), Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley Professional. 2009.,
(.), Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin. Prentice Hall. 2003,
Za studente
Izvedba
ID 210749
Ljetni semestar
5 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Seminar
15 Auditorne vježbe
8 Laboratorijske vježbe
0 Konstrukcijske vježbe
Ocjenjivanje
89 izvrstan
76 vrlo dobar
63 dobar
50 dovoljan