Назив предмета: СОФТВЕРСКИ ПАТЕРНИ
Година на којој се изводи настава: 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