Subject

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

1. Course Title Шаблони за дизајн на софтвер
Software Design Patterns
2. Code SI-Z-03
3. Study Programme Софтверско инженерство
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) Second cycle
6. Academic year / semester 9 / Winter
7. Number of ECTS credits 6
8. Teacher Дејан Ѓорѓевиќ, Сузана Лошковска
9. Prerequisites for enrolling in the course
10. Objectives of the course programme (competences) Целта на курсот е студентите да добијат познавања за шаблоните за развој на софтвер, стандардните решенија на стандардни проблеми при дизајнирањето на софтвер, да се запознаат со механизмите на еволуција на софтвер, рефакторизацијата како и со имплементациски шаблони. По завршувањето на курсот кандидатите ќе можат: да ја разберат, согледаат потребата и да ги применат техниките за поврзување и кохезија на компонентите во објектно-ориентираниот дизајн, да ги опишат и успешно да ги применуваат најприменуваните програмски шаблони, да ги категоризираат програмските шаблони на основа на дизајнерскиот повод како интерфејсот, одговорноста, конструирањето, примената и проширувањето на шаблоните, да дизајнираат и конструираат големи рамковно ориентирани компјутерски системи со примена на мета-системски пристап на објектно-ориентираното програмирање, да дизајнираат и имплементираат шаблонска апликација со избор и примена на вистинските програмски шаблони.
11. Course content Дизајн на софтвер, шаблони за дизајн - дефиниција, историја, 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. Learning methods Предавања поддржани со презентации преку слајдови, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа, учење во електронско опкружување (форуми, консултации).
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 60 + 0 + 45 + 45 + 30 = 180 hours
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 60 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 0 hours
16. Other forms of activities
16.1. Project assignments 45 hours
16.2. Independent assignments 45 hours
16.3. Home study 30 hours
17. Assessment method
17.1. Tests 40 бодови
17.2. Seminar paper / project (presentation: written and oral) 45 points
17.3. Activities and learning 0 points
17.4. Final exam 0 points
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam реализирани активности
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching internal evaluation and survey mechanism
22. Literature
22.1. Required literature
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. Additional literature
No. Author Title Publisher Year