ПСИ/Јун 2019

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Јунски испит 2019. године одржан је 18. јуна. Трајао је 180 минута, укупно је носио 60 бодова (теоријски део 16, практични 44). Штампана литература није била дозвољена, а радни оквири који су се користили на практичном делу били су CodeIgniter и Laravel. Текст испита, као и фајлови за имплементацију и скрипт базе доступни су са странице предмета.

1. задатак

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

Поставка

  1. Направити мапу дијалога за дати дијалог претраге садржаја са неког сајта.
  2. Описати користећи језик Gherkin неке сценарије претраге из наведеног дијалога.

Решење

2. задатак

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

Поставка

Информациони систем неке школе има 4 категорије људских актера који интерагују са системом кроз графички кориснички интерфејс и следеће случајеве употребе:

Случајеви употребе
Случај коришћења Категорија
Ажурирање листе предавача просечан
Ажурирање листе предмета просечан
Ажурирање плана ангажовања комплексан
Креирање нове школске године једноставан
Ажурирање одржане наставе просечан
Рачунање варијабиле просечан
Креирање распореда часова комплексан
  1. Одредити UUCP.
  2. Ако је TCP=0.89, a ECF=1.22, док је PHM=28, одредити UCP i Effort.

Решење

3. задатак

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

Поставка

Приказати дијаграм секвенце коришћења unit of work у варијанти када позивалац региструје промењени објекат. Кратко објаснити дијаграм.

Решење

4. задатак

Поставка

Дата је спецификација информационог система за винске куће и љубитеље вина. У систему постоје три типа корисника: нерегистровани корисници, регистроване винске куће (винарије) и особе које су љубитељи вина. За винарије се у систему чувају назив, град, земља порекла, порески идентификациони број (ПИБ, деветоцифрени цео број), адреса епоште, која је јединствено корисничко име, и лозинка. За особе које су љубитељи вина у систему треба чувати корисничко име (односно адресу е-поште), лозинку, име, презиме, земљу, град, адресу и јединствени матични број грађана (13-цифрени број, од којих прве две цифре представљају цифре дана рођења, следеће две цифре месеца рођења, а наредне три цифре последње три цифре из године рођења).

Винарије могу уносити у систем своја вина која производе. Свако вино има назив (који не мора бити јединствен), тип (бело, црвено, розе, пенушаво), тачно једну сорту грожђа (од које се прави), годину бербе, број произведеих флаша и цену у РСД (по флаши). Сорте грожђа се чувају у шифрарнику сорти у бази. Тип вина се не чува засебно у бази. Такође, винарије могу да учествују на неком догађају тако што се пријаве за учешће на истом. Постоје 2 типа догађаја: сајмови и туристичке манифестације. Догађаји не морају имати јединствене називе. Сајам има место одржавања, датум одржавања и време од када до када је отворен. За учешће на сваком сајму, винарија мора уплатити котизацију (цену учешћа). Манифестације имају свој назив, место одржавања, датум почетка и датум краја (обично трају неколико дана) и адресу изложбеног простора. Учешће на манифестацији је бесплатно за винарије (котизација = 0 РСД). Винарија када попуни пријаву за сајам или туристичку манифестацију, мора одабрати и са којим својим винима ће учествовати на догађају за који се пријављује. Уз пријаву учешћа, винарија мора пријавити најмање 3 своја вина.

Особе које су љубитељи вина могу након што се улогују на систем да врше претраживање вина по називу, по типу и/или по земљи порекла. Треба омогућити особама да претраживање врше само по једном или по више критеријуму истовремено. Када добије листу добијених резултата претраге, особа може да одабере одређено вино и види основне детаље о њему. Особа може на тој страни да види просечну оцену одабраног вина и коментаре које су писале друге особе. Такође, он може на посебној веб страни да унесе своју оцену (од 1 до 5) и опционо дода свој коментар. Поред сваког коментаре треба приказати име особе која је оставила коментар, земљу одакле је та особа, оцену коју је особа дала, као и датум и време остављања коментара. Средњу оцену вина исписати изнад свих коментара. Корисник може само једном оценити вино и дати коментар, а за сваки следећи покушај треба му то онемогућити, исписивањем одговарајуће поруке или простом забраном такве могућности (и на нивоу базе и система). Вина која се особи свиђају могу бити додата у његову листу омиљених вина, одабиром дугмета „Додај у моја омиљена“.

Љубитељ вина може на засебној веб страни на основу адресе е-поште или на основу имена и презимена, да пронађе друге особе љубитеље, кориснике система. Након попуњене и извршене форме за претраживање корисника, поред сваке особе која се налази у добијеној табели резултата претраге, постоји дугме „Додај пријатеља“, којим особа почиње да прати ту одабрану особу и може погледати његов/њен профил са свим оценама и коментарима вина, за које је тај пријатељ дао оцену или коментар.

  1. Реализовати дијаграм случајева коришћења према описаној спецификацији система. Очекивани резултат зад. 4а): нацртати реализован дијаграм на приложеном папиру или у алату StarUML.
  2. На нивоу релационе базе података, дате у SQL skriptajun.sql, утврдити да ли је база и да ли су подаци у бази у складу са горе описаном спецификацијом. Урадити све измене, како би база података одговарала овим корисничким захтевима. Модификовану базу података попунити подацима, неопходним за тестирање тачке ц). Очекивани резултат зад. 4б): скрипт модификоване базе података skriptajunGGGGBBBB.sql
  3. У алату NetBeans IDE, реализовати MVC (Model-View-Controller) апликацију коришћењем програмског језика PHP. Имплементацију је могуће радити коришћењем објектно-оријентисаног PHP кода или коришћењем CodeIgniter или Laravel оквира. Потребно је имплементирати искључиво део система који се односи на претраживање вина од стране особа љубитеља вина и додавање оцене и коментара одабраном вину, након успешне претраге и одласка на веб страну тог одабраног вина. У овој тачки се подразумева да особа већ постоји у систему. Обухватити све сценарије и за успешна и за неуспешна претраживања. Очекивани резултат зад. 4в): пројекат PHP имплементације описаног дела апликације (уколико се ради у радном оквиру, прекопирати такође читав пројекат)
  4. Нацртати дијаграм овог веб софтверског система (WAE) који приказује серверске компоненте (M,C) и клијентске компоненте (V), као и све потребне HTML форме описане спецификације за оба типа корисника система. Очекивани резултат зад. 4г): нацртати реализован дијаграм на приложеном папиру или у алату StarUML.

Решење

  • CodeIgniter пројекат и SQL скрипта
    • За покретање потребно је следеће:
      1. Покренути SQL скрипту која ће напрарвити базу и попунити је подацима
      2. У app/Config/Database.php изменити креденцијале за базу са is1 / tubic на користника који постоји и његову лозинку
      3. Имати Composer инсталиран
      4. Покренути composer install како би се инсталирали потребни пакети за пројекат
      5. Покренути php spark serve
      6. Посетити http://127.0.0.1:8080