• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
complete
 

complete

on

  • 1,025 views

 

Statistics

Views

Total Views
1,025
Views on SlideShare
1,024
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    complete complete Document Transcript

    • TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond InformaatikainstituutKURSUSTE HALDAMISSÜSTEEMI ITERATIIVNE ARENDUS Bakalaureusetöö Üliõpilane: Kadri Säde Üliõpilaskood: 990791LAP Juhendaja: Mart Roost Tallinn 2004
    • AutorideklaratsioonDeklareerin, et käesolev lõputöö on minu töö tulemus ja seda ei ole kellegi teise poolt varemkaitsmisele esitatud............................... ...............................(kuupäev) (lõputöö kaitsja allkiri) 2
    • SisukordSissejuhatus............................................................................................6 1. Taust ........................................................................................................................7 1.1 Visioon ................................................................................................ 7 1.2 Iteratiivne arendusprotsess ............................................................. 9 2. Planeerimise dokumentatsioon ............................................................12 2.1 Sõnastik ............................................................................................ 12 2.2 Nõuded ja vajadused ...................................................................... 12 2.2.1 Eesmärgid.......................................................................................................12 2.2.2 Kasutajad .......................................................................................................12 2.2.3 Põhiobjektid ...................................................................................................13 2.2.4 Põhilised sündmused ......................................................................................14 2.2.5 Funktsionaalsed nõudmised...........................................................................14 2.2.6 Mittefunktsionaalsed nõudmised...................................................................15 2.2.7 Riskid..............................................................................................................15 2.2.8 Turvalisus .......................................................................................................16 2.3 Kasutusjuhud kõrgformaadis ........................................................ 17 2.3.1 Kasutusjuhtude diagramm ............................................................................17 2.4 Domeenimudel................................................................................. 20 2.5 Arendusplaan................................................................................... 21 2.5.1 Esimene iteratsioon ........................................................................................21 2.5.2 Teine iteratsioon.............................................................................................21 2.5.2 Kolmas iteratsioon .........................................................................................22 2.5.3 Neljas iteratsioon............................................................................................22 2.5.4 Viies iteratsioon ..............................................................................................22 2.6 Arendusvahendid ............................................................................ 23 2.6.1 Rational Suite Enterprise tarkvara ...............................................................23 2.6.2 Oracle veebipõhine andmebaasi arendusvahend ..........................................23 2.6.3 PL/SQL...........................................................................................................24 3. Esimese iteratsiooni dokumentatsioon ...........................................25 3.1 Iteratsiooni plaan ja riskianalüüs ................................................ 25 3.2 Analüüsi dokumentatsioon ............................................................ 25 3.2.1 Tehnoloogia valik ...........................................................................................25 3.2.2 Kasutusjuhtude diagramm ............................................................................27 3.2.3 Kasutusjuhud laiendatud formaadis .............................................................27 3.2.4 Täpsustatud domeenimudel ...........................................................................29 3.2.5 Avalduse sisestamise tegevusdiagramm ........................................................30 3.2.6 Avalduse olekudiagramm ..............................................................................31 3.3 Disaini dokumentatsioon ............................................................... 31 3.3.1 Paketidiagramm .............................................................................................31 3.3.2 Komponendidiagramm ..................................................................................32 3.3.3 Reaalsed kasutusjuhud ..................................................................................33 3.3.4 Avalduse tekitamise kood ..............................................................................34 3
    • 3.3.5 Füüsiline andmemudel ...................................................................................36 3.4 Realisatsioon ................................................................................... 37 3.5 Iteratsiooni tulemused.................................................................... 374. Teise iteratsiooni dokumentatsioon ..................................................39 4.1 Iteratsiooni plaan ja riskianalüüs ................................................ 39 4.2 Analüüsi dokumentatsioon ............................................................ 39 4.2.1 Kasutusjuhtude diagramm ............................................................................39 4.2.2 Kasutusjuhud laiendatud formaadis .............................................................40 4.2.3 Kursuslase olekudiagramm ...........................................................................41 4.3 Disaini dokumentatsioon ............................................................... 41 4.3.1 Reaalsed kasutusjuhud ..................................................................................41 4.3.2 Füüsiline andmemudel ...................................................................................42 4.4 Realisatsioon ................................................................................... 43 4.5 Iteratsiooni tulemused.................................................................... 435. Kolmanda iteratsiooni dokumentatsioon.......................................44 5.1 Iteratsiooni plaan ja riskianalüüs ................................................ 44 5.2 Analüüsi dokumentatsioon ............................................................ 44 5.2.1 Kasutusjuhtude diagramm ............................................................................44 5.2.2 Kasutusjuhud laiendatud formaadis .............................................................45 5.2.2 Kursuslase olekudiagramm ...........................................................................46 5.3 Disaini dokumentatsioon ............................................................... 47 5.3.1 Reaalsed kasutusjuhud ..................................................................................47 5.3.2 Füüsiline andmemudel ...................................................................................48 5.4 Realisatsioon ................................................................................... 48 5.5 Iteratsiooni tulemused.................................................................... 496. Neljanda iteratsiooni dokumentatsioon ..........................................50 6.1 Iteratsiooni plaan ja riskianalüüs ................................................ 50 6.2 Analüüsi dokumentatsioon ............................................................ 50 6.2.1 Kasutusjuhtude diagramm ............................................................................50 6.2.2 Kasutusjuhud laiendatud formaadis .............................................................51 6.2.3 Täpsustatud domeenimudel ...........................................................................52 6.2.4 Kursuse sisestamise tegevusdiagramm..........................................................53 6.3 Disaini dokumentatsioon ............................................................... 54 6.3.1 Reaalsed kasutusjuhud ..................................................................................54 6.3.2 Füüsiline andmemudel ...................................................................................56 6.4 Realisatsioon ................................................................................... 56 6.5 Iteratsiooni tulemused.................................................................... 577. Viienda iteratsiooni dokumentatsioon ............................................58 7.1 Iteratsiooni plaan ja riskianalüüs ................................................ 58 7.2 Analüüsi dokumentatsioon ............................................................ 58 7.2.1 Kasutusjuhtude diagramm ............................................................................58 7.2.2 Kasutusjuhud laiendatud formaadis .............................................................58 4
    • 7.2.3 Täpsustatud semantika ..................................................................................59 7.2.3 Kursuse laiendatud olekudiagrammid ..........................................................61 7.3 Disaini dokumentatsioon ............................................................... 63 7.3.1 Reaalsed kasutusjuhud ..................................................................................63 7.3.2 Füüsiline andmemudel ...................................................................................64 7.4 Realisatsioon ................................................................................... 65 7.5 Iteratsiooni tulemused.................................................................... 65 8. Arengukava .......................................................................................................66Kasutatud kirjandus .............................................................................68Kokkuvõte............................................................................................69Summary ..............................................................................................70 5
    • SissejuhatusKäesolev bakalaureusetöö kirjeldab arendusetapis olevat reaalset veebiliidest, milleeesmärgiks on hõlbustada kursustele registreerumine ja kursuste haldamine koolitusegategelevas ettevõttes.Koostatava dokumentatiooni põhjal loodav rakendus on veebipõhine. Internet on tänapäevaligapäevaelu loomulik abivahend. Ühest küljest on veebipõhine kursustele registreerimisesüsteem konkreetne lahendus koolitusettevõtte klientidele, mis tekitab klientides usaldust,andes koolitusfirmale mitmeid marketingieeliseid teiste koolitust pakkuvate ettevõtete ees.Lisaks on taolise lahenduse puhul tagatud andmete erinevad haldamisvõimalused kursustekorraldajale. Varasem kursuste haldussüsteem ei rahuldanud enam koolitusettevõttekasvavaid vajadusi kursuste hulga suurenemise tõttu, mis tingis elektroonilisehaldamissüsteemi loomise vajalikkuse. Seega on loodavale veebiliidesele seatavaks oluliseksnõudmiseks CRM (Customer Relationship Management) ehk kliendihalduse võimalus. Seetähendab, et loodav rakendus peab võimaldama kliendi andmete kogumist ja haldamist nii, ettekiks ülevaade kursustele registreerunud klientidest ja nende arvetest.Töö keskendub lisaks iteratiivse arendusmeetodi käsitlemisele antud rakenduse arendamiselORACLE veebipõhise andmebaasi arendusvahendi tundmaõppimisele, sisaldades veebiliidesearendamisvõimaluse analüüsi, lähtudes valitud veebipõhise arendusvahendi spetsiifikast.Kokkuvõtlikult on antud bakalureusetöös peatähelepanu keskmes järgmiste tulemustesaavutamine:1) omandada praktiline iteratiivse arendusprotsessi kasutamise kogemus Craig Larmani järgiantud lõputöös käsitletava veebiliidese arendamisel2) arendada oskusi kasutada analüüsil ja modelleerimisel CASE (Computer Aided SoftwareDesign) vahendit ja UML (Unified Modeling Language) diagramme Rational RoseEnterprise tarkvaraga.3) õppida tundma üht veebipõhist arendusvahendit, milleks on siin valitud ORACLEveebipõhine andmebaasi arendusvahend.4) ehitada kursuste haldamissüsteemi veebiliides 6
    • 1. Taust1.1 VisioonEAIE-sse (European Association for International Education) kuuluvad teabe- jatestimiskeskuseid on üle maailma kokku ligi 400. Ligi pooled neist viivad läbirahvusvaheliselt sertifitseeritud keeletestide ettevalmistuskursusi. Kursused on erinevakestuse ja mahuga. Paralleelselt toimub enamasti 2-5 kursust.Veebipõhise kursuste haldamissüsteemi väljatöötamisest on huvitatud Eesti teabekesus,täpsemalt Põhja-Ameerika ülikoolide teabekeskus Tallinna Tehnikaülikoolis, kes soovibesialgset arendust esitleda EAIE nõustajate konverentsil augustis 2004.Kursuste haldamise süsteem luuakse peamiselt teabekeskuse kursuste ja kursuslastehaldamise töö lihtsustamise eesmärgil. Sama oluline on pakkuda kursuslastele kaasaegsetkursustele registreerimise võimalust.Teabekeskuse infosüsteemi moodustavad erinevad teenused ja tegevused, mille ülevaade onantud järgmisel joonilisel nr 1. osaleb Konsultatsioon osaleb organiseerib Admi nistreerija haldab Koolitus müüb Raamat on korra ldab ostab on vä ljastab tasub Töötaja Nõustaja Arve Klient on nõustab osaleb Testimine Juhataja sõlmib vajab vahendab Stipendium kirjuta b koostab Eelarve Aruanne TöölepingJoonis 1. Teabekeskuse lihtsustatud infosüsteem 7
    • Teabekeskuses on kolm täiskohaga töötajat, kes on juhataja, administreerija ja nõustaja.Juhataja koostab eelarveid, kirjutab aruandeid ja sõlmib töölepinguid. Nõustaja organiseeribkonsultatsioone, müüb raamatuid, väljastab arveid, nõustab testimisega seonduvat, vahendabstipendiumiinfot ja korraldab koolitusi, mida administreerija haldab ja millel klient osaleb.Klient osaleb konsultatsioonidel, testimistel, vajab stipendiume ja ostab raamatuid. Nõustajaväljastab raamatute ja koolituste eest kliendile tasumiseks arveid. Siin ongi tarvidusinfosüsteem ümber korraldada, et nõustaja töö mahtu vähendada. Ühe mahukama osa tööstmoodustab kursustega seonduv. Kui kursuste haldamisel saaks kasutada süsteemi, mislihtsustaks tunduvalt kursuste korraldamisega seotud tööd ja millele ei pea palka maksma, siisümberkorraldusteks ressurside olemasolu korral tuleb seda võimalust ka kasutada.Kavandatav kursuste haldamissüsteem peab esmalt võimaldama teabekeskuse administreerijalhallata kursuseid. Oluline on kursuste veebipõhisesse andmebaasi lisamise võimalus, etteabekeskuse kliendid saaksid registreeruda kursusele niipea, kui see on välja kuulutatud.Süsteem peab tagama igale süsteemi kasutajaks registreerunud kliendile veatu avaldusesisestamise kursustel osalemiseks ja tagastama arve numbri, mis tuleb tasuda kindlaksmääratud maksetähtaja jooksul. Administreerija kontrollib antud rakenduse välisestraamatupidamissüsteemist arvete laekumisi ja saab kursuste haldamissüsteemis arvetetasutuks märkimisega anda kursuslasele ligipääsu kursuse keskkonda.Kursuslane peab saama lisaks avalduste esitamisele kursustel osalemiseks näha ja otsida omakasutajakontol olevaid kursuseid, arveid ja sisestatud avaldusi. Samuti on administreerijaloluline näha ja otsida kursuslaste, arvete ja kursuste infot. 8
    • 1.2 Iteratiivne arendusprotsessTarkvaraprojektide arendusmaastikul on iteratiivse arendusprotsessi mõiste tuntud ja ettevõtteäriprotsesside interpreteerimisel laialdaselt kasutusel. Iteratiivsusena käsitletakse antud töökontekstis tarkvaraarenduprotsessi tsüklilisust. Järgnevalt on kirjeldatud ülevaatlikultiteratiivse arendusprotsessi sisu. Iteratiivsele arendusprotessile on iseloomulik erinevatearendustsüklite sees samade süsteemiarenduse tegevuste kordamine, mis on tuntud kosemudelist, kus süsteemiaernduse tegevusteks on klassikaliselt analüüs, disain ja realiseerimine,mida iteratiivses arendusprotsessis korratakse tsükliliselt. Niisiis laiendab iga tsükkel vaatluseall olevat süsteemi ja kõik tsüklid kokku annavad lõpptulemusena tervikliku süsteemi.Üks levinumaid iteratiivseid arendusprotsesse on UP (Unified Process). UP, on RUPi(Rational Unified Process) lihtsustatud ja üldisem mudel, kus projekti arendamine läbib neljasuuremat faasi, millest iga faas sisaldab vähemalt ühte iteratsiooni. Need faasid on algfaas,viimistlemine, ehitamine ja üleminek.[1]Alfaasi põhiülesanneteks on anda edasi süsteemi visioon ja ligikaudsed hinnangudressurssidele ja ajale. Algfaasi eesmärk on panna paika projekti kontseptsioon, mida süsteempeab tegema, millised on nõudmised ja riskid ning koostatakse esialgne plaan projektiläbiviimiseks.Järgnevas viimistlusfaasis realiseeritakse tehnilisest ja ärilisest funktsionaalsusest lähtuvaltkõige olulisem süsteemi osa. Keskendutakse prioriteetidelt kõige kõrgema riskantsusegaiteratsioonidele, kus tehakse kindlaks kõik süsteemile esitatavad nõudmised ja leitaksevõimalusi riskide vähendamiseks. Viimistlusfaasis stabiliseeritakse arhitektuur, mis jäetakseseejuures külmutamata, et edaspidi säilitada vajalike täienduste võimalikkus.Ehitusfaas koosneb tavaliselt samuti mitmest iteratsioonist, mille eesmärgiks on ehitadalõppkasutajale üleandmiseks valmis terviksüsteem. Ka ehitusfaasis tegeldakse madalamateallesjäänud riskidega.Viimases üleminekufaasis antakse kasutajale valmis süsteem, mis hõlmab süsteemijuurutamist ja kasutaja koolitamist. Üleminekufaas võib koosneda mitmest iteratsioonist.Praktikas paraku on viimane faas alahinnatud, kuid süsteemi kasutusele võtmisel onüleminekufaasil tähtis roll.Iteratiivne arendusmudel on juhitud konkreetsete kasutusjuhtude (Use-Case Driven) jastabiilse arhidektuuri poolt. Inglise keelne mõiste Use-Case Driven tähendab siin, etkasutusjuhtude funktsionaalsuste arendamisele on määratud prioriteedid riskantsuse järgi.Süsteemiarenduse algfaasis määratletakse süteemi valmimise ja valmis süsteemiga seostuvad 9
    • riskid. Riskidena käsitletakse olukordi, mis takistavad projekti eesmärkide saavutamist.Riskid, mis otseselt mõjutavad süsteemi loomist, võivad olla seotud süsteemi nõudmistevalesti mõistmisega või üldse süsteemist selge ettekujutuse puudumisega, nõudmistemuutumisega, ebasobiva tehnoloogia valikuga või süsteemi jõudluse probleemidega, misvõivad ilmneda alles süsteemi arendamise lõppfaasides, kui mitte kasutada iteratiivsetarendusprotsessi.Arenduse käigus vähendataksegi süsteemi riske tsüklilise detailanalüüsi, disaini jarealiseerimise kaudu.Esimesestes iteratsioonides võetakse vaatluse alla kõrgeima prioriteediga riskid, mismõjutavad süsteemi valmimist kõige rohkem. Järgmistes iteratsioonides keskendutaksemadalama prioriteediga riskidele ja nende vähendamise meetoditele. Arenduse käigusdefineeritud riskid määravad järgmiste iteratsioonide sisu ja kestuse. Seejuures iteratsioonidearv ei ole fikseeritud, vaid vareerub projektiti. [2]Iteratiivse arenduse tsükliline sieloom avaldub kõige paremini selles, et korraga ei tehta kogutoote lõplikku analüüsi, vaid analüüsi ühe sammuga läbitakse mitu etappi, mille jooksulsüsteemi täiendatakse. Iga iteratsioon lõpeb tehtud töö analüüsimisega. Selleks planeeritakseiga iteratsiooni jaoks tulemused, mis peavad töös oleva arendustsükli lõppedes saavutatudolema. Ühe iteratsiooni lõppedes püstitatakse järgmise iteratsiooni eesmärgid.Projekti iteratsiivne arendustsükkel võimaldab projekti muutunud nõudmistest või arendamisekäigus avastatud ning teha vajalikke muudatusi eelmistes iteratsioonides. Kuigi kirjeldatudolukorras iteratiivne arendusprotsess aitab vältida suuremahulisi muudatusi hilisematesarendusetappides, on kasulik enamus projekti kitsaskohti ja riske defineerida kohe esimesteiteratsioonide käigus.Üks iteratsioon käsitleb lõppprojekti teatud funktsionaalsusi. Igas iteratsioonis läbitaksevaadeldava tükelduse analüüsi-, disaini- ja realiseerimisetapp. Iga iteratsiooni tulemusekssaadakse täienenud funktsionaalsusega süsteem, milles on vähendatud süsteemi algfaasisdefineeritud või süsteemi arendamisel avastatud riske.Iga iteratsioon keskendub vähemalt ühele kasutusjuhule või kasutusjuhtude grupile, midanimetatakse ka süsteemi tükeldseks. Kasutusjuhu kõrgema keerukuse korral uuritakselihtsustatud kastusjuhtu ühes iteratsioonis ja jagatakse kasutsjuhuga seotud funktsionaalsusmitme iteratsiooni vahel. Vastavalt eespool mainitule, käsitletakse esimestes iteratsioonideskõige riskantsemaid kasutusjuhte, mis otseselt mõjutavad süsteemi loomist kõige rohkem.Iga arendustsükli jaoks valitakse nõudmised, mida hakatakse täitma ja määratakse ajaperiood,mille jooksul iteratsioon läbi viiakse. Ajaperiood peab olema määratud optimaalseim, et ei 10
    • tekiks ajapuudust, mille tõttu ei suudeta kõiki eesmärke täielikult täita ega aja üleküllust, kussüsteemi viimistletakse liigselt selle keerukuse kasvuni, mis ei vasta planeeritule. Mõlemaljuhul on risk, et järgmised arendustsüklid võivad hilineda.Vastupidiselt kose mudelile, kus kõik vajalikud nõudmised läbitakse vaid ühekordselt kõigisüsteemi nõudmiste suhtes, viiakse igas iteratsioonis läbi väike osa süsteemi nõudmistest.Eeliseks on, et süsteemi arendamine on kergelt hallatav, sest kõiki nõudmisi ei ei käsitletakorraga, mistõttu süsteem ei kasva keerukaks ning raskelt mõistetavaks. Samuti on iteratiivsearenduse tulemused selgemini näha ehk nn läbipaistvamad, sest vaheversioonid võimaldavadsaada tagasisidet õigeaegselt.Iteratiivse arendustsükli õigeks mõismiseks ja probleemideta kasutamiseks on tähtis justesimeste iteratsioonide käigus kavandada süsteemi ehitamise plaan, teha kindlaks nõudmisedja leida peamised riskid. Kui neid samme teha erinevates iteratsioonides, peab tõenäoliseltalustama korduvalt algusest. Edasimineku tagamiseks järgmistesse iteratsioonidesse tulebpaika panna igale iteratsioonile plaan, milliseid tulemusi iteratsiooni käigus saavutama peab.Juhul kui iteratsioon osutub liiga mahukaks, on vajalik valida osa, mis realiseeritakse javähem kriitilisem osa on mõtekas paigutada järgmisesse iteratsiooni. Oluline on ka riskideidentifitseerimine ja prioriteetide määramine, et vältida kõrgema taseme riskide tähelepanualla sattumist alles süsteemiarenduse viimastes etappides. [3]Käesoleva töö korral on iteratsioonide läbiviimisel ja dokumentatsiooni koostamisel aluseksvõetud Craig Larmani poolt raamatus “Applying UML and Patterns: An introduction toobject-oriented analysis and design and Unified Process” [2] välja pakutud lahendus.Iteratsiooni alguses koostatakse plaan ja püstitatakse eesmärgid, mida iteratsioonidetulemustena saavutada soovitakse. Analüüsietapis võetakse vaatluse alla süsteemi laiendatudkasutusjuhud, tehakse täiendusi domeenimudelis vastavalt iteratsioonis vaadeldud objektideleja tuuakse ära mõned põhiobjektide olekudiagrammid. Disainimise käigus võetakse vajaduselvaatluse alla süsteemi arhitektuur, kirjeldatakse reaalsed kasutusjuhud ning täiendatakseandmebaasimudelit. Realiseerimise osas antakse ülevaade, milliste vahenditega süsteemivaheversioon realiseeritakse ja milline süsteem üldiselt välja hakkab nägema. Arendusetapisantakse järgmiste võimalike ja vajalike iteratsioonide lühikirjaldus. Iteratsioonidedokumentatsioon peaks andma piisavalt tõepärase ülevaate süsteemi arendamise jarealiseerimise kulgemisest. 11
    • 2. Planeerimise dokumentatsioon2.1 SõnastikKursus – Koolitusega tegeleva ettevõtte teenus. Antud juhul rahvusvaheliselt sertifitseeritudkeeletestide ja akadeemilise võimekuse testide ettevalmistuskursus, mille eest saadudainepunkte aktsepteerivad kokkuleppete kohaselt erinevad Eesti kõrgemad õppeasutused jaülikoolid.Kasutaja – Süsteemi kasutaja, kellel on kas süsteemi administreerija st haldaja võiregistreeruja ning edaspidi kursuslase õigused.Administreerija – Süsteemis kursuste ja kursuslaste haldaja.Registreeruja – Süsteemi kasutaja, kes soovib saada kasutaja õigusi, et sisestada kursuseavaldusi ja saada kursuslase õigused.Kursuslane – Süsteemi kasutaja, kes on juba registreerunud süsteemi ja sisestanud avaldusi.Omab õigusi teha kursuslase pädevusalasse kuuluvaid toiminguid.2.2 Nõuded ja vajadused 2.2.1 EesmärgidEesmärgid, mille süsteem peab täitma: • loob tervikliku veebipõhise andmebaasi kursustest ja kursuslastest • annab kasutajale võimaluse siseneda kursuste registreerumise keskkonda • võimaldab kasutajatel registreeruda kursustele • annab kasutajale ülevaate, milliseid kursuseid ta on valinud • võimaldab kasutajal otsida avaldusi ja kursuste arveid • võimaldab süsteemi administreerijal hallata kursusi, kursuslasi, arveid ja ligipääse 2.2.2 KasutajadSüsteemil on kolme tüüpi kasutajaid:Administreerija – Infotöötaja, kes omab süsteemi haldamise õigusi, sealhulgas kursuste jakursuslaste haldamise õigusi. 12
    • Registreeruja – Registreeruja, kes soovib saada süsteemi kasutaja õigusi. Omab kursuseleavalduse sisestamise õigust, mille järgselt saab kursuslase õigused.Kursuslane - Kursuslane, kes omab kursusele uute avalduste sisestamise õigust kursustelosalemiseks, valitud kursuste, arvete ja avalduste otsimise ja vaatamise õigust ning kursuseveebikeskkonda ligipääsu pärast saadud arve maksmist.Administreerija staatus lubab süsteemi haldajal teha tüüptoiminguid andmebaasi kursustega.Administreerija saab kursusi lisada, muuta ja erijuhtudel kustutada. Samuti on võimaliklisatud kursuseid otsida ja vaadata. Arvete sisestamine ja ligipääsude andmine pärast arvemaksmise kontrollimist süsteemiväliselt on süsteemi administraatori ülesanne.Admistreerijaõigused annavad loa peale kursuslaste otsimise ka erijuhtudel kursuslasi lisada, kustutada võikursuslase andmeid muuta. Administraator saab luua erinevaid raporteid, näiteks kursustelelaekunud avalduste ja kursuslaste kohta.Registreeruja on registreeruja kuni avalduse sisestamiseni, mille järgselt temast saabkursuslane.Kursuslase staatus annab süsteemi kasutajaks registreerunul õiguse sisestada süsteemiavaldusi kursustest osavõtmise sooviga. Lisaks lubab otsida ja vaadata lisatud avalduseandmeid, valitud kursuseid ja kursuste arveid. 2.2.3 PõhiobjektidSüsteemi põhiobjektid on:Kasutaja – süsteemi kasutavad isikud;Kursuslane – kasutaja, kellel on kursuse õigused; kursustele registreeruja/regisreerunu;Avaldus – registreerumise vorm kursuste valimiseks ja isikuandmete sisestamiseks;Kursus – koolitus, millele kursuslased saavad registreeruda esitades avalduse;Arve – teatis, mis viitab kursuse eest tasumisele ja selleks vajalikele andmetele;Administreerija– kasutaja, kellel on süsteemi haldaja õigused;Kursuse periood – kursuse toimumise kindlaksmääratud ajavahemik;Valitud kursus – kursus, millele kursuslane on avaldust lisades registreerunud;Arve numbrite vahemik – vahemik, mis on kursusele määratud arve numbreid tähistama. 13
    • 2.2.4 Põhilised sündmusedTegevused, mida kasutajad kõige sagedamini süsteemis sooritavad: • Kursuse andmete sisestamine. Administreerija sisestab kursuse andmed ja kirjelduse, kursuse perioodi andmed ning kursusega seotud arve numbrite vahemikud ja arvete andmed. • Kursuse keskkonna kasutajaks registreerumine. Kursustele registreeruda soovija registreerib oma andmed avalduse sisestamiseks ja kasutajakonto saamiseks. • Kursuse avalduse lisamine. Registreeruja täidab avalduse vormil nõutud isikuandmed, maksja andmed, valib kursuse, millel soovib osaleda ning kas ta soovib ainepunkte lisades lõpuks kogu avalduse täitmise vältel tehtud valikud andmebaasi. • Valitud kursuste otsimine ja vaatamine. Registreerujal on võimalik valitud kursusi erinevate parameetrite järgi otsida ja vaadata. • Arvete otsimine ja vaatamine. Registreeruja saab otsida konkreetset arvet või kõiki arveid tema poolt määratud otsingukriteeriumide järgi. • Maksete tasutuks märkimine. Administreerija määrab makstud arved tasutuks ja kursuslane saab automaatselt sisenemisõiguse tema poolt valitud kursuse keskkonda. 2.2.5 Funktsionaalsed nõudmisedSüsteem peab võimaldama järgmiseid üldiseid funktsionaalsusi:Administreerija – kursuste, kursuslaste, arvete ja ligipääsude haldamine;Registreeruja – kursustele registreerimine ja ligipääs kursuse veebikeskkonda.Detailsemalt peab süsteem vastama funktsionaalsetele nõudmistele, mis on järgnevad:Kasutaja kursuste haldussüsteemi sisenemine;Registreeruja:Registreerumine;Kursuslane:1) Avalduse sisestamine/muutmine;2) Avalduse vaatamine/otsing;3) Arve vaatamine/otsing;4) Valitud kursuse vaatamine/otsing;Administreerija:1) Kursuse sisestamine/otsimine/muutmine; 14
    • 2) Kursuslase sisestamine/otsimine/muutmine;3) Arve otsimine/tasutuks märkimine/vaatamine/annulleerimine;4) Ligipääsu tekitamine/eemaldamine. 2.2.6 Mittefunktsionaalsed nõudmised Süsteemi kasututusmugavust, töökindlust, jõudlust ja toetatavust : • Süsteem peab kergesti olema kättesaadav kõigile soovijatele, esitamata suuri nõudmisi kliendi riist- või tarkvarale, mis puudutab süsteemi veebikeskkonna kasutamist; • Kasutajaliidese ekraanivormide laadimisaeg peab olema lühike; • Süsteem peab olema kergelt hallatav, muudetav ja laiendatav • Süsteem peab tagama kasutajate isiklike andmete varjatuse; • Kasutajaliidese ekraanivormid peavad olema lihtsad ja arusaadavad; • Kasutajaliidese navigatsioon peab olema lihtsalt mõistetav – kasutaja peab otsitava kergelt leidma ja sisestatavaid välju üheselt mõistma; • Juhised vormide täitmiseks peavad olema piisavad; • Sisestatud andmetel peavad kehtima piirangud (põhiliselt andmetüüp ja pikkus); • Süsteem peab olema võimeline sisestatud andmeid mõningal määral kontrollima. 2.2.7 RiskidRiskianalüüs kujutab endast esmalt võimalike riskide identifitseerimist.Potensiaalsed riskid on järgmised:1) kasutajapoolsed riskid: a) süsteem ei ole kasutajale lihtsalt arusaadav ja hõlpsasti kasutatav; b) kasutaja andmed on avalikud ja nähtavad teistele süsteemi kasutajatele;2) nõudmistest põhjustatud riskid: a) Süsteemi kasutusse võtjal ei pruugi olla visiooni loodavast süsteemist või kui on, siis võib kasutaja ettekujutus loodavast süsteemist arendamise käigus muutuda. b) Süsteemi kasutusse võtja ei pruugi olla üldse huvitatud süsteemi arenduse protsessis osalemisest, mis raskendab pideva tagasiside olemasolu, mis on aga oluline tingimus süsteemi iteratiivsel arendamisel. 15
    • 3) tehnoloogiast tulenevad riskid: a) Süsteemi kasutusse võtja tehnoloogilised eelistused või erinevate tehnoloogijate kasutusvõimalused on muutunud.Riskide minimeerimiseks on võimalik kasutada järgmiseid meetodeid: • Kasutajapoolsete riskide üheks vähendamise meetodiks on vaheversioonide loomine, et oleks võimalik saada kasutajatelt tagasisidet. Otstarbekas on juba esimesel võimalusel disaini algfaasis süsteemi tulevaselt administreerijalt ja kasutajapoolselt testijalt uurida, milline lahendus ekraanivormide puhul nende arusaamade kohaselt on kõige kasutajasõbralikum. • Nõudmistest tulenevate riskide lahendamiseks on tarvis luua vaheversioone süsteemi kasutusse võtjale esitamiseks ja süsteemi arendamisel kasutada iteratiivset arendusprotsessi, mis kõige efektiivsemalt aitab ennetada tõsiseid vigu, kui süsteemi arendamise algfaasis pole suudetud kokku leppida süsteemile vastavates nõudmistes ja tingimustes arendaja ja süsteemi tulevase kasutuselevõtja vahel. [2] • Tehnoloogiariskide lahendamiseks tuleb uurida ja analüüsida tulevaste administreerijate ja kasutajate nõudmisi ja tegelikke võimalusi. Võimalikult varajases süsteemi planeerimise etapis tuleb välja selgitada süsteemi arhitektuur ja sobivaim tehnoloogia ning kooskõlastada süsteemi tulevase haldajaga valikud ja muudatused igas süsteemi arendamise etapis.Peamiseks tehnoloogijariskide vähendamise abinõuks on valida sobiv tehnoloogia, mis onvõimalikult universaalne ja standardiseeritud, kusjuures standardid ei uuene tihedalt egamuuda seega süsteemi pidevat muutmist uuele standardile vastavaks omaette tülikaksprotsessiks. 2.2.8 TurvalisusLoodava süsteemi turvalisuse nõuded eeldavad, et süsteemis registreerunud kasutajateandmed on kaitstud teiste kasutajate eest. Süsteemi registreerunud kasutajad on sisestanudoma isikuandmeid, sealhulgas isikukoodi, aadressi, telefoni ja e-maili.Kasutaja õiguste kontrollimiseks on mõistlik lahendus kasutajakonto loomine, kus kasutajaidentifitseeritakse kasutajanime ja parooli alusel. 16
    • Vähemalt sama oluline on, et kliendikonto omanik ei oma ligipääsu veebiliidese osale, mishõlmab süsteemi administreerimise toiminguid. Sellest tulenevalt on vajadus eraldi määratakursuslase ja administreerija õigused.2.3 Kasutusjuhud kõrgformaadis 2.3.1 Kasutusjuhtude diagramm Kursuse Admini streerij a sisestamine/otsimine/muutmine Kursuslase Andmete korrektsuse kontroll sisestamine/otsimine/muutmine Arve tasutuks määramine/otsimine Registreerumine Avalduse sisestamine/muutmine Registreeruja Avalduse vaatamine/otsing Kursuslane Arve va atamine/o tsi ng Kasuta ja kontro ll Valitud kursuse vaatamine/otsingJoonis 2. Algfaasi kasutusjuhtude diagrammKasutusjuht: RegistreerumineTegutsejad: Registreeruja 17
    • Kirjeldus: Registreeruja sisestab oma andmed ja kasutajanime ning parooli. Süsteemsalvestab need, tekitab uue kasutaja ning kuvab registreeruja isikuandmed ja edasi võimaldabkoheselt pääsu süsteemi avalduse esitamiseks jm toiminguteks.Kasutusjuht: Avalduse sisestamine/muutmineTegutsejad: RegistreerujaKirjeldus: Kursuslane täidab kursuse avalduse vormi, kuhu sisestab oma isikuandmed.Süsteem kuvab aktiivsed kursused. Registreeruja valib kursuse ja kas ta soovib ainepunkte(ülikoolidega on leping, mis võimaldab kursuslasele ainepunkte anda). Süsteem kuvab maksjaandmete vormi. Registreeruja määrab maksja andmed. Süsteem kuvab sisestatud andmed jatehtud valikud. Kursuslane kinnitab lõplikult avalduse lisamise. Süsteem tekitab kursuslase,avalduse, seostab kursuslasega arve ja kursuslase valitud kursuse. Süsteem kuvab, et klient onkursusele registreeritud ja kursuse veebikeskkonnale ligipääsu saamiseks tuleb maksta teatudkuupäevade jooksul arve. Avalduse muutmine on võimalik kuni lõpliku kinnitamiseni.Kasutusjuht: Avalduse vaatamine/otsingTegutsejad: RegistreerujaKirjeldus: Registreeruja otsib avaldust erinevate otsingu parameetrite järgi. Süsteem tagastabvastava(d) avalduse(d).Kasutusjuht: Valitud kursuse vaatamine/otsingTegutsejad: RegistreerujaKirjeldus: Registreeruja otsib valitud kursusi erinevate parameetrite järgi. Süsteem kuvabvastava(d) kursuse(d).Kasutusjuht: Arve vaatamine/otsingTegutsejad: RegistreerujaKirjeldus: Registreeruja otsib valitud kursusi erinevate parameetrite järgi. Süsteem kuvabvastava(d) arve(d).Kasutusjuht: Kasutaja kontrollTegutsejad: SüsteemKirjeldus: Süsteem kontrollib vormi kuvamisel, kas tegemist on õige kasutajaga. 18
    • Kasutusjuht: Andmete korrektsuse kontrollTegutsejad: SüsteemKirjeldus: Süsteem kontrollib, kas kasutaja on sisestanud kõik andmed ja kas need onkorrektsed.Kasutusjuht: Kursuse sisestamine/otsimine/muutmineTegutsejad: AdministreerijaKirjeldus: Administreerija sisestab algatatava kursuse andmed, sisestab kursuse perioodi, jaarve numbri vahemiku. Süsteem näitab tehtud valikuid ja palub neid kinnitada.Administreerija kinnitab sisestatud andmed. Süsteem tekitab kursuse, kursuse perioodi ja arvenumbri vahemiku ning salvestab sisestatud andmed.Kasutusjuht: Kursuslase sisestamine/otsimine/muutmineTegutsejad: AdministreerijaKirjeldus: Administreerija saab süsteemist otsida kursuslasi erinevate parameetrite järgi.Süsteem kuvab otsitud kursulase(d).Kasutusjuht: Arve otsimine/tasutuks märkimine/vaatamine/annulleerimineTegutsejad: AdministreerijaKirjeldus: Administreerija otsib arveid erinevate parameetrite järgi. Süsteem kuvabvastava(d) arved(d). Administreerija märgib arve(d) tasutuks. Süsteem lisab muudatuse jatekitab kursuslasele valitud kursuse veebikeskkonna lingi tema kasutaja alla.Administreerija võib erandjuhul arveid tühistada. Süsteem kustutab arve vastava kasutaja alt.Kasutusjuht: Ligipääsu eemaldamineTegutsejad: AdministreerijaKirjeldus: Administreerija otsib kursuse valinud kursuslasi. Süsteem kuvab kursuslased.Administreerija saab märkega eemaldada kursuslaste ligipääsud kursuse keskkonda. Süsteemeemaldab kasutaja(te)lt lingi(d) antud kursuse veebikeskkonna aadressiga. 19
    • 2.4 Domeenimudel Avaldus Maksja_eesn imi : Stri ng Maksja_perenimi : String Registreeruja Maksja_isikukood : Integer Olek : Boole an Kasutaja esitab Kasu tajanimi : Stri ng seotu d Tuup : Boole an Oi gused : String Parool : String Arve Eesn imi : String Arve_nr : Integer Pereni mi : Stri ng Koostamise_kp : Date E-mail : String Summa : Integer Telefon : Stri ng Maksetahtaeg : Date Aadress : String Makseviis : String Isi kukood : Integer Tasutud_kp : Date sisestab Olek : Boolean Admi ni streerij a vastab Kursus Nimetus : String Keskkond : String Kirjeldus : String Olek : BooleanJoonis 3. Algfaasi lihtsustatud domeeni eskiismudel Kursuse periood Arve nr vahemik Piirang : Integer Nr_algus : Integer Tahtaeg : Date Nr_lopp : Integer Algus : Date Valitud kursus Nr_viimane : Integer Lopp : Date Algoritm : Integer Ainepunktid : Boolean Hind : Integer Ainepunkte : Integer Programm : String Ainepunkte : Integer sisaldab vastab sisaldub Arve sisaldab Avaldus Arve_nr : Integer Koostamise_kp : Date Kursus Maksja_eesnimi : String seo tud Summa : Integer Maksja_perenimi : String Nimetus : String Maksetahtaeg : Date Maksja_isikukood : Integer Keskkond : String Makseviis : String Olek : Boolean Kirjeldus : String Tasutud_kp : Date Olek : Boolean Olek : Boolean esitab sisestab Kasutaja Kasutajanimi : String Tuup : Boolean Oigused : String Parool : String Eesnimi : String Perenimi : String E-mail : String Telefon : String Aadress : String Isikukood : Integer Re gistreeruj a AdministreerijaJoonis 4. Algfaasi domeeni eskiismudel 20
    • Administreerija on süsteemi kasutaja, kes sisestab süsteemi kursuse, mis sisaldab kursuseperioodi. Registreeruja on kasutaja, kes sisestab süsteemi avalduse, mis sisaldab valitudkursust. Avaldus on seotud arvega, mis on võetud arve numbri vahemikust. Arve on seotudkursuse perioodiga. Algfaasi domeeni eskiismudel ei ole külmutatud ja seda arendatakseiteratsioonide käigus edasi.2.5 Arendusplaan 2.5.1 Esimene iteratsioonEsimeses iteratsioonis võetakse vaatluse alla süsteemi põhifunktsionaalsusest kursuslaseavalduse sisestamise ja muutmisega seotud kasutusjuhud. Lisatakse vormide täitmise juhendidja andmete sisestamise kontroll. Arendustsükli eesmärgiks on leevendada süsteemikasutajapoolseid riske, mis on seotud kasutaja arusaamisest, kuidas süsteemis teha temapädevusalale vastavaid toiminguid. Tehnoloogiaga seotud riskide vähendamiseksprojekteeritakse süsteemi esialgne arhitektuur ning ehitatakse süsteemi vaheversioon, misaitab süsteemi tulevasel kasutusele võtjal saada ettekujutuse arendaja poolt loodavastsüsteemist ja läbi viia esmased kasutajapoolsed testid, et vähendada nõudmistega seotud riske.Lisatakse veebikeskkonna kujunduslikud elemendid.Kestvus: üks nädalDokumentatsioon: Kursuslase avalduse sisestamise ja muutmise kasutusjuhud, täpsustatuddomeenimudel ja esialgne arhitektuur, avalduse olekudiagramm ja avalduse sisestamisetegevusdiagramm. [7]Süsteemi vaheversioon: Kursuslase avalduse sisestamise ja muutmise liides. 2.5.2 Teine iteratsioonTeise iteratsiooni ülesandeks on lisada süsteemi turvalisus. Käsitletakse registreeruja süsteemiregistreerumise kasutusjuhtu. Teises iteratsioonis lisatakse süsteemi kasutaja (esmaltregistreeruja) tuvastamise mehhanism. Kavandatakse vormide täitmise juhendid ja piirangudandmete sisestamisel.Kestvus: üks nädalDokumentatsioon: Süsteemi registreerumise kasutusjuht. Piirangute ja turvalisusedokumentatsioon, kursuslase olekudiagramm. 21
    • Süsteemi vaheversioon: Registreeruja süsteemi registreerumise liides. Süsteemi lisataksekasutaja autentimine ja süsteemi sisenemise ja registreerumise liides ning registreeruja jakursuslase liideste täiendused andmete sisestamise korrektsuse ja kasutaja kontrolliga. 2.5.2 Kolmas iteratsioonKolmandas iteratsioonis võetakse vaatluse alla süsteemi põhifunktsionaalusest kursuslaseavalduse, valitud kursuse ning arve vaatamise ja otsimisega seotud kasutusjuhud. Luuaksevaheversioon kasutajapoolsete testide läbiviimiseks, et vähendada nõudmistega seotud riske.Täiendatakse süsteemi vormide täitmise juhendeid ja piiranguid andmete sisestamisel.Kestvus: üks nädalDokumentatsioon: Kursuslase avalduse, valitud kursuse ja arve vaatamise ja otsimisegaseotud kasutusjuhud.Süsteemi vaheversioon: Kursuslase avalduse, valitud kursuse ja arve vaatamise ja otsimiseliides. 2.5.3 Neljas iteratsioonNeljanda iteratsiooni ülesandeks on arendada administreerija allsüsteemi, kus vaatluse allavõetakse kursuse sisestamise, otsimise ja muutmise kasutusjuhud. Täiendataksenavigatsiooniskeemi ja luuakse administreerija kasutajaliides. Testitakse vaheversiooniadministreerija liidese toimimist.Kestvus: üks nädalDokumentatsioon: Administreerija kursuse sisestamise, otsimise ja muutmise kasutusjuhud,kursuse täiendatud olekumudel ja kursuse sisestamise tegevusdiagramm ja füüsilineandmemudel.Süsteemi vaheversioon: Süsteemi lisatakse administreerija kasutusjuhte hõlmav liides. 2.5.4 Viies iteratsioonViienda iteratsiooni ülesandeks on arendada administreerija allsüsteemi, kus vaatluse allavõetakse arve otsimise, tasutuks märkimise, vaatamise ja annullerimise ning ligipääsueemaldamise kasutusjuhud. Täiendatakse vormide täitmise juhendeid ja piiranguid andmetesisestamisel. Testitakse administreerijaliidese toimimist. Täiendatakse süsteemi navigeerimiseplaani. 22
    • Kestvus: üks nädalDokumentatsioon: Arve otsimise, tasutuks märkimise, vaatamise ja annullerimise ningligipääsu eemaldamise kasutusjuhud, täiendatud domeenimudel ja navigeerimise plaan.Süsteemi vaheversioon: Süsteemi administreerija liides koos täiendustega.2.6 Arendusvahendid 2.6.1 Rational Suite Enterprise tarkvaraRational Suite Enterprise tarkvara liides Rational Rose on tarkvara projekteerimiseks mõeldudCASE (Computer Aided Software Design) vahend, mis võimaldab modelleerida UML(Unified Modeling Language) vahenditega.Mudel on reaalsuse lihtsustus, mis kirjeldab süsteemi mingist vaatenurgast täielikult. Mudeliteehitamine aitab komplekssetest süsteemidest paremini aru saada. Tarkvara modelleeriminestandardset modelleerimiskeelt (nt. UML) kasutades garanteerib, et kõik arendustöös osalejad,(antud juhul on arendajaks ja realiseerijaks töö kirjutaja ühes isikus) üheseltmõistetavalt omaotsuseid üksteisele teatavaks teha.Suur osa UPist puudutab arendatava süsteemi mudelite loomist ja haldamist. UP on arendatudkäsikäes UMLiga. UML on graafiline keel tarkvarapõhise süsteemi tehiste visualiseerimiseks,spetsifitseerimiseks, konstrueerimiseks ja dokumenteerimiseks. [6] 2.6.2 Oracle veebipõhine andmebaasi arendusvahendSeoses interneti kiire kasvuga on kursuste haldamissüsteem realiseeritud veebiliidesena.Kasutatud on Oracle Corporation’i poolt pakutud erinevate infosüsteemide väljatöötamisevõimalusi ja laiendusi. HTML DB veebipõhine andmebaasi arendusvahend võimaldabsüsteemi ehitada kasutades ainult veebibrauserit.Vabavarana saadaval oleva arendusvahendi andmebaasi suurused on 2, 5, 50 ja 100megabaiti. Suuremate vajaduste korral on Oracle Corporation käesoleval 2004. aastal turuletoonud uue toote, milleks on Portal, kus suuremaid võimalusi pakuvad HTML DBveebipõhise andmebaasi arendusvahendi laiendus koos Oracle 10g andmebaasiserveriga.HTML DB arendusvahendisse on integreeritud kõigi kolme tarkvara kihi, milleks onandmebaasi, äriloogika ja andmete esitluskihi realiseerimise võimalused. 23
    • Application Builder SQL Workshop Data Workshop AdministrationJoonis 5. Oracle HTML DB veebipõhise arendusvahendi põhikomponendid. [4]HTML DB põhikomponendid on jaotunud järgnevalt:Rakenduse ehitamine(Application Builder) – Rakenduse ehitus, mis hõlmab kasutajaliidestelehekülgede menüüde, regioonide, väljade, nuppude, protsesside, piirangute, turvalisuse jamuu sarnase määramist.SQLi kirjutamine (SQL Workshop) – SQL käskude protsessor, skriptid, dll-d; andmetebrauser sisaldab funktsioonide, protseduuride, indeksite, tabelite, trigerite, vaadete loomisevõimalusi.Andmetega toimingud (Data Workshop) – andmete eksportimine ja importimine teksti ja xmlkujul.Administreerimine (Administration) – kasutajate, logide, sessioonide monitooring ja raportid.HTML DB veebipõhises andmebaasi arendusvahendis on plussiks, et rakendust on võimalikkoheselt käivitada ja igas ehitamise etapis tehtud muudatust näha. Välistatud on mittetöötavate funktsioonide või protseduuride sattumine andmebaasi, sest arendus toimubiteratiivsele arendusprotsessile omaselt tsüklitena, mis ei luba järgmisesse faasi liikuda, kuieelmine ei ole lõplik või eesmärk pole saavutatud. 2.6.3 PL/SQLSQL on standardkeel andmete lugemiseks, lisamiseks, muutmiseks ja kustutamiseksandmebaasist. PL/SQL (Procedural Languages/ Structured Query Language) on Oraclelaiendus SQLile. PL/SQL lisab protseduuridele programmeerimiskeele omadused nagutsüklilause, hargnemislause, muutujate deklareerimine ja vigade töötlus. Esmakordselttutvustas Oracle seda 1988. aastal ja sellest ajast peale on seda pidevalt edasi arendatud jaarendatakse ka tulevikus.Kuna PL/SQLi kompileeritakse ja hoitakse andmebaasis, siis annab see eelised kiirusele. Seeei nõua käitusaegset kompileerimist ega interpreteerimist. Samuti puudub veebilehe 24
    • kuvamisel serveri ja baasi vahel edasi-tagasi käimine, kui JSP, ASP või Perliga tehtud lehepuhul võib skript käia korduvalt andmebaasi ja serveri vahel, siis PL/SQLi puhul seda eitoimu, sest PL/SQL asub ise andmebaasis. Kiiruse vahe ilmneb eriti suuremate andmehulkadetöötlemisel. [5]3. Esimese iteratsiooni dokumentatsioon3.1 Iteratsiooni plaan ja riskianalüüsEsimeses iteratsioonis viiakse läbi süsteemi kursuslase põhifunktsionaalsuse analüüsi-,disaini- ja realisatsioonietapid. Põhifunktsionaalsus hõlmab avalduse sisestamist ja muutmist.Iteratsioonis võetakse ühe nädala kestusel vaatluse alla järgmised kasutusjuhud:1) Avalduse sisestamine/muutmine;2) Andmete korrektsuse kontroll.Esimeses iteratsioonis käsitletakse planeerimise dokumentatsioonis identifitseeritud riske (vtp. 2.2.7). Kasutajapoolsetest võetakse vaatluse alla risk, kus süsteem ei ole kasutajale lihtsaltarusaadav ja hõlpsasti kasutatav;Nõudmistest tulenevatest riskidest püütakse kindlaks teha, kas süsteemi kasutusse võtja omabmuutumatut visiooni loodavast süsteemist ja kas süsteemi kasutusse võtja on üldse huvitatudsüsteemi arenduse protsessis osalemisest.Antud riskide vähendamiseks kasutatakse süsteemi vaheversiooni loomist, mis aitab süsteemikasutusele võtjal olla kursis arendustööga, et oleks varakult võimalus vajadusel lisada võitäpsustada süsteemile esitatavaid nõudmisi.3.2 Analüüsi dokumentatsioon 3.2.1 Tehnoloogia valikKasutatava tehnoloogia valikul tuli otsustada, millist tüüpi rakendus süsteemi loomiselehitada, milline server, programmeerimiskeel js andmebaas rakenduse aluseks valida.Kõige praktilisem on antud süsteem luua veebipõhisena, et kursustele registreerumist olekskõigil soovijatel mugav läbi interneti teostada. Samuti on süsteemi haldamine läbi interneti 25
    • tänapäeva mobiilses töökeskkonnas juba levinud lahenduseks, kus töökoht ei pea asumatingimata kontoris, vaid pigem internetis.Antud süsteemi realiseerimiseks osutus sobivaks ja esialgu ka piisavaks lahenduseks Oracleveebipõhine andmebaasi server, mis serveri programmeerimise keeleks pakub PL/SQL-i.Oluline, on et PL/SQL päringud ei pea võtma korduvalt ühendust andmebaasiga.PL/SQL võimaldab sarnaselt PostgreSQLile: 1) alampäringute sooritamist; 2) trigerite kirjutamist; 3) tabelite vaheliste relatsioonide kasutamist; 4) salvestatud protseduuride kirjutamist; 5) vaadete loomist.Samuti võimaldab Oracle veebipõhise andmebaasi arendusvahend lihtsalt luua ekraanivormenii administreerimise kui ka registreerumise liidesele. Antud projekti puhul kasutasinpõhiliselt standardpäringuid ja aruandeid (reports) otsinguprotsesside käivitamiseks jakuvamiseks.Tehtud otsuste põhjal näeb süsteemi arhitektiuur piltlikult välja joonisel 3. esitatud kujul.Joonis 6. Jäme süsteemi arhitektuur 26
    • 3.2.2 Kasutusjuhtude diagramm Kursuslane Aval duse sisestam ine/ muutm ine (f rom Actors) Andmete korrektuse kontrollJoonis 7. Esimese iteratsiooni kasutusjuhtude diagramm. 3.2.3 Kasutusjuhud laiendatud formaadisKasutusjuht: Avalduse sisestamine/muutmineTegutsejad: RegistreerujaEesmärk: Võimaldada kursuslasel sisestada avalduse kursusel osalemiseksKirjeldus: Kursuslane täidab kursuse avalduse vormi, kuhu sisestab oma isikuandmed.Süsteem kuvab aktiivsed kursused. Registreeruja valib kursuse ja kas ta soovib ainepunkte(ülikoolidega on leping, mis võimaldab kursuslasele ainepunkte anda). Süsteem kuvab maksjaandmete vormi. Registreeruja määrab maksja andmed. Süsteem kuvab sisestatud andmed jatehtud valikud. Kursuslane kinnitab lõplikult avalduse lisamise. Süsteem tekitab kursuslase,avalduse, seostab kursuslasega arve ja kursuslase valitud kursuse. Süsteem kuvab, et klient onkursusele registreeritud ja kursuse veebikeskkonnale ligipääsu saamiseks tuleb maksta teatudkuupäevade jooksul arve. Avalduse muutmine on võimalik kuni lõpliku kinnitamiseni.Eeltingimused: Administraator on eelnevalt sisestanud aktiivseid kursusi.Järeltingimused: Tekitatud on kursuslane, avaldus, valitud kursus ja arve.Stsenaarium:Kasutaja Süsteem1. Sisestab avalduse andmed. 2. Kasutab kasutusjuhtu korrektsete andmete kontroll. Kuvab aktiivsete kursuste loetelu.3. Valib kursuse ja kas soovib ainepunkte. 4. Kuvab maksja andmete vormi.5. Sisestab maksja andmed. 6. Kasutab kasutusjuhtu korrektsete andmete kontroll. Kuvab tehtud valikud.7. Kinnitab valikud. 8. Tekitab uue kursuslase, avalduse ja valitud kursuse, seostab arvega ning salvestab lisatud 27
    • andmed andmebaasi. 9. Kuvab kursuse lisamise kinnituse ja arve numbri.2,4 Käivitab kasutusjuhu andmete korrektuse kontroll.Alternatiivid: Juhul kui kasutaja soovib andmeid muuta on võimalik eelmistele vormideletagasi liikuda. Süsteem uuendab andmeid vaatel. Juhul kui kasutaja ei soovi avalduse täitmistjätkata saab ta selle igas etapis katkestada.Kasutusjuht: Andmete korrektsuse kontrollTegutsejad: SüsteemEesmärk: kindlustada võimalikult korrektsete andmete andmebaasi sattumineKirjeldus: Süsteem kontrollib sisestatud andmeid. Kui andmete sisestamise väli või väljad ontäitmata või ei vasta standardile, kuvab süsteem veateate ja ei luba edasi liikuda enne kui vigaon korrigeeritud. Isikukoodi sisestamisel kontrollitakse välja pikkust ja teisendatakse seda kakuupäevaks.Eeltingimused: Kasutaja on sisestanud andmeid.Järeltingimused: Andmebaasi on lisatud kontrollitud ja korrektsed andmed.Stsenaarium:Kasutaja Süsteem1. Sisestab avalduse andmed. 2. Andmete kontroll. Leiab vea.3. Parandab vea. 4. Kuvab aktiivsete kursuste loetelu.5. Valib kursuse ja kas soovib ainepunkte. 6. Kuvab maksja andmete vormi.7. Sisestab maksja andmed. 8. Andmete kontroll. Leiab vea.9. Parandab vea. 6. Kasutab kasutusjuhtu korrektsete andmete kontroll. Kuvab tehtud valikud.7. Kinnitab valikud. 8. Tekitab uue kursuslase, avalduse ja valitud kursused ning salvestab lisatud andmed andmebaasi. 9. Kuvab kursuse lisamise kinnituse ja arve numbri. 28
    • Alternatiivid: Juhul kui kasutaja soovib andmeid muuta on võimalik eelmistele vormideletagasi liikuda. Süsteem uuendab andmeid vaatel. Juhul kui kasutaja ei soovi avalduse täitmistjätkata saab ta selle igas etapis katkestada. 3.2.4 Täpsustatud domeenimudelKäesoleva peatüki domeenimudelil on ära toodud esimeses iteratsioonis käsitletavadkontseptid. Mudelile on täpsustatavalt lisatud atribuudid ja kontseptide vahelisedassotsiatsioonid. Vali tud kursus Avaldus Kurs us Vali tud_id (PK) : Integer Maksja_eesni mi : Stri ng sisald ab määrab Nimetus : String Aval dus_i d (FK) : Integer Maksja_pere nim i : String Keskkond : String Peri oodi _id (FK) : Integer Maksja_isikukood : Integ er Kirjeldus : String 1 1..* Ainepunktid : Bo olea n 1..* 1 Ol ek : Boolean Olek : Boolean Ainepunkte : Intege r 1..* 1 on seotud 1..* 1 sisa ldub e sitab 1 Arve 1 1 Arve_nr : Integer Kursuslane Koostamise_kp : Date Summa : Integer vastab Olek : Boolean Registreerimise kp : Date Maksetahtaeg : Date Makseviis : String 1 ..* Tasutud_kp : Date 1 Olek : Boolean esineb 1 Kasutaja Kasutajanimi : String Tuup : Boolean Oigused : String Parool : String Eesnimi : String Perenimi : String E-mail : String Telefon : String Aadress : String Isikukood : Integer Registreeruj a Joonis 8. Esimese iteratsiooni täpsustatud domeenimudel. Süsteemi registreerunud kasutaja esineb kursuslasena, mis tähendab, et ta omab kursuslase õigusi. Kursuslane esitab kursusel osalemiseks avalduse, mis sisaldab valitud kursusi. Valitud kursus määrab kursuse, millel süsteemi registreerunud kursuslase õigusega kasutaja soovib osaleda. Igale kursusele vastab arvete hulk. Arves sisalduvad valitud kursused arve ridadena. Avaldusega on seotud arve, mida kursuslane omab ja on kohustatud kursuse eest tasuma. 29
    • 3.2.5 Avalduse sisestamise tegevusdiagramm Uue avalduse sisesta mise valim ine Avalduse vormi kuvamine Avalduse andm ete Väljad täitmata / ei ole korrektsed sise stam ine Viga parandatu d Ei lisa ja annab veateate Aktiivseid kursuseid ei ole Kursuse valik Viga p arand atud Ei lisa ja annab info aktiivsete kursuste puudumisega Maksja andmete Väljad täitmata / ei ole korektsed sisestamine Ei lisa ja annab veateate Aval duse valikute Viga parandatu d kuvamine Aval duse valikute Kasutaja poolne katkestamine kinnitamine Ei lisa ja katkestab Viga p aranda tud Kursuslase, avalduse ja valitud kursuse tekitamine Aval duse lisam ise kii nitus e j a arve numbri kuvamineJoonis 9. Avalduse sisestamise tegevusdiagrammMärkus: Kuni avalduse valikute kinnitamiseni on võimalik iga tegevuse täitmise järel liikudaeelnevalt sooritatud tegevuse juurde tagasi ja vaadata üle või teha täidetud vormidelmuudatusi. 30
    • 3.2.6 Avalduse olekudiagramm Kasutaja sisestab avalduse andmed / kontrollitakse avalduse andmeid Kasutaja sisestatab ebakorrektseid andmeid / kuvatakse veateade Esialgsed avalduse andmed Kasutaja salvestab avalduse / avalduse andmed salvestatakse Kasutaja muudab andme id / andm eid m uudetakse Salvestatud avalduse andmed Kasutaja kustutab a valduse / aval duse andm ed kustutatakseJoonis 10. Avalduse olekudiagramm.Märkus: Kasutaja on esmakordel avalduse sisestamisel registreeruja, edaspidi kursuslane jakursuslase õigustega.3.3 Disaini dokumentatsioon 3.3.1 Paketidiagramm Kasutajaliides Kursuslane Admini streerij a Süsteemi Registreeruja toimimine Suhtlus andmebaasiga PL/SQL andmebaas is AndmebaasJoonis 11. Arhitektuuri paketidiagramm. 31
    • Antud töö arhitektuuri loogika lähtub Oracle HTML DB loogikast. Niisiis asub suhtlusandmebaasiga andmebaasis sees, sest süsteemi toimimiseks PL/SQL ei käi kasutajaliidesevaadete veebis kuvamisel korduvalt andmebaasi ja serveri vahel ega vaja käitusaegsetkompileerimist või interpreteerimist. Täpsemalt on PL/SQL-ist osas 2.6.3.Süsteemi toimimiseks on administreerijal, kursuslasel ja registreerijal kasutajaliidesed veebis.Registreerija liides on sisuliselt süsteemi sisenemise liides. Administreerija liidesel saab tehakursuste haldamisega seotud tegevusi administreerija õigustega kasutaja ja kursuslane saaboma liidesel teha oma pädevusalasse kuuluvaid tegevusi. Süsteemi toimimises on seessüsteemi äriloogika, mis sisaldab süsteemi põhifunktsionaalsusi. 3.3.2 Komponendidiagramm Registreerumise Administreeruja Kursuse vorm avaleht sisestamise vorm Kursuslase otsimise vorm Arve otsimi se vorm Kursuse Kurs uslas e otsimise vorm aval eht Avalduse otsimise vorm Kursuse keskkonda sisenemise vorm Valitud kursuse otsimise vorm Avalduse Andme baas sisestamise vormJoonis 12. Komponendidiagramm.Komponendidiagramm käsitleb osa kasutajaliidesest üldiselt. Andmebaasiga on seotud veelerinevad protsesside, trigerite, funtsioonide ja protseduuride komponendid. 32
    • 3.3.3 Reaalsed kasutusjuhudJoonis 13. Avalduse andmete sisestamise vorm.Kasutusjuht: Avalduse sisestamine (vormid antud joonistel 13, 15 ja 16.)Tegutsejad: Kursuslane (esmakordsel avalduse sisestamisel registreeruja, sest kursuslast poleveel loodud)Kirjeldus: on kirjeldatud punktis 3.2.3Käivitatav sündmus: Kursuslane soovib sisestada uue avalduse kursusele registreerumiseks.Eeltingimused: Administraator on eelnevalt sisestanud aktiivseid kursusi.Järeltingimused: Tekitatud on kursuslane, avaldus, valitud kursus ja arve.Seotud kasutusjuhud: Andmete korrektsuse kontroll (käivitub vormidel 13, 15 ja 16).Lisamärkus: Kasutusjuht avalduse sisestamine on realiseeritud multivormidel.Joonis 14. Kursuse valiku vorm.Joonis 15. Maksja andmete sisestamise vorm. 33
    • Joonis 16. Kokkuvõtte ehk avalduse andmete lõpliku sisestamise vorm.Peale kinnitust järgneb ekraanil kuvatud avalduse kinnitus ja arve nr. 3.3.4 Avalduse tekitamise koodPärast kokkuvõtte ehk avalduse lõplikku kinnitamist ja sisestamist toimub avaldusetekitamine. Järgnevalt on esitatud avalduse tekitamise kood, kus esmalt deklareeriaksemuutujad, seejärel juhul kui kursuslaste ei eksiteeeri tekitatakse kursuslane, tekitatakseavaldus, lisatakse valitud kursus ja ainepunktid ning seostatakse avaldusega arve. Tabelid onkoondatud pakettidesse.declare sAinepunktid varchar2(4); sArve_nr varchar2(40); rAV ARVE_NR_VAHEMIK%rowtype; nSumma number:=0; nKURSUSLANE_ID number; nAVALDUS_ID number; nARVE_ID number; 34
    • aPer_id HTMLDB_APPLICATION_GLOBAL.VC_ARR2; aAP HTMLDB_APPLICATION_GLOBAL.VC_ARR2;begin /* Tekitan kursuslase kui teda veel ei ole, kui on siis võtan muutujast */ if v(G_KURSUSLANE_ID) is null then nkursuslane_id:=AVALDUSE_TEKITAMINE.Tekita_kursuslane( v(G_KASUTAJA_KASUTAJANIMI), v(G_KASUTAJA_EESNIMI), v(G_KASUTAJA_PERENIMI), v(G_KASUTAJA_ISIKUKOOD), v(G_KASUTAJA_TELEFON), v(G_KASUTAJA_E_MAIL)); htmldb_util.set_session_state(G_KURSUSLANE_ID,nKursuslane_id); else nKursuslane_id:=v(G_KURSUSLANE_ID); end if; nAvaldus_id:=AVALDUSE_TEKITAMINE.Tekita_avaldus ( nKursuslane_id, v(P60_EESNIMI), v(P60_PERENIMI), v(P60_ISIKUKOOD), v(P60_TOOKOHT_KOOL), v(P60_AADRESS), v(P60_TELEFON), v(P60_E_MAIL), v(P62_MAKSJA_EESNIMI), v(P62_MAKSJA_PERENIMI), v(P62_MAKSJA_ISIKUKOOD)); aPer_id:=HTMLDB_UTIL.STRING_TO_TABLE(v(P61_VALITUD_KURSUS)); aAP :=HTMLDB_UTIL.STRING_TO_TABLE(v(P61_VALITUD_AINEPUNKTID)); for c1 in 1..aPer_id.count loop sAinepunktid:=E; for c2 in 1..aAP.count loop if aAP(c2)=aPer_id(c1) then sAinepunktid:=J; exit; end if; end loop; AVALDUSE_TEKITAMINE.Kursuse_perioodid ( aPer_id(c1), nAvaldus_id, sAinepunktid, nSumma, sArve_nr); end loop; 35
    • nArve_id:=AVALDUSE_TEKITAMINE.Tekita_arve (nSumma); /* Tekitatud avaldusega seostan arve numbri. */ if aPer_id.count=1 then update arve set arve_nr=sArve_nr where arve_id=nArve_id; update avaldus set arve_nr=sArve_nr where avaldus_id=nAvaldus_id; htmldb_util.set_session_state(P63_ARVE_NR,sArve_nr); else update arve set arve_nr=nArve_id where arve_id=nArve_id; update avaldus set arve_nr=nArve_id where avaldus_id=nAvaldus_id; htmldb_util.set_session_state(P63_ARVE_NR,nArve_id); end if; commit;exception when others then rollback; raise;end; 3.3.5 Füüsiline andmemudel Kasutaja Kasutajanimi (PK) : String Tuup : Boolean Oigused : String Kursuslane Parool : String Kursuslane_id (PK) : Integer Eesnimi : String Kasutajanimi (FK) : String Perenimi : String Olek : Boolean 1 1 E-mail : String Registreerimise kp : Date Telefon : String Aadress : String 1 Isikukood : Integer 1..* Avaldus Aval dus_i d (PK) : Integer Valitud kursus Kursus lane _id (FK) : Integ er Valitud_id (PK) : Integer Arve_nr (FK) : Integ er Avaldus_id (FK) : Integer Ma ksja_eesni mi : String Perioodi_id (FK) : Integer 1 Ma ksja_perenim i : String 1 1..* Ainepunktid : Boolean Ma ksja_is iku kood : Integ er Ainepunkte : Integer Ol ek : Boo lean 1 1 1 Arve Kursuse periood Arve_id (PK) Perioodi_id (PK) : Integer Kursus Kursuse_id (FK) : Integer Arve_nr : Integer Kursus e_id (PK) : Integ er Piirang : Integer Koostamise_kp : Date Ni metu s : String Tahtaeg : Date Summa : Integer Keskkon d : String Algus : Date Maksetahtaeg : Date 1..* 1 Kirjel dus : Stri ng 1 1 Lopp : Date Makseviis : String Ol ek : Boo lean Hind : Integer Tasutud_kp : Date Olek : Boolean Programm : String Ainepunkte : IntegerJoonis 17. Esimese iteratsiooni füüsiline andmemudel. 36
    • 3.4 RealisatsioonEsimese iteratsiooni raames loodi süsteemi esimene vaheversioon, milles realiseeritiiteratsiooni käigus teostatud detailanalüüsi ning disaini tulemused rakendusepõhifunktsionaalsusest kursuslase avalduse sisestamise ja muutmise kohta.Realiseerimisetapi alguses kaalutleti millised ekraanivormid peaksid välja nägema. Sellekspakkus Oracle HTML DB välja oma standardiseeritud mooduli, kus andmete sisestamise saabvormide täitmise lihtsuse huvides jagada osadeks, mille vahel on võimalik navigeerida, etkontrollida andmed üle ja teha soovi korral muudatusi. Kujunduselt oli võimalik valida mitmeerineva malli vahel.Andmete sisestamisel on kirjutatud kontrollfunktsioonid, mis ei luba enne järgmisele vormileedasi liikuda, kui kõik kohustuslikud väljad on täidetud. Sama kehtib piirangute kohta, mis onkirjutatud trigeritesse ja kontrollivad andmete õigsust. Toimub esmatähtis isikukoodi pikkuseja õigsuse kontroll, kus on minimeeritud valede ja väärtusetute andmete andmebaasisattumist.Esialgu lisati kursuse andmed andmebaasi käsitsi, kuna administreerija liidest pole veelarendatud.3.5 Iteratsiooni tulemusedIteratsiooni läbiviimiseks kulus antud töö teostajal täpselt üks nädal nagu planeeritud. Töökäigus viidi läbi detailanalüüsi- ja disainietapid vaatluse all oleva funktsionaalsuse kohta jarealiseeriti analüüsitud ja disainitud osa süsteemist.Vaheversiooni valmimisel näidati seda tulevasele süsteemi kasutuselevõtjale. Seninirealiseeritud funktsionaalsusega oldi rahul ega esitatud lisasoove. Kasutajale teeb võimalusliikuda avalduse täitmise ajal erinevate sisestusvormide vahel avalduse täitmise mugavaks jakäepäraseks. Kogu täidetud avalduse kuvamine enne lõplikku sisestamist annab kasutajalevõimaluse vaadata üle sisestatud andmed, mis aitab garanteerida ainult korrektsete andmeteandmebaasi sattumise. Edaspidi arendatakse loodudud kursuslase kasutajaliidest edasi jalisatakse sinna süsteemi põhifunktsionaalsusest tulenevaid tegevusi.Järgmistes iteratsioonides on tarvis kindlustada, et ülejäänud kursuslase kasutajaliideselvõimalikud tegevused toimuksid ainult selle kasutaja andmetega, kes on parajasti süsteemisisenenud. 37
    • Tehnoloogijariski vähendamiseks vaadati iteratsiooni käigus üle esialgne süsteemi arhitektuurning otsustati, millised võiksid olla võimalikud vahendid süsteemi realiseerimiseks. Selleks,et töö oleks arendajale uudne ja huvitav, valiti täiesti uus vahend – Oracle HTML DBveebipõhine andmebaasi arendusvahend. Samas on sellisel juhul risk alles, mis on uuesüsteemi mitte tundimine, kuid antud töö teenib eelkõige õppimise eesmärki. 38
    • 4. Teise iteratsiooni dokumentatsioon4.1 Iteratsiooni plaan ja riskianalüüsTeise iteratsiooni ülesandeks on lisada süsteemi turvalisus. Oluline on eraldadaadministraatori ja kursuslase õigused, et kursuslane ei saaks mingil juhul ligipääsu kursuste,arvete või teiste kursuslaste andmete juurde. Tingimata on tarvis kindlustada, et kursuslasekasutajaliidesel võimalikud tegevused toimuksid ainult selle kasutaja andmetega, kes onparajasti süsteemi sisenenud.Käsitletakse registreeruja süsteemi registreerumise kasutusjuhtu. Lisatakse süsteemi kasutajatuvastamise mehhanism, vormide täitmise juhendid ja piirangud andmete sisestamisel.Süsteemi vaheversiooni loomine on oluline kasutaja õiguste määramise seisukohast, etvähendada süsteemi turvalisuse riske. Süsteemi lisatakse kasutaja autentimine ja süsteemisisenemise ja registreerumise liides ning registreeruja ja kursuslase liideste täiendusedandmete korrektsuse kontrolli (3.2.3) ja kasutaja kontrolliga (4.2.2).4.2 Analüüsi dokumentatsioon 4.2.1 Kasutusjuhtude diagramm Administreerija Andmete korrektuse kontroll (f rom Actors) Registreerumine Kasutaja kontroll Registreeruja (f rom Actors)Joonis 18. Teise iteratsiooni kasutusjuhud. 39
    • 4.2.2 Kasutusjuhud laiendatud formaadisKasutusjuht: RegistreerumineTegutsejad: Registreeruja, administreerija; üldisemalt kasutaja.Eesmärk: Tekitada uus kursuslase või administreerija õigustega kasutaja.Kirjeldus: Kasutaja sisestab oma andmed, kasutajanime ning parooli. Süsteem salvestabneed, tekitab uue kasutaja ning kuvab registreeruja isikuandmed ja edasi võimaldab koheseltpääsu süsteemi avalduse esitamiseks ja muudeks toiminguteks.Administreeruja puhul toimub süsteemi kasutaja õiguste saamine samal põhimõttel, kuidvorm on kättesaadav salastatud aadressilt ja lisaturvalisuse jaoks on paroolid määratudkindlaks tööandja poolt.Eeltingimused: -Järeltingimused: Tekitatud on kasutaja.Stsenaarium:Kasutaja Süsteem1. Sisestab uue kasutaja loomiseks andmed 2. Kontrollib kas kõik nõutud väljad on määratud käivitades kasutusjuhu andmete korrektsuse kontroll (vt 3.2.3). 3. Kontrollib kasutaja poolt sisestatud andmeid käivitades kasutusjuhu andmete korrektsuse kontroll. 4. Tekitab uue kasutaja ja salvestab lisatud andmed andmebaasi.Kasutusjuht: Kasutaja kontrollTegutsejad: SüsteemEesmärk: Andmebaasi peavad sattuma võimalikult täielikud ja korrektsed andmed.Kirjeldus:.Süsteem kontrollib, kas kasutaja andmed on õiged süsteemi sisenemisel. 40
    • 4.2.3 Kursuslase olekudiagramm regi streeruja regi streerib süsteem i / regi streeruja saab kasutajaõ iguse d sü stee mi s sisestatakse ebakorrektsed andm ed/ kuvata kse veateade Registreeruja kasutaja lisab avalduse/ esimesel korral tekitatakse/edaspidid lisatakse uus kasutaja andmeid muudetakse / kirje muudetakse Kursuslane administreerija kustutab kursuslase/ kursuslane kustutatakseJoonis 19. Kursuslase olekudiagramm4.3 Disaini dokumentatsioon 4.3.1 Reaalsed kasutusjuhudJoonis 20. Süsteemi registreerumise vorm.Lisamärkus: Registreeruja või kursuslane näeb üleval paremal ainult linki Sisenemine. Antudvorm on esialgne administreeruja ekraanivorm, kus on näha üleval paremal kaadministreerimise ja kursuslase liidese lingid Administreerimine ja Kursuslane. 41
    • Kasutusjuht: RegistreerumineTegutsejad: Kursuslane (esmakordsel avalduse sisestamisel registreeruja, sest kursuslast poleveel loodud), administreerija.Kirjeldus: Registreeruja sisestab oma andmed, kasutajanime ning parooli. Süsteem salvestabneed, tekitab uue kasutaja ning kuvab registreeruja isikuandmed ja edasi võimaldab koheseltpääsu süsteemi avalduse esitamiseks ja muudeks toiminguteks. Edaspidi pole tarvis sisestadamuud kui vaid kasutajanimi ja parool.Administreeruja puhul toimub süsteemi kasutaja õiguste saamine samal põhimõttel, kuidvorm on kättesaadav salastatud aadressilt ja lisaturvalisuse jaoks on paroolid määratudkindlaks tööandja poolt.Käivitatav sündmus: Kursuslane soovib siseneda avalduse kursusele registreerumiseks.Eeltingimused: -Järeltingimused: Tekitatud on kasutaja.Seotud kasutusjuhud: Andmete korrektsuse kontroll (3.2.3) ja kasutaja kontroll (4.2.2). 4.3.2 Füüsiline andmemudel Kurs uslan e Kursuslane_id (PK) : Integer Kasutajanimi (FK) : String Olek : Boolean Registreerimise kp : Date 1 1 Kasutaja Kasutajanimi (PK) : String Tuup : Boolean Kursus Oigused : String Kursuse_id (PK) : Integer Parool : String Ni metus : Stri ng Eesnimi : String Keskkond : Stri ng Perenimi : String 1 0..* Kirjel dus : Strin g E-mail : String Ol ek : Bool ean Telefon : String Aadress : String Isikukood : Integer Registreeruja Administreerija 42
    • Joonis 21. Teise iteratsiooni andmemudel.4.4 RealisatsioonTeise iteratsiooni raames loodi süsteemi teine vaheversioon, milles realiseeriti iteratsioonikäigus teostatud detailanalüüsi ning disaini tulemused rakenduse turvalisuse kohta kasutajasüsteemi registreerumise ja sisenemise osas.Realiseerimisetapi alguses kaalutleti, kuidas kasutajate turvalisust kõige paremini turvata.Määrati globaalselt kasutaja õigused, mis lubavad kursuslasel ja administreerijal sisenda vaidneile vastavasse süsteemi osasse ja kasutajaliidesesse.Täiendati süsteemi juhiste regiooni lisamisega. Info all on kirjeldatud, mida antudkasutajaliidese vormil tuleb teha ja millised on alterantiivsed toimingud. Samuti on võimalikiga välja nimetuse juures klõpsates saada süsteemi poolt infot, mida tuleks konkreetseleväljale sisestada.4.5 Iteratsiooni tulemusedTeine iteratsioon õnnestus mahutada ettemääratud ajalistesse raamidesse. Iteratsiooniläbiviimiseks kulus antud töö teostajal nädal nagu planeeritud. Töö käigus viidi läbidetailanalüüsi- ja disainietapid vaatluse all oleva funktsionaalsuse kohta ja realiseeritianalüüsitud ja disainitud osa süsteemist.Vaheversiooni valmimisel näidati süsteemi tulevasele kasutuselevõtjale. Realiseeritudfunktsionaalsusega oldi rahul ega esitatud mingeid lisasoove. Üldiselt ei ole süsteemitulevasel kasutusele võtjal erilisi nõudmisi süsteemi suhtes, vaid süsteemiarendajale on antudvaba tee tegutseda oma äranägemise järgi. Raskusi tekitatab asjaolu, et süsteemi tulevaselkasutajal puuduvad igasugused teadmised, millise infoga peab süsteemi arendajatkindlustama, et süsteemis oleks lõpuks kõik nõutud kriteeriumid täidetud. Seega tulebsüsteemi projekteerijal väga täpselt formuleerida kõik küsimused süsteemi tulevaselekasutajale mistahes süsteemi osa nägemuse osas.Antud iteratsiooni põhieesmärk süsteemis kindlustatada, et kursuslase kasutajaliideselvõimalikud tegevused toimuvad ainult selle kasutaja andmetega, kes on parajasti süsteemisisenenud, on iteratsiooni lõppedes saavutatud ja võib minna edasi järgmiste iteratsioonidejuurde. 43
    • 5. Kolmanda iteratsiooni dokumentatsioon5.1 Iteratsiooni plaan ja riskianalüüsKolmanda iteratsiooni ülesandeks on edasi arendada süsteemi kursuslase osa, kus vaatlusealla võetakse põhifunktsionaalusest kursuslase avalduse, valitud kursuse ning arve vaatamiseja otsimisega seotud kasutusjuhud. Samuti käsitletakse kasutaja kontrolli kasutusjuhtu, mis onjuba eelpool defineeritud (vt. 2.3.1). Luuakse vaheversioon kasutajapoolsete testideläbiviimiseks, et vähendada nõudmistega seotud riske. Täiendatakse süsteemi navigeerimiseplaani, vormide täitmise juhendeid ja piiranguid andmete sisestamisel.Iteratsioonis võetakse ühe nädala kestusel vaatluse alla järgmised kasutusjuhud:1) Avalduse vaatamine/otsing;2) Arve vaatamine/otsing;3) Kursuse vaatamine/otsing.Kolmandas iteratsioonis käsitletakse planeerimise dokumentatsioonis identifitseeritud riske(vt p. 2.2.7). Kasutajapoolsetest võetakse vaatluse alla risk, kus süsteem ei ole kasutajale,antud iteratsiooni korral kursuslasele, lihtsalt mõistetav.Antud riskide vähendamiseks kasutatakse järjekordselt süsteemi vaheversiooni loomist, misaitab süsteemi kasutusele võtjal olla kursus arendustööga.5.2 Analüüsi dokumentatsioon 5.2.1 Kasutusjuhtude diagramm Arve vaatamine/otsing Kursuslane Avaldus e vaatamine/otsimine (f rom Actors) Kasutaja kontroll Valitud kursuse vaatamine/ots ingJoonis 22. Kolmanda iteratsooni kasutusjuhud. 44
    • 5.2.2 Kasutusjuhud laiendatud formaadisKasutusjuht: Avalduse vaatamine/otsingTegutsejad: RegistreerujaEesmärk: Avalduse otsingu tulemuse kuvamineKirjeldus: Registreeruja otsib avaldust erinevate otsingu parameetrite järgi. Süsteem tagastabvastava(d) avalduse(d).Eeltingimused: -Järeltingimused: -Stsenaarium:Kasutaja Süsteem1. Kursuslane otsib avaldust etteantud 2. Süsteem kuvab otsitud avalduse(d).parameetrite järgi.Kasutusjuht: Valitud kursuse vaatamine/otsingTegutsejad: RegistreerujaEesmärk: Valitud kursuse otsingu tulemuste kuvamine.Kirjeldus: Registreeruja otsib valitud kursusi erinevate parameetrite järgi. Süsteem kuvabvastava(d) kursuse(d).Eeltingimused: -Järeltingimused: -Stsenaarium:Kasutaja Süsteem1. Kursuslane otsib oma valitud kursusi 2. Süsteem kuvab otsitud valitud kursuse(d).etteantud parameetrite järgi.Kasutusjuht: Arve vaatamine/otsingTegutsejad: RegistreerujaEesmärk: Arve otsingu tulemuste kuvamine.Kirjeldus: Registreeruja otsib valitud kursusi erinevate parameetrite järgi. Süsteem kuvabvastava(d) arve(d).Eeltingimused: -Järeltingimused: - 45
    • Stsenaarium:Kasutaja Süsteem1. Kursuslane otsib oma arvet etteantud 2. Süsteem kuvab otsitud arve(d).parameetrite järgi.Kasutusjuht: Kasutaja kontroll (vt 4.2.2). 5.2.2 Kursuslase olekudiagramm Registreeruja registreerib süsteemi / registreeruja saab kasutajaõigused süsteemis Registreeruja sisestatab ebakorrektsed andmed / kuvatakse veateade Registreeruja Registreeruja siseneb süsteemi / kontrollitakse kursuslase olemasolu Kursuslane Kursuslane muudab andmeid või sisestab uue avalduse/ muudatused salvestatakse Kursuslast ei eksisteeri/ luua k kursu s e se lan Uu s Kursuslane eksisteerib/ kontrollitakse kursuslase andmeid Olemas olev kursu slan e kursuslane Kursuslase andmed aeguvad / kursuslane kustutatakseJoonis 23. Kolmanda iteratsiooni täpsustatud kursuslase olekudiagramm. 46
    • 5.3 Disaini dokumentatsioon 5.3.1 Reaalsed kasutusjuhudJoonis 24. Kursuslase veebiliidese avaleht.Lähtuvalt arve ja valitud kursuse otsingu sarnasest ekraanivormi ülesehituse loogikast onjärgnevalt piirdutud avalduse otsimise ekraanivormi näitega.Joonis 25. Avalduse otsimise ekraanivorm.Kasutusjuht: Avalduse vaatamine/otsimine.Tegutsejad: KursuslaneKirjeldus: Kursuslane sisestab oma otsingu parameetrid, süsteem kuvab otsitud andmed.Käivitatav sündmus: Kursuslane soovib otsida sisestatud avalduse andmeid.Eeltingimused: -Järeltingimused: - 47
    • Seotud kasutusjuhud: Andmete korrektsuse kontroll (3.2.3) ja kasutaja kontroll (4.2.2).Stsenaarium:Kasutaja Süsteem1. Kursuslane otsib avaldust etteantud 2. Süsteem kuvab otsitud avalduse(d).parameetrite järgi. 5.3.2 Füüsiline andmemudel Kasutaja Kasuta jani mi (PK) : String Tuup : Boolean Oi gused : String Parool : String Eesnimi : String Pereni mi : Stri ng E-mail : String Telefon : Stri ng Aadres s : String Isi kuko od : Integer 1 Arve Arve_id (PK) 1 Kursu slane Valitud kursus Arve_nr : Integer Koostamise_kp : Date Kursuslane_id (PK) : Integer Valitud_id (PK) : Integer Avaldus_id (FK) : Integer Summa : Integer Kasuta jani mi (FK) : Strin g Maksetahtaeg : Date Ol ek : Bool ean Perioodi_id (FK) : Integer 0..* 1 1 0..* Ainepunktid : Boolean Makseviis : String Re gistre eri mi se kp : Date Tasutud_kp : Date Ainepunkte : Integer Ol ek : Bool ean 1 0..* Avaldus Avaldus_id (PK) : Integer Kursuslane_id (FK) : Integer Arve_nr (FK) : Integer Maksja_eesnimi : String Maksja_perenimi : String Maksja_isikukood : Integer Olek : BooleanJoonis 26. Kolmanda iteratsiooni andmemudel.5.4 RealisatsioonKolmanda iteratsiooni käigus loodi süsteemi kolmas vaheversioon, milles realiseeritiiteratsiooni käigus teostatud detailanalüüsi ning disaini tulemused kursuslase avalduse, arve javalitud kursuste vaatamise/otsingu kasutusjuhud.Antud iteratsioonis realiseerutud kasutusjuhtude puhul on kasutatud põhiliselt aruandeid(reports) otsinguprotsesside käivitamiseks ja kuvamiseks. Pärast otsinguparameetrite 48
    • sisestamist on võimalik saada otsingutulemustele vastava päringu tulemused. Päringutulemustena kuvatavad andmed on esialgsed ja lõplik valik võib ilmneda alles viimastesiteratsioonides, sest süsteemi tulevane kasutaja pole siian kindel, milliseid andmeid on kõigemõtekam kursuslasele avaldusest kuvada.Kolmandas iteratsioonis oli juba võimalik arendada kursuslase kasutajaliidese avalehte, misvõimaldab kursuslasel teha tema pädevusalale vastavaid toiminguid.5.5 Iteratsiooni tulemusedKolmas iteratsioon õnnestus samuti mahutada ettemääratud ajalistesse raamidesse.Iteratsiooni läbiviimiseks kulus antud töö teostajal nädal nagu planeeritud. Töö käigus viidiläbi detailanalüüsi- ja disainietapid vaatluse all oleva funktsionaalsuse kohta ja realiseeritianalüüsitud ja disainitud osa süsteemist.Vaheversiooni valmimisel näidati süsteemi selle tulevasele kasutuselevõtjale. Realiseeritudfunktsionaalsusega oldi rahul. Avaldati arvamust, et otsingu tulemusena kuvatavad andmedpeaksid olema vormiti erinevad ja valitud informatiivsuse järgi. Tingimata on tarvis kuvadaavalduse esitamise kuupäeva. Antud parandused planeeritakse järgmistesse iteratsioonidesse.Juhtum on tunnistuseks, et vaheversioonid on ülimalt vajalikud, et võimalikult vara ollateadlik võimalike muudatuste vajadustest. 49
    • 6. Neljanda iteratsiooni dokumentatsioon6.1 Iteratsiooni plaan ja riskianalüüsNeljanda iteratsiooni ülesandeks on arendada administreerija allsüsteemi, kus vaatluse allavõetakse kursuse ja kursuslase sisestamise ja muutmise kasutusjuhud. Iteratsioonis võetakseühe nädala kestusel vaatluse alla järgmised kasutusjuhud:1) Kursuse sisestamine/otsimine/muutmine;2) Kursuslase sisestamine/otsimine/muutmine.Neljandas iteratsioonis käsitletakse planeerimise dokumentatsioonis identifitseeritud riske (vtp. 2.2.7). Kasutajapoolsetest võetakse vaatluse alla risk, kus süsteem ei ole kasutajale, antuditeratsiooni korral administreerijale, lihtsalt mõistetav.Nõudmistest tulenevatest riskidest püütakse sisse viia süsteemi kasutusse võtja poolseidtäiendatud nõudmisi ja vaheversioonide ülevaatusest ja testimisest leitud parandus võitäiendusettepanekuid.Antud riskide vähendamiseks kasutatakse järjekordselt süsteemi vaheversiooni loomist, misaitab süsteemi kasutusele võtjal olla kursus arendustööga.6.2 Analüüsi dokumentatsioon 6.2.1 Kasutusjuhtude diagramm Kursuse sisestamine/otsimine/muutmine Administreerija (f rom Ac to rs) Andmete korre ktsu se kontroll Kursuslase sisestamine/otsimine/muutmineJoonis 27. Neljanda iteratsiooni kasutusjuhud. 50
    • 6.2.2 Kasutusjuhud laiendatud formaadisKasutusjuht: Kursuse sisestamine/otsimine/muutmineTegutsejad: AdministreerijaEesmärk: Sisestada korrektseid kursuse andmeid. Võimaldada andmeid muuta. Kuvadaotsingul korrektseid andmeid.Kirjeldus: Administreerija sisestab algatatava kursuse andmed. Süsteem salvestab andmed,tekitab kursuse ja edasi võimaldab sisestada kursuse perioodi. Administreerija sisestabkursuse perioodi. Süsteem kuvab arve vahemiku sisestamise vormi, mille administreerijatäidab. Seejärel kuvatakse administreerijale kõik sisestatud andmed, et need veel ennelõplikku kinnitust ja andmebaasi lisamist üle vaadata. Süsteem salvestab andmed ja tekitabuue kursuse, kursuse perioodi ja arve numbri vahemiku.Andmete muutmine on võimalik kuni lõpliku kokkuvõtte kinnitamiseni.Otsimine on sarnane tegevus punktis 5.2.2 kirjeldatule.Stsenaarium: Kursuse sisestamine täpsustatult.Kasutaja Süsteem1. Sisestab kursuse andmed 2. Kasutab kasutusjuhtu korrektsete andmete kontroll (3.2.3). Kuvab perioodi vormi.3. Sisestab kursuse perioodi andmed. 4. Kasutab kasutusjuhtu korrektsete andmete kontroll (3.2.3). Kuvab arve vahemiku vormi.5. Sisestab arve vahemiku. 6. Kuvab kõigi sisestatud andmete kokku- võtte.7. Kinnitab kokkuvõtte. 7. Tekitab kursuse, kursuse perioodi, arve vahemiku ja salvestab andmed.Kasutusjuht: Kursuslase sisestamine/otsimine/muutmineTegutsejad: AdministreerijaEesmärk: Sisestada korrektseid kursuslase andmeid. Võimaldada andmeid muuta. Kuvadaotsingul korrektseid andmeid.Kirjeldus: Administreerija sisestab/muudab kursuslase andmed, juhul kui selle järele onvajadus. Süsteem uuendab andmed.Otsimine on sarnane tegevus punktis 5.2.2 kirjeldatule. 51
    • 6.2.3 Täpsustatud domeenimudelKäesoleva peatüki domeenimudelil on eelnevates iteratsioonides arendatud domeenimudelilelisatud neljandas iteratsioonis käsitletavad arve nr vahemiku ja kursuse perioodi kontseptid,nende atribuudid ja kontseptide vahelised seosed. Avaldus Maksja_eesnimi : String sisaldab Valitud kursus 1..* Maksja_perenimi : String Ainepunktid : Boolean Maksja_isikukood : Integer Ainepunkte : Integer 1 1..* kirjeldab Olek : Boolean 1..* 1..* 1 sisaldub on seotud 1 Arve esitab 1 Arve_nr : Integer Koostamise_kp : Date Summa : Integer Maksetahtaeg : Date 1 1 Makseviis : String Kursuslane Tasutud_kp : Date Kursuse periood Registreerimis e kp : Da te Olek : Boolean Olek : Boole an Piirang : Integer 0 ..* Tahtaeg : Date Algus : Date 1 sisaldab Lopp : Date Hind : Integer 1 Programm : String Arve nr vahemik Ainepunkte : Integer Nr_algus : Integer esineb Nr_lopp : Integer Nr_viimane : Integer 1 Algoritm : Integer 1 1 Kasutaja kirjeldab Kasutajanimi : String Tuup : Boolean 1 Oi gused : String Kursus määrab Parool : String sisestab Nimetus : String Eesnimi : String Keskkond : String Pereni mi : String Kirjeldus : String 1 0..* 1 E-mail : String Olek : Boolean Telefon : String Aadress : String Isikukood : Integer Registreeruja AdministreerijaJoonis 28 . Neljanda iteratsiooni täpsustatud domeenimudel.Neljandas iteratsioonis arendatud domeeni mudelisse on lisatud kursuse perioodi ja arvevahemiku kontseptid, mille seletus on järgnevalt ära toodud.Arve nr vahemik – planeeritud kursuslaste arvule vastav arve numbrite hulk, mis seostatakseavaldustega.Kursuse periood – kursuse parameeter, mis kirjeldab kursuse toimumise ajavahemiku,avalduse esitamise viimase tähtaja ja kasutajate piirangu. 52
    • Süsteemi registreerunud kasutaja on siin administreerija, mis tähendab, et ta omabadministreerija õigusi. Administreerija sisestab kursuse, kursuse perioodi ja arve numbrivahemiku, millest võetud arve number seotakse kursuslase poolt sisestatud avaldusega. 6.2.4 Kursuse sisestamise tegevusdiagramm Kursuse Välj ad täitmata / ei ole korrektsed sisestamine Viga parandatud Ei li sa ja anna b veateate Kursuse perioodi Välj ad täitmata/ ei ole korrektsed sisestamine Viga parandatud Ei lisa ja annab veateate Arve numbri vahemiku Väljad täitmata / ei ole korrektsed sisestamine Viga parandatud Ei li sa ja annab vea teate Kursuse, kursuse perioodi ja arve numbri vahemiku kuvamine Kursuse, kursuse perioodi ja arve Katkestamine numbri vahemiku kinnitamine Ei lisa ja katkestab Kursuse, kursuse perioodi ja arve numbri vahemiku lisamineJoonis 29. Kursuse tegevusdiagramm 53
    • 6.3 Disaini dokumentatsioon 6.3.1 Reaalsed kasutusjuhudJoonis 30. Administraatori veebiliidese avalehekülg.Joonis 31. Kursuse andmete sisestamise vorm.Joonis 32. Kursuse perioodi sisestamise vorm. 54
    • Joonis 33. Kursuse arvete vahemiku sisestamise vorm.Joonis 34. Kursuse andmete kinnitamise vorm.Kasutusjuht: Kursuse sisestamineTegutsejad: AdministreerijaKirjeldus: on kirjeldatud punktis 6.2.2Käivitatav sündmus: Administreerija soovib sisestada uue kursuse.Eeltingimused: -Järeltingimused: Tekitatud on kursus, kursuse periood, arve numbri vahemik.Seotud kasutusjuhud: Andmete korrektsuse kontroll (käivitub vormidel 32, 33 ja 34).Lisamärkus: Kasutusjuht kursuse sisestamine on realiseeritud multivormidel. 55
    • 6.3.2 Füüsiline andmemudel Arve nr vahemik Kursus Vahemi_id (PK) : Integer Kursuse_id (PK) : Integer Perioodi_id (FK) : Integer 1 Nimetus : String 1 Nr_algus : Integer Keskkond : String Nr_lopp : Integer Kirjeldus : String Nr_viimane : Integer Olek : Boolean Algoritm : Integer 1 1 1 0..* Kursuse periood Arve Perioodi_id (PK) : Integer Arve_id (PK) Kursuse_id (FK) : Integer Arve_nr : Integer Piirang : Integer Koostamise_kp : Date Tahtaeg : Date Summa : Integer Algus : Date Maksetahtaeg : Date Lopp : Date Makseviis : String Hind : Integer Tasutud_kp : Date Programm : String Olek : Boolean Ainepunkte : IntegerJoonis 35. Neljanda iteratsiooni füüsiline andmemudel.6.4 RealisatsioonNeljanda iteratsiooni raames loodi süsteemi vaheversioon, milles realiseeriti iteratsioonikäigus teostatud detailanalüüsi ning disaini tulemused rakenduse põhifunktsionaalsusestkursuslase avalduse sisestamise ja muutmise kohta.Neljandas iteratsioonis loodi administraatori veebiliidese avalehekülg. Realiseerimisetapialguses kaalutleti milline menüüde süsteem administraatorile luua. Et edaspidistesiteratsioonides teostatavad kasutusjuhtude laiendused võivad süsteemi tunduvalt muuta, olimõistlikum menüüsüsteem arendada vaid esialgsele kujule, mis on toodud joonisel 31.Realiseerimise osas oli suur rõhk jätkuvalt planeerimise dokumentatsioonis identifitseeritudriskeidel (vt p. 2.2.7). Kasutajapoolsetest võetakse vaatluse alla risk, kus süsteem ei olekasutajale lihtsalt arusaadav ja hõlpsasti kasutatav. Antud riski vähendamiseks otsustatijaotada kursuse sisestamine vastavalt sisestavatele andmetele üksteisele järgnevatelevormidele. 56
    • 6.5 Iteratsiooni tulemusedNeljanda iteratsiooni tulemusena teostati neljandas iteratsioonis planeeritud tegevused, misõnnestus mahutada ettenähtud aja piiridesse. Iteratsiooni läbiviimiseks kulus antud tööteostajal üks nädal. Töö käigus viidi läbi detailanalüüsi- ja disainietapid vaatluse all olevafunktsionaalsuse kohta ja realiseeriti analüüsitud ja disainitud osa süsteemist.Vaheversiooni abil õnnestus selgitada, et arvestamisega nõudmistest tulenevate riskidega, onsaavutatud kontroll antud iteratsiooni arendamisel ja realiseerimisel. Kursuse sisestamisekasutusjuhu põhimõte kattub arusaamaga, mis on süsteemi tulevasel kasutuselevõtjal.Edasistes iteratsioonides tuleb edasi arendada tegevusi kursusega ja luua erinevate vaadete janende muutmise võimalusi süsteemi administreerijale. Selleks on tarvis jätkuvalt jätkatasüsteemi arendamiseks vajaliku info nö kaevandamist süsteemi kasutusele võtjalt. 57
    • 7. Viienda iteratsiooni dokumentatsioon7.1 Iteratsiooni plaan ja riskianalüüsViienda iteratsiooni ülesandeks on arendada administreerija allsüsteemi, kus vaatluse allavõetakse arve otsimise, tasutuks märkimise, vaatamise ja annullerimise ning ligipääsueemaldamise kasutusjuhud. Täiendatakse vormide täitmise juhendeid ja piiranguid andmetesisestamisel. Muuhulgas testitakse administreerijaliidese toimimist. Jätkatakse eelmisteiteratsioonide täiendamist ja parandamist. Täiendatakse süsteemi navigeerimise plaani.Viienda iteratsiooni eesmärgiks on jätkuvalt selgitada välja optimaalseim otsingutulemustekuvamise lahendus administraatri jaok põhimõttel, et otsitavatest andmetest väljastatakseadministraatorile kõige informatiivsemad..7.2 Analüüsi dokumentatsioon 7.2.1 Kasutusjuhtude diagramm Arve tasutuks mä äramin e/otsimi ne/annul leerimi ne Administreerija (f ro m A ctors) Ligi pääsu eem al damineJoonis 36. Viienda iteratsiooni kasutusjuhud 7.2.2 Kasutusjuhud laiendatud formaadisKasutusjuht: Arvete otsimine/tasutuks märkimine/vaatamine/annulleerimineTegutsejad: AdministreerijaKirjeldus: Administreerija otsib arveid erinevate parameetrite järgi. Süsteem kuvabvastava(d) arved(d). Administreerija märgib arve(d) tasutuks. Süsteem lisab muudatuse jatekitab kursuslasele valitud kursuse veebikeskkonna lingi tema kasutaja alla. 58
    • Erijuht: Administreerija võib erandjuhul arveid tühistada.Kasutusjuht: Ligipääsu eemaldamineTegutsejad: AdministreerijaKirjeldus: Administreerija otsib kursuse valinud kursuslasi. Süsteem kuvab vaate.Administreerija saab märkega eemaldada kursuslaste ligipääsud. Süsteem eemaldab kasutajaltlingi(d) antud kursuse veebikeskkonna aadressiga. 7.2.3 Täpsustatud semantikaObjektide ja atribuutide semantika, kus PK tähistab primaarvõtit. Realisatsioonis välisvõtmeideraldi määratud ei ole, kuigi tabelis korduvaid atribuute, mille järel märget PK ei ole, võibvälisvõtmetena käsitleda.Arve Kursuse teenuse eest tasumisele kuuluv dokumentArve_id (PK) Arve unikaalne identifikaator Integer (SQL-s varchar)Arve_nr Arve numbri vahemikust avaldusega seotud Integer arve koodKoostamise_kp Kuupäev, millal arve koostati; sama mis Sysdate avalduse laekumise kpSumma Arve koondsumma IntegerMaksetahtaeg Kuupäev, millal arve peab olema tasutud DateMakseviis Maksmise (Sularaha/arvega) IntegerTasutud_kp Kuupäev, millal arve on tasutud DateOlek Arve olek (A–aktiivne /M–mitteakt.) BooleanArve_nr_vahemik Kursuslase arvule vastav arve numbrite hulkVahemik_id (PK) Vahemiku unikaalne identifikaator IntegerPerioodi_id Perioodi unikaalne identifikaator IntegerNr_algus Arve numbri vahemiku esimene kood IntegerNr_lopp Arve numbri vahemiku lõppkood IntegerNr_viimane Arve numbri vahemiku viimane kood IntegerAlgoritm Arve numbri etteantud vahemik, et arvestada Integer 59
    • tähe sisaldumise võimalust.Avaldus Kursusele registreerumise dokumentAvalduse_id (PK) Unikaalne identifikaator IntegerKursuslane_id Kursuslase identifikaator StringMaksja_eesnimi Kursuse arve maksja eesnimi StringMaksja_perenimi Kursuse arve maksja perenimi StringMaksja _isikukood Isiku identifikaator (EV-s), siin maksja oma StringArve_nr Arve numbri vahemikust avaldusega seotud Integer arve koodOlek Seisundi identifikaator (aktiivne – A Boolean /mitteaktiivne - M)Kasutaja Süsteemi kasutaja (administraator, registreeruja)Kasutajanimi (PK) Kasutaja unikaalne identifikaator StringTuup Kasutaja tüübi nimetus BooleanOigused Kasutaja pädevusala määrang StringParool Salasõna, mis annab pääsu süsteemi StringEesnimi Kasutaja eesnimi StringPerenimi Kasutaja perenimi StringE-mail Kasutaja e-mail StringTelefon Kasutaja telefon StringAadress Kasutaja aadress StringIsikukood Isiku identifikaator (EV-s), siin kasutaja oma IntegerOlek Kasutaja seisund BooleanKursus Teenus; koolitus, millel osalevad arve maksnud kursuslasedKursuse_id (PK) Kursuse unikaalne identifikaator IntegerNimetus Kursuse nimi StringKeskkond Kursuse veebikeskkonna aadress StringKirjeldus Lisainfo StringOlek Kursuse seisund BooleanKursuse_periood Kursust kirjeldavad tihedamini muutuvad parameetridPerioodi_id (PK) Perioodi unikaalne identifikaator IntegerKursuse_id Kursuse unikaalne identifikaator IntegerPiirang Kursusele lubatud kursuslaste arv Integer 60
    • Tahtaeg Kuupäev, millal on viimane avalduse Date sisestamise aegAlgus Kuupäev, millal kursus algab DateLopp Kuupäev, millal kursus lõpeb DateHind Kursuse hind; samas ka arve rida IntegerProgramm Täpsem lisainfoAinepunkte Kursuse eest saadavate ainepunktide arv BooleanKursuslane Kasutaja, kes osaleb kursuselKursuslane_id (PK) Kursuslase unikaalne identifikaator IntegerKasutajanimi Kasutaja unikaalne identifikaator StringRegistreerimise_kp Kuupäev, kui kasutaja registreerus süsteemi SysdateOlek Kursuslase seisund BooleanValitud_kursus Kursuslase poolt valitud kursus(ed)Valitud_id (PK) Valitud kursuse unikaalne identifikaator IntegerPerioodi_id Perioodi unikaalne identifikaator IntegerAvaldus_id Avalduse unikaalne identifikaator IntegerAinepunktid Valik, kas jah või ei BooleanAinepunkte Kursuse eest saadavate ainepunktide arv Integer 7.2.3 Kursuse laiendatud olekudiagrammid Kurs us Nimetus : String Keskkond : String Kirjeldus : String Olek : Boolean K aktiivsus K unikaalsusJoonis 37. Kursuse domeenimudel.Agrgaatfunktsioon väljendab, et kursusele on omistatud nii aktiivsuse kui unikaalsuseagregaatolekud. 61
    • Adm inistraator sisestatab ebakorrektsed andmed / kuvatakse veateade Aktiivse kursuse andmed Administraator salvestab andmed/ otsitakse andmete duplikaate Kursuse duplikaat Unikaalne kursus Administraator katkestab sisestamise / sisestamine katkestatakse Kursuse periood lõppeb / Kursuse olek muutub ja seda ei kuvata kuruslase avalduse valikutes Administraator muudab M kursuse andmeid/ andmed muudetakse Mi ttea kti ivse kursuse andm ed Ad mi nis traator kustutab e randjuhul andm ed/ kursuse andmed kustutatakseJoonis 38. Kursuse laiendatud unikaalsuse olekudiagramm. Administraator sisestab kursuse andmed / kursuse andmed sisestatakse Administraator sisestatab ebakorrektsed andmed / kuvatakse veateade Aktiivse kursuse andmed Kursuse periood lõppeb / Kursuse ol ek muutub ja seda ei kuvata kurusla se aval duse val ikutes Admi nistra ator muuda b M kursuse andmeid/ andmed muudetaks e Mitteaktiivse kursuse andmed Admini straator kus tutab era ndjuh ul andm ed/ kursuse and med kustutata kseJoonis 39. Kursuse laiendatud aktiivsuse olekudiagramm. 62
    • 7.3 Disaini dokumentatsioon 7.3.1 Reaalsed kasutusjuhudJoonis 40. Kursuse otsimise ekraanivorm.Joonis 41. Kursuslase otsimise ekraanivorm. 63
    • Joonis 42. Arve otsimise ja tasutuks märkimise ekraanivorm. 7.3.2 Füüsiline andmemudel Kasutaja Kasutajanim i (PK) : String Tuup : Bool ean Kurs usla ne Oigused : String Kursus lane_ id (PK) : Integer Parool : String 1 1 Eesnimi : String Kasutajanim i (FK) : String Ol ek : Boolean Perenimi : String Re gistreeri mi se kp : D ate E-mail : String Telefon : String Aadress : String Isikukood : Integer 1 Kursuse per iood 0 ..* Arve nr vahemik Perioodi_id (PK) : Integer Kursu s Kursuse_id (FK) : Integer Vahemi_id (PK) : Integer Kursuse_id (PK) : Integer Piirang : Integer Perioodi_id (FK) : Integer 1 1 Nimetus : String 1 1 Tahtaeg : Date Nr_algus : Integer Keskkond : String Algus : Date Nr_lopp : Integer Kirjeldus : String Lopp : Date Nr_viimane : Integer Olek : Boolean Hind : Integer Algoritm : Integer Programm : String Ainepunkte : IntegerJoonis 43. Viienda iteratsooni füüsiline andmemudel. 64
    • 7.4 RealisatsioonViienda iteratsiooni raames loodi süsteemi vaheversioon, milles realiseeriti iteratsiooni käigusteostatud detailanalüüsi ning disaini tulemused rakenduse põhifunktsionaalsusest kursuslase,kursuse otsimise, arve otsimise, tasutuks märkimise ja annulleerimise võimalus.Arve tasutuks märkimisega antakse kursuslasele ligipääs kursuse veebikeskkonda. Süsteemtekitab vastava lingi kursuslase veebikonto avaleheküljele. Eemaldada on seda linki tarvissiis, kui kursus muutub mitteaktiivseks ja pole enam aktuaalses olekus. Ilmnes, et selleks ontarvis realiseerida ühtne mitteaktiivse kursuse kõigi kursuslaste kursuste veebikeskkondadelinkide eemaldamine, mis samuti õnnestus vaatamata ebarealistlikule töö teostamisegraafikule realiseerida. Siinjuures ei olnud mõtekas kursuse ligipääsu eemaldamisekasutusjuhtu realiseerida eraldi, sest koodile, mis sisaldas arve tasutuks märkimist ja sellegakursuslasele kursuse keskkonnale ligipääsu õiguse andmist, oli lihtne lisada kursuse ligipääsulingi eemaldamise lause. Lingi eemaldamine on seotud kursuse lõppemise ajaga, kus kursusmuutb mitteaktiivseks.7.5 Iteratsiooni tulemusedViienda iteratsiooni ettenähtud aja piiridesse õnnestus mahutada arve otsimise, tasutuksmärkimise, vaatamise ja annullerimise analüüsi-, disaini- ja realiseerimisetapid.Ilmnes, et ligipääsu eemaldamise kasutusjuhu realiseerimine eraldi ei oma mõtet.Testiti siiani arendatud kasutaja ja administreerijaliidese toimimist. Iteratsiooni käigustäiendati vormide täitmise juhendeid ja tehti muid pisemaid muudatusi süsteemikasutusmugavuse huvides. Edasi arendatati süsteemi navigeerimise plaani. 65
    • 8. ArengukavaPeale antud töö raames sooritatud viit iteratsiooni on järgmise sammuna vaja määratledatulevaste iteratsioonide plaan, milles keskendutakse süsteem abifunktsionaalsuseanalüüsimisele, disainimisele ning realiseerimisele. Süsteemi arengukava peatükiskirjeldatakse lühidalt peamisi tegevusi, mida kavandatakse järgmistesse iteratsioonidesse.Järmise sammuna on plaanis lisada süsteemile mitmete kasutusjuhtude erijuhtude arendused,mida eelnevates iteratsioonides oli mainitud, kuid mitte arendatud või realiseeritud.Kursuslase funktsionaalsuste täiendamisel võib mõelda mitmete kasutusjuhtudelaiendamisele. Administraatori jaoks on oluline võimalus muuta põhiobjektide nagu kursus jakursuslane olekut. Kursuslasel peab olema võimalik peamenüüst alati valida aktiivsetekursuste loetelu, kus iga kursust valides ilmub kogu kursust puudutav info, selle täielikkirjeldus ja programm.Peale avalduste laekumise tähtaja möödumist, kui kursuse kursuslaste piirang on täis, tulekssüsteemil avaldust mitte aktsepteerida ja kuavada teade administraatori kontaktidega, kellelon õigus piirangut muuta ja arve numbreid süsteemi antud kursusele juurde lisada.Kõige mahukam osa, mis süsteemile lisada tuleb, on administraatori mitmeteabifunktsionaalsuste osa, mis hõlmab antud süsteemi eripärast tulenevaid tegevusi.Administraatoril tuleb võimaldada tegevusi kõigi kursustega, nii aktiivsete kui mitteaktiivsetekursustega. Siinjuures peab administraatoril olema võimalus muuta olemasolevate aktiivsetekursuste piiranguid, et võimalusel saaks registreeruda mõni soovija rohkem. Sama kehtibpiirangu täitumise korral, kui kursuslaste arv saab täis enne kursusele registreerumisetähtaega.Süsteem peab andma parima võimaluse jälgida kursuslaste avalduste laekumist kursusele.Ettevõtte rentaabluse huvides ei ole mõtekas läbi viia kursusi, mille osavõtjate arv ei küüniteatud piirini. Selleks peabki administraator korrapäraselt jälgima kursuslaste arvu algavalekursusele. Et seda oleks mugavam jälgida oleks tarvis luua antud kokkuvõtete vaade, midaadministraator saab soovi korral näha kohe peale administraatori kasutajaliidese süsteemisisenemist. Kursuslaste piisava arvu avalduste mitte laekumise korral kursusele peabadministraatoril olema kindlasti võimalus katkestada kursustele registreerumine.Administreerija võib erandjuhul avalduse sisestamise katkestada ja sisestaud avaldusedtühistada. Süsteem peab seejärel saatma kursusele registreerimiste katkestamise ja tühistamiseautomaatvastuse kõigile, kes on peale avalduse lõplikku sisestamist vastuse saanud, et onpeale arve maksmist osalejad valitud kursusel. Juhul kui arve on juba makstud tuleb teostada 66
    • ka arve tagasi maksmine, mida praktikas siiani väga harva on juhtunud, sest tavaliselt eiviivitata kursuse tühistamisega maksetähtajani, vaid see tühistatakse tunduvalt varem.Ei ole arvestatud põhiobjektide kustutamiseg, mis tuleks vaatluse alla võtta järgmistesrealisioonides. Antud süsteemi arenduse viies iteratsioonis ei jõutud käsitelda arveannullerimise osa, mis viimasest iteratsioonist edasi liikumist ei takistanud ja seega võib sellefunktsionaaluse edasi arendamise ette võtta järgmises iteratsioonis.Administraator võiks saada erandjuhul süsteemi registreerunud kursuslase andmeid kustutada.Juhul kui kursuslane tekitab rämpsavaldusi või rikub mõnel muul moel süsteemi või selleandmebaasi. Samuti on vaja mõelda põhiobjektide kustutamise erijuhtudele ja tingimustele.Süsteemi vastuste ja olulisemate dokumentide kuvamist tuleks samuti täiustada. Kursuslasekasutajaliideses peale avalduse süsteemi sisestamist kuvatakse arve lisamise kinnitus ja arvenumber. Oleks kurrektne, kui erve kuvatakse peale avalduse sisestamist täielikumateandmetega pdf-na, mis välistab andmete muutmise võimaluse ja mida saab vajadusel väljaprintida.Kirjeldatud funktsioonid olid põhiliselt ideed süsteemi edsiseks arendamiseks, midajärgnevates iteratsioonides realiseerida. Arendusplaanis esitatu tuleb hoolikalt läbi mõelda jaiteratsioonidesse jagada. Et süsteemi arendamise käigus võib tekkida uusi ideid, mis võivadolla edasi arendusel arukamaks alternatiiviks, siis tuleb nendega tingimata arvestada, etsüsteemi lõpptulemus oleks korrektne ja süsteemi kasutuselevõtjale parim lahendus. 67
    • Kasutatud kirjandus[1] Kruchten, P. A Rational Development Process. Rational Software Corporation, 1996[2] Larman C. Applying UML and Patterns: An introduction to object-oriented analysisand design and Unified Process, Prentice-Hall, Inc., 2002[3] Mc Connell S. „Rapid development: Taming Wild Software Schedules., Redmond(Washington), Microsoft Press, 1996[4] Oracle Corporation’i HTML DB andmebaasi veebipõhine arendusvahendhttp://htmldb.oracle.com/pls/otn/f?p=16759:63:9756847967797187319::::G_LUBATU_LIGIPAAS:AdM[5] Ryan K. Stephens, Ronald R. Plew, Teach Yourself SQL in 21 Days, Second Edition:Que Publishing, 2000[6] UML(Unified Modeling Language) –isthttp://www.developer.com/design/article.php/2223551[7] Tarkvara arhitektuuri dokumenteeriminehttp://www.sei.cmu.edu/publications/documents/02.reports/02tn015/02tn015.html#chap05 68
    • KokkuvõteKäesoleva töö eesmärgiks oli süsteemi loomine iteratiivse arendustsükli meetodil ja iteratiivsearendustükli tundmaõppimine. Vähemalt sama tähtis on töö arendajale ja realiseerijale ka uueveebipõhise andmebaasi arendusvahendi tundmaõppimine ja esmakordse kasutamisekogemus.Antud töö raames sooritatud viie iteratsiooni tulemusena said realiseeritud süsteemipõhifunktsionaalsused, mille arendust on püütud kirjeldada vastavalt iteratsioonidelevõimalikult täpselt.Tehtud töö tulemusena on valminud süsteemi vaheversioon, mis annab piisava ülevaatelõppsüsteemist.Projekti aluseks olnud iteratiivne elutsükkel õigustas oma valikut. Süsteemi arendusprotsesson nii süsteemi loojale kui tulevasele kasutuselevõtjale olnud läbipaistev, mis antud kontekstistähendab, et kursustehaldusesüsteemi projekteerimise ja arendamise vältel on süsteemasjaosalistele näha olnud. Käesoleva hetkeni pole süsteemi nõudmiste osas põhimõttelisierinevusi leitud. Väiksemate parandusettepanekute sisseviimine on võimalik järgnevatesiteratsioonides.Teise eesmärgi, arendajapoolse iteratiivse arendustsükli mudeli tundmaõppimise võibtäidetuks lugeda, kuna arendaja omab iteratiivsest projektiarendusest tänu praktiliselekogemusele varasemast selgemat ettekujutust. Süsteemi juhtimisel koostatud arendusplaanantud tööle osutus vajadustele vastavaks. Samas on sel teemal vaja hankida rohkem teadmisija täiendada mitmeid oskusi.Kolmanda eesmärgi, veebipõhise tarkvara arendusvahendi esmakordset kasutamist ja tundmaõppimist hindab töö teostaja kõige enam. Samuti oli arendustöö käigus omandatudteoreetiliste teadmiste praktiseerimise kogemus antud töös kõige huvitavam. Tutvututud saiveebipõhise arendusvahendi erinevate rakendusvõimalustega. Ka selles vallas on jätkuvaltpalju õppida.Bakalaureusetöö keskendus projektiarenduse esimestele etappidele. Loodud dokumentatsioonning süsteemi vaheversioon on aluseks järgmistele planeeritavatele iteratsioonidele. Nendekäigus on kavas süsteemi laiendada ja lisada sellele funktsioone, mis võimaldavad saavutadaoptimaalseimat ja nõudmistele vastavat süsteemi kasutamise ja haldamise lahendust. 69
    • SummaryBachelor thesis on the topic “Iterative development of web-based application for courseadministration”Present bachelor thesis is concentrated on developing the web-based application for courseadministration using iterative development method. Iterative development process is a well-known and usable method in the software and its extensions development process. The maingoal is to study and practice the iterative development process in the present work context.Web-based application for course administration has environments for logging into thesystem, for the system administration activities and for the client activities whose has addedhis or her first application for the course registration.The construction of the present bachelor work illustrates different stages of iterativedevelopment as realistically as possible. Documentation describes first five iterations ofproject development during which the main functionality of the system was analysed,designed and realised. Main functionalities developed under these iterations are the base fornext development stages. During those stages the system will be refined and some supportfunctionality will be added so the final system would give its users an overview of the system.In analyse and design phases were used CASE (Computer Aided Software Design) logic andUML (Unified Modeling Language) diagrams for modelling with the Rational SuiteEnterprise software extension Rasional Rose. The aim to develop skills using the softwaredevelopment software was reached.Iterative development model usage in the system development process helped organizedevelopment process so the main demands and aims of the work were completed.Development progress has been visible to the system user, which is one of the good qualitiesof the iterative project. The usage of iterative development has reduced some risks in the firststages of the system development. This should guarantee the reliability of the final system.After the completion of the five iterations planned for the web-based application for courseadministration an elementary working system has been made. So the goal of creating a partialsystem that has the main functionality of the final system has been reached. Therefore theproject also reached its goal of helping the developer to gain better knowledge of iterativedevelopment. 70
    • The most interesting part of the work was to practice the theoretical knowledge of thesoftware development with the brand new professional web-based software development tool.The first experience gave an appropriate overview of the environment of application building.Even though the experience has a great value for the system developer herself there is stillmuch left to discover and put into practice. 71