ПСИ — разлика између измена
м (Dodatne informacije) |
м (Proširene informacije o nastavi i projektu) |
||
Ред 13: | Ред 13: | ||
== Настава == | == Настава == | ||
На предавањима се раде следеће области: | |||
* '''Први колоквијум:''' Модели процеса, RUP, агилне методологије, инжењерство захтева | |||
* '''Испит:''' Објектно-оријентисано пројектовање, пројектовање веб апликација, микросервиси, тестирање софтвера, процена напора | |||
Вежбе прате предавања до првог колоквијума, а после настављају да се баве програмским језиком PHP (радни оквири ''CodeIgniter'' или ''Laravel''). Како долазе фазе израде пројекта, тако се одржавају и вежбе из тих фаза (израда ССУ и прототипа, формална инспекција, моделовање веб апликација и тестирање). | |||
На првом колоквијуму (на папиру) од градива долази градиво рађено и на предавањима на вежбама (вежбе прате предавања), на другом колоквијуму (на рачунару) само са вежби, а на испиту (теорија на папиру, практични део на рачунару) долази заједно градиво другог колоквијума и са предавања другог и трећег блока. Док се на вежбама ради PHP, на лабораторијским вежбама обрађује се Python (радни оквир ''Django'') и у три поменута радна оквира могуће је радити други колоквијум и испит. | |||
== Пројекат == | == Пројекат == | ||
Пројекат се ради у групама од 2 до 4 члана, и циљ пројекта јесте да се студенти упознају са радом у тиму на неком сложенијем софтверу. Ради се из неколико фаза: | Пројекат се ради у групама од 2 до 4 члана, и циљ пројекта јесте да се студенти упознају са радом у тиму на неком сложенијем софтверу. Ради се из неколико фаза: | ||
# Смишљање теме | # Смишљање теме | ||
#* У овој фази је циљ да смислите нацрт пројекта, који садржи барем 3 категорије корисника и довољан број функционалности (примери се могу наћи на страници предмета) | |||
#* Уколико се планира рад са неким другим технологијама које нису обрађене на предмету (али са којима се такође не ради на другим предметима) то треба јавити предметним наставницима | |||
# Израда документа са спецификацијом случајева употребе и прототипа апликације | # Израда документа са спецификацијом случајева употребе и прототипа апликације | ||
#* Први део ове фазе састоји се од тога да се у пројекту дефинише барем 12 (3 по члану тима) спецификација случајева употребе (ССУ) за које се примери могу наћи на страници предмета | |||
#* Други део састоји се од тога да се за направљене ССУ праве прототипи коришћењем неких алата за прављење прототипа (нпр. ''Pencil'', ''Figma'') или HTML | |||
#** Препоручује се рад у HTML како би се прототип касније могао искоритити приликом имплементације | |||
#* Могућа је такође расподела тако да један члан прави цео прототип, а остали пишу ССУ документе | |||
# Формална инспекција пројеката других тимова | # Формална инспекција пројеката других тимова | ||
#* Први део ове фазе састоји се од тога да радите формалну инспекцију пројекта другог тима на следећи начин: | |||
#*# Други тим вама пошаље пројекат а ви пошаљете пројекат неком другом тиму (насумично изабрано од стране асистената) | |||
#*# Одржите састанак на коме вођа тима подели улоге члановима свог тима, а доступне улоге су: | |||
#*#* Модератор — главна особа за ову фазу | |||
#*#* Записничар — води записник на коначном састанку тима | |||
#*#* Инспектори — чланови тима који прегледају прототип и ССУ документе другом тиму | |||
#*# Након поделе улога, инспектори прегледају и попуњавају логове инспектора | |||
#*# Одржава се коначни састанак тима на ком записничар записује закључке са састанка | |||
#*# После састанка, записничар и модератор састављају извештај о дефектима | |||
#*# Извештај о дефектима се шаље другом тиму, а сви документи у овој фази предметним асистентима | |||
# Моделовање базе података | # Моделовање базе података | ||
#* Циљ ове фазе је моделовати базу која ће се користити у фази имплементације коришћењем алата ''ERwin Data Modeler'', ''Toad Data Modeler'' или ''MySQL Workbench'' | |||
#* Поред модела базе, у овој фази је такође потребно саставити документ са спецификацијом базе података чији се пример може пронаћи на страници предмета | |||
# Имплементација веб апликације | # Имплементација веб апликације | ||
#* Главна фаза пројекта, у којој се прави да апликација ради то што је спецификовано у ССУ и нацрту пројекта | |||
#* Неопходно је демонстрирати коришћење ''XMLHttpRequest''/''Fetch API'' (на вежбама названи ''AJAX'') | |||
#* Унутар сваког фајла са кодом неопходно је написати ауторе, док је изнад сваке класе и методе контролера и модела потребно додати документационе коментаре шта они раде | |||
#* Вођа тима мора написати документ са коришћеним алатима, где су укратко набројани сви алати коришћени у свим фазама и описи њиховог коришћења | |||
#* На крају фазе је потребно предати и довољно попуњен модел базе података у виду SQL скрипте | |||
# Моделовање веб апликације | # Моделовање веб апликације | ||
#* Моделовање имплементиране апликације у алату ''StarUML'', на сличан начин као на [[Пројектовање софтвера|Пројектовању софтвера]] | |||
#* Потребно је искористити релације између клијентских страница као што је показано на вежбама, али у упутству може да се помиње нека застарела ''WAE-UML'' екстензија коју није могуће инсталирати на новом ''StarUML'' и која се не мора користити | |||
# Тестирање веб апликације | # Тестирање веб апликације | ||
Пројекат се генерално ради у | #* Потребно је спровести јединично тестирање контролера и модела, као и интеграционо тестирање коришћењем ''Selenium'' | ||
#* Није потребно прављење никаквог тест плана | |||
Пројекат се генерално ради у програмским језицима обрађиваним на вежбама и лабораторијским вежбама, али могуће је изабрати неку другу технологију која досад није била обрађивана на факултету. Обавезна је употреба неког алата за верзионисање софтвера, и резултати сваке фазе се шаљу на репозиторијум кода. | |||
== Лабораторијске вежбе == | == Лабораторијске вежбе == |
Верзија на датум 1. јул 2022. у 00:58
Принципи софтверског инжењерства је обавезни предмет у шестом семестру.
Корисне везе
- ETF SI (рок из јуна 2020. године, белешке)
Настава
На предавањима се раде следеће области:
- Први колоквијум: Модели процеса, RUP, агилне методологије, инжењерство захтева
- Испит: Објектно-оријентисано пројектовање, пројектовање веб апликација, микросервиси, тестирање софтвера, процена напора
Вежбе прате предавања до првог колоквијума, а после настављају да се баве програмским језиком PHP (радни оквири CodeIgniter или Laravel). Како долазе фазе израде пројекта, тако се одржавају и вежбе из тих фаза (израда ССУ и прототипа, формална инспекција, моделовање веб апликација и тестирање).
На првом колоквијуму (на папиру) од градива долази градиво рађено и на предавањима на вежбама (вежбе прате предавања), на другом колоквијуму (на рачунару) само са вежби, а на испиту (теорија на папиру, практични део на рачунару) долази заједно градиво другог колоквијума и са предавања другог и трећег блока. Док се на вежбама ради PHP, на лабораторијским вежбама обрађује се Python (радни оквир Django) и у три поменута радна оквира могуће је радити други колоквијум и испит.
Пројекат
Пројекат се ради у групама од 2 до 4 члана, и циљ пројекта јесте да се студенти упознају са радом у тиму на неком сложенијем софтверу. Ради се из неколико фаза:
- Смишљање теме
- У овој фази је циљ да смислите нацрт пројекта, који садржи барем 3 категорије корисника и довољан број функционалности (примери се могу наћи на страници предмета)
- Уколико се планира рад са неким другим технологијама које нису обрађене на предмету (али са којима се такође не ради на другим предметима) то треба јавити предметним наставницима
- Израда документа са спецификацијом случајева употребе и прототипа апликације
- Први део ове фазе састоји се од тога да се у пројекту дефинише барем 12 (3 по члану тима) спецификација случајева употребе (ССУ) за које се примери могу наћи на страници предмета
- Други део састоји се од тога да се за направљене ССУ праве прототипи коришћењем неких алата за прављење прототипа (нпр. Pencil, Figma) или HTML
- Препоручује се рад у HTML како би се прототип касније могао искоритити приликом имплементације
- Могућа је такође расподела тако да један члан прави цео прототип, а остали пишу ССУ документе
- Формална инспекција пројеката других тимова
- Први део ове фазе састоји се од тога да радите формалну инспекцију пројекта другог тима на следећи начин:
- Други тим вама пошаље пројекат а ви пошаљете пројекат неком другом тиму (насумично изабрано од стране асистената)
- Одржите састанак на коме вођа тима подели улоге члановима свог тима, а доступне улоге су:
- Модератор — главна особа за ову фазу
- Записничар — води записник на коначном састанку тима
- Инспектори — чланови тима који прегледају прототип и ССУ документе другом тиму
- Након поделе улога, инспектори прегледају и попуњавају логове инспектора
- Одржава се коначни састанак тима на ком записничар записује закључке са састанка
- После састанка, записничар и модератор састављају извештај о дефектима
- Извештај о дефектима се шаље другом тиму, а сви документи у овој фази предметним асистентима
- Први део ове фазе састоји се од тога да радите формалну инспекцију пројекта другог тима на следећи начин:
- Моделовање базе података
- Циљ ове фазе је моделовати базу која ће се користити у фази имплементације коришћењем алата ERwin Data Modeler, Toad Data Modeler или MySQL Workbench
- Поред модела базе, у овој фази је такође потребно саставити документ са спецификацијом базе података чији се пример може пронаћи на страници предмета
- Имплементација веб апликације
- Главна фаза пројекта, у којој се прави да апликација ради то што је спецификовано у ССУ и нацрту пројекта
- Неопходно је демонстрирати коришћење XMLHttpRequest/Fetch API (на вежбама названи AJAX)
- Унутар сваког фајла са кодом неопходно је написати ауторе, док је изнад сваке класе и методе контролера и модела потребно додати документационе коментаре шта они раде
- Вођа тима мора написати документ са коришћеним алатима, где су укратко набројани сви алати коришћени у свим фазама и описи њиховог коришћења
- На крају фазе је потребно предати и довољно попуњен модел базе података у виду SQL скрипте
- Моделовање веб апликације
- Моделовање имплементиране апликације у алату StarUML, на сличан начин као на Пројектовању софтвера
- Потребно је искористити релације између клијентских страница као што је показано на вежбама, али у упутству може да се помиње нека застарела WAE-UML екстензија коју није могуће инсталирати на новом StarUML и која се не мора користити
- Тестирање веб апликације
- Потребно је спровести јединично тестирање контролера и модела, као и интеграционо тестирање коришћењем Selenium
- Није потребно прављење никаквог тест плана
Пројекат се генерално ради у програмским језицима обрађиваним на вежбама и лабораторијским вежбама, али могуће је изабрати неку другу технологију која досад није била обрађивана на факултету. Обавезна је употреба неког алата за верзионисање софтвера, и резултати сваке фазе се шаљу на репозиторијум кода.
Лабораторијске вежбе
- Овом одељку фале информације. Помозите SI Wiki тако што ћете додати потребне информације.
Лабораторијске вежбе су показног карактера. Постоји четири лабораторијске вежбе и на њима се обрађују:
- Алати за верзионисање попут Git и Subversion
- Језик PHP са MVC узорцима
- PHP радни оквири
- Повезивање веб апликације са ORM
Испитни рокови
Испитни рокови нису доступни са странице предмета, али јун 2020. се може наћи на драјву из одељка са корисним везама.
Начин оцењивања
- — бодови са првог и другог колоквијума, први колоквијум се може надокнадити у прва два испитна рока док се други колоквијум може надокнадити бодовима са испита (0-20 сваки)
- — бодови са тимског пројекта
- — бодови са испита
- Коначни бодови:
- Услов: и
Потребна помоћ
- На овом предмету фале поставке рокова. Помозите викију памћењем/преписивањем рокова и постављањем на вики.
- На овом предмету постоје старији рокови лошег квалитета. Помозите викију преписивањем тих рокова на вики.
- Јун 2020. године са Вуковог драјва.