Софтверски обрасци и компоненте
Упознавање са предметом
Креирано 2025-11-04 Tue 20:22, притисни ESC за мапу, Ctrl+Shift+F за претрагу, "?" за помоћ
1. Опште информације
- Број ЕСПБ: 5
- Фонд часова: 2+2
- Предметни наставник: Проф. др Игор Дејановић, igord на uns.ac.rs
- Предметни асистент: MSc Данијел Радаковић, danijelradakovic на uns.ac.rs
- Материјали са предавања су доступни на линку
https://www.igordejanovic.net/courses/sok/
- Материјали за вежбе биће доступни преко GitHub-а и Google групе.
- Комуникација и обавештења се обављају преко Google групе:
- Договор и обавештења о усменим испитима се обављају преко Google групе:
2. Циљ предмета
- Оспособљавање за препознавање и примену софтверских образаца
- Оспособљавање за примену компонентно базираног развоја (Component-Based
Development - CBD)
- Савладавање модерних технологија базираних на компонентном развоју
- Интеграција постојећих, слободно доступних компоненти и решења у циљу
изградње сложених софтверских производа
3. Структура оцене
| Практични део |
Теорија |
| 60% |
40% |
4. Пројекат
- Тимски рад - тимови од 4 ± 1 студента
- Обавезна употреба система за контролу верзија (Git)
- Обавезна употреба система за управљање пројектом (GitHub)
5. Пројекат - расподела бодова
| Активност |
Бодови |
| Модел компоненти |
10 |
| Имплементација компоненти |
20 |
| Имплементација пројекта |
18 |
| Git активност |
6 |
| GitHub активност |
6 |
| Укупно |
60 |
6. Контролна тачка - дискусија
- Датум ће бити накнадно одређен.
- Неколико најбољих тимова ради презентацију.
- Не оцењује се. Циљ је дискусија и помоћ споријим тимовима.
7. Укус СОК-а - презентације старијих генерација
- Ген. 2007/08 – Генерички IDE за развој (Code Editor – CodEd): Swing,
OSGI(Apache Felix)
- Multi-level тим – цела наставна група је велики тим који се дели на
подтимове
- Подршка за произвољне програмске језике (специјализација за Јаву): custom
parser, syntax highlighting, code outline, search/replace…
8. Укус СОК-а - презентације старијих генерација
- Ген. 2008/09 – Ex tensible G raph A nalysis and T ransformation E ngine (ExGATE):
Swing, OSGI (Eclipse Eqinox).
- Појединачни тимови
- Генеричи едитор за креирање, анализу, трансформацију и визуелизацију
графова
- Подршка за претраге графова, аутоматско распоређивање елемената,
генерисање…
9. Презентација ExGERM тима
10. Генерација 2011-2015
- Ex tensible P latform for S tructure V isualization and N avigation
(ExPreSsiVeNess)
- Визуализација и навигација над структурама типа графа
- Промењиви модели: разне врсте POJO објектних графова
- Промењиве конкретне синтаксе
- Брз преглед и навигација
- Операције: pan, point zoom in/out, tree outline, bird-view, filter,
search, добијање детаља о текућем објекту итд.
- Опционо: конзола за управљање платформом: измена синтакси, измена модела итд.
- Технологије:
- Интеграциона платформа – Eclipse Equinox (OSGi)
- GUI – Eclipse Rich Client Platform (RCP) + SWT/JFace
- Визуализација графова – GEF (Draw2d, Zest)
- И наравно: Git и GitLab
11. Генерација 2016-
- Ex tensible P latform for S tructure V isualization and N avigation
(ExPreSsiVeNess)
- Визуализација и навигација над структурама типа графа
- Промењиви модели: разне врсте ПОПО објектних графова
- Промењиве конкретне синтаксе
- Брз преглед и навигација
- Операције: pan, point zoom in/out, tree outline, bird-view, filter,
search, добијање детаља о текућем објекту итд.
- Опционо: конзола за управљање платформом: измена синтакси, измена модела итд.
- Технологије:
13. Литература
- E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides, Design Patterns: Elements
of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994
- C. Szyperski, Component Software: Beyond Object-Oriented Programming,
Addison-Wesley Longman Publishing Co., Inc., 2002
- The Python Tutorial
- Allen B. Downey, Think Python 2nd Edition
- Package Discovery and Resource Access using pkg_resources