Professional Documents
Culture Documents
ЗАВРШНИ РАД
Ментор: Студент:
доцент Душан Савић Милорад Теодоровић 142/12
Београд, 2017
Садржај
Попис слика ........................................................................................................................ ii
Попис дијаграма ................................................................................................................ iii
1 Увод ................................................................................................................................. 1
2. Преглед коришћених технологија ................................................................................. 2
2.1 Јава програмски језик.............................................................................................. 2
2.2 Java 2 Platform, Standard Edition .............................................................................. 3
2.3 Андроид (оперативни систем) ................................................................................. 4
2.4 Netbeans IDE ............................................................................................................. 6
2.5 Android Studio ............................................................................................................ 7
2.6 Gradle build систем ................................................................................................... 8
2.7 Гит – систем за верзионисање кода ........................................................................ 8
2.7.1 Системи за контролу верзија ............................................................................ 8
2.7.2 Како је настао Гит .............................................................................................. 9
2.7.3 Верзионисање кода ........................................................................................... 9
3 Студијски пример .......................................................................................................... 12
3.1 Фаза прикупљања корисничких захтева ............................................................... 13
3.1.1 Вербални опис ................................................................................................. 13
3.1.2 Спецификација захтева помоћу модела случајева коришћења ................... 14
3.2 Фаза анализе .......................................................................................................... 21
3.2.1 Понашање софтверског система – Системски дијаграми секвенци ............ 22
3.2.2 Понашање софтверског система – Дефинисање уговора о системским
операцијама .............................................................................................................. 34
3.2.3 Структура софтверског система – Концептуални модел .............................. 36
3.2.4 Структура софтверског система – Релациони модел ................................... 37
3.3 Пројектовање .......................................................................................................... 46
3.3.1 Пројектовање корисничког интерфејса .......................................................... 47
3.3.2 Пројектовање апликационе логике ................................................................. 63
3.3.3 Пројектовање складишта података ................................................................ 68
3.3.4 Коначан изглед архитектуре софтверског система ....................................... 71
3.4 Имплементација ..................................................................................................... 72
3.5 Тестирање ............................................................................................................... 73
4. Закључак ................................................................................................................... 74
5. Литература ................................................................................................................ 75
i
Попис слика
Слика 1 Компајлирање и извршавање Јава кода[2] ........................................................ 2
Слика 2 Јава компајлирање .............................................................................................. 4
Слика 3 Далвик компајлирање .......................................................................................... 5
Слика 4 Формирање апк фајла ......................................................................................... 5
Слика 5 Верзионисање кода коришћењем Гит-а ........................................................... 10
Слика 6 Случајеви коришћења ....................................................................................... 14
Слика 7 Концептуални модел ......................................................................................... 36
Слика 8 Пословна логистика софтверског система ...................................................... 45
Слика 9 Тронивојска архитектура ................................................................................... 46
Слика 10 Структура корисничког интерфејса ................................................................ 47
Слика 11 Активност за логовање .................................................................................... 48
Слика 12 Приказ позоришта ............................................................................................ 51
Слика 13 Приказ репертоара .......................................................................................... 52
Слика 14 Грешка приликом приказа репертоара ........................................................... 53
Слика 15 Приказ детаља представе............................................................................... 54
Слика 16 Грешка приликом приказа детаља представе ............................................... 55
Слика 17 Активност за регистрацију ............................................................................... 56
Слика 18 Грешка приликом регистровања корисника ................................................... 57
Слика 19 Грешка приликом уноса постојећег корисничког имена ................................ 58
Слика 20 Резервација карата .......................................................................................... 59
Слика 21 Успешна резервација карата .......................................................................... 60
Слика 22 Грешка приликом резервације карата ............................................................ 61
Слика 23 Структура контролера корисничког интерфејса ............................................ 62
Слика 24 Апликациона логика ......................................................................................... 63
Слика 25 Архитектура софтверског система након пројектовања пословне логике ... 64
Слика 26 Класа ОпштаСО ............................................................................................... 65
Слика 27 Класе одговорне за извршавање СО наслеђују општу класу ....................... 66
Слика 28 Складиште података - Табела Participant ...................................................... 68
Слика 29 Складиште података -Табела Performance .................................................... 68
Слика 30 Складиште података - Табела Theater ........................................................... 68
Слика 31 Складиште података - Табела Setting ............................................................ 69
Слика 32 Складиште података - Табела User................................................................ 69
Слика 33 Складиште података - Табела UserPrivileges ................................................ 69
Слика 34 Складиште података - Табела Reservation .................................................... 70
Слика 35 Складиште података - Табела Repertoire ...................................................... 70
Слика 36 Складиште података - Табела Role ................................................................ 70
Слика 37 Архитектура целокупног система.................................................................... 71
ii
Попис дијаграма
Дијаграм 1 ДС1 Пријава корисника на систем ............................................................... 22
Дијаграм 2 ДС2 Приказ активних позоришта ................................................................. 23
Дијаграм 3 - ДС2 Приказ активних позоришта - Алтернативни сценарио 1 ................. 24
Дијаграм 4 ДС3 Приказ репертоара позоришта............................................................. 25
Дијаграм 5 ДС3 Приказ репертоара позоришта - Алтернативни сценарио 1 .............. 26
Дијаграм 6 Приказ детаља представе ............................................................................ 27
Дијаграм 7 ДС4 Приказ детаља представе - Алтернативни сценарио 1 ..................... 28
Дијаграм 8 ДС5 Регистрација корисника ........................................................................ 29
Дијаграм 9 ДС5 Регистрација корисника - Алтернативни сценарио 1 .......................... 30
Дијаграм 10 ДС5 Регистрација корисника - Алтернативни сценарио 2 ........................ 31
Дијаграм 11 ДС6 Резервација карата ............................................................................. 32
Дијаграм 12 ДС6 Резервација карата - Алтернативни сценарио 1............................... 33
iii
1 Увод
1
2. Преглед коришћених технологија
У овом поглављу ћемо обавити преглед коришћених технологија као и окружења уз
помоћ којих је пројекат реализован.
Сав изворни код се чува у фајловима са екстензијом .јава. Програми писани у Јава
језику се не компајлирају директно у машински код, већ се прво преводе у бајт-код
(са екстензијом .цласс), а потом се, за разлику од превођења у машински код у
сличним програмским језицима, бајт-код интерпретира користећи Јава Виртуелну
Машину (ЈВМ). На слици 1 је објашњен начин на који се обезбеђује платформска
независност, тако да се један бајт-код може извршавати на сваком оперативном
систему на коме је инсталирана Јава Виртуелна Машина.[3]
2
2. Платформска независност – "пиши једном, извршавај било где". Ова особина
омогућава да се програми писани у Јави могу компајлирати на једној
рачунарској платформи, а извршавати на другим. За разлику од неких других
језика, чији је утицај током времена постао безначајан, утицај Јаве постаје све
јачи. Кључни разлог за успех Јаве је њена прилагодљивост. Од првобитне
верзије, непрестано се прилагођава променама у окружењу за програмирање
и начину на који програмери пишу програме. Јава платформа је назив за
рачунарско окружење или платформу Сун Мицросyстемс-а у коме се може
извршити апликација која је развијена коришћењем Јава програмског језика и
скупа развојних алата. У овом случају платформа није специфичан хардвер
или оперативни систем. То је извршни механизам који је реализован преко
виртуелне машине и скупа стандардних библиотека које обезбеђују жељену
функционалност. Постоје три издања Јава платформе.[4]
То су:
3
2.3 Андроид (оперативни систем)
4
На овај начин, помоћу Dalvik dx команде, систем ће, не само .class fajlove, већ и .jar
фајлове, превести у јединствени classes.dex fajl, што је и објашњено на слици 4.
На самом крају се classes.dex фајл помоћу Android Asset Packaging Tool (AAPT)
пакује u .apk фајл, приказано на слици 5, што представља финални пакет који је
спреман за дистрибуцију.
5
2.4 Netbeans IDE
6
2.5 Android Studio
Базиран на JetBrains InteliJ IDEA алату, Android Studio се користи за развој Андроид
апликација почев од своје прве верзије објављене маја 2013. чиме је заменио до
тада актуелни Eclipse Android Development Tools који је до тада важио за
најстабилнију платформу за развој Андроид апликација.
Након што је преузео примат у развоју Андроид апликација, првобитно нестабилни
Android Studio, постаје једна од најбоље развијених JetBrains ИДЕ платформи.
Функционалности Android Studio-а могу се проширити инсталацијом разних додатака
па се тиме могу олакшати тестирања, верзионисање, писања апликације и слично.
Само окружење садржи јако широк спектар алата за праћење извођења апликације,
стога се могу пронаћи алати за праћење утрошка меморије уређаја, интернет проток
као и детаљни Android Device Monitor (АДМ) где је могуће пратити животне циклусе
програмских нити, као и активности и целокупног дизајна апликације.
За само тестирање Андроид апликација, Андроид Студио нуди Андроид Виртуелне
Уређаје (АВД) који може симулирати било који Андроид уређај. За комуникацију са
уређајима, Андроид Студио нуди комплетан графички интерфејс, међутим
комуникација је могућа и преко Android Debug Bridge пакета који омогућава
управљање уређајима из командне линије.
7
2.6 Gradle build систем
Системи за контролу верзија представљају алате који служе као подршка тимовима
и појединцима у праћењу развоја и одржавању пројеката. Користећи ове системе сви
подаци су сигурнији, боља је синхронизација између чланова тима, смањује се
могућност грешке и побољшава се сам процес вођења пројекта. Постоје две врсте
система за контролу верзија – централизовани (CVCS) и дистрибуирани (DVCS).
Првој врсти припадају алати као што су СВН, Перфорце и ЦВС док у другу врсту
спадају Mercurial, Bazaar, Darcs и Git. Код CVCS сви подаци о верзијама се налазе на
централизованом серверу док клијенти имају доступну само тренутну верзију на којој
раде. Ово је свакако лакше за одржавање и администрирање али у случају отказа
овог система губе се све информације о пројекту. Код DVCS клијенти поред
последње верзије преузимају и комплетну базу о свим верзијама на том
8
репозиторијуму. У случају било каквог отказа система довољно је да један од
клијената постави податке на сервер и сви проблеми су врло брзо решени.
Гит је алат који је развио Линус Торвалдс да би му олакшао вођење једног великог и
комплексног пројекта – Линукс кернела. У почетку то није био програм с данашњом
наменом, Линус је замислио да гит буде основа другим окружењима за развијање
кода. Други алати су требали развијати своје верзије на основу гита. Медутим, као с
многим другим пројектима отвореног кода, људи су га почели користити таквог какав
јесте, а он је органски растао са захтевима корисника. Резултат је програм који има
другачију терминологију у односу на друге сличне, али милиони програмера широм
света су га прихватили. Настале су бројне платформе за хостинг пројеката, као што
је Гитхаб , а већ постојећи су морали додати гит једноставно зато што су то њихови
корисници тражили (Google Code , Bitbucket , Sourceforge, па чак и Мајкрософтов
CodePlex).
Код Гита као представника DVCS приликом клонирања неког репозиторијума копира
се целокупна база о пројекту а не само последња верзија. То значи да су нам
локално расположиве све верзије фајлова – од прве до последње. Будући да се сви
подаци налазе у локалу одзив је неупоредиво бржи када су нам потребне
информације о репозиторијуму и фајловима у њему. Генерално говорећи већина
операција се одвија локално без потребе за комуникацијом са сервером. Гит има
потпуно различит принцип чувања података од свих осталих система. Сваки пут када
му се подаци проследе на чување сачува се целокупно стање система, снима се тзв.
снапшот сваког фајла, приказано на слици 5. Уколико неки фајл није промењен онда
се чува показивач на његово претходно стање. Ово у пракси значи да можемо читав
систем да преузмемо у одређеној верзији.
9
СЛИКА 5 В ЕРЗИОНИСАЊЕ КОДА КОРИШЋЕЊЕМ ГИТ-А
Праћени су сви фајлови под контролом Гит-а. Они могу бити измењени,
неизмењени, и припремљени (modified, unmodified и staged).
Непраћени у оквиру репозиторијума могу бити фајлови који нису под контролом и
над њима Гит нема никаквог утицаја. Све нове фајлове које креирамо унутар или
прекопирамо у репозиторијум имају у старту овај статус. Ове фајлове само једна
команда дели од тога да постану праћени. Имамо и могућност да конфигурацијом
подесимо одређене типове фајлова које ће сам Гит по аутоматизму да игнорише.
10
Тако можемо стећи сигурност да осетљиви фајлови, који могу садржати корисничка
имена и лозинке (пример: подешавање Виртуалне Приватне Мреже у Интегрисаном
Развојном Окружењу).
11
3 Студијски пример
2. Анализа
У фази анализе се описује пословна логика софтверског система која се
састоји од структуре и понашања система. Структура система се описује преко
концептуалног (доменског) и релационог модела, док се понашање система
описује помоћу секвенцних дијаграма и системских операција.
3. Пројектовање
Описује се тронивојска архитектура софтверског система која се састоји од:
корисничког интерфејса, апликационе логике и складишта података. У оквиру
пројектовања корисничког интефејса пројектују се екранске форме и
контролер корисничког интерфејса. Пројектовање апликационе логике
подразумева пројектовање контролера апликационе логике, пословне логике и
брокера базе података. Складиште података подразумева креиране табеле и
релације, за чување ентитета.
12
4. Имплементација
У фази имплементације врши се кодирање софтверског система у неком од
програмских језика.
5. Тестирање
Тестирање је последња фаза у којој се праве тест случајеви, тест процедуре и
тест компоненте помоћу којих се врши тестирање софтверског система.
13
3.1.2 Спецификација захтева помоћу модела случајева коришћења
5. Регистрација корисника
6. Резервација карата
14
Случај коришћења 1: Пријава корисника на систем
Alternativna scenarija
15
Случај коришћења 2: Приказ активних позоришта
Алтернативна сценарија
16
Случај коришћења 3: Приказ репертоара позоришта
Алтернативна сценарија
17
Случај коришћења 4: Приказ детаља представе
Алтернативна сценарија
18
Случај коришћења 5: Регистрација корисника
Алтернативна сценарија
4.1. Уколико систем не може да региструје корисника приказује поруку: ''Error while
registering'' (ИА)
4.2. Уколико је корисничко име већ у бази, систем приказује поруку: Username
taken, please choose other'' (ИА)
19
Случај коришћења 6: Резервација карата
Алтернативна сценарија
4.1. Уколико систем не може да изврши унос резервације, приказује поруку: ''Error
while reserving'' (ИА)
20
3.2 Фаза анализе
21
3.2.1 Понашање софтверског система – Системски дијаграми секвенци
1. Сигнал checkUserRole(User)
22
3.2.1.2 ДС2: Дијаграм секвенци случајева коришћења – Приказ активних позоришта
Алтернативна сценарија
3.1. Уколико систем не може да врати листу позоришта, приказује поруку: ''Could not
retrieve theater list'' (IA)
23
ДИЈАГРАМ 3 - ДС2 ПРИКАЗ АКТИВНИХ ПОЗОРИШТА - АЛТЕРНАТИВНИ СЦЕНАРИО 1
24
3.2.1.3 ДС3: Дијаграм секвенци случајева коришћења – Приказ репертоара позоришта
Алтернативна сценарија
25
ДИЈАГРАМ 5 ДС3 ПРИКАЗ РЕПЕРТОАРА ПОЗОРИШТА - АЛТЕРНАТИВНИ СЦЕНАРИО 1
26
3.2.1.4 ДС4: Дијаграм секвенци случајева коришћења – Приказ детаља представе
27
Алтернативна сценарија
28
3.2.1.5 ДС5:Дијаграм секвенци случајева коришћења – Регистрација корисника на
систем
29
Алтернативна сценарија
4.1. Уколико систем не може да региструје корисника приказује поруку: ''Error while
registering'' (ИА)
4.2. Уколико је корисничко име већ у бази, систем приказује поруку: Username
taken, please choose other'' (ИА)
30
ДИЈАГРАМ 10 ДС5 РЕГИСТРАЦИЈА КОРИСНИКА - АЛТЕРНАТИВНИ СЦЕНАРИО 2
1. Сигнал registerUser(User)
31
3.2.1.6 ДС16:Дијаграм секвенци случајева коришћења – Резервација карата
Алтернативна сценарија
4.1. Уколико систем не може да изврши унос резервације, приказује поруку: ''Error
while reserving'' (ИА)
32
ДИЈАГРАМ 12 ДС6 РЕЗЕРВАЦИЈА КАРАТА - АЛТЕРНАТИВНИ СЦЕНАРИО 1
1. Сигнал checkUserRole(User)
2. Сигнал registerUser(User)
3. Сигнал getTheaters(City)
4. Сигнал getRepertoire(Theater)
5. Сигнал getParticipants(Setting)
6. Сигнал makeReservation(Reservation)
33
3.2.2 Понашање софтверског система – Дефинисање уговора о системским
операцијама
Постуслови: /
Предуслови: -
Постуслови: -
Предуслови: -
Постуслови: -
34
УГОВОР УГ5: getParticipants
Предуслови: -
Постуслови: -
35
3.2.3 Структура софтверског система – Концептуални модел
Концептуални модел, који се још назива и доменски или модел објекне анализе,
садржи доменске класе и асоцијације између њих. На слици 7 дат је концептуални
модел помоћу којег је описана структура софтверског система.
36
3.2.4 Структура софтверског система – Релациони модел
37
Следи појединачни приказ табела из базе података као и њихових атрибута:
DELETE
RESTRICTED
/
38
Табела клијент – Садржи податке о регистрованим корисницима.
DELETE
CASCADES
Reservation
RESTRICTED
Reservation
39
Табела корисничких привилегија – Служи за пружање привилегија корисницима у
смислу приступа систему.
DELETE
RESTRICTED
/
40
Табела представа – Чува податке о представама на репертоару активних
позоришта.
DELETE
RESTRICTE
D
Repertoire,
Setting
41
Табела поставки – Свака поставка представља триплет Учесник – Представа –
Улога, чиме се обезбеђује уникатност улога у представи.
DELETE
RESTRICTED
/
42
Таbela Participant Просто вредносно Сложено вредносно Структурно
ограничење ограничење ограничење
Атрибути Име Тип Вредност Међузав. Међузав. INSERT /
атрибута атрибута атрибута атрибута
једне више UPDATE
табеле табела CASCADES
Id_ Integer Not null Setting
participant and > 0
RESTRICTED
name String Not null
surname String Not null /
DELETE
RESTRICTED
Setting
DELETE
RESTRICTED
Setting
43
Tabela repertoara – Сваки репертоар се садржи из одговарајуће представе и
позоришта у ком се дата представа одиграва.
DELETE
RESTRICTED
/
44
Као резултат анализе сценарија СК и прављења концептуалног модела добија се
логичка структура и понашање софтверског система:
45
3.3 Пројектовање
Фаза пројектовања описује физичку структуру и понашање софтверског система
(архитектуру софтверског система).
Архитектура софтверског систем је тронивојска и састоји се од следећих нивоа:
• Кориснички интерфејс
• Апликациона логика
• Складиште података
46
3.3.1 Пројектовање корисничког интерфејса
Korisnički interfejs predstavlja realizaciju ulaza i/ili izlaza softverskog sistema i sastoji se
od ekranske forme i kontrolera korisničkog interfejsa.
На десктоп прозорима налазе се екранске форме које прихватају податке које уноси
корисник, прихватају догађаје које уноси корисник, и позивајући клијентског
контролера те исте податке прослеђују или приказују податке пристигле од
клијентског контролера након обраде.
47
3.3.1.1 Пројектовање активности
Кориснички интерфејс је дефинисан преко скупа xмл докумената који представљају
запис елемената на активностима апликације. Сценарија коришћења тих активности
су директно повезани са сценаријима случајева коришћења.
48
2. Корисник позива систем да пронађе корисника са задатим подацима (АПСО)
Алтернативна сценарија
49
Случај коришћења 2: Приказ активних позоришта
50
СЛИКА 12 ПРИКАЗ ПОЗОРИШТА
Алтернативна сценарија
51
Случај коришћења 3: Приказ репертоара позоришта
52
Алтернативна сценарија
53
Случај коришћења 4: Приказ детаља представе
54
Алтернативна сценарија
55
Случај коришћења 5: Регистрација корисника
56
Osnovni scenario sk:
Алтернативна сценарија
4.1. Уколико систем не може да региструје корисника приказује поруку: ''Error while
registering'' (ИА)
57
4.2. Уколико је корисничко име већ у бази, систем приказује поруку: Username
taken, please choose other'' (ИА)
58
Случај коришћења 6: Резервација карата
59
Основни сценарио ск:
60
Алтернативна сценарија
Уколико систем не може да изврши унос резервације, приказује поруку: ''Error while
reserving'' (ИА)
61
3.3.1.2 Пројектовање контролера корисничког интерфејса
Контролер корисничког интерфејса се понаша као посредник између графичких
елемената корисничког интерфејса и самог софтверског система.
62
3.3.2 Пројектовање апликационе логике
Део за комуникацију подиже серверски сокет који даље ослушкује мрежу. Када
клијент успостави конекцију сервер генерише нит која де бити одговорна за
двосмерну везу са клијентом. Клијент шаље захтев за извршење неке од системских
операција, клијентска нит прихвата захтев и прослеђује га до контролера
апликационе логике. Након извршења системске операције контролер врада
резултат клијентској нити . Резултат извршења операције се затим прослеђује
клијенту.
63
3.3.2.1 Контролер апликационе логике
64
3.3.2.2 Пословна логика
Као што је већ речено, пословна логика је описана структуром коју чине доменске
класе и понашањем које се састоји из системских операција.
65
СЛИКА 27 КЛАСЕ ОДГОВОРНЕ ЗА ИЗВРШАВАЊЕ СО НАСЛЕЂУЈУ ОПШТУ КЛАСУ
66
3.3.2.3 Брокер базе података
• connect()
• disconnect()
• commitTransaction()
• rollbackTransaction()
• closeConnection()
• insert(IGenericDomainObject obj)
• select(IGenericDomainObject obj)
• selectAll(IGenericDomainObject obj)
• selectAllWithContidion(IGenericDomainObject obj)
67
3.3.3 Пројектовање складишта података
Табела Participant:
Табела Performance:
Табела Theater:
68
Табела Setting:
Табела User:
Табела UserPrivileges:
69
Табела Reservation:
Табела Repertoire:
Табела Role:
70
3.3.4 Коначан изглед архитектуре софтверског система
71
3.4 Имплементација
72
3.5 Тестирање
Нису писани тест случајеви, него је тестирање извршено путем симулирања рада
корисника система. Приликом уношења вредности (како тачних тако и погрешних)
праћен је рад система као и реакција система на грешку и обрада грешке.
73
4. Закључак
На почетку рада је, након увода и кратког осврта на Јава програмски језик, дат
преглед Јавиних платформи. Даље су у раду описане одабране технологије и њихов
значај за пројектовање Андроид апликације.
Након описаних технологија, кроз студијски пример, детаљно је описан развој
софтвера уз помоћ упрошћене Ларманове методе која се састоји из пет фаза: фаза
прикупљања захтева, анализе, пројектовања, имплементације и тертирања. Свака
од ових фаза има своју сврху и крајњи резултат, што показује слика целокупне
архитектуре софтверског система која је приказана на крају.
74
5. Литература
[1] MobileApp, https://en.wikipedia.org/wiki/Mobile_app, datum pristupa Septembar 2017.
[2] Java introduction,
http://www.znanje.org/knjige/computer/Java/ib01/Java_introduction/java_about.htm,
datum pristupa Septembar 2017.
[3] Programiranje Internet Aplikacija,
http://rti.etf.bg.ac.rs/rti/ir4pia/materijali/predavanja/PIA_Lekcija4_JSF.pdf,
datum pristupa Septembar 2017.
[4] Dr Siniša Vlajić Dušan Savić, Vojislav Stanojević, Ilija Antović, Miloš Milić,
Projektovanje softvera – napredne Java tehnologije, FON, Beograd, 2008.
[5] Android operating system, https://en.wikipedia.org/wiki/Android_(operating_system),
datum pristupa Septembar 2017.
[6] Results of Eclipse Community Survey 2012
[7] Compare Repositories – Open Hub
[8] Git (software) Jobs, Average Salary for Git Distributed Version Control System Skills
[9] Team Foundation Server Jobs, Average Salary for Microsoft Team Foundation Server
(TFS) Skills
[10] Subversion Jobs, Average Salary for Apache Subversion (SVN) Skills
[11] Mercurial Jobs, Average Salary for Mercurial Skills
[12] VSS/SourceSafe Jobs, Average Salary for Microsoft Visual SourceSafe (VSS) Skills
75