Пројектовање софтвера — разлика између измена
м (DPL i ispravka za domaći) |
Нема описа измене |
||
| (Нису приказане 44 међуизмене 10 корисника) | |||
| Ред 1: | Ред 1: | ||
{{ | {{Предмет | ||
'''Пројектовање софтвера''' је | | шифра = 13С113ПС, 13Е114ПС | ||
| семестар = 5 (СИ), 7 (РТИ) | |||
| статус = обавезни (СИ), изборни (РТИ) | |||
| страница = [https://rti.etf.bg.ac.rs/rti/ir4ps/ rti.etf.rs/rti/ir4ps] | |||
| одсек = СИ, РТИ | |||
| претходни = ОО2 | |||
| следећи = Рачунарска графика | |||
}} | |||
'''Пројектовање софтвера''' је неизбежан предмет у петом семестру за СИ, а изборни у седмом семестру за РТИ. ''Ђаво је у детаљима.'' | |||
== | == Корисне везе == | ||
* [https:// | * ''[https://staruml.io/ StarUML]'' — окружење које се користи на вежбама | ||
* [https://drive.google.com/open?id=1qZ1Z_wSa1BBmOvmgz4mRS2yTHEyaJfQK '''Скрипта са свим презентацијама комбинованим у једном документу, спремно за штампу'''] ([https://docs.google.com/document/d/1pXMugMAyTZx8ki2z4gbcA27tmVaDbIa2 изворни ''Word'' документ]) | |||
* [https://drive.google.com/open?id=1FQce1ZdoMZK1V6wOdC9w6SZliWrDTBGx ETF SI] (збирка задатака, претходне лабораторијске вежбе) | |||
* [https://app.box.com/s/0r50je333z1qyypz0h3rm0iqb9s0d64f/folder/38805409747 ETF Materijali (Box)] (белешке) | |||
* [https://studentetfbgacrs-my.sharepoint.com/:b:/g/personal/sa190595d_student_etf_bg_ac_rs/EZn3Myy8GgZKohr0hCgOXh8Btt9JVmgpK7EDHtz6V4qhUA Документ са пречицама за алат ''StarUML''] | |||
* [https://github.com/Jovan11111/DesignPatterns Пројектни узорци имплементирани у Јави и C++] | |||
== Корисне везе == | * [https://cet.rs/proizvod/gotova-resenja-design-patterns-elementi-objektno-orijentisanog-softvera/ Готова решења - Елементи објектно оријентисаног кода (Design Patterns: Elements of Reusable Object-Oriented Software) - CET] | ||
{{ | |||
| | == Настава == | ||
| | На предавањима на предмету се предају две области: UML и пројектни узорци. Њихова подела иде овако: | ||
| | * '''Први блок:''' | ||
** Предају се сви пројектни узорци, подељени између предавања и вежби, тако да је потребно пратити оба. На последња два часа вежби се обрађују задаци слични онима који долазе на колоквијуму. | |||
** За припрему првог колоквијума могу се, до неке мере, користити некадашње лабораторијске вежбе. Поред тога, за разумевање образаца у великој мери може помоћи књига ''Design Patterns, Elements of Reusable Object-Oriented Software''. | |||
* '''Други блок:''' | |||
** UML - Увод, употреба, основна синтакса. Дијаграми: Класа, Пакета (на предавањима овај део креће у првом блоку, и прелива се делом у трећи блок). | |||
** За припрему другог колоквијума могу се користити некадашње лабораторијске вежбе. При том, треба имати у виду да фокус другог колоквијума на УМЛ, и да ће фокус на пројектне узорке бити мањи у односу на лабораторијске вежбе. | |||
* '''Трећи блок:''' | |||
** На предавањима се раде архитектурални обрасци (слојевита архитектура, микросервиси, архитектура вођена догађајима...) и њихово моделовање. На вежбама се пролазе ствари за пројекат. | |||
== Лабораторијске вежбе == | |||
'''''Овај блок је писан у складу са старим пропозицијама на предмету, од школске 2024/2025 нема лабораторијских вежби''''' | |||
Исто као и на [[ОО1#Лабораторијске вежбе|ОО1]], осим што се домаћи задаци не предају, већ се на самој лабораторијској вежби добије готово решење. | |||
На првој лабораторијској вежби демонстратори пролазе референтно решење домаћег задатка, а затим над њом раде модификације које пишу у задатку. За другу лабораторијску вежбу долази градиво закључно са дијаграмима стања и пројектног узорка Стање, док за трећу лабораторијску вежбу долази градиво закључно са дијаграмима активности и пројектним узорком Заступник. | |||
Неке претходне лабораторијске вежбе могу се наћи међу драјвовима у [[#Корисне везе|одељку са корисним везама]]. Неке лабораторијске вежбе објављиване су на страници предмета, па су сада архивиране: | |||
* [https://web.archive.org/web/20230125192247im_/https://rti.etf.bg.ac.rs/rti/ir4ps/lab/lab2_2022_23_reseno.pdf Лаб 2 2022/2023. године] | |||
* [https://web.archive.org/web/20231221005013im_/https://rti.etf.bg.ac.rs/rti/ir4ps/lab/lab2_2023_24_V1_reseno.pdf Лаб 2 група 1 2023/2024. године] | |||
* [https://web.archive.org/web/20231221005129im_/https://rti.etf.bg.ac.rs/rti/ir4ps/lab/lab2_2023_24_V2_reseno.pdf Лаб 2 група 2 2023/2024. године] | |||
* [https://web.archive.org/web/20230125192053im_/https://rti.etf.bg.ac.rs/rti/ir4ps/lab/lab3_2022_23_reseno.pdf Лаб 3 2022/2023. године | |||
==Пројекат== | |||
Од школеске 2024/2025 постоји пројекат на предмету. Пројекат носи 30 поена и није обавезан. Брани се у јануарском, фебруарском или августвоском испитном року. | |||
* [https://web.archive.org/web/20251211142709/https://ps.etf.bg.ac.rs/domaci/Projektni%20zadatak%202024%20v1.1.pdf Пројекат - школска 2024/2025, 2025/2026 (Wayback machine)] | |||
== Испитни рокови == | |||
Слична прича као и за [[ОО1#Испитни рокови|ОО1]]. '''Доступни су и [[Пројектовање софтвера/Питалице|испитни примери који нису категорисани по роковима]].''' | |||
Уколико желите да додате рок, посетите '''[[Project:Направи#Moodle|страницу за прављење рока]]'''. | |||
=== Колоквијум 1 === | |||
{{#dpl: | |||
| category = Пројектовање софтвера | |||
| category = Рокови | |||
| titleregexp = Пројектовање софтвера/К1 | |||
| nottitleregexp = ^Пројектовање софтвера/К1 20[01][0-9]$ | |||
| nottitleregexp = ^Пројектовање софтвера/К1 202[0-3]$ | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | }} | ||
== | === Колоквијум 2 === | ||
{{#dpl: | |||
| category = Пројектовање софтвера | |||
| category = Рокови | |||
| titleregexp = Пројектовање софтвера/К2 | |||
| nottitleregexp = ^Пројектовање софтвера/К2 20[01][0-9]$ | |||
| nottitleregexp = ^Пројектовање софтвера/К2 202[0-3]$ | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | |||
== | === Испит === | ||
{{#dpl: | |||
| category = Пројектовање софтвера | |||
| category = Рокови | |||
| titleregexp = Пројектовање софтвера/.* \d+$ | |||
| nottitleregexp = Пројектовање софтвера/.* 201[0-9]$ | |||
| nottitleregexp = Пројектовање софтвера/.* 202[0-4]$ | |||
| nottitleregexp = Пројектовање софтвера/К\d | |||
| nottitleregexp = Пројектовање софтвера/Пробни тестови | |||
| nottitleregexp = Пројектовање софтвера/Лаб | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | |||
== | === Стари рокови (пре 2024/2025)=== | ||
=== Пробни тестови === | ==== Пробни тестови ==== | ||
Овде се налазе пробни тестови дати за вежбу пред колоквијум на Moodle платформи. | Овде се налазе пробни тестови дати за вежбу пред колоквијум на Moodle платформи. | ||
{{#dpl: | {{#dpl: | ||
| titleregexp = | | titleregexp = Пројектовање софтвера/Пробни тестови | ||
| noresultsheader = Тренутно нема решених рокова. | | noresultsheader = Тренутно нема решених рокова. | ||
| format = ,\n* [[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]],, | | format = ,\n* [[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]],, | ||
}} | }} | ||
=== Колоквијум 1 === | ==== Колоквијум 1 ==== | ||
{{#dpl: | {{#dpl: | ||
| titleregexp | | category = Пројектовање софтвера | ||
| | | category = Рокови | ||
| format | | titleregexp = ^Пројектовање софтвера/К1 20[01][0-9]$ | ||
| titleregexp = ^Пројектовање софтвера/К1 202[0-3]$ | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | }} | ||
=== Колоквијум 2 === | ==== Колоквијум 2 ==== | ||
{{#dpl: | {{#dpl: | ||
| titleregexp | | category = Пројектовање софтвера | ||
| | | category = Рокови | ||
| format | | titleregexp = ^Пројектовање софтвера/К2 20[01][0-9]$ | ||
| titleregexp = ^Пројектовање софтвера/К2 202[0-3]$ | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | }} | ||
=== Испит === | ==== Испит ==== | ||
{{#dpl: | {{#dpl: | ||
| titleregexp = | | category = Пројектовање софтвера | ||
| nottitleregexp = | | category = Рокови | ||
| nottitleregexp = | | titleregexp = Пројектовање софтвера/.* 201[0-9]$ | ||
| nottitleregexp = | | titleregexp = Пројектовање софтвера/.* 202[0-4]$ | ||
| nottitleregexp = Пројектовање софтвера/К\d | |||
| format | | nottitleregexp = Пројектовање софтвера/Пробни тестови | ||
| nottitleregexp = Пројектовање софтвера/Лаб | |||
| format = ,\n* <span class="rok,">[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦23¦-1}²]]</span>, | |||
| ordermethod = title | |||
| include = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl | |||
}} | }} | ||
== Начин оцењивања == | == Начин оцењивања == | ||
Исто као и на [[ОО1#Начин оцењивања|ОО1]]. | Исто као и на [[ОО1#Начин оцењивања|ОО1]]. Школске 2022/23. године је, због друге лабораторијске вежбе која није била прегледана до пар сати пред трећу лабораторијску вежбу, било омогућено да поправна лабораторијска вежба надокнађује другу, трећу, или и другу и трећу лабораторијску вежбу (студенти су тај избор морали да направе пре саме лабораторијске вежбе). | ||
== Потребна помоћ == | == Потребна помоћ == | ||
* {{zadaci|postavke}} | * {{zadaci|postavke}} | ||
** Од користи су такође модификације добијене на лабораторијским вежбама, како би студенти знали отприлике шта их на лабораторијским вежбама чека. | ** Од користи су такође модификације добијене на лабораторијским вежбама, како би студенти знали отприлике шта их на лабораторијским вежбама чека. | ||
Тренутна верзија на датум 22. фебруар 2026. у 16:06
Пројектовање софтвера је неизбежан предмет у петом семестру за СИ, а изборни у седмом семестру за РТИ. Ђаво је у детаљима.
Корисне везе
- StarUML — окружење које се користи на вежбама
- Скрипта са свим презентацијама комбинованим у једном документу, спремно за штампу (изворни Word документ)
- ETF SI (збирка задатака, претходне лабораторијске вежбе)
- ETF Materijali (Box) (белешке)
- Документ са пречицама за алат StarUML
- Пројектни узорци имплементирани у Јави и C++
Настава
На предавањима на предмету се предају две области: UML и пројектни узорци. Њихова подела иде овако:
- Први блок:
- Предају се сви пројектни узорци, подељени између предавања и вежби, тако да је потребно пратити оба. На последња два часа вежби се обрађују задаци слични онима који долазе на колоквијуму.
- За припрему првог колоквијума могу се, до неке мере, користити некадашње лабораторијске вежбе. Поред тога, за разумевање образаца у великој мери може помоћи књига Design Patterns, Elements of Reusable Object-Oriented Software.
- Други блок:
- UML - Увод, употреба, основна синтакса. Дијаграми: Класа, Пакета (на предавањима овај део креће у првом блоку, и прелива се делом у трећи блок).
- За припрему другог колоквијума могу се користити некадашње лабораторијске вежбе. При том, треба имати у виду да фокус другог колоквијума на УМЛ, и да ће фокус на пројектне узорке бити мањи у односу на лабораторијске вежбе.
- Трећи блок:
- На предавањима се раде архитектурални обрасци (слојевита архитектура, микросервиси, архитектура вођена догађајима...) и њихово моделовање. На вежбама се пролазе ствари за пројекат.
Лабораторијске вежбе
Овај блок је писан у складу са старим пропозицијама на предмету, од школске 2024/2025 нема лабораторијских вежби
Исто као и на ОО1, осим што се домаћи задаци не предају, већ се на самој лабораторијској вежби добије готово решење.
На првој лабораторијској вежби демонстратори пролазе референтно решење домаћег задатка, а затим над њом раде модификације које пишу у задатку. За другу лабораторијску вежбу долази градиво закључно са дијаграмима стања и пројектног узорка Стање, док за трећу лабораторијску вежбу долази градиво закључно са дијаграмима активности и пројектним узорком Заступник.
Неке претходне лабораторијске вежбе могу се наћи међу драјвовима у одељку са корисним везама. Неке лабораторијске вежбе објављиване су на страници предмета, па су сада архивиране:
- Лаб 2 2022/2023. године
- Лаб 2 група 1 2023/2024. године
- Лаб 2 група 2 2023/2024. године
- [https://web.archive.org/web/20230125192053im_/https://rti.etf.bg.ac.rs/rti/ir4ps/lab/lab3_2022_23_reseno.pdf Лаб 3 2022/2023. године
Пројекат
Од школеске 2024/2025 постоји пројекат на предмету. Пројекат носи 30 поена и није обавезан. Брани се у јануарском, фебруарском или августвоском испитном року.
Испитни рокови
Слична прича као и за ОО1. Доступни су и испитни примери који нису категорисани по роковима.
Уколико желите да додате рок, посетите страницу за прављење рока.
Колоквијум 1
Колоквијум 2
Испит
Стари рокови (пре 2024/2025)
Пробни тестови
Овде се налазе пробни тестови дати за вежбу пред колоквијум на Moodle платформи.
Колоквијум 1
Колоквијум 2
Испит
Начин оцењивања
Исто као и на ОО1. Школске 2022/23. године је, због друге лабораторијске вежбе која није била прегледана до пар сати пред трећу лабораторијску вежбу, било омогућено да поправна лабораторијска вежба надокнађује другу, трећу, или и другу и трећу лабораторијску вежбу (студенти су тај избор морали да направе пре саме лабораторијске вежбе).
Потребна помоћ
- На овом предмету фале поставке рокова. Помозите викију памћењем/преписивањем рокова и постављањем на вики.
- Од користи су такође модификације добијене на лабораторијским вежбама, како би студенти знали отприлике шта их на лабораторијским вежбама чека.