Назив предмета: СОФТВЕРСКИ ПАТЕРНИ
Година на којој се изводи настава: IV година (VII семестар)
Број ЕСПБ бодова: 6 бодова
Услови:
Циљ: Схватање дефиниција и различитих облика представљања узора (патерна). Могућност практичног коришћења узора у различитим фазама развоја софтвера. Упознавање са постојећим математичким формализмима за описивање узора.
Начин полагања: Испит се састоји из три дела: а) писмени испит б) одбрана семинарског рада (за оцену 9 и 10) в) усмени део испита
Садржај предмета:
| 1. Увод |
| 2. Постојеће дефиниције и облици представљања узора |
| 2.1 Шта су узори |
| 2.2 Облици представљања узора |
| 2.2.1 Александеров облик |
| 2.2.2 ГОФ облик |
| 2.2.3 Коплиенов облик |
| 2.3 Класификација узора |
| 2.3.1 Тронивојски узори |
| 2.3.2 Александерово скалирање |
| 2.3.3 Други скалирајући приступи |
| 2.3.4 Анти узори |
| 2.3.5 Мета узори |
| 3. Узори захтева (Software Requirement Patterns – Stephen Withall) |
| 4. Узори анализе (Analysis patterns – Martin Fowler) |
| UZAN1: Узори одговорности (accountability) |
| UZAN2: Узори посматрања и мерења (observations and measurement) |
| UZAN3: Узори референцирања на објекте |
| UZAN4: Узори залиха и рачуноводства (inventory and accounting) |
| UZAN5: Коришћење модела рачуноводства |
| UZAN6: Узори планирања |
| UZAN7: Узори трговине (trading) |
| UZAN8: Узори уговора (derivative contracts) |
| 5. Узори пројектовања |
| a. Микро архитектура |
| 5.1.1 GOF узори пројектовања (Design Patterns – Gamma,… Head First Design Patterns –Eric Freeman and Elisabeth Freeman, Java JDK 6 Edition) |
| GOFKR: Узори за креирање објеката |
| GOFKR1: Abstract Factory |
| GOFKR2: Builder |
| GOFKR3: Factory method |
| GOFKR4: Prototype |
| GOFKR5: Singleton |
| GOFST: Структурни узори |
| GOFST1: Adapter |
| GOFST2: Bridge |
| GOFST3: Composite |
| GOFST4: Decorator |
| GOFST5: Facade |
| GOFST6: Flyweight |
| GOFST7: Proxy |
| GOFPO: Узори понашања |
| 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 узори пројектовања (Applying UML and patterns–Larman,…) |
| GRASP1: Експерт узор |
| GRASP2: Креатор узор |
| GRASP3: Узор слабе повезаности |
| GRASP4: Узор високе кохезивности |
| GRASP5: Контролер узор |
| GRASP6: Узор поделе домена од презентације (Model-View separation pattern) |
| GRASP7: Издавач – претплатник узор (Publish – Subscribe) |
| GRASP8: Узор полиморфизма |
| GRASP9: Pure fabrication узор |
| GRASP10: Узор индирекције |
| GRASP11: Protected variations |
| GRASP12: Don’t Talk to Strangers узор |
| GRASP13: Database broker узор |
| GRASP14: Framework design – реализован преко Template method узора |
| GRASP15: Материјализација реализована преко Template method узора |
| 5.2 Макро архитектура |
| ECF: ECF узор |
| MVC: MVC узор |
| 5.3 Важни принципи пројектовања |
| OCP: Open Closed Principle |
| DIPR: Dependence Inversion Principle |
| PRLK: The Principle of Last Knowledge |
| HOPR: The Hollywood Principle |
| 6. Имплементациони узори |
| JAVAID: Јава идиоми |
| 7. Рефакторисање (Refactoring – Improving the design of existing code, Martin Fowler) |
| REFA1: Шта је рефакторисање |
| REFA2: Принципи рефакторисања |
| REFA3: Примери лошег кода |
| REFA4: Прављење тестова |
| REFA5: Каталог рефакторинга |
| REFA6: Компоновање метода |
| REFA7: Померање особина између објеката |
| REFA8: Организовање података |
| REFA9: Поједностављење условних израза |
| REFA10 Прављење једноставних позива метода |
| REFA11: Рад са генерализацијом |
| 8. Узори тестирања |
| 9. Формализација узора |
| 10. Закључак |
Начин оцењивања:
Испит се састоји из три дела:
1. Писмени испит (Израда задатака на рачунару):
Студент који је положио писмени део испита добија од 10 до 40 поена (БројПоенаПисмени).
Напомена: Студенти могу у текућој школској години да буду оцењивани за њихове активности.
2. Одбрана семинарског рада
Студент који је одбранио семинарски рад добија од 10 до 20 поена (БројПоенаСеминар).
Напомена: Семинарски рад није обавезан део испита.
3. Усмени део испита
Студент који је положио усмени део испита добија од 10 до 40 поена (БројПоенаУсмени).
Напомена: Усмени део испита се може полагати тек након положеног писменог дела испита.
Оцена се добија на основу следеће формуле:
Оцена = (БројПоенаПисмени + БројПоенаСеминар + БројПоенаУсмени)/10
Подаци о наставницима:
Др Синиша Влајић, доцент
Кабинет: Б006
Е-пошта: vlajic@fon.rs
др Илија Антовић, доцент
Кабинет: Б006
Е-пошта: ilijaa@fon.bg.ac.rs
Душан Савић, асистент
Кабинет: Б006
Е-пошта: dules@fon.rs
Војислав Станојевић, сарадник у настави
Кабинет: Б006
Е-пошта: vojkans@fon.rs