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