Naziv predmeta: SOFTVERSKI PATERNI
Godina na kojoj se izvodi nastava: IV godina (VII semestar)
Broj ESPB bodova: 6 bodova
Uslovi:
Cilj: Shvatanje definicija i različitih oblika predstavljanja uzora (paterna). Mogućnost praktičnog korišćenja uzora u različitim fazama razvoja softvera. Upoznavanje sa postojećim matematičkim formalizmima za opisivanje uzora.
Način polaganja: Ispit se sastoji iz tri dela: a) pismeni ispit b) odbrana seminarskog rada (za ocenu 9 i 10) v) usmeni deo ispita
Sadržaj predmeta:
| 1. Uvod |
| 2. Postojeće definicije i oblici predstavljanja uzora |
| 2.1 Šta su uzori |
| 2.2 Oblici predstavljanja uzora |
| 2.2.1 Aleksanderov oblik |
| 2.2.2 GOF oblik |
| 2.2.3 Koplienov oblik |
| 2.3 Klasifikacija uzora |
| 2.3.1 Tronivojski uzori |
| 2.3.2 Aleksanderovo skaliranje |
| 2.3.3 Drugi skalirajući pristupi |
| 2.3.4 Anti uzori |
| 2.3.5 Meta uzori |
| 3. Uzori zahteva (Software Requirement Patterns – Stephen Withall) |
| 4. Uzori analize (Analysis patterns – Martin Fowler) |
| UZAN1: Uzori odgovornosti (accountability) |
| UZAN2: Uzori posmatranja i merenja (observations and measurement) |
| UZAN3: Uzori referenciranja na objekte |
| UZAN4: Uzori zaliha i računovodstva (inventory and accounting) |
| UZAN5: Korišćenje modela računovodstva |
| UZAN6: Uzori planiranja |
| UZAN7: Uzori trgovine (trading) |
| UZAN8: Uzori ugovora (derivative contracts) |
| 5. Uzori projektovanja |
| a. Mikro arhitektura |
| 5.1.1 GOF uzori projektovanja (Design Patterns – Gamma,… Head First Design Patterns –Eric Freeman and Elisabeth Freeman, Java JDK 6 Edition) |
| GOFKR: Uzori za kreiranje objekata |
| GOFKR1: Abstract Factory |
| GOFKR2: Builder |
| GOFKR3: Factory method |
| GOFKR4: Prototype |
| GOFKR5: Singleton |
| GOFST: Strukturni uzori |
| GOFST1: Adapter |
| GOFST2: Bridge |
| GOFST3: Composite |
| GOFST4: Decorator |
| GOFST5: Facade |
| GOFST6: Flyweight |
| GOFST7: Proxy |
| GOFPO: Uzori ponašanja |
| GOFPO1: Chain of responsability |
| GOFPO2: Command |
| GOFPO3: Interpreter |
| GOFPO4: Iterator |
| GOFPO5: Mediator |
| GOFPO6: Memento |
| GOFPO7: Observer |
| GOFPO8: State |
| GOFPO9: Strategy |
| GOFPO10: Template method |
| GOFPO11: Visitor |
| 5.1.2 GRASP uzori projektovanja (Applying UML and patterns–Larman,…) |
| GRASP1: Ekspert uzor |
| GRASP2: Kreator uzor |
| GRASP3: Uzor slabe povezanosti |
| GRASP4: Uzor visoke kohezivnosti |
| GRASP5: Kontroler uzor |
| GRASP6: Uzor podele domena od prezentacije (Model-View separation pattern) |
| GRASP7: Izdavač – pretplatnik uzor (Publish – Subscribe) |
| GRASP8: Uzor polimorfizma |
| GRASP9: Pure fabrication uzor |
| GRASP10: Uzor indirekcije |
| GRASP11: Protected variations |
| GRASP12: Don’t Talk to Strangers uzor |
| GRASP13: Database broker uzor |
| GRASP14: Framework design – realizovan preko Template method uzora |
| GRASP15: Materijalizacija realizovana preko Template method uzora |
| 5.2 Makro arhitektura |
| ECF: ECF uzor |
| MVC: MVC uzor |
| 5.3 Važni principi projektovanja |
| OCP: Open Closed Principle |
| DIPR: Dependence Inversion Principle |
| PRLK: The Principle of Last Knowledge |
| HOPR: The Hollywood Principle |
| 6. Implementacioni uzori |
| JAVAID: Java idiomi |
| 7. Refaktorisanje (Refactoring – Improving the design of existing code, Martin Fowler) |
| REFA1: Šta je refaktorisanje |
| REFA2: Principi refaktorisanja |
| REFA3: Primeri lošeg koda |
| REFA4: Pravljenje testova |
| REFA5: Katalog refaktoringa |
| REFA6: Komponovanje metoda |
| REFA7: Pomeranje osobina između objekata |
| REFA8: Organizovanje podataka |
| REFA9: Pojednostavljenje uslovnih izraza |
| REFA10 Pravljenje jednostavnih poziva metoda |
| REFA11: Rad sa generalizacijom |
| 8. Uzori testiranja |
| 9. Formalizacija uzora |
| 10. Zaključak |
Način ocenjivanja:
Ispit se sastoji iz tri dela:
1. Pismeni ispit (Izrada zadataka na računaru):
Student koji je položio pismeni deo ispita dobija od 10 do 40 poena (BrojPoenaPismeni).
Napomena: Studenti mogu u tekućoj školskoj godini da budu ocenjivani za njihove aktivnosti.
2. Odbrana seminarskog rada
Student koji je odbranio seminarski rad dobija od 10 do 20 poena (BrojPoenaSeminar).
Napomena: Seminarski rad nije obavezan deo ispita.
3. Usmeni deo ispita
Student koji je položio usmeni deo ispita dobija od 10 do 40 poena (BrojPoenaUsmeni).
Napomena: Usmeni deo ispita se može polagati tek nakon položenog pismenog dela ispita.
Ocena se dobija na osnovu sledeće formule:
Ocena = (BrojPoenaPismeni + BrojPoenaSeminar + BrojPoenaUsmeni)/10
Podaci o nastavnicima:
Dr Siniša Vlajić, docent
Kabinet: B006
E-pošta: vlajic@fon.rs
dr Ilija Antović, docent
Kabinet: B006
E-pošta: ilijaa@fon.bg.ac.rs
Dušan Savić, asistent
Kabinet: B006
E-pošta: dules@fon.rs
Vojislav Stanojević, saradnik u nastavi
Kabinet: B006
E-pošta: vojkans@fon.rs