Информациони системи 1/К1 2020

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

Први колоквијум 2020. се одржао у првој колоквијумској недељи. Поставка задатка није доступна са странице предмета. Назив система је био "ПРОГРАМЕРСКА КОМПАНИЈА".

Поставка

Задаци

  1. За Систем чији је опис дат у наставку саставити Модел објеката и односа у виду Прегледа објеката и односа и Прегледа ентитета и својстава.
  2. За Систем чији је опис дат у наставку извршити допуну до анотиране функционалне декомпозиције 2. врсте. дате непотпуне функционалне декомпозиције функционалности PlaniranjeProjekta.

Систем

Компанија уговара пројекте израде софтвера по наруџбини клијента. У компанији су запослени програмери и менаџери. У систему се води евиденција о сваком кораку рада (захтевима, додељеним пословима, развијеном коду). За сваки пројекат неког клијента, евидентирају се сви кориснички захтеви као и менаџер који је надлежан за њега. Пре него што пројекат отпочне, он мора бити испланиран (а након планирања статус пројекта постаје I). Планирање пројекта се састоји у томе да се за сваки кориснички захтев дефинише посао, као и колико ће израда тог посла трајати и колико програмера ће бити ангажовано на том послу. Након тога се одређују програмери и додељује им се ангажман на појединим пословима. Одабир програмера се обавља тако што се посао додељује оним програмерима који су у том тренутку слободни. Уколико нема довољно слободних програмера, планирање пројекта се привремено обуставља (статус пројекта постаје О). Приликом наставка планирања пројекта, обавља се само додела ангажмана програмера и то само за оне корисничке захтеве односно послове за које то раније није урађено. Имплементација пројеката може да отпочне тек након што се пројекат испланира. Током имплементације, целокупан код који програмери развију се такође евидентира у систему и то тако да је за сваки део кода дефинисано које корисничке захтеве имплементира.

Табеле у релационој шеми базе податак: KLIJENT, ZAPOSLEN, MENADŽER, PROGRAMER, ZAHTEV, PROJEKAT, POSAO, ANGAŽMAN, KOD, IMPLEMENTIRA

Декомпозиција

ObradaPrometa (=>I, <=O, <>D)
    ...
    PlaniranjeProjekta (=>I.PP, <=O.PP, <>D)
        UnosPodataka
        (=>I.PP, <Projekat)
        ()
        ProveraStatusaProjekta
        (                                                                     )
        (                                                                     )
        OčitavanjeKorisničkihZahteva
        (                                                                     )
        (                                                                     )
        EvidencijaPosla
        (                                                                     )
        (                                                                     )
        OčitavanjePoslova
        (                                                                     )
        (                                                                     )
        AngazmanProgramera
        (                                                                     )
        (                                                                     )
            OdabirProgramera
            (                                                             )
            (                                                             )
            EvidencijaAngazmanaProgramera
            (                                                             )
            (                                                             )
        EvidencijaStatusaPlaniranja
        (                                                                     )
        (                                                                     )
        PorukaStatusPlaniranja
        (<=O.PP,                                                              )
        ()

Решење

Модел

Модел објеката и односа.

Табеле

Табела Поља
КЛИЈЕНТ #ИДКли
ЗАПОСЛЕН #ИДЗап
МЕНАЏЕР
ПРОГРАМЕР
ПРОЈЕКАТ #ИДПро, Статус
ЗАХТЕВ +РедБр, Трајање, БрПрограмера
ПОСАО #ИДПос
АНГАЖМАН #ИДАнг
КОД #ИДКод
ИМПЛЕМЕНТИРА

Декомпозиција

ObradaPrometa (=>I, <=O, <>D)
    ...
  1 PlaniranjeProjekta (=>I.PP, <=O.PP, <>D)
      1 UnosPodataka
        (=>I.PP, <Projekat)
        ()
      2 ProveraStatusaProjekta
        (>Projekat, <Status                                                   )
        (S:PROJEKAT                                                           )
     ?3 OčitavanjeKorisničkihZahteva  /Status
        (>Projekat, <Zahtevi{}                                                )
        (S:ZAHTEV                                                             )
    ?*4 EvidencijaPosla  /Status /Zahtev in Zahtevi{}
        (>Zahtev                                                              )
        (I:POSAO                                                              )
      5 OčitavanjePoslova
        (>Projekat, <Poslovi{}                                                )
        (S:POSAO                                                              )
     *6 AngazmanProgramera  /Posao in Poslovi{}
        (>Posao, <Ima                                                         )
        (S:PROGRAMER, SI:ANGAŽMAN                                             )
          1 OdabirProgramera
            (>Posao, <Programeri{}, <Ima                                      )
            (S:PROGRAMER, S:ANGAŽMAN                                          )
         ?2 EvidencijaAngazmanaProgramera  /Ima
            (>Programeri{}, >Posao                                            )
            (I:ANGAŽMAN                                                       )
      7 EvidencijaStatusaPlaniranja
        (>Projekat, >Ima                                                      )
        (U:PROJEKAT                                                           )
      8 PorukaStatusPlaniranja
        (<=O.PP, >Ima, >Projekat                                              )
        ()