Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
KAUNO TECHNOLOGIJOS UNIVERSITETAS
PROGRAMŲ INŽINERIJOS KATEDRA
INOVATYVIŲ VALDYMO SĄSAJŲ PANAUDOJAMUMO TYRIMAS
MAGISTRINIO PROJEKTO DOKUMENTACIJA.
Darbo Vadovas:
Doc. Dr. T. Blažauskas
Darbo autorius:
IFM-3/2 gr. stud.
R. Sturonas
KAUNAS, 2015
TurinysLENTELIŲ SĄRAŠAS........................................................................................................................5
PAVEIKSLĖLIŲ TURINYS...............................................................................................................6
1. Projekto Paraiška...........................................................................................................................7
1.1. Taikymo sritis........................................................................................................................8
1.2. Problemos sprendimas pasaulyje...........................................................................................8
1.3. Situacijos Lietuvoje įvertinimas..........................................................................................11
1.4. Produkto apibūdinimas........................................................................................................12
1.5. Projekto įgyvendinimo planai ir kokybės vertinimas..........................................................14
1.6. Įgyvendinimas......................................................................................................................14
1.7. Projekto vykdytojai..............................................................................................................15
1.8. Skyriaus išvados..................................................................................................................15
2. Projektavimo metodologijos ir technologijų analizė..................................................................16
2.1. Programinės įrangos projektavimo metodai........................................................................16
2.1. Temos tikslingumas ir aktualumas......................................................................................18
2.2. Technologijų analize............................................................................................................19
2.2.1. Egzistuojantys technologiniai sprendimai...........................................................................20
2.3. Sistemų sąsajų vertinimo metodai.......................................................................................24
2.4. Analizės dalies rezultatai.....................................................................................................27
3. Projekto planas............................................................................................................................29
3.1. Ganto diagrama....................................................................................................................30
4. Reikalavimų specifikavimas.......................................................................................................31
4.1. Projekto kūrimo pagrindas...................................................................................................31
4.2. Užsakovai, pirkėjai ir kiti sistema suinteresuoti asmenys...................................................31
4.3. Projekto apribojimai............................................................................................................32
4.4. Sistemos kūrimo terminai....................................................................................................33
R.Sturonas
2
4.5. Funkciniai reikalavimai.......................................................................................................35
4.6. Produkto veiklos sfera.........................................................................................................36
4.7. Funkciniai reikalavimai ir reikalavimai duomenims...........................................................40
4.8. Nefunkciniai reikalavimai...................................................................................................43
4.9. Projekto išeiga.....................................................................................................................46
4.10. Naujos problemos................................................................................................................46
4.11. Sistemos pateikimo žingsniai (etapai).................................................................................47
4.12. Galimos sistemos kūrimo rizikos.........................................................................................48
5. Architektūros specifikacija.........................................................................................................49
5.1. Apžvalga..............................................................................................................................49
5.2. Sistemos statinis vaizdas......................................................................................................50
5.3. Sistemos dinaminis vaizdas.................................................................................................50
5.4. Sistemos elementų aprašas..................................................................................................55
6. Detalios architektūros specifikacija............................................................................................57
6.1. Sistemos architektūra...........................................................................................................58
6.1.1. Paketų aprašas......................................................................................................................58
6.2. Klasių detalizacija................................................................................................................61
7. Testavimo medžiaga...................................................................................................................72
7.1. Testavimo planas.................................................................................................................72
7.2. Testavimo planas.................................................................................................................73
7.2.1. Testuojama programinė įranga............................................................................................74
7.2.2. Testavimo procedūra...........................................................................................................77
7.2.3. Testavimo resursų paskirstymas..........................................................................................80
7.2.4. Testavimo rezultatų kaupimas.............................................................................................81
7.3. Testavimo rezultatai ir išvados............................................................................................81
8. Vartotojo dokumentacija.............................................................................................................82
8.1. Vartotojo dokumentacija ir apmokymas..............................................................................82
8.2. Veikimo zona.......................................................................................................................83R.Sturonas
3
8.3. Vartotojo vadovas................................................................................................................83
8.3.1. Sąsajos realizacija................................................................................................................83
8.3.2. Žaidimo realizacija..............................................................................................................86
8.4. Sistemos diegimo instrukcijos ir papildomi reikalavimai naudojimui................................87
8.5. Galimos problemos ir jų sprendimai....................................................................................88
9. Pakeitimų sąrašas........................................................................................................................89
10. Kokybės vertinimo ataskaita...................................................................................................90
10.1. Kokybės užtikrinimas..........................................................................................................90
LITERATŪRA...................................................................................................................................92
TERMINAI IR SANTRUMPŲ SĄRAŠAS.......................................................................................94
PRIEDAI............................................................................................................................................95
AUTORINĖ LICENCINĖ SUTARTIS..........................................................................................95
R.Sturonas
4
LENTELIŲ TURINYS1. Lentelė. Statistikos departamento duomenys........................................................................11
2. Lentelė. Analizuotų įrenginių sąsajų palyginimas ...............................................................27
3. Lentelė. Sistemos naudotojai................................................................................................32
4. Lentelė. Naudotojų atsakomybės..........................................................................................32
5. Lentelė. Sistemos kūrimo terminai......................................................................................33
6. Lentelė. Sistemos kūrimo biudžetas.....................................................................................34
7. Lentelė. Veiklos įvykių sąrašas............................................................................................35
8. Lentelė. Funkciniai reikalavimai..........................................................................................40
9. Lentelė. Reikalavimai sistemos išvaizdai.............................................................................43
10. Lentelė. Reikalavimai panaudojamumui..............................................................................44
11. Lentelė. Reikalavimai vykdymo charakteristikoms.............................................................44
12. Lentelė. Reikalavimai veikimo sąlygoms............................................................................45
13. Lentelė. Sistemos pateikimo žingsniai.................................................................................47
14. Lentelė. Vystymo etapai.......................................................................................................47
15. Lentelė. Galimos sistemos kūrimo rizikos...........................................................................48
16. Lentelė. Atsitiktinumų (rizikos) valdymo planas.................................................................48
17. Lentelė. Apdorojami gestų duomenys..................................................................................56
18. Lentelė. Klasės metodų aprašas............................................................................................61
19. Lentelė. Terminų žodynas....................................................................................................73
20. Lentelė. Specifikacijų nuorodos...........................................................................................73
21. Lentelė. Testavimo tvarkaraštis............................................................................................77
22. Lentelė. Virtualios klaviatūros mygtuko būsenos...............................................................86
23. Lentelė. Apdorojami žaidimo objektai.................................................................................86
24. Lentelė. Projekto pakeitimų sąrašas.....................................................................................89
25. Lentelė. Kokybės vertinimo kriterijai...................................................................................91
R.Sturonas
5
PAVEIKSLĖLIŲ TURINYS1. Pav. Funkcinės dekompozicijos projektavimo idėja.…….....................................................16
2. Pav. Gestais pagrįstos vartotojų sąsajos veikimas.................................................................19
3. Pav. Leap Motion veikimo zona............................................................................................20
4. Pav. Oculus Rift veikimo zona..............................................................................................21
5. Pav. Oculus Rift veikimo ašys..............................................................................................22
6. Pav. Vaizdo vėlavimo apskaičiavimas..................................................................................22
7. Pav. EEG skaitytuvų veikimas..............................................................................................23
8. Pav. EEG triukšmo pašalinimas............................................................................................24
9. Pav. Sąsajų kokybių veiksniai. QUIM modelis....................................................................25
10. Pav. Projekto darbų grafikas.................................................................................................29
11. Pav Ganto diagrama..............................................................................................................30
12. Pav. Konteksto diagrama......................................................................................................35
13. Pav. Programinės įrangos panaudojimo atvejai....................................................................36
14. Pav. Sąsajos nustatymai (Sekų diagrama).............................................................................50
15. Pav. Gestų atpažinimas...............................................................................................................51
16. Pav. Duomenų apdorojimas.........................................................................................................51
17. Pav. Funkcijų vykdymas........................................................................................................52
18. Pav. Rezultatų atvaizdavimas ...............................................................................................52
19. Pav. Sistemos būsenų kaitos diagrama..................................................................................53
20. Pav. Vartotojo veiklos procesas.............................................................................................54
21. Pav. Išdėstymo modelis.........................................................................................................54
22. Pav. Sistemos komponentų diagrama....................................................................................58
23. Pav. Klasių diagrama.............................................................................................................61
24. Pav. Rezultatų langas.............................................................................................................81
25. Pav. Aktyvi sensoriaus lietimo zona......................................................................................83
26. Pav.Virtualiklaviatūra............................................................................................................85
27. Pav. Diegimo etapai...............................................................................................................87
28. Pav. McCall kokybės faktoriai…….......................................................................................90
R.Sturonas
6
1. PROJEKTO PARAIŠKADokumento paskirtis
Dokumentas skirtas projekto reikalavimų suderinimui tarp projekto užsakovo, projekto
vadovo ir projekto vykdytojų. Kartu dokumentas yra Kauno technologijos universiteto Informatikos
fakulteto Programų inžinerijos katedros modulio “Reikalavimų specifikavimas” ataskaita. Taip pat
dokumentas gali būti naudingas susipažinimui su naujausiomis programų sistemų sąsajomis.
Santrauka
Kompiuterio sąsajos valdymas tampa kompleksinis įvairių įrenginių bei programų derinys.
Kompiuterio valdymas tradiciniais įrenginiais, klaviatūra ar pelyte, nėra natūralus žmogaus
veiksimas ir varžo judesių laisvę. Šie įrenginiai turi apribotą funkcionalumą, todėl šiuo metu yra
tobulinama judesiais paremta valdymo sąsaja. Visiškas tradicinių sąsajų pakeitimas judesių sąsaja
galimas tik ištobulinus valdymo judesių atpažinimą.
Šio projekto tikslas yra sukurti judesiais pagrįstą, vartotojui patogią valdymo sąsaja. Šis
projektas leis susipažinti su inovatyviais valdymo sąsajų sprendimais, palyginti tradicines ir naujas
kuriamas valdymo sąsaja. Naujų sąsajų kūrimas yra aktuali naujųjų technologijų problema. Jos
sprendimas leistų vartotojui praplėsti kompiuterio valdymo funkcijas panaudojant žmogaus
judesius ir gestus. Projekto finansavimas tampa investicija į įnovatyvių sprendimų pritaikymą šių
dienų technologiniams sprendimams.
Projektas buvo pasiūlytas Kauno technologijų universiteto programų inžinerijos katedros
vedėjo Doc. Dr. Tomo Blažausko iniciatyva. Išanalizavus rinką bei moklinę literatūrą, buvo
diskutuojama apie galimą sistemos realizaciją, buvo apibrėžti sistemos reikalavimai, projektą
realizuosiantis asmuo, programų inžinerijos katedros studentas Robertas Sturonas.
Projekto realizacijai naudojama KTU inventorius (judesių atpažinimo sensoriniai įrenginiai).
Atsižvelgus į tarpinių magistrinio darbo atlikimo terminus buvo sudarytas projekto dalių pateikimo
tvarkaraštis.
R.Sturonas
7
1.1. Taikymo sritis
Projekto tikslas ir adresatas
Projekto tikslas ištirti programinės įrangos valdymą judesiais, jos specifiką bei iškylančias
problemas. Šio projekto metu bus realizuojama judesių atpažinimo programinė įranga, išryškinamos
judesiais valdomos sąsajos galimybės bei sąsajos trūkumai. Vėlesniuose etapuose analizuojama
sistemos rezultatai bei tobulinama šių sąsajų realizacija. Kuriama sąsaja skirta paprastam vartotojui,
tačiau stengtasi ją pritaikyti ir kūno valdymo sutrikimų turintiems žmonėms. Pasinaudojus šia
sąsaja, neįgaliems žmonėms, sunkiai valdantiems pelę ar klaviatūrą, gali būti suteikta galimybė
palengvinti kompiuterio funkcijų valdymą.
Informacija apie užsakovo organizaciją
Užsakovas yra Kauno technologijos universiteto informatikos fakulteto programų
inžinerijos katedra. Sukurtas produktas lieka autoriaus intelektualia nuosavybe. Užsakovas gauna
teisę neribotą laika naudotis sukurtu produktu. Užsakovas neturi teisės platinti produkto kopijos
(perparduoti).
Produktas nėra orientuotas į potencialų pirkėją, tačiau investicijos į produktą yra priimtinos
bei skatinamos. Pirminiuose produkto realizacijos etapuose produktas bus laisvai platinamas. Šio
produkto įsigijimu bei naudojimu galėtų būti suinteresuotos pramogų teikimo ir multimedijos
paslaugų kompanijos bei neįgaliųjų organizacijos.
1.2. Problemos sprendimas pasaulyje
Leap Motion
Kol kas pigiausias ir efektyviausias, judesių atpažinimu paremtas, sprendimas yra Leap
Motion. „Airspace“ programinė įranga leidžia naudoti jau esamas rankos judesiais ore valdomas
programų sąsajas. Beje, kai kurios iš jų mokamos.
Vos sukurtas Leap Motion įrenginys, iškarto buvo pritaikytas dar neseniai pasirodžiusiai
Windows 8 operacinei sistemai. Jis tapo dideliu konkurentu iki tol egzistavusiam judesių
atpažinimo produktui Kinect. Šie du įrenginiai ne tik konkuruoja bet ir papildo vienas kitą, skatina
šių sprendimų tobulinimą [1] .
R.Sturonas
8
Nors šių dviejų įrenginių kūrėjai demonstraciniuose vaizdo klipuose vaizdžiai parodo, kaip
paprasta naudotis sensorine judesių atpažinimo sąsaja, tenka pripažinti, kad šis valdymo būdas dar
nėra tobulas. Didelę paklaidą ir klaidų skaičių lemia neįgudę vartotojo judesiai bei nepritaikyta
programų bei operacinių sistemų aplinka.
Leap Motion „AirSpace“ aplikacijų parduotuvėje galima rasti įvairių valdymo sąsajų
sprendimų.
GameWAVE- sprendimas leidžiantis valdyti kompiuterį bei žaisti standartinius žaidimus
naudojant Windows OS. Reikalingas Leap Motion įrenginys.
Rastas sprendimas leidžia.
Abiejų rankų gestų atpažinimas
Skirtingų rankos mostų : vieno, dviejų ir daugiau pirštų visomis nepriklausomomis
kryptimis (į viršų, į apačią, aukštyn, žemyn)
Sukimo atpažinimai : vieno, dviejų ir daugiau pirštų atpažinimas dvejomis kryptimis
(dešinėn, kairėn).
Judėjimo krypties atpažinimas: aukštyn, žemyn, į kairę, dešinėn, pirmyn ir atgal.
Greičio slankmačiai, kad patikslinti judėjimo tikslumą.
Sugniaužtos ir išskleistos rankos atpažinimas.
Rankos laikymo būsenos atpažinimas.
Nykščio pakėlimas.
Greitas kelių pirštų paspaudimų atpažinimas.
Judesių valdymo pritaikymas:
Įvesties įrenginių klavišų paspaudimas.
Pelytės dešino, kairio ir ratuko imitaciniai paspaudimų ir sukimo judesiai.
Pelytės žymeklis valdymas.
medijos kontrolė: paleidimas, sustabdymas, prieš tai buvusio ar sekančio kūrinio
pasirinkimas, farso kontroliavimas, užtildymas.
Sisteminių komandų naudojimas. Kompiuterio užrakinimas, atsijungimas,
užmigimas, perkrovimas ar išjungimas [2] .
R.Sturonas
9
DexType
Tai Leap motion aplikacija skirta rašyti nenaudojant klaviatūros. Pasinaudojus Leap motion
įrenginiu užfiksuojami visų pirštų judesiai ir atvaizduojamos paspaustų virtualios klaviatūros
klavišų raidės. Aplikacija pasižymi ir raidžių rašymo ore atpažinimu.
DexType skirtas ir liečiamiems telefonams. Deja tuomet, judesių ore atpažinimas
neveikia[3].
Leap Motion integracija į klaviatūrą.
HP firma vartotojams pasiūlė gestų atpažinimo įrenginį Leap Motion sujungti su klaviatūra.
Šį sukurtas įrenginys neužima papildomos vietos ant stalo bei nereikalauja papildomos USB
jungties. Tai patvirtina, kad kol kas rašymas klaviatūra lieka patogesnis, nei naudojant Leap motion
įrenginį [4] .
Išmanieji televizoriai
Šiuo metu ypač populiarūs tampa Samsung išmanieji televizoriai. „SmartTV“ aplikacijų
pagalba išmaniuosius televizorius galima valdyti ne tik balsu, bet ir rankų judesiais ore. Išmanieji
televizoriai atpažįsta rankos judesius ir leidžia jo naudotojui per atstumą valdyti išmanųjį televizorių
nenaudojant jokių papildomų įrenginių [5].
Tokių televizorių kaina šiuo metu labai greitai keičiasi. Kaina- nuo 1000LT.
PointGrab
Tai nauja iOS technologija naudojanti skirtingų įrenginių kameras. Point Grab pritaikyta:
Kompiuteriams.
Išmaniesiems telefonams.
Planšetiniams kompiuteriams.
Televizoriams [6].
R.Sturonas
10
Kinect
Kinect (kodinis kūrėjų pavadinimas, „Project Natal“ ) yra judesio linijų fiksavimo įvesties
įrenginys skirtas Microsoft „Xbox 360“ ir „Xbox One“ vaizdo žaidimų konsolių ir "Windows"
kompiuteriams.
Išsiskiria atpažinimo nuotoliu, garso atpažinimu, kelių asmenų judesių atpažinimų vienu
metu. Yra daug mokamų ir nemažai nemokamų aplikacijų skirtų Kinect naudotojams. Kai kurios
aplikacijos mokamos [7].
1.3. Situacijos Lietuvoje įvertinimas „Microsoft Lietuva“ kartu su partneriais – informacinių technologijų (IT) bendrove „Gluk Media“ ir Kauno technologijos universiteto Informatikos fakultetu – pristatė „Kinect“ panaudojimo galimybes švietime, medicinoje, moksle ir žaidimuose.
Lietuvos įmonė „Gluk Media“ sukūrė daugiau nei 10 aplikacijų, panaudojančių „Kinect“
įrenginio teikiamas galimybes. Dar panašiai tiek pat sukurta naujų aplikacijų prototipų. Šiuo metu
įmonė bendradarbiauja su Santariškių klinikomis ir kitomis medicinos įstaigomis kuriant programą,
skirtą pacientų fizinei reabilitacijai [8].
Lietuvos statistikos departamentas nuo 2004 iki 2011 metų pateikia duomenis apie neįgaliųjų aprūpinimą techninėmis pagalbos priemonėmis:
Judėjimo, jėgos ir pusiausvyros lavinimo įrangą.
Priemones, padedančias atlikti ir (arba) pakeičiančias rankos ir (arba)
plaštakos, ir (arba) piršto funkcijas [9].
1 lentelė. Statistikos departamento duomenys Metai
Priemonė2004 2005 2006 2007 2008 2009 2010 2011
Judėjimo, jėgos ir pusiausvyros lavinimo įrangą. 133 256 260 223 263 210 88 168
Priemones, padedančias atlikti ir (arba) pakeičiančias rankos ir (arba) plaštakos, ir (arba) piršto funkcijas
7 .. 97 120 108 170 152 203
R.Sturonas
11
Pateiktoje lentelėje matoma, kad nuperkama vis daugiau techninių priemonių padedančių
valdyti ranką, arba pakeičiančių rankos ar plaštakos funkcijas. Leap Motion ir Kinect įrenginiai
ateityje, taip pat, gali būti naudojami pagerinti judesių apribojimus turinčių žmonių reabilitaciją ir
integraciją į visuomenę. Todėl būtina užtikrinti tokių įrenginių sąsajų tobulinimą.
1.4. Produkto apibūdinimas
Pagrindinės kuriamos sistemos funkcijos:
Judesių atpažinimas Kompiuterio funkcijų vykdymas
Sistemos kontekstas
Naujas produktas naudos Leap Monion arba Kinect judesių jutiklius. Rezultatai bus
atvaizduojami kompiuterio ekrane. Tam prireiks nešiojamojo kompiuterio arba stacionaraus
kompiuterio ir monitoriaus.
Pasinaudojus sensoriumi, bus apdoroti žmogaus judesiai. Kompiuteryje bus atliekamas
duomenų apdorojimas bei funkcijų vykdymas. Gauti rezultatai bei funkcijų vykdymas bus
atvaizduojamas kompiuterio ekrane. Tokiu būdu vartotojas galės ne tik stebėti, bet ir kontroliuoti
funkcijų vykdymą, bei bet kada inicijuoti naujas sistemos funkcijas.
Vartotojo charakteristikos
Daroma prielaida, kad visi sistemos naudotojai turi minimalios kompiuterio valdymo
tradicinėmis priemonėmis (klaviatūra ir pele) patirties. Vartotojams keliami minimalūs
kompiuterinio raštingumo reikalavimai.
Pirmasis naujo vartotojo susižinimas su sistema ir jos išbandymas gali būti sudėtingas.
Tikimasi, kad vartotojų vadovo ir trumpų apmokymų vartotojams pakaks pilnai paruošti tinkamam
sistemos naudojimui.
R.Sturonas
12
Vartotojo problemos
Pagrindinė kuriamoje sistemoje sprendžiama vartotojų problema yra tradicinės valdymo
sąsajos apribojimai. Kuriama sistema leis vartotojui vadytį kompiuterį neliečiant papildomų
įrenginių.
Naujai sukurta sistema turėtų palengvinti kompiuterio valdymą rankos judesių sutrikimus
turintiems žmonėms.
Vartotojo tikslai
Kuriamas produktas skirtas žmonėms norintiems išbandyti ir naudoti inovatyvias valdymo
sąsajas. Produktas leis vartotojams valdyti kompiuterį per atstumą, nenaudojant jokių liečiamų
įvesties renginių (klaviatūra, pelė, pultelis, liečiamas ekranas).
Pagrindiniai sistemos vartotojo reikalavimai:
Tikslumas Lankstumas Greitaveika Pritaikomumas Saugumas Patogumas Greitas išmokstamumas Paprastumas
Bendri apribojimai
Sistemos realizacija turi atitikti esamus ISO 9241-11 sąsajų standartus. Sistemos vartotojas
neturi jausti judesių vėlavimo, arba šis vėlavimas, neturi trukdyti valdyti numatytų kompiuterio
funkcijų.
Judesių atpažinimas veikia tik sensorinių įrenginių specifikacijose apibrėžtuose veikimo
ploto rėžiuose, tačiau plotą dalinai galima keisti perkeliant sensorinę įrangą. Apribotas,
priklausomai nuo sensoriaus, ir vartotojų naudojančių sistemą skaičius.
R.Sturonas
13
1.5. Projekto įgyvendinimo planai ir kokybės vertinimas
Projekto realizacijos metu bus atliekama:
Realizuotų sprendimų ir jų vertinimų analizė. Realizuojamų projekto metodų pasirinkimas. Realizuojamo projekto funkcijų apsibrėžimas. Resursų paskirstymas ir realizacijos plano sudarymas Projekto realizacija. Projekto testavimas ir tobulinimas Projekto įgyvendinimas.
1.6. Įgyvendinimas
Projektavimo metodika.
Realizuojamos sistemos projektavimui pasirinkta šiuo metu populiariausia notacija
pasaulyje UML (angl. Unified Modeling Language– UML) - modeliavimo ir specifikacijų kūrimo
kalba, skirta specifikuoti, atvaizduoti ir konstruoti objektiškai orientuotų programų dokumentus.
Naudojant UML galima projektuoti sistemą skirtingais abstrakcijos lygiais.
UML modelis informacinės sistemos projektavimui susideda iš lentelėmis pagrįsto modelio
– skirtingų rūšių diagramų, vaizduojančių sistemos savybes skirtingais aspektais, taip pat skirtingas
sistemos vystymosi ar plėtros fazes. Šiuo metu UML modeliavimo kalba yra standartinė
projektavimo priemonė, kuri dažniausiai taikoma neformaliam pagrindinių verslo ar kompiuterinės
sistemos aspektų vaizdavimui. Šis pasirinkimas padės standartizuoti modeliavimo notaciją.
Sistemos realizacijos priemonės.
Sistema realizuojama panaudojus Leap Motion įrenginį ir pateikiamą atvirąjį kodą bei jo dokumentaciją.
Sistemos projektavimui naudojami MagicDraw 17.02, Enterprise Architekture bei MS Visio paketai
Sistemos kūrimui naudojami Notepad++ programinis paketas. Naudojama programavimo kalba: Javascript Sistema turi funkcionuoti Windows Vista, Windows 7, Windows 8 aplinkose. Rekomenduojami minimalūs serverio techninės įrangos parametrai: 3 GHz, 4 GB RAM,
20GB kietasis diskas (reikalavimai priklauso nuo vartotojų skaičiaus). Vartotojo techninės įrangos reikalavimai pateikiami vartotojo dokumentacijoje.
R.Sturonas
14
Išplečiamumas
Sistema naudos standartines Leap Motion Aplikacijų realizavimo priemones, todėl nebus
sunku praplėsti sistemą naujais moduliais ar atnaujinti programinį kodą. Sistemą bus galima plėsti ir
integruoti į kitas sistemas (Pvz: žaidimai, svetainės ir kt.).
Kokybės vertinimo kriterijų pasiūlymas.
Sukurta sistema bus vertinama pasinaudojus QUIM modelyje pasiūlytais veiksniais,
papildant juos atskirų sistemų privalumais. Bus atsižvelgta į kiekvienos sistemos išskirtinumą, bei
pritaikomumą realizuojamam projektui.
1.7. Projekto vykdytojai
Projektui įgyvendinti reikalingi žmonės:
Projektų vadovas (žmogus atsakingas už darbų atlikimą laiku, darbų paskirstymą
darbuotojams, atskiriems darbams resursų paskirstymą).
Projektuotojas (žmogus nustatantis programinės įrangos architektūrą, komponentes,
paruošiantis specifikacijas konkrečioms programinės įrangos komponentėms)
Programuotojas (žmogus pagal pateiktas specifikacijas realizuojantis programinę įrangą)
Testuotojas (žmogus pagal pateiktas specifikacijas sudarantis testavimo atvejus ir
testuojantis programinę įrangą)
1.8. Skyriaus išvados
Išanalizuotos sistemos taikymo sritis ir realizuojamos funkcijos leis nustatyti pagrindinius vartotojų reikalavimus sistemai.
Išanalizuoti egzistuojantys panašūs sprendimai ir šių sprendimų palyginimas leidžia išskirti kiekvienos sistemos pranašumas ir realizuoti juos kuriamame produkte.
Išskirti sistemos realizacijai reikalingi resursai bei sistemos vykdytojai leis tinkamai valdyti resursus projekto įgyvendinimo eigoje.
Išskirti sistemos apribojimai leis išvengti perteklinio laiko švaistymo, bei sumažins klaidų tikimybę.
R.Sturonas
15
bottom-up top-down
2. PROJEKTAVIMO METODOLOGIJOS IR TECHNOLOGIJŲ ANALIZĖ
Skyriaus tikslas išnagrinėti tyrimo metodus, atlikti literatūros analizę, pasirengti projekto
reikalavimų specifikavimui, projektavimui, susipažinti su užsakymo taikymo sritimi, pasauliniais
pasiekimais taikomojoje srityje. Tyrimo metu analizuojama esamos sąsajos, jų panaudojamomis ir
produktyvumas. Siekiant padidinti pasirinktų valdymo sąsajų efektyvumą aptariama valdymo
sąsajų realizacijos metodai, ištiriami veiksniai, kurie lemia esamos sistemos poreikius bei
įvertinamos skirtingų valdymo sąsajų galimybės. Numatomos kuriamos sistemos realizacijos
galimybės, apžvelgiamos galimos kompiuterizavimo priemonių alternatyvos.
2.1. Programinės įrangos projektavimo metodai
Norint gauti gera sistemos projektą reikia pasirinkti tinkamus projektavimo metodus. Projektavimo metodai susideda iš komplekto nurodymų, euristikos, ir procedūrų.
Norint pasirinkti tinkamiausią projektavimo metodą reikia atsižvelgti į šias sąlygas: Problemos sritis Projektuotojo patirtis Galimi įrankiai Projektavimo filosofija
Funkcinė dekompozicija
Funkciniame dekompozicijos projektavimo metode numatoma funkcija kuri yra suskaidoma į subfunkcijas – taip kad kiekviena subfunkcija sprendžia vieną bendros problemos dalį. Kiekviena subfunkcija gali būti toliau analizuojama ir skaidoma į dar labiau primityvias funkcijas, ir taip toliau. Funkcinė dekompozicija yra projektavimo filosofija, o ne projektavimo metodas. Tai reiškia projektavimo metodą, kuris sudaro daugelio projektavimo metodų pagrindą.
1. Pav. Funkcinės dekompozicijos projektavimo idėja.
Kaip parodyta paveiksle aukščiau funkcinė dekompozicija yra dviejų tipų: Top-down Bottom-up.
R.Sturonas
16
Top-down būdų projektuojama kai žinoma pagrindinė problema ir ko užsakovas konkrečiai nori. o bottom-up būdu projektuojama kai užsakovas nežino tiksliai ko nori ir ką sukurta sistema turėtų atlikti. Šis projektavimo metodas turi ir nemažai kritikos, nes projektavimas nėra visiškai racionalus:
Dažniausiai klientai nežino ko nori, Pakeitimai įtakoja ankstesnius sprendimus, Žmonės klysta Projektai nepradedami nuo nulio, todėl dažniausiai jau būna kažkoks pagrindas Projektavimas kaip yo-yo, nes kažkas sugalvojama, išbandoma atmetama ir vėl kyla
naujos idėjos [10].
OO analizė ir projektavimo metodai
Pagrindinės sąvokos, kurios vaidina vaidmenį objektiškai orientuotoje analizėje ir programinės įrangos projektavime yra: objektai, jų požymiai ir paslaugos, ir santykiai tarp objektų. Iš to seka, kad pagrindiniai objektiškai orientuotos sistemų analizės ir projektavimo metodų pagrindiniai žingsniai:
1. Identifikuoti objektus; 2. nustatyti požymius ir paslaugas; 3. nustatyti santykius tarp objektų.
OO analizė ir projektavimo metodai – RUP metodas
Labai detalus ir iteratyvus metodas. Yra atskiriamos darbų kryptys: reikalavimai, analizė projektavimas.
Keturios fazės: pradžia, detalizavimas, konstravimas, transformavimas.
Aktyviai naudojamas UML. “Use-case” vienas iš svarbiausių detalių, nes tai leidžia valdyti informaciją skirtingose projektavimo fazėse.
R.Sturonas
17
2.1. Temos tikslingumas ir aktualumas
Pastaruoju metu atsiranda įvairios valdymo sąsajos leidžiančios valdyti įrenginius
netradiciniais būdais, pavyzdžiui: Leap Motion, Kinect, Oculus Rift, neurokompiuterijos prietaisai
ir kt. Dalis įrenginių dar nėra plačiai naudojami. Tai lemia ne tik aukštos įrenginių kainos ar
trumpas laiko periodas nuo jų atsiradimo, bet ir šių įrenginių sąsajų sudėtingumas vartotojui. Todėl
aktualu ieškoti būdų tų sąsajų naudojimo palengvinimui. Didelio dėmesio susilaukia ir sąsajų
pritaikymas fizinę negalę turintiems žmonėms.
Kolkas nėra vienos universalios valdymo sąsajos kuri paveldėtų visas geriausias kitų sąsajų
savybes. Sudėtingėjant technologijoms nebepakanka esamų valdymo sąsajų. Kaip technologijos
taip ir vartotojų sąsaja su jomis evoliucionuoja. Kuriami inovatyvūs valdymo sąsajų techniniai
sprendimai turi pasirūpinti tinkamos vartotojo sąsajos parinkimu, jos optimizavimu ir nuolatiniu
tobulinimu. Klaviatūros, pelytės bei pultelio valdymas nėra natūralus žmogaus elgesys, todėl vis
daugiau mokslininkų skiria daug dėmesio valdymo sąsajoms naudojant žmogaus judesius. Ieškoma
įvairesnių gestų atpažinimo technologijų. Gestais paremta vartotojų sąsaja (GUI) vis dažniau
naudojama ir kasdienybėje. Gestų atpažinimas, tai kompleksinis uždavinys į kurį įeina judesių
modeliavimas, analizavimas, šablonų susiejimas ir atpažinimas bei mašininis mokymasis [11].
Inovatyvių valdymo sąsajų populiarėjimas Lietuvoje
Nagrinėjant ateities perspektyvas buvo išanalizuota patentų registravimo tendencijos.
Patentų tendencijos parodo kokia linkme eina technologijos.
Sąsajų efektyvumo užtikrinimas tampa vis aktualesnis klausimas Lietuvoje, nes vis didesnė
registruojamų patentų dalis priklauso G06 patentų klasei („Kompiuterinis apdorojimas;
Apskaičiavimai; Skaičiavimas“). Vis didesnis dėmesys skiriamas šių technologijų tobulinimui.
Pateikta 2012 metų statistika, pagal Tarptautinės patentų klasifikacijos (TPK) hierarchinės
sistemos skyrių pasiskirstymą, pagal kiekybinę išraišką paduodant patentines paraiškas. Iš ~100,
Vilniuje konsultuotų išradėjų beveik ketvirtadaliui (23,3%) aktualus buvo G skyrius, t.y. technikos
sritys, priskiriamos fizikai pagal TPK. Pažvelgę giliau į populiariausio Vilniuje G skyriaus klases,
išsiskiria G06 klasė „Kompiuterinis apdorojimas; Apskaičiavimai; Skaičiavimas“ – 37,5% visų
konsultacijų (dominavo tema apie duomenų apdorojimo sistemas ar metodus, specialiai pritaikytus
komerciniams ir finansiniams tikslams – G06Q) [12]. G06 patentų klasei priskiriama ir
kompiuterių valdymo sąsajos [13].
R.Sturonas
18
2.2. Technologijų analize
Prieš pasirenkant technologiją projekto realizacijai reikia išnagrinėti esamus sprendimus.
Analizės metu išskiriami sprendimų skirtumai, jų panaudojimo galimybės ir taikymo sritys.
Darbe nagrinėjama dvi vartotojo valdymo sąsajų rūšys:
Gestais paremta vartotojų sąsaja (GUI)
Smegenų ir kompiuterio sąsaja (BCI)
Analizės dalyje nebus nagrinėjama standartinės kompiuterio valdymo sąsajos (pelė, klaviatūra,
valdymo pultelis).
Gestais paremta vartotojų sąsaja
2. pav. Gestais pagrįstos vartotojų sąsajos veikimas.
Sąsajai naudojama:
Objektų aptikimas.
Spalvos atpažinimas ir išskyrimas.
Formų atpažinimas.
Atpažinimas iš pikselių reikšmių.
3D modeliais-grįstas atpažinimas.
Judesių sekimas [14].
R.Sturonas
19
Daugėja ir gestais (bei galvos judesiais) paremtų valdymo sąsajų sprendimų. Analizės
dalyje aptariami keletas iš jų:
Leap Motion
Kinect
Oculus Rift
2.2.1. Egzistuojantys technologiniai sprendimai
Leap Motion
Leap Motion- šiuo metu rinkoje pats tiksliausias (0.01mm tikslumo) rankos judesių
sensorius. Priešingai nei Kinect kūno judesių sensorius, Leap Motion didžiausią dėmesį skiria
judesių sąsajos tikslumui. Įrenginys pasižymi judesių užfiksavimu milimetrų tikrumu.
3. pav. Leap Motion veikimo zona.
(Šaltinis paimtas iš:http://tutoprocessing.com/tutos/intermediaire/leap-motion-processing/ )
Pliusai:
Abiejų rankų palaikymas (kairė, dešinė, bei abi rankos vienu metu).
Ypač tikslus judesių atkartojimas.
Kompaktiškas įrenginys.
Minusai:
Ranka fiksuojama tik laikant delnu į apačią
Labai ribotas veikimo laukas
Leap Motion pateikia nemokamą gestų apdorojimo programinio kodo karkasą ir skatina
naujų programų kūrėjus pasinaudoti jau sukurtu programiniu kodu.R.Sturonas
20
Kinect
Kincet pirmiausia buvo skirtas įprastinei sąveikai kompiuterinių žaidimų aplinkoje, tačiau
įvertinus Kinect galimybes, jis buvo pradėtas naudoti ir 3D modeliavime [15].
Tai žaidimų konsolei Xbox 360 bei Xbox One (Durango) skirtas įrenginys. Jis pasižymi
dideliu nuskaitymo nuotoliu (nuo 0.8m iki 4m), bei kelių sistemos naudotojų palaikymu vienu metu
(iki 6). Valdymo sąsaja turi valdymo balsu galimybę.
Įrenginys nėra tikslus- užfiksuojama iki 5 cm paklaida. Taip pat ilgas (60ms) reakcijos
laikas varžo naudotojų judesius, neleidžia naudotojui greitai judėti [16].
2011metais „Microsoft“ išleido nekomercinę „Kinect“ SDK „Windows operacinei
sistemai“
Sąsajos pliusai:
Iki 6 asmenų palaikymas vienu metu.
Rankų kojų (bei jų dalių), galvos judesių atpažinimas.
Minimalūs apmokymai.
Minimaliai apribotas judėjimo plotas [17].
Oculus rift
Oculus Rift yra naujos kartos virtualios realybės ausinės leidžiančios vartotojui pasijusi lyg
būtų žaidime. Perkant Oculus Rift gaunama ir programinės įrangos kūrimo rinkinį (SDK) kurią gali
naudoti kuriant naujus žaidimus ir juos pritaikant šiai technologijai.
4. pav. Oculus Rift veikimo zona.
Šaltinis paimtas iš: http://robotrice.com/the-oculus-rift-is-set-to-make-virtual-reality-a-reality/
Matomas tradicinio monitoriaus ir Oculus rift skirtumas.
R.Sturonas
21
5. pav. Oculus Rift veikimo ašys.Šaltinis paimtas iš: http://www.dailymail.co.uk/sciencetech/article-2356854/The-gaming-headset-transforms-video-
games-virtual-reality-worlds.html
Apskaičiuojant judėjimą pagal vieną ašį naudojama formulė:
Dabartinė orientacija = ankstesnė orientacija + sensoriaus nuskaitymų skaičius .
Kur, - kampinis greitis radianais per sekundę. Ant galvos montuojami displėjai valdomi visų 3 ašių ir sudaro 3D vektorių.
.
Atliekant kompiuterinius skaičiavimus nustatomas vėlavimas. Jis turi didelę įtaka sąsajos kokybei.
6. pav. Vaizdo vėlavimo apskaičiavimas
Vaizduojamas kampas, laiko tarpu t0. Matoma klaida, vaizdas bus rodomas ne tuo kampu
kuriuo jis turi būti matomas. Pagal formulę apskaičiuojamas vėluojamas kampas.
R.Sturonas
22
Kur yra galvos poslinkis, laipsniais, ir vėlavimas, sekundėmis [18].
IVE (uždara virtuali aplinka) sudaro: vartotojo perduodami duomenys, keturi pagrindiniai komponentai (Tracking delay, Aplication delay, Rendering delay, Dispay delay) , naudotojui pateikiama išeiga. Tik optimizavus visus keturis elementus galima užtikrinti mažesnę gaišatį.
Smegenų ir kompiuterio sąsaja
Toliau nagrinėjamas smegenų srautu ir kompiuterio sąsaja (BCI) paremtas sprendimas. Šis
sprendimas leidžia neįgaliems, kūno valdymo sutrikimų turintiems žmonėms valdyti kompiuterį. Ši
sąsaja ateityje gali labai palengvinti neįgalių žmonių gyvenimą [19].
Emotiv EPOC (EEG skeneris)
Emotiv EPOC
Vis dažniau EEG signalų skaitymas pritaikomas dirbtinių galūnių valdymui. Toks
pritaikomumas ateityje leis sumažinti neįgalių asmenų judesių apribojimą.
7. pav. EEG skaitytuvų veikimasŠaltinis paimtas iš: http://boingboing.net/2007/10/15/microsofts-mind-read.html
EEG skaitytuvas nagrinėja minčių srautą, apdoroja gautus duomenis, pašalina triukšmą ir, jei
įmanoma, atpažįsta iš anksto kompiuteryje apmokymų metu išsaugotą smegenų impulsą. Sėkmingo
atpažinimo atveju, inicijuojama apmokyta kompiuterio funkcija.
EEG dažnai naudojama pulso trigdžių pašalinimas.
R.Sturonas
23
8. pav. EEG triukšmo pašalinimas
Paveikslėlis atvaizduoja schemą kurioje matoma pulso artefaktai ir jų trukdžių pašalinimas.
Artefaktų vidurkis, apskaičiuotas per procesus atvaizduojamus schemos centre. Iš gautų EEG
signalai panaikinami pulso sukelti trukdžiai ir gaunamas apdorotas smegenų siunčiamas signalas
[20].
2.3. Sistemų sąsajų vertinimo metodai
Norint tinkamai išanalizuoti sąsajos panaudojamumą, patartina laikytis jau egzistuojančių
standartų bei naudoti jau sukurtus metodus. Tai leis objektyviai palyginti esamus sprendimus.
Programinės įrangos panaudojamumo metrikos sąsajų įvertinimui
Mokslinėje literatūroje pateikiama keletas skirtingų standartų (pvz., ISO9241, ISO/IEC
9126, IEEE Std.610.12) ir konceptualių modelių (pvz.., Metrics for Usability Standards in
Computing [MUSiC]). Norint apjungti visus sąsajų standartus, buvo sukurtas vienas bendras
hierarchinis modelis. Šis bendras modelis buvo pavadintas Quality in Use Integrated Measurement
(QUIM).
R.Sturonas
24
QUIM sudaro10 veiksnių. Šie 10 veiksnių yra skirstomi į 26 veiksnių pogrupius kurie
išmatuojami kriterijais, kurie toliau dar skyla į 127 konkrečius rodiklius [21].
9. pav. Sąsajų kokybių veiksniai. QUIM modelis.
Pasinaudojus lentele galima nustatyti pagrindinius sąsajų kriterijus lemiančius sistemos
sąsajų kokybę [21].
R.Sturonas
25
Sąsajų tobulinimo procesai
Nagrinėjant egzistuojančias valdymo sąsajas, buvo išskirti pagrindiniai sistemų sąsajų
vertinimo ir jų tobulinimo procesų etapai:
1. Pasirinktos sąsajos praktiškumo vertinimo tikslų nurodymas.
2. Sąsajos aspektų įvertinimo nustatymas.
3. Tikslinio vartotojo identifikavimas.
4. Panaudojamumo metrikų pasirinkimas.
5. Vertinimo metodo pasirinkimas.
6. Užduočių pasirinkimas.
7. Eksperimento eigos suprojektavimas.
8. Gautos operacijų charakteristikos (ROC).
9. Gautų duomenų analizė ir interpretavimas.
10. Kritinis sąsajos vertinimas ir jos patobulinimo patarimai.
11. Viso proceso iteracijos pakartojimas (jei reikalinga).
12. Gauti galutiniai rezultatai [22].
Sąsajų kiekybinis ir kokybinis palyginimas
Metrikų rezultatai yra apskaičiuojami pagal matematinį algoritmą arba euristinių
paskaičiavimų metu.
Efektyvumui apskaičiuoti galima naudoti Bevan ir Macleod (1994) pasiūlytą efektyvumo
skaičiavimo formulę:
TE = Kiekybė × Kokybė /100
Kur, kiekybė- visų užduotų ir atliktų darbų dalis, o kokybė- dalis darbų, kurie pasiekė
norimą tikslą.
Nagrinėjant skirtingus įrenginius tą padaryti sunku arba visai negalima. Pagrindinė to
priežastis, skirtingų komponentų ir techninės įrangos panaudojimas, skirtingas kokybės ir kiekybės
vertinimas.
Pasinaudojus internete publikuojamų testų rezultatais ([23], [24]) ir surinkta medžiaga buvo sudaryta nagrinėjamų technologijų charakteristikų palyginimų lentelė.
R.Sturonas
26
Lentelė 2. Analizuotų įrenginių sąsajų palyginimas
Atliekamo analizės darbo sunkumai.
Nėra jokio tikslaus visų įrenginių palyginimo. Skirtingi šaltiniai pateikia skirtingus rezultatus. Pagrindinė to problema, skirtinga kompiuterinė technika ir skirtinga virtuali aplinka kurioje ši technologija naudojama.
Naujos, mažai išanalizuotos technologijos. Negalima objektyviai tikslai palyginti skirtingas technologijas. Nei vienas analizuotas
metodas neleido to atlikti.
2.4. Analizės dalies rezultatai
Aptarti pagrindiniai sistemų parametrai. Tai leis palyginti ir išsirinkti tinkamiausią
realizacijos technologiją.
Išskirtos netradicinės valdymo sąsajos ir atrinkti šias sąsajas revizavę įrenginiai. Išnagrinėtas
šių įrenginių valdymo sąsajų veikimas:
a. Emotiv EPOC
b. Leap Motion
c. Kinect
d. Oculus Rift
R.Sturonas
27
\Įrenginys
Parametras\Leap
MotionKinect Oculus Rift
Emotiv EPOC
Matymo laukas(laipsniai)
330˚ vertikaliai
70˚ horizontalia
i , 60˚ vertikaliai
Horizontaliai <90˚, vertikaliai
>110˚.-
Užfiksavimo atstumas
3.22“-13,5“
0.8m-4m - -
Tikslumas ~0.01mm ~5.6mm - ~90%
Vėlavimas16ms - 30ms
60ms ~40ms 2-3s
Emotiv EPOC pasižymi sudėtinga ir sunkiai valdoma sąsaja. Ilgas užklausų apdorojimo laikas,
pagrindinis šio įrenginio trūkumas.
Leap Motion- greičiausiai apdoroja užklausas, matomas mažiausias judesių uždelsimas.
Kinect įrenginio sąsaja pasižymi dideliu gestų ir judesių atpažinimo lauku, tačiau atpažinimas nėra
greitas bei tikslus.
Oculus Rift įrenginio sąsaja dar nėra visiškai ištobulinta, tačiau ateityje numatoma, kad jis taps
efektyvus vaizdo valdymo įrenginys. Oculus Rift įrenginys gali bendradarbiauti su Leap Motion ar
Kinect įrenginiais ir taip papildyti vienas kitą.
Toliau magistro darbe dėl sąsajos tikslumo nuspręsta nagrinėti tik Leap Motion įrenginio valdymo
sąsajas.
Aptarti sąsajų įgyvendinimo reikalavimai. Tai leidžia įvertinti sąsajos realizacijos laiką bei
minimizuoti realizacijos metu iškylančias problemas.
Atlikta pasirinktų įrenginių vartotojų sąsajų atpažinimo algoritmų ir jų veikimo analizė. Pateikti
algoritmų paaiškinimai leis efektyviau panaudoti realizacijos metu gaunamus pasirinkto
įrenginio duomenis.
Detalizuoti duomenų apdorojimo etapai leis tinkamai suprojektuoti sistemos panaudojimo
atvejus bei duomenų srautų diagramą.
R.Sturonas
28
3. PROJEKTO PLANAS.
10. pav. Projekto darbų grafikas.
R.Sturonas
29
3.1. Ganto diagrama
11. pav. Projekto darbų grafikas.R.Sturonas
30
4. REIKALAVIMŲ SPECIFIKAVIMAS
4.1. Projekto kūrimo pagrindas
Atsirado galimybė gestų atpažinimą pritaikyti kasdienybėje. Tai gali pakeisti esamus vartotojų sąsajų sprendimus. Kuriant vis tikslesnius gestų atpažinimo įrankius yra galimybė tobulinti gestais paremtas vartotojų sąsajas. Tobulinimo metu būtų didinamas sąsajų efektyvumas (mažinama įvesčių trukmė, klaidų skaičius bei didinamas vartotojų pasitenkinimas). Yra galimybė Leap Motion įrenginį pritaikyti išmaniųjų televizorių valdymui.
Tikslesnio įvesties įrenginio panaudojimas galėtų išspęsti dabartines gestų atpažinimo televizoriuose problemas. Leap Motion įrenginio panaudojimas pakeičiant televizoriaus pultelį gali pagreitinti naudotojo įvesties greiti 2 ir daugiau kartų.
Sistemos tikslai
Sistemos tikslas- sukurti vartotojui patogesnę sąsają, leidžiančią vartotojui valdyti televizorių naudojantis Leap Motion gestų atpažinimo kontroleriu.
Sistema leis vartotojui greičiau ir patogiau valdyti išmaniojo televizoriaus aplikaciją. Patogi vartotojo sąsaja leis užtikrinti greitesnę bei tikslesnę vartotojo teksto ir fiksuojamų koordinačių įvestį. Sukurta sistema prisidės prie gestų atpažinimo įrenginių galimybių praplėtimo.
4.2. Užsakovai, pirkėjai ir kiti sistema suinteresuoti asmenys
1. Užsakovas:
Dr. Tomas BlažauskasAdresas: Kauno Technologijos Universitetas Studentų g. 50-406, KaunasTelefonas: +370-37-454229El. paštas: [email protected]
2. Pirkėjas:
Dr. Tomas BlažauskasAdresas: Kauno Technologijos Universitetas Studentų g. 50-406, KaunasTelefonas: +370-37-454229El. paštas: [email protected]
3. Kiti sprendimus priimantys asmenys.
Dr. Tomas BlažauskasAdresas: Kauno Technologijos Universitetas Studentų g. 50-406, KaunasTelefonas: +370-37-454229El. paštas: [email protected]
R.Sturonas
31
Naudotojai
Lentelė 3. Sistemos naudotojai
Naudotojų kategorija: Atsitiktinis asmuo.Vartotojo sprendžiami uždaviniai Televizoriaus valdymas nuotoliniu būdu.
Teksto vedimas televizoriuje.Patirtis dalykinėje srityje: -Patirtis informacinėse technologijose: Naujokas.Papildomos vartotojo charakteristikos: Fiziškai sveikas, rankos judesių sutrikimų
neturintis asmuoApsimokymo poreikis: ReikiaAmžiaus grupė: 7-80
• Vartotojų prioritetai. Kadangi visi vartotojai yra atsitiktiniai, visų vartotojų prioritetai yra svarbūs.Didžiausias dėmėsis kreipiamas į 16 - 40 m. amžiaus vartotojų grupes, dažniausiai naudojančias išmaniuosius televizorius.
Lentelė 4. Naudotojų atsakomybės
Naudotojų kategorija Dalyvavimas (teikiamos žinios)
Minimalūs laiko resursai reikalavimas išgauti/validuoti.
Atsitiktinis vartotojas Vartotojo sąsajos prototipų peržiūra.
8 val.
Panaudojamumo reikalavimų išgavimas/testavimas.
16 val.
4.3. Projekto apribojimai
Tai apribojimai, kurie įtakoja reikalavimų specifikaciją bei sistemos kūrimo eigą bei charakteristikas.
Apribojimai sprendimui:
Prieš kuriant sistemą būtina apsibrėžti funkcinius ir nefunkciniu reikalavimus bei galimą sistemos realizavimo laiką, kainą, projekto apribojimus.
Gestų atpažinimas turi veikti ant 7 kartos Samsung išmaniųjų televizorių. Turi būti įvardyti ir suderinti minimalūs diegimo aplinkos reikalavimai kuriamai sistemai.
R.Sturonas
32
Diegimo aplinka
Sistema tinkamai veiks tik naudojant pakankamus parametrus turinčius sistemos kompiuterius. Rekomenduojami parametrai nurodyti dokumento, „Vartotojo dokumentacija“ skyriuje.
Sistemai, taip pat, reikalingas prie tinklo prijungtas išmanusis Samsung televizorius.
Bendradarbiaujančios sistemos
Kuriama sistema bendradarbiaus su esamomis Samsung Smart TV aplikacijomis. Sistemos naudojimo aplinka bus televizorius. Televizoriuje esančios aplikacijos leis gestų pagalba valdyti išmanųjį televizorių.
Komerciniai specializuoti programų paketai
Kuriama sistema naudos Leap Motion Developer SDK.
Numatoma darbo vietos aplinka
Sistemos naudojimo aplinka- uždaros patalpos. Visi įrenginiai (televizorius, kompiuteris, Leap Motion kontroleris) turi būti apsaugoti nuo greitų temperatūros pokyčių, kritulių ar purvo. Taip pat negali būti jaučiami stiprūs virpesiai. Sistema veiks netinkamai arba visai neveiks neapsaugojus patalpų nuo išorinių veiksnių.
4.4. Sistemos kūrimo terminai
Lentelė 5. Sistemos kūrimo terminai
Eil.Nr.
Užduotis Užbaigimas
1. Reikalavimu specifikacijos rengimas 2014.03.102. Architektūros specifikavimas 2014.04.153. Detalios architektūros specifikacijos rengimas 2014.05.204. Sistemos realizacija 2014.11.015. Testavimas 2014.11.116. Vartotojo dokumentacijos rengimas 2014.12.017. Sistemos pataisymai, užbaigimas 2015.01.23
R.Sturonas
33
Sistemos kūrimo biudžetas
Lentelė 6. Sistemos kūrimo biudžetas
Išlaidos Vienetas Vienetų skaičius
Vieneto kaina, Lt
Viso, Lt
1. Žmonių ištekliai
Analitikas Darbo diena 25 100 2500
Programuotojas Darbo diena 40 120 4800
Testuotojas Darbo diena 12 70 840
Dizaineris Darbo diena 5 70 350
Iš viso žmonių išteklių Darbo dienų 82 8490
2. Įranga ir prekės Vienetas Vienetų skaičius
Vieneto kaina, Lt
Viso, Lt
Leap Motion įrenginys Vienetas 1 200 200
Kinect įrenginys vienetas 1 250 250
Kompiuteris su ekranu
(gali būti stacionarus kompiuteris ir monitorius)
Vienetas 1 1500 1500
Serverio nuoma Vienetas (metams) 1 1200 1200
Iš viso įranga ir prekės Vienetų 4 3150
3. Programinė įranga
„Enterprise Architect Corporate Edition Floating License“
Vienetas 1 870 870
Visual Studio 2012 Professional Vienetas 1 1300 1300
Iš viso programinė įranga Vienetų 2 2170
4. Viso tiesioginiai proj. kaštai 13810
Kitos (elektros, šildymo, popieriaus ir kt.) išlaidos neįskaičiuojamos. Jas sunku
apsibrėžti. Daroma prielaida, kad išlaidos įeina į darbuotojų algą.
Sistemos realizacijos metu projekto autorius atstos visus žmogiškuosius išteklius.
Projekto realizacijai skirti (127 d. d.). Dalį kuriamos sistemos bus galima realizuoti naudojantis jau sukurtais atvirojo kodo programų komponentais.
R.Sturonas
34
4.5. Funkciniai reikalavimai
Veiklos kontekstas
12 pav. Konteksto diagrama
Veiklos padalinimas
Lentelė 7. Veiklos įvykių sąrašas
Eil.nr. Įvykio pavadinimas Įeinantys/išeinantys informacijos srautai1 Objektų koordinačių fiksavimas Perduodamos koordinatės (in)2 Tekstas, koordinatės, įrenginio duomenys,
nustatymai.Įvesties duomenys (in)
3 Apdoroti įvesties duomenys Įrenginio tipas, jo fiksuojami duomenys, paspaudimai ir pasirinktys (out)
4 Aplikacijos aplinkos pasikeitimas Funkcijų rezultatai (in)
R.Sturonas
35
4.6. Produkto veiklos sfera
Panaudojimo atvejų vaizdas apibrėžia sistemos ribas:
Šaltinis: sukurta autoriaus. Naudojama USE CASE UML notacija.
Pav. 13. Programinės įrangos panaudojimo atvejai.
Panaudojimo atvejų diagramoje matomas aktorius (sistemos vartotojas) bei sistemos panaudojimo atvejai. Matomos aktoriaus sąsajos valdymo galimybės bei sistemos panaudojimo atvejų ryšiai. Atvaizduojamas sistemos veikimo etapų eiliškumas. Detalus panaudos atvejų aprašas pateikiamas reikalavimų specifikacijos projekto dalyje
R.Sturonas
36
1. PANAUDOJIMO ATVEJIS: Gestų atpažinimas
Vartotojas/Aktorius: Sistemos vartotojas
Aprašas: Apima procesą, kurio metu atpažįstami išoriniai sistemos objektai ir jų pokyčiai erdvėje.
Ryšiai su kitais PA: naudojamas „Duomenų apdorojimas“ ir yra praplėstas „Sąsajų nustatymai“ PA.
Prieš sąlyga: Prijungtas aktyvus nuskaitymo įrenginys ir įdiegta įrenginio programinė įranga;
Sužadinimo sąlyga: Nuskaitymo erdvėje atsiranda naujas objektas
Po-sąlyga: Sistemoje užregistruojamas naujas objekto įvykis
Pagrindinis scenarijus:
1. Vartotojas prie sensoriaus prideda objektą (ranką, pieštą ar kt.)
2. Sistema užfiksuoja objekto koordinates
Alternatyvūs scenarijai:
1. Vartotojas neprideda objekto, arba pridedamas objektas nėra sensoriaus objektų atpažinimo erdvėje.
2. Įrenginys neatpažįsta ar neteisingai atpažįsta pateiktą objektą.
2. PANAUDOJIMO ATVEJIS: Sąsajos nustatymai
Vartotojas/Aktorius: Sistemos vartotojas
Aprašas: Apima procesą, kurio metu keičiami sistemos aplinkos ir gestų atpažinimo ploto, jautrumo nustatymai.
Ryšiai su kitais PA: praplečia „Gestų atpažinimas“ PA.
Prieš sąlyga: Įdiegta įrenginio programinė įranga;
Sužadinimo sąlyga: Vartotojas keičia sistemos parametrus
Po-sąlyga: Pasikeičia gestų atpažinimo nustatymai (jautrumas, atpažinimo plotas, aplinka)
Pagrindinis scenarijus:
R.Sturonas
37
1. Vartotojas pakeičia sistemos nustatymus
Alternatyvūs scenarijai:
1. Vartotojas neišsaugo pakeitimų.
3. PANAUDOJIMO ATVEJIS: Duomenų apdorojimas
Vartotojas/Aktorius: Televizoriaus aplikacija
Aprašas: Apima procesą, kurio metu išsaugomi ir perduodami televizoriui apdoroti duomenys.
Ryšiai su kitais PA: naudoja „Gestų atpažinimas“ ir „Funkcijų vykdymas“ PA.
Prieš sąlyga: Gestų atpažinimo metu užfiksuoti objektai.
Serveris ir televizorius prijungtas prie interneto tinklo.
Sužadinimo sąlyga: Užfiksuoti objektai.
Po-sąlyga: Televizoriaus aplikacija gauna apdorotus duomenis.
Pagrindinis scenarijus:
1. Sensorius perduoda naują įvykį, duomenys perduodami televizoriui.
Alternatyvūs scenarijai:
1. Perduodami netikslus fiksuojamas įvykis.
2. Atsijungia interneto tinklas ir duomenys neperduodami.
4. PANAUDOJIMO ATVEJIS: Funkcijų vykdymas
Vartotojas/Aktorius: Televizoriaus aplikacija
Aprašas: Apima procesą, kurio metu apdorojami gauti atpažįstami nauji įvykiai, atliekamas sąsajos funkcijų vykdymas.
Ryšiai su kitais PA: naudojamas „Duomenų apdorojimas“ PA. Naudoja „Rezultatų atvaizdavimas“ PA.
Prieš sąlyga: Gestų atpažinimo metu užfiksuoti objektai.
Serveris ir televizorius prijungtas prie interneto tinklo.
Sužadinimo sąlyga: Gautas naujas įvykis.
R.Sturonas
38
Po-sąlyga: Televizoriaus aplikacija atlieka numatytas funkcijas.
Pagrindinis scenarijus:
1. Fiksuojamas įvykis, duomenys perduodami televizoriui, vykdoma aplikacijos funkcija.
Alternatyvūs scenarijai:
1. Apdorojamas netikslus fiksuojamas įvykis, atliekama nelaukta funkcija.
2. Atsijungia interneto tinklas ir duomenys neišsaugomi.
5. PANAUDOJIMO ATVEJIS: Rezultatų atvaizdavimas
Vartotojas/Aktorius: Sistemos vartotojas
Aprašas: Apima procesą, kurio metu atliekamos funkcijos keičia sistemos atvaizduojamus duomenis ir jos aplinką.
Ryšiai su kitais PA: naudojamas „Funkcijų vykdymas“ PA.
Prieš sąlyga: Gestų atpažinimo metu užfiksuoti objektai.
Serveris ir televizorius prijungtas prie interneto tinklo.
Sužadinimo sąlyga: Aplikacija apdorojo gautus duomenis ir atlieka numatytas funkcijas.
Po-sąlyga: Vartotojas mato pasikeitusius duomenis.
Pagrindinis scenarijus:
1. Išvedamas vartotojui matomas funkcijų rezultatas.
Alternatyvūs scenarijai:
1. Nefiksuojami jokie objektai todėl jokios funkcijos nevykdomos.
R.Sturonas
39
4.7. Funkciniai reikalavimai ir reikalavimai duomenims
Funkciniai reikalavimai
Lentelė 8. Funkciniai reikalavimai.
Reikalavimas 1 Reikalavimo tipas F1 Panaudojimo atvejis 1Aprašymas: Sistema turi teikti galimybę aptikti objektą vos objektui patekus į sensoriaus
nuskaitymo erdvę.Pagrindimas: Galimybė iškarto nuskaityti objektus užtikrins sistemos efektyvumą ir vartotojo
pasitenkinimąŠaltinis: Sistemos vartotojasTikimo kriterijus: Objektas atpažįstamas iškart vos atsiranda atpažinimo erdvėjeUžsakovo tenkinimas: 2Užsakovo netenkinimas: 4Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 2 Reikalavimo tipas F1 Panaudojimo atvejis 1Aprašymas: Sistema turi teikti galimybę skirtingiems vartotojams naudotis sistema.Pagrindimas: Galimybė iškarto nuskaityti objektus užtikrins sistemos efektyvumą ir vartotojo
pasitenkinimąŠaltinis: Sistemos vartotojasTikimo kriterijus: Naujam vartotojui nereikalinga registracija, vartotojo judesiai iškart atpažįstami.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 4Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 3 Reikalavimo tipas
F1 Panaudojimo atvejis 2
Aprašymas: Sistema turi teikti galimybę keisti sensoriaus erdvės dydį ir jautrumą.Pagrindimas: Svarbu kad vartotojas galėtų nusistatyti sau priimtiną individualią gestų atpažinimo
aplinką.Šaltinis: Sistemos vartotojasTikimo kriterijus: Vartotojas gali keisti jautrumo nustatymus.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės Priklausomybė nuo pirmo panaudos atvejo. Ne visi gestų atpažinimui naudojami
įrengtinai palaiko sensoriaus lauko atpažinimo kitimą.Konfliktai: nėra
R.Sturonas
40
Papildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 4 Reikalavimo tipas
F1 Panaudojimo atvejis 2
Aprašymas: Sistema turi teikti galimybę atstatyti numatytuosius sąsajos nustatymusPagrindimas: Atlikus neteisingus sprendimus ir pamiršus atliktus pakeitimus būtų sunku ieškoti
klaidos rankiniu būdu. Taupant laiką turi būti galimybė atstatyti parametrus.Šaltinis: Sistemos vartotojasTikimo kriterijus: Yra funkcija atstatyti parametrus.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 2Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 5 Reikalavimo tipas
F1 Panaudojimo atvejis 3, 5
Aprašymas: Sistema turi teikti galimybę aplikacijai perduoti skirtingų įrenginių duomenis.Pagrindimas: Įvedimui gali būti naudojama ne tik Leap Motion įrenginys.Šaltinis: Sistemos vartotojasTikimo kriterijus: Vartotojas gali tekstą įvesti Leap Motion įrenginiu, klaviatūra ar pelyte.Užsakovo tenkinimas: 5Užsakovo netenkinimas: 5Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 6 Reikalavimo tipas
F1 Panaudojimo atvejis 3
Aprašymas: Sistema turi teikti galimybę apdoroti skirtingų tipų įvesties duomenisPagrindimas: Įvedami duomenys gali būti:
• Koordinatės• Paspaudimas• Naujo simbolio įvestis
Šaltinis: Sistemos vartotojasTikimo kriterijus: Atliekamos funkcijos atitinka atliktų gestų apdorotas komandas.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
R.Sturonas
41
R.Sturonas
42
Reikalavimas 7 Reikalavimo tipas
F1 Panaudojimo atvejis 4
Aprašymas: Sistema turi teikti galimybę teksto įvedimui naudoti virtualią klaviatūrąPagrindimas: Patogiausias ir greičiausias teksto įvedimas yra naudojant žymeklį, kurio pagalba
spaudomi virtualios klaviatūros klavišai.Šaltinis: Sistemos vartotojasTikimo kriterijus: Virtuali klaviatūra veikia, atpažįsta vartotojo pasirinkimus ir atvaizduoja vedamą
tekstą.Užsakovo tenkinimas: 3Užsakovo netenkinimas: 5Priklausomybės Priklausomybė nuo 3panaudos atvejo. Pakitus duomenų apdorojimo algoritmui,
pakis teksto įvedimo tikslumas ir greitis.Konfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 8 Reikalavimo tipas
F1 Panaudojimo atvejis 4
Aprašymas: Sistema turi teikti galimybę priartinti virtualios klaviatūros vaizdą arba sumažinti nuokrypio jautrumą paspaudimo metu.
Pagrindimas: Dažniausia klaidų atsiradimo priežastis- nuokrypis paspaudimo metu, todėl reikia realizuoti funkciją sumažinančią šio nuokrypio galimybę.
Šaltinis:Tikimo kriterijus: Įvedimo metu vartotojas gali matyti padidintą klaviatūros vaizdą arba paspaudimo
metu sumažėjusi žymeklio jautrumą.Užsakovo tenkinimas: 4Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 9 Reikalavimo tipas
F1 Panaudojimo atvejis 5
Aprašymas: Rezultat7 atvaizdavimas ir gestų atpažinimas turi būti atliekami tuo pačiu metu.Pagrindimas: Tokiu būdu sistema veiks greitai ir efektyviai.Šaltinis: Sistemos vartotojasTikimo kriterijus: Galima keisti objekto koordinates ir tuo pačiu metu matyti rezultatusUžsakovo tenkinimas: 5Užsakovo netenkinimas: 5Priklausomybės Priklausomybė nuo 1, 3 ir 4 PA. Svarbus sistemos etapas gestų atpažinimo
duomenų apdorojimas, jo sparta. Neįvertinus duomenų apdorojimo spartos bus matomas ryškus atliekamų funkcijų ir jų rezultatų nesutapimas.
Konfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
R.Sturonas
43
Reikalavimas 10 Reikalavimo tipas
F1 Panaudojimo atvejis 5
Aprašymas: Turi būti matomi išsaugomi vartotojo pasirinkimai, galimybė vartotojui keisti rezultatus.
Pagrindimas: Vartotojas gali rašyti trinti ir matyti tekstą televizoriaus aplikacijoje.Šaltinis:Tikimo kriterijus: Vartotojas mato vedamą ir trinamą tekstą.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 5Priklausomybės Priklausomybė nuo 3 PA. Nuo duomenų apdorojimo algoritmo gali skirtis
matomas rezultatas.Konfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimai duomenims
Duomenys turi būti perduodami 10-100 kadrų per sekunde greičiu. Priklausomai nuo įvykio tipo (paspaudimas, pajudėjimas ar kt.) bus nuskaitomi kiti įvykio duomenys (pvz. koordinatės), fiksuojamas įvykio laikas.
4.8. Nefunkciniai reikalavimai
Nusako sistemos savybes, kuriomis ji turi pasižymėti. Tai kokybinės funkciniuose reikalavimuose numatytų funkcijų vykdymo charakteristikos.
Reikalavimai sistemos išvaizdai
Lentelė 9. Reikalavimai sistemos išvaizdai
Reikalavimas 1 Reikalavimo tipas NF1 Panaudojimo atvejis 2, 5Aprašymas: Informatyvi, bet neperkrauta ir lengvai skaitoma sąsajaPagrindimas: Sistema gali naudotis nepatyrę kompiuterių vartotojai, jiems bus sunku atskirti
svarbią informaciją.Šaltinis: Sistemos vartotojasTikimo kriterijus: Naujas vartotojas lengvai orientuojasi sąsajoje.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 5Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
R.Sturonas
44
Reikalavimai panaudojamumui.
Lentelė 10. Reikalavimai panaudojamumui.
Reikalavimas 2 Reikalavimo tipas NF1 Panaudojimo atvejis 1, 5Aprašymas: Galimybė dirbti viena arba dviem rankomis;Pagrindimas: Vartotojas greičiau atliks teksto įvedimą dvejomis rankomis.Šaltinis: Sistemos vartotojasTikimo kriterijus: Nuskaitomi visi 10 vartotojo rankos pirštų vienu metu.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 3 Reikalavimo tipas NF1 Panaudojimo atvejis 1, 2, 5Aprašymas: Sistema gali būti naudojama bet kokio asmens be apsimokymo;Pagrindimas: Vartotojo apmokymai neatims daug laiko.Šaltinis: Sistemos vartotojasTikimo kriterijus: 70% sėkmingas pasinaudojimas pirmu bandymuUžsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimai vykdymo charakteristikoms
Lentelė 11. Reikalavimai vykdymo charakteristikoms
Reikalavimas 4 Reikalavimo tipas NF1 Panaudojimo atvejis 1, 3, 5Aprašymas: Gestų atpažinimas be įvykių vėlavimo;Pagrindimas: Labai sunku atlikti tikslumo reikalaujančius darbus, kada žymeklis atsilieka nuo
judesių.Šaltinis: Sistemos vartotojasTikimo kriterijus: Vartotojas nepastebi vėlavimų judesių atvaizdavime.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
R.Sturonas
45
Reikalavimai veikimo sąlygoms
Lentelė 12. Reikalavimai veikimo sąlygoms
Reikalavimas 5 Reikalavimo tipas NF1 Panaudojimo atvejis 3Aprašymas: Galimybė sistemą naudotis prie įvairaus apšvietimoPagrindimas: Vartotojai dažnai naudojasi kompiuteriu vakare ar nepakankamai apšviestuose
patalpose todėl būtina užtikrinti, kad tamsa neapribotų sistemos.Šaltinis: Sistemos vartotojasTikimo kriterijus: Vartotojas turi nejausti sistemos apribojimų net ir prietemoje.Užsakovo tenkinimas: 2Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 6 Reikalavimo tipas NF1 Panaudojimo atvejis 2Aprašymas: Sistema turi teikti galimybę lengvai keisti gestų atpažinimo įrenginio vietą .Pagrindimas: Nekilnojama gestų atpažinimo erdvė apribotų vartotojų laisvę.Šaltinis: Sistemos vartotojasTikimo kriterijus: Sistemą galima naudoti nepriklausomai nuo vaizdą transliuojančio įrenginio vietos.Užsakovo tenkinimas: 3Užsakovo netenkinimas: 4Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 7 Reikalavimo tipas
NF1 Panaudojimo atvejis 1
Aprašymas: Sistema turi teikti galimybę naudoti skirtingus įvesties įrenginius.Pagrindimas: Svarbu, kad vartotojas nebūtų apribotas naudoti vienintelį įrenginįŠaltinis: Sistemos vartotojasTikimo kriterijus: Vartotojas gali pasirinkti bent 3 įvesties įrenginiusUžsakovo tenkinimas: 2Užsakovo netenkinimas: 5Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimas 8 Reikalavimo tipas
NF1 Panaudojimo atvejis 1
Aprašymas: Sistema turi teikti galimybę atpažinti vartotoją su pirštinėmis, galimybė naudoti netikrą ranką ar rodomąją lazdelę (pieštuką, tušiuką ar kt.).
Pagrindimas: Vartotojas gali turėti netikrą ranką arba naudoti pakaitalus pirštams, todėl būtina
R.Sturonas
46
atpažinti ir tokius objektus.Šaltinis: Sistemos vartotojasTikimo kriterijus: Aptinkama rodomoji lazdelėUžsakovo tenkinimas: 1Užsakovo netenkinimas: 3Priklausomybės nėraKonfliktai: nėraPapildoma medžiaga:Užregistruotas: 2014 vasario 20d.
Reikalavimai sistemos priežiūrai
Sistema naudos duomenų bazę, todėl bus reikalingas veikiantis serveris ir interneto tinklas.
Reikalavimai saugumui: Reikalavimų nėra
Kultūriniai-politiniai reikalavimai: Reikalavimų nėra
Teisiniai reikalavimai
ISO 9241-11 sertifikato reikalavimų laikymasis.
4.9. Projekto išeiga
Atviri klausimai, problemos.
Planuojami teksto įvesties optimizacijos darbai gali įtakoti sąsajos sudėtingumą, jos kūrimo trukmę. Galutinis sprendimas, kaip sąsaja bus optimizuota bus žinomas tik išbandžius skirtingus optimizacijos būdus.
Pagaminti komponentai, kurie gali būti panaudoti
Leap Motion gestų atpažinimo kontroleris.
Galimas pakartotinas panaudojimas
Kitos organizacija plėtoja virtualią Leap Motion klaviatūrą. Galima būtų perimti dalį programos kodo. Jeigu kodas būtų pigesnis už kūrimo sąnaudas, tai sumažintų sistemos kūrimo išlaidas.
4.10. Naujos problemos
Problemos diegimo aplinkai: Nėra
Įtaka jau instaliuotoms sistemoms:Nėra
R.Sturonas
47
Neigiamas vartotojų nusiteikimas:
Galima neigiama vartotojo reakcija:
Nesupratimas. Naujovių nepripažinimas. Diskomfortas.
Priemonės sumažinti neigiamą reakciją.
Sąsajos tobulinimas. Programos naudojimo aprašo praplėtimas. Apmokymai. Nustatymų keitimai.
Kliudantys diegimo aplinkos apribojimai
Dabartinė sistema neturi serverio, kuriame būtų galima saugoti įvesties duomenis.
Galimos naujos sistemos sukeltos problemos
Pradiniame sistemos kūrimo etape naudosime tik vieną įvesties įrenginį ir vieną televizorių, tad negalėsime apdoroti skirtingų televizorių vienu metu. Toliau sistema gali būti plėtojama.
4.11. Sistemos pateikimo žingsniai (etapai)
Lentelė 13. Sistemos pateikimo žingsniai
Nr. Darbas Įvykdymo terminas1 Reikalavimų specifikavimas 2014m. kovo 10 d.2 Architektūros projekto specifikavimas 2014m. balabdžio 15 d.3 Detalios architektūros specifikacija 2014m. gegužės 20 d.4 Programinės įrangos prototipo realizacija 2014m. lapkrižio 1 d.5 Programinės įrangos galutinio varianto
realizacija2014m.gruodžio 13 d.
6 Pilnos dokumentacijos pateikimas 2015m. sausio 5 d.
Vystymo etapai
Lentelė 14. Vystymo etapai
Nr. Etapas Planuojamas įvykdymo terminas1 Vartotojo sąsajos kūrimas 2014m. birželio mėn.2 Duomenų nuskaitymo algoritmo kūrimas 2014m. liepos mėn.3 Duomenų apdorojimo algoritmo kūrimas 2014m. rugpjūčio mėn.4 Integracija į televizoriaus aplikaciją 2014m. rugsėjo mėn.5 Testų atlikimas 2014m. spalio mėn.6 Funkcionalumo vertinimas 2014m. lapkričio mėn.7 Testavimas ir optimizavimas. 2014m. gruodžio mėn.
R.Sturonas
48
4.12. Galimos sistemos kūrimo rizikos
Lentelė 15. Galimos sistemos kūrimo rizikos
Nr. Rizika Planuojamas įvykdymo terminas1 Reikalavimų pasikeitimas 50%2 Vykdytojų patirties trūkumas 40%3 Žmogiškieji faktoriai 20%4 Išlaidų padidėjimas 30%
Atsitiktinumų (rizikos) valdymo planas
Lentelė 16. Atsitiktinumų (rizikos) valdymo planas
Nr. Rizika Rizikos mažinimas1 Reikalavimų pasikeitimas. Stengiamasi apsibrėžti visus vartotojų reikalavimus ir atkreipti
dėmesį į dažniausiai projektuose besikeičiančius reikalavimus.2 Vykdytojų patirties trūkumas. Išankstinis pasiruošimas ir konsultacijos su srities specialistais gali
sumažinti patirties trūkumą3 Žmogiškieji faktoriai. Kiekvienam darbui paskiriamas laiko rezervas nelaimingų atsitikimų
atveju.4 Išlaidų padidėjimas Reikiamų resursų pirkimas prieš projekto realizaciją sumažina
išlaidų padidėjimo tikimybę.
Realizacijos kaina
Atsižvelgiant į kuriamos sistemos elementus:
• įvedamų/išvedamų srautų skaičius,• veiklos įvykių skaičius,• panaudojimo atvejų skaičius,• funkcinių reikalavimų skaičius,• nefunkcinių reikalavimų skaičius,• apribojimų reikalavimams skaičius,
jų realizacijos sudėtingumą bei realizacijos trukmę, buvo apskaičiuota tokios sistemos kūrimo kaina. 16000Lt. Tačiau sistema kuriama mokymosi tikslais, skirta magistro baigiamojo darbo tyrimui, todėl kuriama nemokamai,
Perspektyviniai reikalavimai
Sekančios versijos gali turėti šias funkcijas: Kelių įrenginių valdymą vienu metu, Vartotojų ir jų įrenginių registravimo ir prisijungimo realizaciją.
R.Sturonas
49
5. ARCHITEKTŪROS SPECIFIKACIJA
Skyriuje pateikiamas išsamus architektūrinis, kuriamos sistemos, vaizdas. Į architektūros
specifikaciją įeina keletas skirtingų architektūrinių vaizdų, kurie detalizuoja svarbiausius kuriamos
sistemos elementus, jų būsenas bei sąryšį tarp jų ir sistemos naudotojų. Dokumentas naudojamas
kaip gairės projekto realizacijai ir realizuojamos sistemos architektūriniams sprendimams.
Dokumentas yra ir komunikavimo tarp skirtingų komandos narių elementas užtikrinantis bendrą
siekiamą rezultatą ir tikslingą komandinį darbą.
Pasinaudojus architektūros specifikacija vėliau bus sudaromas detalus architektūros planas. Ši
specifikacija bus naudinga rašant sistemos kodą.
5.1. Apžvalga
Skyriuje aprašoma televizoriaus įvesties aplikacijos su gestų atpažinimu programinės įrangos
architektūra. Sistemos nefunkciniai reikalavimai ir apribojimai pateikiami poskyryje „Architektūros
tikslai ir apribojimai“. Pagrindiniai sistemos panaudojimo atvejai pateikiami poskyryje
„Panaudojimo atvejų vaizdas“. Sistemos išskaidymas ir statinę struktūrą pateikta poskyryje
„Sistemos statinis vaizdas“. Sistemos procesai ir jų būsenų pasikeitimai pateikiami poskyryje
„Dinaminis vaizdas“. Sistemos išdėstymas, ir techninė įranga, kurioje bus realizuota sistema,
pateikiama poskyryje „Išdėstymo vaizdas“. Poskyryje „Kokybė“ aprašoma kaip architektūra įtakoja
sistemos išplečiamumą, pernešamumą, patikimumą ir kitus jos parametrus.
Architektūros pateikimas
Panaudojimo atvejų vaizdas (panaudojimo atvejų diagrama).
Sistemos statinis vaizdas (paketų ir klasių diagrama).
Sistemos dinaminis vaizdas (būsenų, veiklos, sekų).
Išdėstymo vaizdas (išdėstymo diagrama). Duomenų vaizdas (ER diagrama).
R.Sturonas
50
Architektūros tikslai ir apribojimai
Architektūrinius sprendimus įtakojantys reikalavimai:
Sistemos turi būti suprojektuota taip, kad ją galima būtų lengva išplėsti ar prijungi
naujus modulius.
Kuriama sistema bus pateikta kaip atviro kodo, nekomercinė programinė įranga.
Sistema turi leisti ja naudotis visiems vartotojams (jei kompiuteris atitinka minimalius
parametrus).
Sudarant sistemos architektūra, turi būti atsižvelgta į būtinas programos vykdymo
charakteristikas, apibrėžtas reikalavimų specifikacijoje
Sistemos realizacijai turi būti naudojamos iš anksto apsibrėžtos technologijos (HTML/js,
php).
5.2. Sistemos statinis vaizdas
Sistema skaidoma į tris pagrindinius paketus:
Kompiuterio programinė įranga, kuri nuskaito sensoriaus parodomus ir pateikia juos serveriui.
Web serveris, kuris atlieka tarpininko vaidmenį tarp TV ir prie kompiuterio prijungtos sąsajos.
Smart tv, kuriame saugomi html/leap.js komponentai. Jie bendrauja su serveriu sensoriaus būsenos išgavimui.
5.3. Sistemos dinaminis vaizdas
14 pav. Sąsajos nustatymai (Sekų diagrama).
Modelyje atvaizduojama kaip „Device“ klasės metodas perduoda „Event“ klasei aktyvaus įrenginio duomenis. Vėliau „Frame“ klasėje atliekami sąsajos nustatymai. Gražinamas pranešimas apie pakeitimus.
R.Sturonas
51
15 pav. Gestų atpažinimas:
Modelyje atvaizduojama kaip „Device“ klasės metodas perduoda „Event“ klasei aktyvaus įrenginio duomenis, O “Leap“ klasė atlieka duomenų apdorojimą. Nustatomi aptikti įvykiai.
16 pav. Duomenų apdorojimas
Modelyje atvaizduojama kaip „Frame“ klasės metodas perduoda „Leap“ klasei laiko momentą kuriuo aptinkamas gestas. Šiame modelyje „Event“ klasė atsakinga už aptiktų gestų atnaujinimą.
R.Sturonas
52
17 pav. Funkcijų vykdymas
Modelyje atvaizduojama kaip „Event“ klasė nuolat atnaujina duomenis. Naujiausi duomenys perduodami „VirtualKeyboard „ klasei, kurios pagalba duomenys patenka į Smart TV programėlę ir joje atlieka atitinkamas funkcijas .
18 pav. Rezultatų atvaizdavimas
Rezultatų atvaizdavimui pasitelkiama „Event“ klasės perduodami duomenys bei Smart TV aplikacijoje atliekamų funkcijų rezultatų grąžinimas vartotojui .
R.Sturonas
53
Sistemos būsenų kaitos diagrama:
19 pav. Sistemos būsenų kaitos diagrama
Būsenų kaitos diagramoje elementas „Atnaujinti duomenų bazę “ nėra būtinas, nes duomenys gali būti perduodami tiesiogiai jų neįrašant į DB.
R.Sturonas
54
Veiklos diagrama
20 pav. Vartotojo veiklos procesas
Jei įrenginys aktyvuotas, įrenginio įvykiai atnaujinami be pertraukos.
Išdėstymo vaizdas
21 pav. Išdėstymo modelis
R.Sturonas
55
Išskirti 3 pagrindiniai sistemos mazgai:
Smart tv (html/js) <=> web server (php) <=> computer(js)
5.4. Sistemos elementų aprašas
Vartotojo kompiuterio minimalūs reikalavimai: nurodyti vartotojo dokumentacijoje.
Smart TV reikalavimai:
Interneto tinklas
Web serverio minimalūs reikalavimai:
Procesorius 2 x 2.4 GHz
Atmintis 1024 MB
Disko vieta 20 GB
Pralaidumas 100 Mbps
Taip sistemai naudojamas įvesties įrenginiai:
Leap motion
Klaviatūra
Pelyte
R.Sturonas
56
Įrenginių ir programinės įrangos pagalba apdorojami gaunami duomenys:
Lentelė 17. Apdorojami gestų duomenys
Objektas Apdorojami duomenysRankos
PozicijaCharakteristikosJudesiai
Pirštai ir įrankiaiPirštų pozicija (galiukų)Kryptis
GestaiCircleSwipeKey TapScreen Tap
JudesiaiScaleRotationTranslationFrameHand
Koordinačių sistemax- koordinatėy- koordinatėz- koordinatė
Mato vienetai:
Atstumas: milimetrai Laikas: mikrosekundės Greitis: milimetrai/s Kampas: radianai
R.Sturonas
57
6. DETALIOS ARCHITEKTŪROS SPECIFIKACIJA
Ši projekto dalis skirta detaliai apibrėžti sistemos architektūrą. Jos tikslas labiau išskaidyti
kiekvieną sistemos paketą, klases bei aprašyti svarbiausius naudojamus metodus. Šis aprašymai gali
būti panaudotas sistemos realizacijos metu , išskiriant sistemos objektų savybes.
Detalios architektūros apraše galima pamatyti bendrą sistemos komponentų vaizdą.
Sekančiame skyriuje aprašomi architektūros apribojimai, aprašomi naudojami komponentai,
įvardyjami sistemos projektavimui naudojami įrankiai. Ketvirtame šio dokumento skyriuje detaliai
aprašomos kiekvieno komponento klasės, svarbiausi klasių metodai, bei įvardyjami naudojami
atributai.
Pagrindiniai sistemos apribojimai
Sistema turi būti projektuojama su galimybę ateityje ją išplėsti.
Architektūra turi užtikrinti kad vartotojas nematytų atvaizduojamų objektų vėlavimo.
Sistema turi leisti naudoti standartinius kompiuterio teksto įvesties įrankius.
Vartotojui turi būti sudarytos sąlygos atšaukti atliktą komandą.
Sistema turi tūrėti neerzinančią grafinę sąsają.
Naudojami komponentai
LeapJS – Leap Motion biblioteka.
R.Sturonas
58
6.1. Sistemos architektūra
22. Pav. Sistemos komponentų diagrama
Naudojant realaus laiko JSON duomenų perdavimą Duomenų bazė nebėra būtinas elementas.
6.1.1. Paketų aprašas
KOMPIUTERINĖS ĮRANGOS PAKETAS
Klasifikacija
Paketas.
Apibrėžimas
Paketas skirtas surinkti Leap Motion ir kitų įrenginių duomenis ir paruoši juos įrašymui į
duomenų bazę.
Atsakomybės
Paketas atsakingas už:
Įrenginio aptikimą.
Gestų ir objektų erdvėje atpažinimą
Duomenų apdorojimą
Apribojimai
Būtina Leap Motion programinė įranga.
Struktūra
Paketo struktūra pateikiama 22. Pav.
Sąveikavimas
Komponentas perduoda duomenis “Web serverio” paketui
R.Sturonas
59
Resursai
Vartotojo kompiuteris. Parametrai nurodyti vartotojo dokumentacijoje
Skaičiavimai
Pasitelkus „Device“ klasę, gaunamos naudojamų įrenginių charakteristikos. Patelkiant klasę
“Gesture” atpažįstamas įvykio tipas.
Sąsaja/eksportas
Sąsaja naudojama perduoti duomenis į web serverį.
WEB SERVISO PAKETAS
Klasifikacija
Paketas.
Apibrėžimas
Paketas skirtas priimti apdorotus duomenis ir perduoti juos Smart TV paketui.
Atsakomybės
Paketas atsakingas už:
Duomenų atnaujinimą
Duomenų atrinkimą.
Apribojimai
Būtinas interneto ryšys tinkle.
Struktūra Paketo struktūra pateikiama 22. Pav.
Sąveikavimas
Paketas sąveikauja su duomenų baze bei su Smart TV paketu, perduoda jam naujausius
duomenis.
Resursai
Serverio parametrai: Procesorius 2 x 2.4 GHz, Atmintis 1024 MB, Disko vieta 20 GB, Pralaidumas 100 Mbps,
Skaičiavimai
Atnaujinama įvykių lentelė. Ajax pagalba duomenys siunčiami Smart TV paketui.
Sąsaja/eksportas
R.Sturonas
60
Sąsaja naudojama perduoti duomenis į išmanujį televizorių bei duomenų bazę.
IŠMANIOJO TV PAKETAS
Klasifikacija
Paketas.
Apibrėžimas
Paketas skirtas priimti siunčiamus duomenis, juos perduoti virtualios klaviatūros valdymui.
Atsakomybės
Paketas atsakingas už:
Duomenų gražinimą iš web serverio.
Duomenų atnaujinimą ir panaudojimą funkcijų vykdymui.
Apribojimai
Televizorius turi turėti internetą ir teksto įvesties programėlę.
StruktūraPaketo struktūra pateikiama 22. Pav.
Sąveikavimas
Paketas sąveikauja su išmaniojo televizoriaus aplikacija bei su web serveriu.
Resursai
Interneto tinklas: Pralaidumas 2Mbps,
Skaičiavimai
Atpažystami įvykiai ir atliekamos atitinkamos funkcijos. Keičiami grafiškai atvaizduojami
rezultatai.
Sąsaja/eksportas
Virtualiai klaviatūrai perduodami atpažinti įvykiai.
R.Sturonas
61
6.2. Klasių detalizacija
Visa kuriama sitema gali būti skaidoma į pateiktas klases.
23. pav. Klasių diagrama
Lentelė 18. Klasės metodų aprašas
COMPUTER SOFTWARE PACKAGEKlasės Metodas AprašasFrame Klasė skirta rankų ir pirštų stebėjimo duomenų
surinkimui, aptiktų objektų kadrą rinkinio sudarymui.Hand() Metodas skirtas nustatyti rankos koordinates.Dump() Gražina JSON-formato aptinkamų objektų duomenis.Finger() Nustato pirštų padėties koordinates.Pointable() Nustato naudotojo judesius.RotationAngle() Nustato pasukimo kampą.RotationAxis() Nustato pasukimo ašį.RotationMatrix() Sudaro reikšmių matricą.Tools() Nustato įrankio koordinates.ToString() Duomenis pakeičia į sistemai suprantamą,
perskaitomą informaciją.Translation() Nustato įvykių perdavimo transleciją.TimeStamp() Nustato įvykio laiką.
Gesture Leap Motion kontrolerio gestų atpažinimo klasės.
R.Sturonas
62
Type() Vartotojo judesių atpažinimo klasė.Gesturedata() Perduoda gestų duomenis.
CircleGesture Skirta atpažinti bei nustatinėti piršto sukimo gestą (šabloną).
GetCircleGesture()KeyTapGesture Skirta atpažinti bei nustatinėti piršto spustelėjimo
gestą (šabloną).GetKeyTapGesture()
ScreenTapGesture Piršto ar objekto „prilietimams“ (neaktyvios lietimo zonos perėjimas į lietimo zoną) skirta klasė.
GetScreenTapGesture()SwipeGesture SwipeGesture klasė atpažįstąs pirštų ir rankų
slankiojimo judesius.GetSwipeGesture()
Hand Rankos atpažinimo klasė, kuri taip pat atpažįsta rankos pasukimą ar pakreipimą.
Fingers() Nustato atskirų pirštų duomenis.Tools() Nustato aktyvų įrankį (nuskaitomą objektą).Pitch() Nustato objekto nuolydumą.
Pointable Skirta gauti aptikto objekto charakteristikasInvalid() Tikrina ar egzistuoja tinkamos reikšmės.Hand() Tikrina dėlto charakteristikas.ToString() Duomenis sutvarko į suprantamą informaciją
Finger Klasė skirta apdoroti pirštų duomenis.GetFinger() Nustato pirštų koordinates.
Device Skirta gauti aptikto įrenginio charakteristikasActiveDevice() Tikrina ar yra aktyvių įrenginių. Gražina id.
Controller Skirta aktyvuoti duomenų perdavmąConnect() Prisijungia įrenginįDisConnected() Atjungia įrenginį.Connected() Patvirtina apie įrenginio prisijungimą.Frame() Nustato kadrų greitį.Streaming() Aktyvuoja duomenų rinkimą.
InteractionBox Skirta keisti objektų aptikimo zonos parametrusDenormalizePoint() Paverčia gestų koordinates į milimetrus.NormalizePoint() Koordinates iš Leap Motion įrenginio apriboja rėžeis.ToString() Duomenis sutvarko į suprantamą informaciją
WEB SERVER PACKAGEEvent Klasė skirta saugoti įvykius
UpdateEvent() Metodas skirtas atnaujinti įvykius.GetEventType() Metodas skirtas atpažinti įvykių tipą.Validate() Metodas skirtas įvykiams tikrinti.GetDeviceData() Skirta gauti įrenginio duomenis
SMART TV PACKAGEVirtualKeyboard Klasė skirta perduoti išmaniojo televizoriaus
aplikacijai įvesties duomenis.NewDeviceEvent() Metodas skirtas aptikti naujus įvykius.GetEvent() Metodas skirtas gauti naujausius įvykių duomenis.
R.Sturonas
63
Klasių diagramoje matomos sąveikos tarp klasių, jų metodai bei kardinalumas
GestureKlasifikacija
Klasė.Apibrėžimas
Skirta atpažinti Leap Motion įvesties gestus.Atsakomybės
Apdoroja iš “Frame” klasės gautus duomenis, atpažįsta koks judesys buvo atliktas. Pagrindinis vaidmuo- šablonų atpažinimas.
Apribojimai Klasė atpažįsta tik sistemoje apsibrėžtus šablonus. Duomenys turi atitikti architektūros
specifikacijoje apsibrėžtus duomenų standartus.Struktūra
Klasė turi du metodus: Type() ir GestureData().Sąveikavimas
Metodo GestureData() pagalba klasė priima iš “Frame” klasės gestų duomenis. Metodas Type() kreipiasi į kitas klases (CircleGesture , KeyTapGesture, ScreenTapGesture , SwipeGesture) ir gražina atpažįstamų šablonų duomenis. Gesture klasė perduoda įvesties duomenis “Event” klasei.
Resursai Klasei reikalinga LeapJS biblioteka skirta apdoroti gestų duomenis. Taip pat reikalinga Leap Motion įrenginio programinė įranga.
SkaičiavimaiSkaičiavimai inicializuojami gavus iš “Frame” klasės apdorotus duomenis.Skaičiavimų metu atliekamas įvykių atpažinimas. Apdorojami tokie atributai:
duration handIds id state type
Po atliktų skaičiavimų duomenys gali būti saugomi kaip konkretus aptikto objekto įvykis. Sąsaja/eksportas
Type() metodas kreipiasi į kitas klases ir gražina įvykio tipą.Išimtys
Įrenginys neperduoda jokių duomenų.
R.Sturonas
64
HAND
Klasifikacija Klasė.
Apibrėžimas Skirta atpažinti rankos judesius.
Atsakomybės Apdoroja iš “Frame” klasės gautus duomenis, atpažįsta kokiu momentu judesys buvo atliktas. Pagrindinis vaidmuo- plaštakos elementų atpažinimas.
Apribojimai Klasė vienu metu gali priimti tik dviejų plaštakų arba vieno įrankio duomenis.
Struktūra Klasė turi tris metodus: Fingers(), Tools(), Pitch()
Sąveikavimas Metodas Fingers() gražina iš “Finger” klasės aptinkamų pirštų duomenis. Metodas Tools() perduoda aptiktų įrankių duomenis “Pointable” klasei.
Resursai Klasei reikalinga LeapJS biblioteka skirta apdoroti gestų duomenis. Taip pat reikalinga Leap Motion įrenginio programinė įranga.
SkaičiavimaiSkaičiavimai inicializuojami gavus iš “Frame” klasės apdorotus duomenis.Skaičiavimų metu atliekamas įvykių atpažinimas. Apdorojami tokie atributai:
direction fingers[] grabStrength id indexFinger middleFinger palmNormal palmPosition palmVelocity palmWidth pinchStrength pinky pointables[] ringFinger sphereCenter thumb timeVisible tools[] type valid
Sąsaja/eksportas Fingers() metodas kreipiasi į „Finger“ klasę, gauna aptikrų pirštų duomenis.
IšimtysObjektas neaptiktas arba aptikta per daug objektų vienu metu.
R.Sturonas
65
FINGER
Klasifikacija Klasė.
Apibrėžimas Skirta atpažinti piršto judesius.
Atsakomybės Apdoroja iš “Hand” klasės gautus duomenis, atpažįsta kokiu momentu ir koks judesys buvo atliktas. Pagrindinis vaidmuo- pirštų judesių aptikimas.
Apribojimai Klasė vienu metu gali priimti tik 10 pirštų duomenis.
Struktūra Klasė turi metodą GetFinger().
Sąveikavimas Metodas GetFinger() perduoda “Pointable” klasei pirštų duomenis, charakteristikas ir siunčia jas „Frame“ klasei.
Resursai Klasei reikalinga LeapJS biblioteka skita apdoroti gestų duomenis. Taip pat reikalinga Leap Motion įrenginio programinė įranga.
SkaičiavimaiSkaičiavimai inicializuojami gavus iš “Frame” klasės apdorotus duomenis.Skaičiavimų metu atliekamas įvykių atpažinimas. Apdorojami tokie atributai:
direction fingers[] grabStrength id indexFinger middleFinger palmNormal palmPosition palmVelocity palmWidth pinchStrength pinky pointables[] ringFinger sphereCenter thumb timeVisible tools[] type valid
Sąsaja/eksportas GetFinger() metodas perduoda gautus duomenis „Frame“ klasei.
IšimtysObjektas neaptiktas arba aptikta per daug objektų vienu metu. Tai gali nutikti jei plaštaka laikoma vertikalei.
R.Sturonas
66
FRAME
Klasifikacija Klasė.
Apibrėžimas Skirta nustatyti atpažįstamų gestų aptikimo laiką ir gestų pasikeitimus.
Atsakomybės Apdoroja iš “Pointable” klasės gautus duomenis, atpažysta kokiu momentu ir koks judesys buvo atliktas. Perduoda „Gesture“ klasei apdorotus judesių duomenis.. Pagrindinis vaidmuo- objektų vietos pakitimo nustatymas esamuoju laiko momentu. Taip ši klasė apdoroja iš „Controler“ ir „InteractionBox“ gaunamus nustatymus.
Apribojimai Klasė vienu metu gali priimti tik dešimties pirštų duomenis.
Struktūra Klasės pagrindiniai metodai: Hands(), Finger(), Tool(), TimeStamp().
Sąveikavimas Metodo Dump() pagalba klasė gauna Leap Motion įrenginio perduodamus duomenis. Metodas ToString() sutvarko apdorotus duomenis. Po to duomenys perduodami „Gesture“ klasei.
Resursai Klasei reikalinga LeapJS biblioteka skirta apdoroti gestų duomenis. Taip pat reikalinga Leap Motion įrenginio programinė įranga.
SkaičiavimaiSkaičiavimai inicializuojami gavus iš įrenginio duomenis.Skaičiavimų metu atliekamas įvykių atpažinimas. Apdorojami tokie atributai:
currentFrameRate fingers[] gestures[] hands[] id interactionBox tools[] valid
Sąsaja/eksportas Klasė perduoda duomenis „Gesture“ klasei.
IšimtysĮrenginys neaktyvuotas, negaunami jokie duomenys.
R.Sturonas
67
POINTABLE
Klasifikacija Klasė.
Apibrėžimas skirta nustatyti aptiktų objektų charakteristikas.
Atsakomybės Apdoroja iš “Hand” ir „Finger“ klasių gautus duomenis, atpažįsta aptiktų objektų formas, ilgius bei kitas charakteristikas. Perduoda „Gesture“ klasei apdorotus judesių duomenis.. Pagrindinis vaidmuo - objektų charakteristikų atpažinimas.
Apribojimai Klasė vienu metu gali apdoroti arba įrankį arba delnus.
Struktūra Klasės metodai: Invalid(), Hand(), ToSting().
Sąveikavimas Metodo Hand() pagalba klasė gauna Leap Motion įrenginio perduodamus delno duomenis. Metodas Invalis() tikrina ar tokios objekto reikšmės gali egzistuoti. Metodas ToString() paruošia duomenis perduoti „Gesture“ klasei.
Resursai Klasei reikalinga LeapJS biblioteka skirta apdoroti gestų duomenis. Taip pat reikalinga Leap Motion įrenginio programinė įranga.
SkaičiavimaiSkaičiavimai inicializuojami gavus iš įrenginio duomenis.Skaičiavimų metu atliekamas objektų charakteristikų atpažinimas. Apdorojami tokie atributai:
direction id length stabilizedTipPosition timeVisible tipPosition tipVelocity valid width
Sąsaja/eksportas Klasė perduoda duomenis „Gesture“ klasei.
IšimtysĮrenginys neaktyvuotas, negaunami jokie duomenys, objektas netinkamas atpažinimui, arba objektų per daug.
R.Sturonas
68
DEVICE
Klasifikacija Klasė.
Apibrėžimas skirta aptikti naudojamus įvesties įrenginius
Atsakomybės Klasė atsakinga už tikslų inicializuoto įvykio įvesties įrankio atpažinimą..
Apribojimai Klasė vienu metu gali aptikti tik vieną įrankį. Klasė aptinka tik šiuos įrenginius: Pelytę,
klaviatūrą, Leap MotionStruktūra
Klasė metodais ActiveDevice() .Sąveikavimas
Klasė sąveikauja su operacinės sistemos įvykiais ir pagal juos atpažįsta aktyvų įrenginį.Resursai
Klasei reikalinga Leap Motion įrenginio programinė įranga skirta gauti įrenginio įvykius.Skaičiavimai
Klasė aptinka įrenginį pagal operacinės sistemos ir Leap Motion įrankio aptinkamus duomenis.
Sąsaja/eksportas Klasė perduoda duomenis „Event“ klasei.
IšimtysĮrenginys neaktyvuota.
EVENT
Klasifikacija Klasė.
Apibrėžimas skirta priimti apdorotus duomenis.
Atsakomybės Apdoroja iš “Gesture” klasės gautus duomenis. Nustato įvykių laiką, bei naudotą įrenginį.
Apribojimai Klasė patalpinta web serveryje todėl reikalingas interneto tinklas.
Struktūra Klasės metodai: UpdateEvent(), GetEventType(), Validate(), GetDeviceData().
Sąveikavimas Metodo GetEventType() pagalba klasė gauna duomenis iš „Gesture“ klasės. Metodo GetDeveiceData() pagalba gaunami įvesties įrenginio duomenys .UpdateEvent() metodo pagalba jie atnaujinami.
Resursai Web serveris, interneto tinklas.
SkaičiavimaiServeryje sugrupuojami duomenys. Duomenys siunčiami į duomenų bazę,
R.Sturonas
69
Sąsaja/eksportas Klasė perduoda duomenis „Gesture“ klasei.
IšimtysNėra interneto tinklo.
VIRTUALKEYBORD
Klasifikacija Klasė.
Apibrėžimas skirta priimti iš serverio gautus duomenis, perduoti juos išmaniojo televizoriaus aplikacijai.
Atsakomybės Atsakinga už naujausių duomenų pateikimą išmaniajam televizoriui.
Apribojimai Klasei reikalingas interneto tinklas.
Struktūra Klasės metodai: NewDeviceEvent(), GetEvent().
Sąveikavimas Metodo GetDeviceEvent() pagalba klasė gauna duomenis iš įvesties įrenginio, duomenys pateikiami televizoriaus aplikacijai. Atliekamos funkcijos. Televizoriaus naudotojas mato atliekamus įvykius.
Resursai Web serveris, interneto tinklas. Aktyvus išmanusis televizorius.
SkaičiavimaiServeryje surinkti duomenys Ajax pagalba perduodami televizoriui.
Sąsaja/eksportas Klasė perduoda duomenis išmaniajam televizoriui.
IšimtysNėra interneto tinklo.
R.Sturonas
70
CONTROLER
Klasifikacija Klasė.
Apibrėžimas Skirta aktyvuoti duomenų perdavimą (duomenų rinkimą „Frame“ klasėje).
Atsakomybės Atsakinga duomenų rinkimo optimizavimą, aktyvavimą ir sustabdymą.
Apribojimai Klasės parametrai gali būti nustatomi rankomis. Pasinaudojus Leap Motion programine įranga.
Struktūra Klasės metodai: Connect(), Connected(), Disconnect(), Frame(), Streaming().
Sąveikavimas Sąveikauja su „Frame“ klase.
Naudojami atributai: connected frameEventName deviceAttached deviceConnected deviceDisconnected deviceRemoved deviceStopped streamingStarted streamingStopped
Resursai Programinė Leap Motion įranga.
SkaičiavimaiAptikus objektus automatiškai pradedamas duomenų perdavimas.
Sąsaja/eksportas Klasė praneša apie aktyvų įrenginį „Frame“ klasei..
IšimtysNėra įrenginio tvarkyklių, Neatnaujintos grafinės plokštės tvarkyklės, procesorius per silpnas atlikti skaičiavimus.
INTERACTIONBOX
Klasifikacija Klasė.
Apibrėžimas skirta nustatyti objekto aptikimo ribas.
Atsakomybės Atsakinga už objektų aptikimo ribų nustatymą, jų keitimą.
Apribojimai Klasė neleidžia nustatyti objektų aptikimo ribų viršijančių įrenginio techninius parametrus.
Struktūra Klasės metodai: DenormalizePoint(), NormalizePoint(), ToString().
Sąveikavimas
R.Sturonas
71
Sąveikauja su „Frame“ klase ir Leap Motion įrenginiu.Naudojami atributai:
center depth height size valid width
Resursai Programinė Leap Motion įranga.
SkaičiavimaiPrograminės įrangos pagalba atliekami objektų aptikimo ploto nustatymų pakeitimai.
Sąsaja/eksportas Klasė praneša apie duomenų apdorojimo pasikeitimus „Frame“ klasei.
IšimtysNėra Leap Motion programinės įrangos.
CircleGesture, KeyTapGesture, ScreenTapGesture, SwipeGestureKlasifikacija
KlasėsApibrėžimas
Skirtos naudoti gestų šablonų aptikimui.Atsakomybės
Atsakingos už objektų judesių duomenų pavertimą į įvykius.Apribojimai
Klasės gali atpažinti tik apsibrėžtus įvykius.Struktūra
Klasių metodai: GetCircleGesture(), GetKeyTapGesture(), GetScreenTapGesture().Sąveikavimas
Sąveikauja su „Gesture“ klase. „Gesture“ klasė yra tėvinė jų klasė.Resursai
Programinė Leap Motion įranga.Skaičiavimai
Programinės įrangos pagalba atliekami gestų šablonų lyginimai ir aptikimai.Sąsaja/eksportas
Klasė praneša apie aptiktą šabloną ir gražiną jo įvykio id.Išimtys
Joks įvykis neaptiktas, arba nerastas joks šablonas.
R.Sturonas
72
7. TESTAVIMO MEDŽIAGA
7.1. Testavimo planas
Skyrius skirtas gestų atpažinimo sistemos su teksto įvedimo funkcija testavimo specifikacijai. Pateikiamas bendras testavimo planas. Plane detalizuojami testavimo procesai, resursai bei objektai naudojami sistemos testavime. Testavimo tikslai ir objektai
Pagrindiniai testavimo tikslai:
Užtikrinti tinkamą sistemos veikimą.
Užtikrinti reikalavimų specifikacijos atitikimą.
Užtikrinti vartotojų reikalavimų atitikimą.
Testavimo metu rastos klaidos ir sistemos neatitikimai bus taisomi. Skyriuje suformuoti testavimo atvejai leis ženkliai sumažinti galimų sistemos klaidų skaičių bei išbandyti sistemos išbaigtumą.
Testavimo apimtis
Komponentų testavimas
Integracijos į bendra sistemą testavimas
Programos veikimas darbinėje aplinkoje
Vartotojo sąsajos testavimas
Saugumo testavimas
Charakteristikų testavimas
Priimtinumo testavimas.
Pagrindiniai apribojimai
Pagrindiniai apribojimai, kurie gali daryti neigimą įtaką testavimo plano vykdymui.
Sunkiai apibrėžiama testų apimtis.
Sunkiai apibrėžiami testavimo elementų užbaigtumo patvirtinimo kriterijai.
Reikalinga specializuota techninė i programinė įranga. Ji detalizuojama testavimo
resursų poskyryje.
R.Sturonas
73
Terminų žodynas
Lentelė 19. Terminų žodynas
Terminas Apibūdinimas
Šabloniniai judesiai Tai judesių kombinacija, kai visi judesiai užskaitomi
kaip vienas įvykis.
Hover zona Gestų atpažinimo zona.
Touch zoną Gestų atpažinimo zona, kai fiksuojamas ir paspaudimas.
Hover ir touch zoną skiria statmuo (į sensorių
nuskaitymo kryptį) nuo gestų atpažinimo įrenginio.
Nuorodos į analizuotus dokumentus
Prieš atliekant sistemos testavimą buvo išanalizuota šios specifikacijos:
Lentelė 20. Specifikacijų nuorodos
Dokumentas Atlikimo data Dokumento autorius
Reikalavimų specifikacija 2014-02-17 Robertas Sturonas
Architektūros specifikacija 2014-04-15 Robertas Sturonas
Detalios architektūros specifikacija 2014-05-16 Robertas Sturonas
Dokumento struktūra
Poskyryje „Testavimo planas“ pateikiami testuojami sistemos elementai, pateikiama testavimo būdas ir priemonės.
Poskyryje „Testavimo procedūra“ įvardijamos atliekamos procedūros: testavimo metodai,
laukiami rezultatai
testavimo duomenų saugojimas
7.2. Testavimo planas
Testavimo plane pateikiamas sistemos analizės procesas naudojamas aptikti skirtumus tarp
egzistuojančių ir reikiamų sistemos sąlygų ir įvertinti programinės įrangos elementų savybes.
R.Sturonas
74
7.2.1. Testuojama programinė įranga
Kuriama vartotojui patogi sistema, leidžianti vartotojui valdyti televizorių naudojantis
Leap Motion gestų atpažinimo kontrolerį.
Sistema turėtų leisti vartotojui greičiau ir patogiau valdyti išmaniojo televizoriaus
teksto įvesties aplikaciją.
Sąsajos
Testuojama vartotojo sąsaja kintanti. Fiksuojamos judančių objektų koordinatės ir galimi
įvykiai. Vartotojo sąsajai įtaką gali daryti aplikacijos aplinkos pasikeitimai, įvesties ir
atvaizdavimo įrenginių techniniai ir duomenų apdorojimo parametrai.
Testuojant sąsajas bus ištestuoti šie sistemos langai:
Pagrindinis langas
Lange rodomas pagrindinių funkcijų pasirinkimas. Iš jo galima patekti į kitus langus.
Nustatymų langas
Lange galima keisti gestų atpažinimo nustatymus . Jame yra pasirenkamų parametrų
nustatymo, standartinių nustatymų atstatymo, nustatymų patvirtinimo ir atšaukimo mygtukai.
Įvykių peržiūros langas
Lange galima stebėti kokius duomenis Leap Motion įrenginys perduoda sistemai ir kokie
duomenys yra perduodami į duomenų bazę .
Aplikacijos prisijungimo langas
Langas skirtas vartotojams prisijungti prie įrenginio. Aktyvavus duomenų perdavimą,
išmanusis televizorius gali būti valdomas Leap Motion įrenginiu.
Teksto įvedimo langas
Lange matomi atliekami gestų atpažinimų įvykiai, virtuali klaviatūra ir vedamas tekstas.
R.Sturonas
75
Testavimo strategija
Šioje dalyje apžvelgiama pasirinktos sistemos testavimo strategijos.
Vienetų testavimas
Atskirų vienetų modulių testavimui bus naudojami funkcinis testavimo metodas.
Funkcinio testavimo metu tikrinama ar testuojamo modelio rezultatai atitinka laukiamus
rezultatus.
Tai pat atliekamas svarbesnių metodų testavimas naudojantis automatiniais įrankiais.
Duomenys parenkami neatsižvelgiant į metodo struktūrą („juoda dėžė“).
Testiniai atvejai sudaromi pagal sistemos specifikaciją.
Integravimo testavimas
Atlikus vienetų testavimą, vienetai yra apjungiami į bendrą sistemą ir testuojama jų
sąveika. Pirmiausiai bus ištestuoti žemiausi duomenų lygio komponentai (metodai), vėliau
sisteminiai moduliai (transakcijos, duomenų saugojimas ir sistemos reagavimas į pakitusius
duomenis) , o pabaigoje vartotojo sąsajos komponentai.
Priėmimo testavimas
Priėmimo testavimas atliekamas pagal „juodos dėžės“ principą užbaigtam produktui.
Sistema testuojama vartotojų aplinkoje, pačių vartotojų. Nurodomi testavimo bei klaidų
registracijos procesai. Planuojama kokių veiksmų bus imtasi konkrečiais atvejais.
Aukšto lygio testavimas
Užbaigto, integruoto produkto galutinis testavimas. Produktas bus pateiktas atsitiktiniams
nepriklausomiems testuotojams kartu su vartotojo dokumentacija.
R.Sturonas
76
Testavimo resursai
1. Testavimo komanda (pateikiama „Testavimo resursų paskirstymas“ poskyryje).
2. Techninė įranga:
Vartotojo kompiuterio minimalūs reikalavimai:
Windows 7 arba 8 arba Mac OS X 10.7
AMD Phenom II ar Intel Core i3, i5, i7 procesorius
2 GB RAM
USB 2.0 lizdas
Interneto tinklas
Išmaniojo TV reikalavimai:
Interneto tinklas
Web serverio minimalūs reikalavimai:
Procesorius 2 x 2.4 GHz
Atmintis 1024 MB
Disko vieta 20 GB
Pralaidumas 100 Mbps
Testavimo rezultatai
Testavimo rezultatai bus kaupiami MS Excel formatu. Daugiau informacijos apie testavimo
rezultatų kaupimą šio skyriaus poskyryje „Testavimo rezultatų kaupimas“.
Testavimo įrankiai ir aplinka
Vienetų testavimui bus naudojama Qunit programinė įranga.
Vartotojų sąsajos testavimui naudojamas Selenium.
R.Sturonas
77
Testavimo tvarkaraštis
Lentelė 21. Testavimo tvarkaraštis
Užduotis Terminas
Projekto testo planas 2014.10.01
Vienetų testavimas 2014.11.05
Integravimo testavimas 2014.11.07
Vartotojų sąsajos testavimas 2014.11.10
Priėmimo testavimas 2014.11.12
Testavimo ataskaita 2014.11.15
7.2.2. Testavimo procedūra
Poskyryje pateikiamos naudojamos testavimo procedūros: naudojami testavimo metodai, numatomi
laukiami rezultatai ir rezultatų saugojimas.
Testuojama programinė įranga
Gestų atpažinimo programinė įranga skirta teksto įvedimui išmaniuosiuose Samsung
televizoriuose.
Testavimo procedūros
Skyriuje pateikiamos procedūros, kurios bus naudojamos atliekant sukurtos sistemos
testavimą.
Vienetų testavimas
Prisijungimo langas
o Prisijungimo duomenų patvirtinimas.
Tikriname ar galimas prisijungimas prie įrenginio, pranešama įvykusias
klaidas.
o Prisijungimas prie sistemos.
Tikriname ar suvedus tinkamus duomenis ir juos patvirtinus atsidaro
pagrindinis programos langas.
R.Sturonas
78
Pagrindinis langas
o Meniu veikimas
Pasirenkami skirtingi meniu punktai. Tikriname ar tinkamai veikai sistemos
navigacija per skirtingus langus.
o Išjungimas
Išjungiame sistemą. Tikriname ar tinkamai sustabdomi duomenų perdavimo
procesai, ar užsidaro visi sistemos langai.
Nustatymų langas
o Pradinių parametrų keitimas.
Pakeičiame pradinius parametrus. Tikriname ar pasikeičia sistemos veikimas,
ar sistema veikia kaip buvo numatyta.
o Pradinių parametrų atstatymas.
Atstatome pradinius parametrus. Tikriname ar visi sistemos parametrai buvo
atstatyti, ar nesutriko sistemos veikimas.
Įvykių peržiūros langas
o Koordinatės
Į sensorių aptinkamą zoną įkišama rankos. Tikriname ar aptinkama visų 10
pirštų ir abiejų delnų koordinatės.
o Įvykių aptikimas
Iš „hover“ zonos pereiname į „touch“ zoną. Tikriname ar fiksuojamas
paspaudimas.
Atliekami standartiniai Leap Motion šabloniniai judesiai. Tikriname ar visi
(koks procentas) judesiai atpažįstami.
Aplikacijos prisijungimo langas
o Prisijungimo aktyvacija.
Tikrinama ar prisijungus aktyvuojamas duomenų perdavimas iš Leap Motion
įrenginio.
R.Sturonas
79
Teksto įvedimo langas
o Sistemos charakteristikų testavimas
Sensorių zonoje judinamos rankos ir piršai. Tikrinama ar judesiai nevėluoja,
ar nėra trikdžių ar ne sutapimų su perduodamais duomenimis.
o Įvykių aptikimas
Iš „hover“ zonos pereiname į „touch“ zoną. Tikriname ar fiksuojamas
paspaudimas.
Atliekami standartiniai Leap Motion šabloniniai judesiai. Tikriname ar visi
(koks procentas) judesiai atpažįstami.
o Teksto įvedimas
Spaudžiame virtualios klaviatūros klavišus. Tikriname ar užfiksuojami
virtualios klaviatūros paspaudimai. Tikriname ar atvaizduojamas vedamas
tekstas.
Integravimo testavimas
Vienetai yra apjungiami į bendrą sistemą ir testuojama jų sąveika. Integracinis testavimas
pradedamas nuo žemiausio lygio komponentų. Ištestavus žemesnį lygį pereinama prie
aukštesnio, kol galiausiai ištestuojama didžiausių sistemos komponentų tarpusavio sąveika.
Priėmimo testavimas
Sistema testuojama kartu su vartotojais. Vartotojai apmokomi ir supažindinami su
vartotojo sąsaja ir sistemos funkcionalumu. Atliekama vartotojų poreikių atitikimo peržiūra.
Aptikus vartotojo poreikių ir sistemos realizacijos neatitikimas, bus registruojamas naujas arba
koreguojamas esamas sistemos pakeitimas
Jei specifikacijoje nebus rastas vartotojo išreikštas poreikis sistemos pakeitimui, bus
registruojamas papildomas sistemos patobulinimas, kuris bus įgyvendintas sekančioje sistemos
versijoje. Jei pakeitimas yra būtinas tinkamam sistemos veikimui, pakeitimas atliekamas
esamai sistemos versijai.
R.Sturonas
80
Pagrindinės vartotojų testuojamos sistemos funkcijos.
Įrenginio atpažinimas ir aktyvavimas.
Objektų ir judesių aptikimas gestų atpažinimo zonoje.
Judesių sekimas.
Šablonais pagrįstas sekimas.
Duomenų perdavimas.
Aukšto lygio testavimas
Užbaigto, integruoto produkto galutinis testavimas. Produktas pateikiamas
nepriklausomiems testuotojams (SmartTV naudotojams). Testuotojai apie pastebėtas klaidas
informuoja testavimo vadovą. Gauti rezultatai fiksuojami ir dokumentuojami. Planuojami
pakeitimai ir pakartotiniai sistemos testavimo atvejis.
7.2.3. Testavimo resursų paskirstymas
Reikalingi testavimo resursai aprašyti skyriuje „ Testavimo resursai”. Už skirtingas
testavimo procesus atsakingi skirtingi asmenys.
Testavimo vadovas – atsakingas už testavimo planus ir sėkmingą jų vykdymą.
Testuotojas – atsakingas už testų vykdymą pagal sudarytą planą. Jis tiesiogiai naudos
testavimo resursus ir dokumentuos rezultatus.
Projekto vadovas – užtikrina, kad testai yra įvykdyti sėkmingai ir tenkina klientų (sistemos
naudotojų) lūkesčius.
Šiame projekte už visus darbus yra atsakingas projekto autorius.
R.Sturonas
81
7.2.4. Testavimo rezultatų kaupimas
Saugomi duomenys:
• Atliktų užduočių aprašas,
• Testų tvarkaraštis,
• Laukiami Rezultatai,
• Gauti rezultatai,
• Atsakomybės už testus (asmenys).
Excel lango pavyzdys:
7.3. Testavimo rezultatai ir išvados
Testo nr. Data Aprašas Laukiami rezultatai Gauti rezultatai Atsakingas asmuo1 11/5/2014 Prijungiamas Leap Motion įrenginys Aktyvuojasi duomenų perdavimas Aktyvuojasi duomenų perdavimas Robertas2 11/6/2014 Pakeičiami parametrų duomeys Padidėja įrenginio jautrumas, atstumas Padidėja įrenginio jautrumas, atstumas Robertas3 11/7/2014 Atliekami gestų šablonai. Aptinkami gestai Aptinkami gestai Robertas4 11/8/2014 Leap Motion atjungiamas Duomenys nustoja atsinaujinti Duomenys nustoja atsinaujinti Robertas5 11/9/2014 Pirštu pajudinamas žymeklis Žymeklis pakeičia poziciją Žymeklis pakeičia poziciją Robertas6 11/10/2014 Paspaudžiamas meniu mygtukas Išsiskleidžia meniu Išsiskleidžia meniu Robertas7 11/11/2014 Darkart paspaudžiamas meniu mygtukas Susiskleidžia meniu Susiskleidžia meniu Robertas8 11/12/2014 Pakeičiam aktyvaus meniu elementą Pažymimas sekantis aktyvus elementas Pažymimas sekantis aktyvus elementas Robertas
9 11/13/2014Palaikome ant virtualios klaviatūros mygtuko žymeklį Aktyvuojasi paspaudimas, parašomas tekstas Aktyvuojasi paspaudimas, parašomas tekstas Robertas
10 11/14/2014Bandome pakeisti neaktyvaus meniu elementą. Meniu elementas nepasikeičia Meniu elementas nepasikeičia Robertas
11 11/15/2014Žymeklį judiname pirštu, tušinuku, lazdele Leap Motion aptinka gestus Leap Motion aptinka gestus Robertas
12 11/15/2014Tikriname naujai atidaryto puslapio meniu statusą Neaktyvus Neaktyvus Robertas
24. pav. Rezultatų langas
Atlikti sukurtos sistemos testai buvo teigiami, buvo gauti laukiami rezultatai, todėl galima teikti, kad testuotos funkcijos veikia.
QUnit ir Selenium įrankių panaudojimas buvo geras pasirinkimas, nes įrankiai leido išanalizuoti ne tik kodo turinį, bet ir grafinę sąsają.
Pasirinkti įrankiai neleidžia ištestuoti viso programinio kodo bei negali imituoti gestų judesių, todėl sistema negali būti pilnai automatiškai ištestuota. Reikalingas rankinis testavimas.
Sistema atpažysta gestus, tačiau gana dažnai juos sumaišo, todėl reikia gerinti gestų atpažinimą.
R.Sturonas
82
8. VARTOTOJO DOKUMENTACIJA
8.1. Vartotojo dokumentacija ir apmokymas
Pateikiamas vartotojui reikalingos dokumentacijos elementų sąrašas:
Techninės ir programinės įrangos reikalavimai Diegimas Sąsajos aprašas Veiksmų aprašas Panaudojimo scenarijus
Kiekvienas vartotojas naudodamas jau paruoštą vartotojų dokumentaciją apsimokys individualiai. Dokumentacijos rengime vartotojas nedalyvaus, tačiau dokumentacija bus kuriama pagal vartotojo užduodamus klausimus. Už dokumentacijos plano rengimą atsakingas projekto autorius. Dokumentacija pateikiama tekstine ir grafine forma.
Paskirtis
Sukurtas gestais valdomas kompiuterinis žaidimas ir vartotojo sąsaja leidžianti naudotis gestų atpažinimo programinę įrangą kompiuterio valdymui. Sąsaja skirta inovacijų gerbėjams.
Sistemos funkcinis aprašas
Programinės įrangos teikiamos funkcijos.
Gestų atpažinimas. Duomenų apdorojimas. Žaidimo valdymas. Rezultatų atvaizdavimas. Natūralios valdymo sąsajos panaudojimas kompiuterio valdymui. Teksto įvedimas naudojant gestų atpažinimą.
R.Sturonas
83
8.2. Veikimo zona.
Aktyvi ir lietimo zonos:
Aktyvi zona Lietimo zona
25. pav. Aktyvi sensoriaus lietimo zona.
8.3. Vartotojo vadovas
Pateikiami pagrindiniai scenarijai reikalingi naudoti sukurtą gestų atpažinimo funkcionalumą.
8.3.1. Sąsajos realizacija.
Vartotojas turi galimybę valdyti meniu ir jo elementus rankos judesiais .
1) Funkcija: Meniu aktyvavimas
Pradinė meniu būsena įjungus programą.
Atliekamas piršto sukimo gestas:
R.Sturonas
84
Meniu išsiskleidžia (aktyvus meniu)
(Pakartotinis gestas vėl meniu padarys neaktyvų)
2) Funkcija: Meniu elementų pasirinktis
Esant aktyviam meniu (Aktyvus NAMAI meniu elementas)
Atliekamas rankos mosto gestas
R.Sturonas
85
Pasikeičia aktyvus meniu (iš NAMAI -> VIDEO)
3) Funkcija: Teksto įvestis
Pasinaudojus virtualia klaviatūra įvedamas norimas tekstas
26. pav. Virtuali klaviatūra.
R.Sturonas
86
Veikimas:
1) Privedame žymeklį prie klaviatūros mygtuko, 2) Palaikome ant norimo elemento kol bus įvestas norimas simbolis3) Jei įvestas ne tas simbolis, jį galime ištrinti pasinaudojus „delete“ mygtuku.
Lentelė 22. Virtualios klaviatūros mygtuko būsenos
Mygtuko būsenos
Neaktyvus mygtukas
Aktyvus mygtukas
8.3.2. Žaidimo realizacija
Žaidimo grafiniai komponentai:
Lentelė 23. Apdorojami žaidimo duomenys
Komponentas Išvaizda
Ginklai:
Erdvėlaiviai:
Priešų erdvėlaiviai:
Sprogimai ir kulkos:
Žaidimo žemėlapiai
R.Sturonas
87
Žymeklis (taikinys)
8.4. Sistemos diegimo instrukcijos ir papildomi reikalavimai naudojimui
Diegimo etapai:
27. pav. Diegimo etapai
Leap motion tvarkyklės diegimas Leap motion programinės įrangos diegimas: Nuoroda
Reikalavimai naudojimui:
Turi būti prijungtas ir aktyvuotas Leap Motion controleris. Žaidimo paleidimo kataloge turi būti Leap.dll bei LeapGM.dll failai.
Naudotojas turi laikyti licencijos sutarties [1 priedas].
Reikalavimai diegimo aplinkai:
Vartotojo kompiuterio minimalūs reikalavimai:
Windows® 7 or 8 or Mac® OS X 10.7 AMD Phenom™ II ar Intel® Core™ i3, i5, i7 procesorius 2 GB RAM USB 2.0 lizdas.
R.Sturonas
88
8.5. Galimos problemos ir jų sprendimai
Neaptinka naudotojo gestų.
a. Neprijungtas Leap Motion įrenginysb. Neveikia kompiuterio USB įrenginysc. Neįrašyti gestu atpažinimo įrenginio valdikliai.d. Neįrašyta Leap Motion programinė įrangae. Kompiuteris turi dinaminį IP (pasinaudojus maršrutizatoriaus parametrais reiktų jį
padaryti statiniu).f. Įrenginys padėtas netinkamoje vietoje, arba naudotojo rankos ir gestai yra
neaktyvioje sensorių zonoje.g. Įrenginys apsuktas arba apverstas.h. Įrenginys arba duomenų perdavimo kabelis yra sugadinti.i. Faile esančiame: C:\Users\mano\AppData\Roaming\Leap Motion\config.json nėra
aktyvuotas Json duomenų perdavimas.
Failo struktūra turėtų atrodyti taip:{ "configuration": { "background_app_mode": 2, "low_resource_mode_enabled": true,
"websockets_allow_remote": true, "websockets_enabled": true }}
Gestų atpažinimas stringa arba veikia lėtai.
j. Blogas interneto ryšys arba jo visai nėrak. Įrenginio sensoriai išteplioti (reikia nuvalyti)l. Daug programų naudoja interneto srautą, arba įjungtas informacijos persiuntimas
stabdo įrenginį (reiktų suvaldyti kompiuterio ir interneto resursus)m. Kompiuteris neatitinka minimaliu programinės įrangos resursų reikalavimų.n. Įrenginys padėtas apsuktas.
R.Sturonas
89
9. PAKEITIMŲ SĄRAŠAS.
Lentelė 24. Apdorojami žaidimo duomenys
Skyrius Pakeitimai
Projekto paraiška Pašalintas informacijos pasikartojimas
Projektavimo metodologijos ir technologijų analizė
Papildyta projektavimo metodologijų apžvalga.
Projekto planas Atnaujintas projekto planas
Reikalavimų specifikavimas Kadangi realizuoto produkto duomenys įrenginiams perduodami tiesiogiai JSON pagalba panaikintas DB aprašas ir reikalavimai duomen7 bazei .
Architektūros specifikacija Panaikintas ER modelis. (DB nebeegzistuoja). Atnaujinta klasių diagrama.
Detalios architektūros specifikacija Panaikintas duomenų perdavimo aprašas (nebenaudojamas duomenų įrašymą į DB)
Testavimo medžiaga Pridėta testavimo rezultatai ir išvados.
Vartotojo dokumentacija Dėl informacijos pasikartojimo ištrintas apdorojamų duomenų aprašas.
R.Sturonas
90
10. KOKYBĖS VERTINIMO ATASKAITA
10.1. Kokybės užtikrinimas
Projekto realizacija turi būti valdoma visą jo realizacijos laiką. Todėl būtinas tinkamas
kokybės vertinimas. Taip pat, svarbu užtikrinti galutinio produkto kokybę. Norint tai padaryti reikia
išsirinkti tinkamą į paslaugas orientuotą kokybės vertinimo metodą,
Pasinaudosime jau sukurtu James A. McCall, programinės įrangos kokybės vertinimo
modeliu kurį sudaro:
Produkto naudojamumo (korektiškumas, patikimumas, efektyvumas, integralumas, panaudojamumas) vertinimas;
Produkto aptarnavimo (palaikomumas, testuojamumas, lankstumas) vertinimas;
Sistemiškumo faktorių (pernešamumas, pakartotinis panaudojimas, sąveikos galimybės) vertinimas;
Perbraizyti trik
Atlikdami kokybės vertinimą naudosime šimta balę sistemą ir darysime prielaidą, kad kokybė patenkinama jei parametras bus vertinamas aukštesniu nei 70 balu.
R.Sturonas
91
Produkto
naudojamumo
Produkto aptarnavimo
Sistemiškumo faktorių
28 pav. McCall kokybės faktoriai
Lentelė 25. Kokybės vertinimo kriterijai
Kriterijai Vertinimo detalizavimas Paaiškinimas Kaip to siekiama sistemoje Vertinimas
Korektiškumas Reikia įvertinti kiek sistema atitinka jos aprašymą specifikacijoje ir kaip ji pateisina vartotojų lūkesčius
Apima programinės įrangos atitikimą specifikacijai ir vartotojo lūkesčių išpildymą
Detali reikalavimų specifikaciją ir vartotojų pageidaujamų funkcijų išskyrimas užtikrins aukštą sistemos korektiškumą
70
Patikimumas Reikia įvertinti balu tikimybę, kad programinė įranga atliks jai priskirtas užduotis ar priešingai – neatliks jai nepriskirtų funkcijų
Kaip programinė įranga sugeba atlikti jai pavestas ir neatlikti nepavestų funkcijų.
Leap Motion įrenginio panaudojimas leis kuo tiksliau aptikti vartotojo judesius.
70
Efektyvumas Vertinimo balas nustatomas pagal tai, kiek ir kokių kompiuterio resursų reikia programinei įrangai.
Minimalūs kompiuterio resursai programinei įrangai funkcionuoti ir kiek jie panaudojami
Minimalūs sistemos resursai nustatomi naudojant rekomendacijas ir tikslinami periodiškai.
70
Integralumas Įvertinama balais duomenų ir programinės įrangos funkcionalumo dalis, kuria gali pakeisti ar sugadinti neautorizuoti vartotojai.
Apima neautorizuotų vartotojų prieigos kontrolę prie programinės įrangos ir duomenų
Sistema realizuota taip, kad reikšmės yra fiksuotos ir vartotojas neturi galimybių jų keisti (nustatytos ribos).
85
Panaudojamumas Įvertinimo balas nustatomas pagal tai, kiek reikia vartotojui apsimokinti ir įdėti pastangų norint pilnai išnaudoti programinę įrangą
Pastangos reikalingos išmokti naudotis sistema
Sistema realizuojama taip, kad naujas vartotojas apsimoko per minimalų laiko tarpą.
80
Palaikomumas Įvertinama balais kiek reikės pastangų ir laiko atlikti pataisymams veikiančioje sistemoje
Pastangos reikalingos nustatyti ir pataisyti klaidas funkcionuojančioje sistemoje
Detali dokumentacija ir LeapJS panaudojimas projekto realizacijoje užtikrina nesudėtingą palaikomumą
85
Testuojamumas Reikia įvertinti reikalingas laiko sąnaudas pilnam programinės įrangos testavimui ir įrodymui, jog ji veikia taip, kaip yra tikimasi
Pastangos reikalingos ištestuoti programinę įrangą
Sistemos atliekamos funkcijos nesunkiai testuojamos ranka.
85
Lankstumas Reikia nustatyti reikalingas pastangas ir laiko sąnaudas kurių reikėtų norit pakeisti ar papildyti programinės įrangos funkcionalumą
Funkcionuojančios sistemos funkcionalumui pakeisti reikalingos pastangos
html/js naudojimas užtikrins dideles išplečiamumo galimybes.
80
Pernešamumas Vertinimo balas nustatomas pagal tai kiek reikia laiko ir pastangų perketi sistemą iš vienos aparatūrinės konfigūracijos ar platformos į kitą
Pastangų kiekis reikalingas programinę įrangą perkelti iš vienos konfigūracijos ir platformos į kitą
html/js naudojimas užtikrins dideles pernešamumo galimybes.
70
Pakartotinis panaudojamumas
Įvertinimo balas nustatomas pagal galimybę programinę įrangą ar jos dalį panaudoti kuriant ar modifikuojant kitas sistemas
Galimybė panaudoti programinę įrangą ar jos dalį kitose taikomosiose programose
Atskiri sistemos elementai sukurti taip, kad juos nebūtų sunku išskirti, atnaujinti, pakeisti.
90
Sąveikos galimybės Reikia įvertinti balu pastangų ir laiko sąnaudas norint programinę įrangą apjungti su kita
Pastangų kiekis sistemą apjungti su kita sistema
Sistemoje realizuojama duomenų perdavimas per tinklą.
75
R.Sturonas
92
LITERATŪRA1. Leap motion. [interaktyvus] [žiūrėta 2013 m. lapkričio 28 d.]. Prieiga per internetą:
<https://www.leapmotion.com > [1]
2. GameWAVE. [interaktyvus] [žiūrėta 2013 m. lapkričio 28 d.]. Prieiga per
internetą:< https://airspace.leapmotion.com/apps/gamewave/windows> [2]
3. DexType. [interaktyvus] [žiūrėta 2013 m. lapkričio 29 d.]. Prieiga per internetą:
<http://dextype.com> [3]
4. Leap Motion panaudojimas HP produktuose. [interaktyvus] [žiūrėta 2013 m.
lapkričio 30 d.]. Prieiga per internetą: <
http://www8.hp.com/us/en/ads/envy-leap-motion/overview.html> [4]
5. Sony SmartTV. [interaktyvus] [žiūrėta 2013 m. lapkričio 30 d.]. Prieiga per
internetą: < http://www.sony.co.uk/hub/lcd-television/range/smart-tv> [5]
6. PointGrab. [interaktyvus] [žiūrėta 2013 m. lapkričio 28 d.]. Prieiga per internetą:
<http://www.pointgrab.com> [6]
7. Kinect. [interaktyvus] [žiūrėta 2013 m. lapkričio 29 d.]. Prieiga per internetą:
http://www.microsoft.com/en-us/news/features/2010/jun10/06-13kinectintroduced.aspx [7]
8. „Kinect“ įrenginio panaudojimas: nuo žaidimų iki medicinos. [interaktyvus] [žiūrėta
2013 m. gruodžio 1 d.]. Prieiga per internetą: <http://ktu.lt/if/naujienos/„kinect“-irenginio-
panaudojimas-nuo-zaidimu-iki-medicinos> [8]
9. Sutrikusios judėjimo funkcijos neįgaliųjų aprūpinimas techninės pagalbos
priemonėmis. [interaktyvus] [žiūrėta 2013 m. lapkričio 28 d.]. Prieiga per internetą:
<http://db1.stat.gov.lt/statbank/selectvarval/saveselections.asp?
MainTable=M3161004&PLanguage=0&TableStyle=&Buttons=&PXSId=6436&IQY=&TC=&ST=
ST&rvar0=&rvar1=&rvar2=&rvar3=&rvar4=&rvar5=&rvar6=&rvar7=&rvar8=&rvar9=&rvar10=
&rvar11=&rvar12=&rvar13=&rvar14=> [9]
10.
11. JAN DIETZ. Enterprise Ontology - Theory and Methodology. Springer-Verlag
Berlin Heidelberg, 2006. [10]
R.Sturonas
93
12. YING WU, THOMAS S. HUANG. „Vision-Based Gesture Recognition: A Review“
[interaktyvus] [žiūrėta 2013 m. lapkričio 1 d.]. Prieiga per internetą:
<http://link.springer.com/chapter/10.1007/3-540-46616-9_10>
13. A. KAŽUKAUSKAS. „Patentų klinikoms Lietuvoje – penkeri metai“, LTB
Patentinės informacijos centras, 2012.
14. WIPO, „G06 COMPUTING; CALCULATING; COUNTING“. 2013.
15. X. ZABULISY, H. BALTZAKISY, A. ARGYROSZY. “Vision-based Hand
Gesture Recognition for Human-Computer Interaction”
16. K. KHOSHELHAM, S. OUDE ELBERINK. „Brain Computer Interface Cursor
Measures for Motionimpaired and Able-bodied Users“, 2012.
17. „Accuracy and Resolution of Kinect Depth Data for Indoor Mapping Applications“
[žiūrėta 2013 m. lapkričio 2 d.]. Prieiga per internetą: < http://www.vgleaks.com/durango-next-
generation-kinect-sensor/>
18. MARK A. LIVINGSTON, JAY SEBASTIAN, ZHUMING AI JONATHAN W.
DECKER „Performance Measurements for the Microsoft Kinect Skeleton“ Naval Research
Laboratory. 2012.
19. JASON J. JERALD „Scene-Motion- and Latency-Perception Thresholds for Head-
Mounted Displays“. 2009.
20. A. PINO, ELEFTHERIOS KALOGEROS, ELIAS SALEMIS AND GEORGIOS
KOUROUPETROGLOU. „Brain Computer Interface Cursor Measures for Motion-impaired and
Able-bodied Users“. 2003.
21. International Journal of Bioelectromagnetism„Methodological Issues in EEG-
correlated Functional MRI Experiments“ 1999. [žiūrėta 2013 m. lapkričio 5 d.]. Prieiga per
internetą: < http://www.ijbem.org/volume1/number1/html/ar11.htm>
22. A.SEFFAH, M. DONYAEE, REX B. KLINE, HARKIRAT K, PADDA. „Usability
measurement and metrics: A consolidated model“ (Software Qual J (2006) 14: 159–178 p.)
23. „Usability Evaluation of User Interfaces“ [žiūrėta 2013 m. lapkričio 6 d.]. Prieiga
per internetą: < http://webtango.berkeley.edu/papers/thesis/chap2.pdf>
24. „Understanding Latency“ [žiūrėta 2013 m. lapkričio 7 d.]. Prieiga per internetą:
<http://labs.leapmotion.com/post/55354873140/understanding-latency-part-2>
25. S. LAVALLE. „The Latent Power of Prediction“ 2013. [žiūrėta 2013 m. lapkričio 3
d.]. Prieiga per internetą: <http://www.oculusvr.com/blog/the-latent-power-of-prediction/>
R.Sturonas
94
TERMINAI IR SANTRUMPŲ SĄRAŠAS SDK- Programinės įrangos kūrimo rinkinys (angl. Software Development Kit). USE CASE- Panaudojimo atvejis. UML – programinės įrangos projektavimo metodika (angl. Unified Modeling Language) UI – vartotojo sąsaja (angl. User Interface).
BCI- smegenų ir kompiuterio sąsaja (angl. Brain Compiuter Interface).
EEG- elektroencefalografija (angl. Electroencephalography).
GUI – Gestais paremta vartotojo sąsaja (angl. Gesture User Interfaces).
VBI- Vaizdu pagrįsta sąsaja (angl. Vision Based Interfaces)
VE- Virtuali aplinka (angl. Virtual Envarment).
TPK- Tarptautinė patentų klasifikacija .
ROC- Gautos operacijų charakteristikos (angl. Receiver Operator Characteristic) .
FOV- Matymo laukas (angl. Field of View).
SDK- Programinės įrangos kūrimo rinkinį (angl. Software Development Kit).
IVE- Įtraukianti (be realus pasaulio vaizdo) virtuali aplinka (angl. immersive virtual
environment).
QUIM- Naudojimo kokybės kompleksiniai matavimai (angl. Quality in Use Integrated
Measurement)
Gestų atpažinimas- fiksuojamų objektų ar jų dalių koordinačių pasikeitimai realiu laiko momentu.
Įvesties duomenys- sensorių nuskaitymo metu gaunami duomenys (koordinatės, įrenginio atpažinimas, laikas, įvykio tipas).
Įvesties įrenginys- Vartotojo naudojamas įrenginys skirtas perduoti kompiuteriui duomenis (Leap Motion kontroleris, pelytė, klaviatūra, pultelis, liečiamas ekranas).
R.Sturonas
95
PRIEDAI1 PRIEDAS
AUTORINĖ LICENCINĖ SUTARTIS
Dėl teisės panaudoti programinę įrangą. Kaunas, 2014 m. Gruodžio 5 d.
Ši Leap Motion vartotojo sąsajos „AFEX“ (toliau vadinamos programinės įrangos) Vartotojo Licencija (VL) yra teisinė sutartis tarp
Jūsų (privataus ar juridinio asmens, toliau sutartyje vadinamo programinės įrangos naudotoju)
ir
Roberto Sturono (toliau sutartyje vadinamas programinės įrangos savininku) apsprendžianti programinės įrangos ar jos elementų naudojimą.
Instaliuodami, kopijuodami, gaudami informaciją ar naudodami pateiktą programinę įrangą ar jos rezultatus, Jūs sutinkate būti ribojami šios VL sąlygomis. Jei jūs nesutinkate su šios VL sąlygomis, nesidiekite ir nenaudokite šios programinės įrangos.
1. Programinės įrangos savininkui priklauso visos teisės, verslo paslaptys, prekinis ženklas, patentas ir bet kuri kita intelektinė nuosavybė ar nuosavybės teisės į programinę įrangą.
2. Programinės įrangos savininkas perduoda Jums neišskirtines teises į neperleidžiamą licenciją naudotis vienintele programinės įrangos kopiją asmeniniu naudojimui, kai.2.1. Programinė įranga yra skirta ne komerciniams sprendimams, išskyrus atvejus kai.
2.1.1. Tokį leidimą suteikia programinės įrangos savininkas.2.2. Programinė įranga yra nekoreguojama, nekeičiama ir nenaudojama kitai programinei
įrangai kurti ar papildyti ją. 2.3. Programinėje įrangoje yra nurodomas programinės įrangos savininkas.2.4. Programinė įranga nėra de kompiliuojama, išmontuojama ar kitaip perdaroma .2.5. Programinė įranga ar jos dalis nėra perduodama jokiai trečiai šaliai.2.6. Programinės įrangos naudotojas ne
R.Sturonas
96
3. Jūs negalite suteikti licencijos naudotis ar perdaryti programine įranga trečiajam asmeniui be programinės įrangos savininko sutikimo.
4. Programinės įrangos savininkas nėra atsakingas už bet kokią programinės įrangos padarytą žalą programinės įrangos naudotojui ar su juo susijusiui asmeniui. Programinės įrangos naudotojas negali reikalauti žalos atlyginimo už įvykusius incidentus. Programinės įrangos naudotojas turi pasirūpinti tinkamu, saugiu programinės įrangos naudojimu įskaitant.4.1. Programinės įrangos saugumą nuo trečiųjų asmenų , jos keitimą ar jos elementų
paviešinimą.
5. Savininkas pasilieka teisę.5.1. Nutraukti šią VL, jei savo nuožiūra nuspręs, kad Jūsų bendravimas su savininku ar bet
kuo kitu, susijęs su programine įranga yra nepriimtinas5.2. Keisti visus su licencija susijusius punktus apie tai viešai paskelbdamas mėnesį prieš
licencijos atnaujinimą.
6. Ši VL galioja iki kol nebus nutraukta. Jūs gali būti nutrauktą bet kuriuo metu.6.1. Sunaikinus programinę įrangą ir ištrynus visas Jūsų įrenginiuose ar duomenų
saugyklose esančias kopijas.6.2. Jei jūs nesilaikote kurių nors VL susitarimų ir sąlygų,
7. Savininkas neapriboja programinės įrangos teritorijos ir programinės įrangos naudojimo laiko, išskyrus atvejus kai.7.1. Savininkas pakeičia VL sutarties sąlyga ir apie tai viešai informuoja.7.2. Pažeidžiama VL sutartis.
8. Abi sutarties šalys įsipareigoja visus iškylančius nesutarimus dėl sutarties vykdymo spręsti derybų keliu arba įstatymu numatyta tvarka.
14. Sutartis pasirašyta 2 (dviem), turinčiais vienodą juridinę galią, egzemplioriais.
Robertas Sturonas Programos naudotojas
…………………………… ……………………………………
…………………………... …......……………………………..
(savininkas)
Data Data
R.Sturonas
97