Professional Documents
Culture Documents
Семинарски рад
Тема: Развој софтверског система за праћење рада
нутриционистичке ординације у Јава окружењу
Ментор: Студент:
Београд, 2022.
Садржај
1. Прикупљање корисничких захтева..................................................................................................4
1.1 Вербални опис..........................................................................................................................4
1.2 Спецификација захтева помоћу модела случајева коришћења......................................4
СК1 Случај коришћења – Пријављивање нутриционисте..............................................................5
СК2 Случај коришћења – Унос новог пацијента............................................................................6
СК3 Случај коришћења – Претрага пацијента................................................................................7
СК4 Случај коришћења - Брисање пацијента..................................................................................8
СК5 Случај коришћења – Унос нове нутригенетичке анализе......................................................9
СК6 Случај коришћења – Унос новог плана исхране (сложен СК).............................................10
СК7 Случај коришћења – Измена података плана исхране (сложен СК)....................................11
СК8 Случај коришћења – Претрага плана исхране.......................................................................12
2. Анализа.............................................................................................................................................13
2.1 Понашање софтверског система – системски дијаграм секвенци......................................13
ДС1: Дијаграм секвенци случаја коришћења – Пријављивање нутриционисте.........................14
ДС2: Дијаграм секвенци случаја коришћења – Унос новог пацијента........................................16
ДС3: Дијаграм секвенци случаја коришћења – Претрага пацијента............................................18
ДС4: Дијаграм секвенци случаја коришћења – Брисање пацијента............................................21
ДС5: Дијаграм секвенци случаја коришћења – Унос нутригенетичке анализе..........................25
ДС6: Дијаграм секвенци случаја коришћења – Унос новог плана исхране................................27
ДС7: Дијаграм секвенци случаја коришћења – Измена података плана исхране.......................29
ДС8: Дијаграм секвенци случаја коришћења – Претрага плана исхране....................................35
Резултирајуће системске операције................................................................................................38
2.2 Дефинисање уговора о системским операцијама...................................................................38
Уговор UG1: Login..........................................................................................................................38
Уговор UG2: kreirajPacijenta...........................................................................................................38
Уговор UG3: ucitajListuPacijenta.....................................................................................................39
Уговор UG4: nadjiPacijente..............................................................................................................39
Уговор UG5: ucitajPacijenta.............................................................................................................39
Уговор UG6: obrisiPacijenta............................................................................................................40
Уговор UG7: ucitajListuNutrigenetickihAnaliza..............................................................................40
Уговор UG8: kreirajNutrigenetickuAnalizu......................................................................................40
Уговор UG9: ucitajListuNamirnica..................................................................................................40
2
Уговор UG10: kreirajPlanIshrane.....................................................................................................41
Уговор UG11: ucitajListuPlanovaIshrane.........................................................................................41
Уговор UG12: nadjiPlanoveIshrane..................................................................................................41
Уговор UG13: ucitajPlanIshrane.......................................................................................................41
Уговор UG14: izmeniPlanIshrane.....................................................................................................42
2.3 Структура софтверског система – Концептуални (доменски) модел.................................43
2.4 Структура софтверског система – Релациони модел............................................................44
3. Пројектовање.......................................................................................................................................49
3.1 Пројектовање корисничког интерфејса..................................................................................50
3.1.1 Пројектовање екранских форми........................................................................................50
СК1: Случај коришћења- Пријављивање нутриционисте............................................................51
СК2: Случај коришћења- Унос новог пацијента...........................................................................53
СК3: Претрага пацијента.................................................................................................................56
СК4: Брисање пацијента..................................................................................................................59
СК5: Унос нове нутригенетичке анализе.......................................................................................63
СК6: Унос новог плана исхране.....................................................................................................65
СК7: Измена података плана исхране............................................................................................67
СК8: Претрага плана исхране.........................................................................................................72
3.1.2 Пројектовање контролера корисничког интерфејса......................................................75
3.2 Пројектовање апликационе логике..........................................................................................75
3.2.1 Конторлер апликационе логике.........................................................................................75
3.2.2 Пословна логика...................................................................................................................76
3.2.3 Пројектовање складишта података...................................................................................92
4. Фаза имплементације..........................................................................................................................95
5. Тестирање.............................................................................................................................................97
6. Закључак...............................................................................................................................................97
Коришћена литература............................................................................................................................97
3
1. Прикупљање корисничких захтева
1. Пријављивање нутриционисте
2. Унос новог пацијента
3. Претрага пацијента
4. Брисање пацијента
5. Унос нутригенетичке анализе
6. Унос плана исхране (сложен СК)
7. Измена података плана исхране (сложен СК)
8. Претрага плана исхране
4
Слика1: Модел случајева коришћења
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
Алтернативна сценарија
5
СК2 Случај коришћења – Унос новог пацијента
Назив СК
Унос новог пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси податке о пацијенту. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке о пацијенту. (АНСО)
3. Нутрициониста позива систем да креира новог пацијента.(АПСО)
4. Систем креира новог пацијента. (СО)
5. Систем приказује поруку „Систем је успешно креирао новог пацијента“. (ИА)
Алтернативна сценарија
5.1 Уколико систем не може да креира новог пацијента, он приказује нутриционисти поруку
„Систем не може да креира новог пацијента”.(ИА)
6
СК3 Случај коришћења – Претрага пацијента
Назив СК
Претрага пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси вредност по којој претражује пацијенте. (АПУСО)
2. Нутрициониста позива систем да нађе пацијенте по задатој вредности. (АПСО)
3. Систем тражи пацијенте по задатој вредности. (СО)
4. Систем приказује нутриционисти податке о пацијентима и поруку: „Систем је нашао
пацијенте по задатој вредности.”. (ИА)
5. Нутрициониста бира пацијента којег жели да му систем прикаже. (АПУСО)
6. Нутрициониста позива систем да учита податке о изабраном пацијенту. (АПСО)
7. Систем учитава податке о пацијенту. (СО)
8. Систем приказује нутриционисти податке о пацијенту и поруку:
“Систем је учитао пацијента“. (ИА)
Алтернативна сценарија
4.1 Уколико систем не може да нађе ниједног пацијента он приказује нутриционисти поруку:
„Систем не може да нађе пацијенте по задатој вредности”. Прекида се извршење сценарија. (ИА)
8.1 Уколико систем не може да учита податке о изабраном пацијенту он приказује нутриционисти
поруку: „Систем не може да учита податке о изабраном пацијенту“. (ИА)
7
СК4 Случај коришћења - Брисање пацијента
Назив СК
Брисање пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
Алтернативна сценарија
5.1 Уколико систем не може да нађе пацијенте, он приказује нутриционисти поруку: “Систем не
може да пронађе пацијенте по задатој вредности”. Прекида се извршење сценарија. (ИА)
9.1 Уколико систем не може да учита податке о изабраном пацијенту, он приказује нутриционисти
поруку: “Систем не може да учита пацијента.”. Прекида се извршење сценарија. (ИА)
12.1 Уколико систем не може да обрише пацијента он приказује нутриционисти поруку: „Систем
не може да обрише пацијента “. (ИА)
8
СК5 Случај коришћења – Унос нове нутригенетичке анализе
Назив СК
Унос нове нутригенетичке анализе
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси податке о нутригенетичкој анализи. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке о нутригенетичкој анализи.
(АНСО)
3. Нутрициониста позива систем да креира нову нутригенетичку анализу.(АПСО)
4. Систем креира нову нутригенетичку анализу. (СО)
5. Систем приказује поруку „Систем је успешно креирао нову нутригенетичку анализу“. (ИА)
Алтернативна сценарија
5.1 Уколико систем не може да креира нутригенетичку анализу он приказује нутриционисти
поруку: „Систем не може да креира нутригенетичку анализу”. (ИА)
9
СК6 Случај коришћења – Унос новог плана исхране (сложен СК)
Назив СК
Унос новог плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
Алтернативна сценарија
5.1 Уколико систем не може да креира план исхране, он приказује нутриционисти поруку: „Систем
не може да креира план исхране“. (ИА)
10
СК7 Случај коришћења – Измена података плана исхране (сложен СК)
Назив СК
Измена података плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси вредност по којој претражује планове исхране. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке за претрагу планова исхране.
(АНСО)
3. Нутрициониста позива систем да нађе планове исхране по задатој вредности. (АПСО)
4. Систем тражи планове исхране по задатој вредности. (СО)
5. Систем приказује нутриционисти планове исхране и поруку: „Систем је нашао планове
исхране по задатој вредности.“. (ИА)
6. Нутрициониста бира план исхране који жели да измени. (АПУСО)
7. Нутрициониста позива систем да нађе изабрани план исхране. (АПСО)
8. Систем учитава изабрани план исхране. (СО)
9. Систем приказује нутриционисти податке о изабраном плану исхране и поруку: „Систем је
учитао план исхране“. (ИА)
10. Нутрициониста мења податке о плану исхране. (АПУСО)
11. Нутрициониста контролише да ли је коректно унео податке о плану исхране. (АНСО)
12. Нутрициониста позива систем да запамти податке о плану исхране. (АПСО)
13. Систем памти податке о плану исхране. (СО)
14. Систем приказује нутриционисти поруку: „Систем је изменио план исхране.“. (ИА)
Алтернативна сценарија
5.1 Уколико систем не може да пронађе планове исхране он приказује нутриционисти поруку:
“Систем не може да пронађе планове исхране по задатој вредности”. Прекида се извршење
сценарија. (ИА)
9.1 Уколико систем не може да учита податке о плану исхране, приказује следећу поруку
нутриционисти: „Систем не може да учита план исхране“. Прекида се извршење сценарија. (ИА)
14.1 Уколико систем не може да измени податке о плану исхране он приказује нутриционисти
поруку: „Систем не може да измени план исхране“. (ИА)
11
СК8 Случај коришћења – Претрага плана исхране
Назив СК
Претрага плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
Алтернативна сценарија
4.1 Уколико систем не може да нађе ниједан план исхране он приказује нутриционисти поруку:
„Систем не може да нађе планове исхране по задатој вредности”. Прекида се извршење сценарија.
(ИА)
8.1 Уколико систем не може да учита податке о изабраном плану исхране он приказује
нутриционисти поруку: „Систем не може да учита податке о изабраном плану исхране“. (ИА)
12
2. Анализа
У фази анализе описујемо логичку структуру и понашање софтвера. Заправо, резултат фазе
анализе јесте пословна логика софтверског система. Понашање софтверског система се описује
помоћу дијаграма секвенци и системских операција, док се структура система описује помоћу
концептуалног и релационог модела.
Понашање софтверског система приказујемо путем системских дијаграма секвенци, где ћемо за
сваки случај коришћења, уочен у фази прикупљања захтева, дати дијаграм секвенци. Системски
дијаграм секвенци треба да прикаже интеракцију између актора и система, путем активности у
одређеном редоследу. За сваки сценарио се праве дијаграми и то само АПСО и ИА акције.
13
ДС1: Дијаграм секвенци случаја коришћења – Пријављивање нутриционисте
Основни сценарио СК
Алтернативна сценарија:
2.1 Уколико систем није пронашао нутриционисту, приказује нутриционисти поруку “Систем не
може да нађе нутриционисту на основу унетих вредности”. (ИА)
14
Дијаграм 2:ДС Пријављивање доктора (алтернативни сценарио 1)
Са наведених секвенцних дијаграма уочава се једна системска операција коју треба пројектовати:
1. signal login(Nutricionista)
15
ДС2: Дијаграм секвенци случаја коришћења – Унос новог пацијента
Основни сценарио СК
Алтернативна сценарија СК
2.1. Уколико систем не може да креира новог пацијента он приказује нутриционисти поруку:
„Систем не може да креира новог пацијента.”. (ИА)
16
Дијаграм 4:ДС Унос новог пацијента(алтернативни сценарио 1)
Са наведених секвенцних дијаграма уочава се једна системска операција коју треба пројектовати:
1. signal kreirajPacijenta(Pacijent)
17
ДС3: Дијаграм секвенци случаја коришћења – Претрага пацијента
Основни сценарио СК
18
Алтернативна сценарија
19
6.1 Уколико систем не може да учита пацијенте он приказује нутриционисти поруку: “Систем не
може да учита пацијента.”.(ИА)
Са наведених секвенцних дијаграма уочавају се три системске операције које треба пројектовати:
1. signal ucitajListuPacijenata(List<Pacijent>)
2. signal nadjiPacijente(String zadataVrednost, List<Pacijent>)
3. signal ucitajPacijenta(Pacijent)
20
ДС4: Дијаграм секвенци случаја коришћења – Брисање пацијента
21
Алтернативна сценарија СК
4.1 Уколико систем не може да нађе пацијенте, он приказује нутриционисти поруку: „Систем не
може да нађе пацијенте по задатој вредности”. Прекида се извршење сценарија. (ИА)
22
6.1 Уколико систем не може да прикаже податке о пацијенту, приказује следећу поруку
нутриционисти: „Систем не може да учита пацијента.”. Прекида се извршење сценарија.
(ИА)
23
8.1 Уколико систем не може да обрише пацијента, приказује следећу поруку
нутриционисти:„Систем не може да обрише изабраног пацијента.”. (ИА)
1. signal ucitajListuPacijenata(List<Pacijent>)
2. signal nadjiPacijente(ZadataVrednost, List<Pacijent>)
3. signal ucitajPacijenta(Pacijent)
4. signal obrisiPacijenta(Pacijent)
24
ДС5: Дијаграм секвенци случаја коришћења – Унос нутригенетичке анализе
Основни сценарио СК
25
Алтернативна сценарија СК
Са наведених секвенцних дијаграма уочавају се две системске операције које треба пројектовати:
1. signal ucitajListuPacijenata(List<Pacijent>)
2. signal kreirajNutrigenetickuAnalizu(NutrigenetickaAnaliza)
26
ДС6: Дијаграм секвенци случаја коришћења – Унос новог плана исхране
Основни сценарио СК
27
Алтернативна сценарија СК
8.1 Уколико систем не може да креира план исхране, он приказује нутриционисти поруку:
„Систем не може да креира план исхране”(ИА)
Са наведених секвенцних дијаграма уочава се једна системска операција коју треба пројектовати:
1. signal kreirajPlanIshrane(PlanIshrane)
28
ДС7: Дијаграм секвенци случаја коришћења – Измена података плана исхране
29
Дијаграм 16:ДС Измена плана исхране(основни сценарио)
30
Алтернативна сценарија
8.1 Уколико систем не може да нађе ниједан план исхране он приказује нутриционисти
поруку: „Систем не може да нађе планове исхране по задатој вредности”. Прекида се
извршење сценариа. (ИА)
31
10.1 Уколико систем не може да учита податке о изабраном плану исхране он приказује
нутриционисти поруку: „Систем не може да учита податке о изабраном плану исхране“.
Прекида се извршење сценариа. (ИА)
32
12.1 Уколико систем не може да запамти податке о плану исхране он приказује `
нутриционисти поруку „Систем не може да запамти план исхране”. (ИА)
33
Са наведених случајева коришћења уочава се седам системских операција:
1. signal vratiListuPacijenata(List <Pacijent>);
2. signal vratiListuNutrigenetickihAnaliza(List <NutrigenetickaAnaliza>);
3. signal vratiListuNamirnica(List <Namirnice>);
4. signal vratiListuPlanovaIshrane(List <PlanIshrane>);
5. signal nadjiPlanoveIshrane(String zadataVrednost, List<PlanIshrane>);
6. signal ucitajPlanIshrane(PlanIshrane);
7. signal izmeniPlanIshrane(PlanIshrane)
34
ДС8: Дијаграм секвенци случаја коришћења – Претрага плана исхране
Основни сценарио СК
35
Алтернативна сценарија
4.1 Уколико систем не може да нађе планове исхране по задатој вредности, он приказује
нутриционисти поруку: „Систем не може да нађе планове исхране по задатој вредности.” Прекида
се извршење сценарија. (ИА)
36
6.1 Уколико систем не може да учита план исхране он приказује нутриционисти поруку: „Систем
не може да учита изабрани план исхране“
Са наведених секвенцних дијаграма уочавају се три системске операције које треба пројектовати:
37
Резултирајуће системске операције
Као резултат анализе сценарија добијамо укупно 14 системских операција које треба пројектовати:
1. signal login(Nutricionista)
2. signal kreirajPacijenta(Pacijent)
3. signal ucitajListuPacijenata(List<Pacijent>)
4. signal nadjiPacijente(String zadataVrednost, List<Pacijent>)
5. signal ucitajPacijenta(Pacijent)
6. signal obrisiPacijenta(Pacijent)
7. signal ucitajListuNutrigenetickihAnaliza(List<NutrigenetickaAnaliza>)
8. signal kreirajNutrigenetickuAnalizu(NutrigenetickaAnaliza)
9. signal ucitajListuNamirnica(List<Namirnica>)
10. signal kreirajPlanIshrane(PlanIshrane)
11. signal ucitajListuPlanovaIshrane(List<PlanIshrane>)
12. signal nadjiPlanoveIshrane(String zadataVrednost, List<PlanIshrane>)
13. signal ucitajPlanIshrane(PlanIshrane)
14. signal izmeniPlanIshrane(PlanIshrane)
операција
веза са СК
предуслов
постуслов
Предуслови: /
Постуслови: /
38
Операција: kreirajPacijenta(Pacijent):signal;
Операција: ucitajListuPacijenata(List<Pacijent>):signal;
Предуслови: /
Постуслови: /
Предуслови: /
Постуслови: /
Операција: ucitajPacijenta(Pacijent):signal;
Предуслови: /
Постуслови: /
39
Уговор UG6: obrisiPacijenta
Операција: obrisiPacijenta(Pacijent):signal;
Операција: ucitajListuNutrigenetickihAnaliza(List<NutrigenetickaAnaliza>):signal;
Предуслови: /
Постуслови: /
Операција: kreirajNutrigenetickuAnalizu(NutrigenetickaAnaliza):signal;
Операција: ucitajListuNamirnica(List<Namirnica>):signal;
Предуслови: /
Постуслови: /
40
Уговор UG10: kreirajPlanIshrane
Операција: kreirajPlanIshrane(PlanIshrane):signal;
Операција: ucitajListuPlanovaIshrane(List<PlanIshrane>):signal;
Предуслови: /
Постуслови: /
Предуслови: /
Постуслови: /
Операција: ucitajPlanIshrane(PlanIshrane):signal;
Предуслови: /
Постуслови: /
41
Уговор UG14: izmeniPlanIshrane
Операција: izmeniPlanIshrane(PlanIshrane):signal;
42
2.3 Структура софтверског система – Концептуални (доменски) модел
43
2.4 Структура софтверског система – Релациони модел
На основу концептуалног модела, прави се релациони модел, а на основу њега се пројектује
релациона база података.
44
Табела Pacijent Просто вредносно Сложено вредносно ограничење Структурно
ограничење ограничење
Атрибути Име Тип Вредност Међузависност Међузависност INSERT
атрибута атрибута атрибута једне атрибута више RESTRICTED
табеле табела Nutricionista
pacijentID int not null UPDATE
and >0 RESTRICTED
nutricionistaID int not null Nutricionista
and >0 CASCADES
ime String not null NutrigenetickaAnaliza,
prezime String not null PlanIshrane,
datumRodjenj Date not null PacijentNamirnica
a DELETE
RESTRICTED
NutrigenetickaAnaliza,
PlanIshrane,
PacijentNamirnica
Табела 2:Пацијент - вредносна и структурна ограничења
45
ограничење ограничење
Атрибути Име Тип Вредност Међузависност Међузависност INSERT
атрибут атрибута атрибута једне атрибута више RESTRICTED
а табеле табела Nutricionista,
planIshraneID int not null Pacijent,
and >0 NutrigenetickaAnaliza
nutricionistaID int not null UPDATE
and >0 RESTRICTED
pacijentID String not null Nutricionista,
nutrigenetickaAnalizaID String not null Pacijent,
tipPlanaIshrane String not null NutrigenetickaAnaliza
intolerancije String CASCADES
StavkePlanaIshrane
DELETE
CASCADES
StavkePlanaIshrane
Табела 4:План исхране - вредносна и структурна ограничења
46
ограничење ограничење
Атрибут Име Тип Вредност Међузависнос Међузависност INSERT /
и атрибута атрибута т атрибута атрибута више UPDATE
једне табеле табела CASCADES
namirniceID int not null StavkePlanaIshrane
and >0 DELETE
naziv String not null RESTRICTED
kategorija String not null StavkePlanaIshrane
porcija int not null
and >0
kalorijskaVrednost int not null
and >0
preporukeZaPripremu String not null
47
Као резултат анализе сценарија СК и прављења концептуалног модела добија се логичка
структура и понашање софтверског система:
48
3. Пројектовање
49
3.1 Пројектовање корисничког интерфејса
1. Екранске форме
2. Контролера корисничког интерфејса
50
СК1: Случај коришћења- Пријављивање нутриционисте
Назив СК
Пријављивање нутриционисте
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
51
5. Систем приказује поруку: „Успешно сте се пријавили на систем“. (ИА)
Алтернативна сценарија
52
СК2: Случај коришћења- Унос новог пацијента
Назив СК
Унос новог пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси податке о пацијенту. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке о пацијенту. (АНСО)
53
Слика 11:Креирање новог пацијента од стране нутриционисте
Алтернативна сценарија
5.1 Уколико систем не може да креира новог пацијента, он приказује нутриционисти поруку
„Систем не може да креира новог пацијента”.(ИА)
54
Слика 13: Систем приказује поруку о неуспешности креирања пацијента
55
СК3: Претрага пацијента
Назив СК
Претрага пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси вредност по којој претражује пацијенте. (АПУСО)
2. Нутрициониста позива систем да нађе пацијенте по задатој вредности. (АПСО)
Опис акције: При самом отварању форме за претрагу пацијената, иницијално се позива
системска операција ucitajListuPacijenata(), а учитани пацијенти се приказују у табели.
Нутрициониста у поље претраге уноси критеријум по коме претражује пацијенте, при чему се
позива системска операција nadjiPacijente(ZadataVrednost, List<Pacijent>)
56
Слика 15: Систем тражи пацијенте по задатој вредности
Опис акције: Доктор кликом на дугме „Detalji pacijenta“ позива системску операцију
ucitajPacijenta(Pacijent)
57
Слика 17:Систем приказује податке пацијента
Алтернативна сценарија
4.1 Уколико систем не може да нађе ниједног пацијента он приказује нутриционисти поруку:
„Систем не може да нађе пацијенте по задатој вредности”. Прекида се извршење сценарија. (ИА)
8.1 Уколико систем не може да учита податке о изабраном пацијенту он приказује нутриционисти
поруку: „Систем не може да учита податке о изабраном пацијенту“. (ИА)
58
СК4: Брисање пацијента
Назив СК
Брисање пацијента
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
Опис акције: При самом отварању форме за претрагу пацијената, иницијално се позива
системска операција ucitajListuPacijenata(), а учитани пацијенти се приказују у табели.
Нутрициониста у поље претраге уноси критеријум по коме претражује пацијенте, при чему се
позива системска операција nadjiPacijente(ZadataVrednost, List<Pacijent>)
59
Слика 21:Систем учитава пацијенте по задатој вредности
60
Слика 24:Систем приказује податке изабраног пацијента
Опис акције: Нутрициониста кликом на дугме „Obrisi pacijenta“ позива системску операцију
obrisiPacijenta(Pacijent)
Алтернативна сценарија
5.1 Уколико систем не може да нађе пацијенте, он приказује нутриционисти поруку: “Систем не
може да пронађе пацијенте по задатој вредности”. Прекида се извршење сценарија. (ИА)
9.1 Уколико систем не може да учита податке о изабраном пацијенту, он приказује нутриционисти
поруку: “Систем не може да учита пацијента.”. Прекида се извршење сценарија. (ИА)
61
Слика 27:Порука о неуспешном учитавању пацијента
12.1 Уколико систем не може да обрише пацијента он приказује нутриционисти поруку: „Систем
не може да обрише пацијента “. (ИА)
62
СК5: Унос нове нутригенетичке анализе
Назив СК
Унос нове нутригенетичке анализе
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси податке о нутригенетичкој анализи. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке о нутригенетичкој анализи.
(АНСО)
63
Слика 30: Нутрициониста уноси податке о новој нутригенетичкој анализи
Алтернативна сценарија
5.1 Уколико систем не може да креира нутригенетичку анализу он приказује нутриционисти
поруку: „Систем не може да креира нутригенетичку анализу”. (ИА)
64
СК6: Унос новог плана исхране
Назив СК
Унос новог плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
65
Слика 34: Нутрициониста уноси податке о новом плану исхране
Алтернативна сценарија
5.1 Уколико систем не може да креира план исхране, он приказује нутриционисти поруку: „Систем
не може да креира план исхране“. (ИА)
66
СК7: Измена података плана исхране
Назив СК
Измена података плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
1. Нутрициониста уноси вредност по којој претражује планове исхране. (АПУСО)
2. Нутрициониста контролише да ли је коректно унео податке за претрагу планова исхране.
(АНСО)
67
Слика 38: Нутрициониста уноси податке за претрагу планова исхране
Слика 39: Систем обавештава нутриционисту да је пронашао планове исхране по задатој вредности
68
6. Нутрициониста бира план исхране који жели да измени. (АПУСО)
7. Нутрициониста позива систем да нађе изабрани план исхране. (АПСО)
Опис акције: Нутрициониста кликом на дугме „Detalji plana ishrane“ позива системску
операцију ucitajPlanIshrane(PlanIshrane)
Слика 41: Систем приказује нутриционисти поруку о успешно учитаном плану исхране
69
Слика 43: Измена података о плану исхране
Алтернативна сценарија
5.1 Уколико систем не може да пронађе планове исхране он приказује нутриционисти поруку:
“Систем не може да пронађе планове исхране по задатој вредности”. Прекида се извршење
сценарија. (ИА)
9.1 Уколико систем не може да учита податке о плану исхране, приказује следећу поруку
нутриционисти: „Систем не може да учита план исхране“. Прекида се извршење сценарија. (ИА)
70
Слика 45: Систем обавештава нутриционисту о неуспешности учитавања плана исхране
14.1 Уколико систем не може да измени податке о плану исхране он приказује нутриционисти
поруку: „Систем не може да измени план исхране“. (ИА)
71
СК8: Претрага плана исхране
Назив СК
Претрага плана исхране
Актори СК
Нутрициониста
Учесници СК
Нутрициониста и систем (програм)
Основни сценарио СК
72
Слика 48: Систем обавештава нутриционисту да је пронашао планове исхране по задатој вредности
Слика 50: Систем обавештава нутриционисту да је успешно учитао изабрани план исхране
73
Слика 51: Систем приказује нутриционисти изабрани план исхране
Алтернативна сценарија
4.1 Уколико систем не може да нађе ниједан план исхране он приказује нутриционисти поруку:
„Систем не може да нађе планове исхране по задатој вредности”. Прекида се извршење сценарија.
(ИА)
8.1 Уколико систем не може да учита податке о изабраном плану исхране он приказује
нутриционисти поруку: „Систем не може да учита податке о изабраном плану исхране“. (ИА)
Слика 52: Систем приказује нутриционисти поруку о неуспешном учитавању плана исхране
74
3.1.2 Пројектовање контролера корисничког интерфејса
Апликациона логика описује структуру и понашање система. Апликациони сервер се састоји из:
Део за комуникацију подиже серверски сокет који ослушкује мрежу. Када клијентски сокет
успостави конекцију са серверским сокетом, тада сервер генерише нит која ће успоставити
двосмерну комуникацију са клијентом.
75
3.2.2 Пословна логика
За сваку системску операцију треба направити концептуална решења која су директно повезана са
логиком проблема.
Предуслови: /
Постуслови: /
76
Уговор UG2: kreirajPacijenta
Операција: kreirajPacijenta(Pacijent):signal;
Операција: ucitajListuPacijenata(List<Pacijent>):signal;
Предуслови: /
Постуслови: /
77
Слика 55: Дијаграм секвенци за уговор ucitajListuPacijenata
Предуслови: /
Постуслови: /
78
Ова операција позива операцију која враћа све пацијенте (getAllPacijent) и затим на клијентској
страни врши филтрирање листе пацијената по критеријуму.
Операција: ucitajPacijenta(Pacijent):signal;
Предуслови: /
Постуслови: /
Операција: obrisiPacijenta(Pacijent):signal;
79
Слика 58: Дијаграм секвенци за уговор obrisiPacijenta
Операција: ucitajListuNutrigenetickihAnaliza(List<NutrigenetickaAnaliza>):signal;
Предуслови: /
Постуслови: /
80
Уговор UG8: kreirajNutrigenetickuAnalizu
Операција: kreirajNutrigenetickuAnalizu(NutrigenetickaAnaliza):signal;
Операција: ucitajListuNamirnica(List<Namirnica>):signal;
Предуслови: /
Постуслови: /
81
Слика 61: Дијаграм секвенци за уговор vratiListuNamirnica
Операција: kreirajPlanIshrane(PlanIshrane):signal;
82
Уговор UG11: ucitajListuPlanovaIshrane
Операција: ucitajListuPlanovaIshrane(List<PlanIshrane>):signal;
Предуслови: /
Постуслови: /
Предуслови: /
Постуслови: /
83
Уговор UG13: ucitajPlanIshrane
Операција: ucitajPlanIshrane(PlanIshrane):signal;
Предуслови: /
Постуслови: /
Ова операција позива операцију која враћа све термине (getAllTermin) и затим на клијентској
страни врши филтрирање листе термина и проналази одабрани термин.
84
Слика 66: Дијаграм секвенци за уговор izmeniPlanIshrane
85
3.2.2.2 Пројектовање структуре софтверског система (доменске класе)
86
Идентификоване су следеће класе:
Нутрициониста
Пацијент
87
Нутригенетичка анализа
План исхране
88
Ставка плана исхране
Намирница
89
Operacije_radna_memorija – интерфејс који садржи све операције које се шаљу од клијента
серверу
90
ServerskiOdgovor – служи за слање објекта од сервера ка клијенту. Садржи један Object
атрибут који представља резултат извршене операције, један Exception атрибут који
представља изузетак који се можда десио.
91
3.2.3 Пројектовање складишта података
На основу релационог модела и ограничења пројектоване су табеле базе података које користи
наш софтверски систем:
92
За комуникацију са базом података правимо генеричку класу ApstraktnaSO која има методе за
валидацију и извршавања трансакције, које су апстрактне и које ће имплементирати свака класа
системске операције која ће се извршавати, као и методе за потврђивање и поништавање
трансакције. Она се служи класом DBBroker која је имплементирана помоћу Singleton патерна и
која параметре за повезивање на базу података чита из текстуалног фајла који садржи све потребне
параметре и помоћу ње наша генеричка класа добија конекцију на базу података.
Слика 84: Дијаграм класа добијен након пројектовања доменских класа и ApstraktnaSO класе
93
Слика 85: Коначна архитектура софтверског система
94
4. Фаза имплементације
Софтверски систем је развијан у програмском језику “Java”, развојно окружење NetBeans. Као
систем за управљање базом података коришћен je MySQL.
Пројекат КlijentskiProgram садржи форме на којима запослени ради и сокет који служи за
комуникацију са сервером.
95
Слика 88: Клијентски део
Пројекат Zajednicki садржи заједничке класе које користе клијент и сервер пројекти. То су
доменске класе, класе KlijentskiZahtev и ServerskiOdgovor и интерфејс Operacije_radna_memorija и
енум StatusOdgovora.
96
5. Тестирање
У фази тестирања, тестиран је сваки од имплементираних случајева коришћења. Приликом
тестирања сваког случаја коришћења, поред унетих правилних података, уношени су и
неправилни подаци да би се утврдио резултат извршења. Након фазе тестирања, софтвер је
спреман за коришћење од стране крајњег корисника.
6. Закључак
За развој софтверског система за Нутриционистичку ординацију, коришћена је поједностављена
Ларманова метода за развој софтвера. Тренутно развијено софтверско решење јесте применљиво,
али такође оставља пуно простора, да се коришћењем савремених технологија, побољшају и
отклоне потенцијални недостаци, као и простора да се надограде нове функционалности које би
задовољиле потребе корисника, пруживши му већу употребну вредност и доживљај.
Коришћена литература
”ПРОЈЕКТОВАЊЕ СОФТВЕРА СКРИПТА- радни материјал, вер. 1.3”, др Синиша Влајић,
Београд 2020
97