Subject

Шаблони за дизајн на софтвер

1. Наслов на наставниот предмет Шаблони за дизајн на софтвер
Software Design Patterns
2. Код SI-Z-03
3. Студиска програма Софтверско инженерство
4. Организатор на студиската програма (единица, односно институт, катедра, оддел) Faculty of Computer Science and Engineering
5. Степен (прв, втор, трет циклус) Second Cycle
6. Академска година / семестар 9 / Зимски
7. Број на ЕКТС кредити 6
8. Наставник Дејан Ѓорѓевиќ, Сузана Лошковска
9. Предуслови за запишување на предметот
10. Цели на предметната програма (компетенции) Целта на курсот е студентите да добијат познавања за шаблоните за развој на софтвер, стандардните решенија на стандардни проблеми при дизајнирањето на софтвер, да се запознаат со механизмите на еволуција на софтвер, рефакторизацијата како и со имплементациски шаблони. По завршувањето на курсот кандидатите ќе можат: да ја разберат, согледаат потребата и да ги применат техниките за поврзување и кохезија на компонентите во објектно-ориентираниот дизајн, да ги опишат и успешно да ги применуваат најприменуваните програмски шаблони, да ги категоризираат програмските шаблони на основа на дизајнерскиот повод како интерфејсот, одговорноста, конструирањето, примената и проширувањето на шаблоните, да дизајнираат и конструираат големи рамковно ориентирани компјутерски системи со примена на мета-системски пристап на објектно-ориентираното програмирање, да дизајнираат и имплементираат шаблонска апликација со избор и примена на вистинските програмски шаблони.
11. Содржина на предметната програма Дизајн на софтвер, шаблони за дизајн - дефиниција, историја, Observer Pattern, Template Method Pattern, Factory Patterns: Factory Method and Abstract Factory, Singleton Pattern, Facade Pattern, Visitor Pattern, Functors and the Command Pattern, Iterator Pattern, Composite Pattern, State and Strategy Patterns, Adapter Pattern, Proxy Pattern, Decorator Pattern, Chain of Responsibility Pattern, Concurrency Patterns, AntiPatterns, шаблони за имплементација, моделирање на улоги, композитни шаблони за дизајн, формални методи и шаблони за дизајн.
12. Методи на учење Предавања поддржани со презентации преку слајдови, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа, учење во електронско опкружување (форуми, консултации).
13. Вкупен расположив фонд на време 6 ЕКТС x 30 часа = 180 часа
14. Распределба на расположивото време 60 + 0 + 45 + 45 + 30 = 180 часа
15. Форми на наставните активности
15.1. Предавања - теоретска настава 60 часови
15.2. Вежби (лабораториски, аудиториски), семинари, тимска работа 0 часови
16. Други форми на активности
16.1. Проектни задачи 45 часови
16.2. Самостојни задачи 45 часови
16.3. Домашно учење 30 часови
17. Начин на оценување
17.1. Тестови 40 бодови
17.2. Семинарска работа / проект ( презентација: писмена и усна) 45 бодови
17.3. Активности и учење 0 бодови
17.4. Завршен испит 0 бодови
18. Критериуми за оценување (бодови/ оценка)
до 50 бода5 (пет) (F)
од 51 до 60 бода6 (шест) (E)
од 61 до 70 бода7 (седум) (D)
од 71 до 80 бода8 (осум) (C)
од 81 до 90 бода9 (девет) (B)
од 91 до 100 бода10 (десет) (A)
19. Услов за потпис и полагање на завршен испит реализирани активности
20. Јазик на кој се изведува наставата македонски и англиски
21. Метод на следење на квалитетот на наставата механизам на интерна евалуација и анкети
22. Literature
22.1. Задолжителна литература
1. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides | Design Patterns Elements of Reusable Object-Oriented Software | Addison-Wesley Pub Co | 1995
2. Eric Freeman,‎ Bert Bates,‎ Kathy Sierra,‎ Elisabeth Robson | Head First Design Patterns: A Brain-Friendly Guide | O`Reilly Media | 2004
22.2. Дополнителна литература
Ред.бр. Автор Наслов Издавач Година