Title: Tarkvara arendamise etapid
1Tarkvara arendamise etapid
2Mis on Tarkvaratehnika?
- Software Engineering (SE) is the design,
development, and documentation of software by
applying technologies and practices from computer
science, project management, engineering,
application domains, interface design, digital
asset management and other fields. - Wikipedia
- Tarkvaratehnika (TVT) on tarkvara disain, arendus
ja dokumenteerimine, kasutades arvutiteaduse,
projektijuhtimise, tehnikateaduse,
rakendusvaldkondade, kasutajaliidese disainimise,
digitaalvara juhtimise ja teiste valdkondade
tehnoloogiad ja praktikaid.
3Tarkvara elutsükkel
- Tarkvara loomine koosneb erinevatest etappidest,
mille kogumit nimetatakse tarkvara elutsükliks - Süsteemianalüüs
- Nõuete analüüs
- Kavandamine
- Realiseerimine
- Testimine
- Juurutamine
- Hooldus
4Süsteemianalüüs
- Ülesande püstitamine
- Valdkonna, vajaduste analüüs
- Ettevõtte tegevuse mõistmine
- Keskendub küsimusele Mis?
5Äriprotsesside analüüs
- Eesmärgid
- organisatsiooni struktuurist ja olemusest
arusaamine - organisatsiooni hetkeprobleemide mõistmine ja
parandamisvõimaluste leidmine - veendumine, et tellija ja teostaja saavad tellija
organisatsioonist ühtmoodi aru - organisatsiooni tegevuse eelduste (nõuete)
leidmine - Tulemus
- analüüsitud äriprotsesside kirjeldus
6Nõuete analüüs
- Loodava tarkvara täpne kirjeldus
- Eesmärgid
- kindlustada, et kõigi süsteemiga seotud
osapooltel (tellijal, võtmetähtsusega isikutel
kliendi organisatsioonis, süsteemi loojatel jne)
on ühine ettekujutus sellest, millised on loodava
süsteemi funktsionaalsed omadused - luua alus edasiste tööplaanide koostamiseks
- luua alus edasiste töö mahtude ja maksumuste
hindamiseks - määratleda loodava süsteemi kasutajaliidese
põhimõtted kasutatavuse (usability) tagamiseks
7Nõuete analüüs
- Tulemus
- kasutusloo mudel, mis annab ülevaate süsteemi
kasutajatest ja nende suhtlemisest süsteemiga - nõuete mudel ja dokument, kus on kirjeldatud
nõuded ja osapooled ja projekti skoop - mõistete sõnastik, kus on lahti seletatud kõik
projektis ja tarkvaras kasutatavad
tegevusprotsesside mõisted - visioon, mis koosneb nõuete dokumendist ja
mõistete sõnastikust ja võimaldab projektist ja
selle eesmärkidest kiire ülevaate saamise - kasutajaliidese prototüüp, kus on kirjeldatud
kriitilisemad tegevused koos ekraanipiltidega
8Kasutusloodiagrammi näide
9Kasutusloo kirjeldus
User roles (actors) Sisestaja
Objective See kasutuslugu kirjeldab andmete sisestamist impordi sündmuse kohta.
Description (normal course of events) Kasutaja on valinud sündmuse liigi. Süsteem kuvab impordi andmete sisestamise ekraani (ekraani ülemisse ossa peaksid jääma näha andmed dokumendi, loomapidaja, sündmuse liigi ning loomaliigi kohta) Kasutaja sisestab järgmised andmed iga looma kohta Sündmuse kuupäev - süsteem kontrollib, et kuupäev oleks vanem või võrdne jooksva kuupäevaga. Salvestatakse TOORTABEL.SYNDMUS_KP Registrinumber - salvestatakse tabelisse TOORTABEL.LOOM_REGNR Sünni kuupäev - süsteem kontrollib, et kuupäev oleks vanem või võrdne jooksva kuupäevaga. Salvestatakse tabelisse TOORTABEL.SYNNI_KP. Märgistamise kuupäev - Väli täidetakse ainult juhul, kui tegemist on mitte-EU riigist imporditud veise, lamba või kitsega. Süsteem kontrollib, et kuupäev oleks vanem või võrdne jooksva kuupäevaga ja hilisem kui sünni kuupäev. Salvestatakse tabelisse Toortabel_Välisriigi_Andmed.Märgistamise_Kuupäev Inventari number näidatakse EU-st pärit veiste kohta. Salvestatakse tabelisse TOORTABEL.LOOM_INVENTARNR Sugu Salvestatakse tabelisse TOORTABEL.LOOM_ALAMLIIK Tõug Salvestatakse tabelisse TOORTABEL.LOOM_TOUG
10Kavandamine
- Küsimus Mis?" muutub nüüd küsimuseks Kuidas?
- Eesmärk
- Panna paika loodava tarkvara sisemine ülesehitus
11Kavandamiseesmärgid
- Korrektsus
- laiemas mõttes "korrektne" käitumine kõigi antud
ainevallas sisendite korral. Kitsamas mõttes
vastavus spetsifikatsioonile - Efektiivsus
- ajaliste ja mahuliste piirangute arvestamine.
Näit. suuremahuline järjestamisülesanne - Usaldatavus
- käitumine ootamatute (spetsifitseerimata)
sisendite korral. Ootuspärased ("mõistlikud")
reaktsioonid eriolukordades - Kohandatavus, skaleeritavus
- platvormi (riistvara, tarkvara) või keskkonna
muutumine. Näit. kasutajate arvu hüppeline
suurenemine - Taaskasutatavus
- võimalus sama "komponenti" kasutada muus
kontekstis - Hooldatavus
- kuidas lahendatakse produkti kasutamisel
tekkivaid probleeme - Modulaarsus
- võimalus osi välja vahetada
- Avatus
- võimalus muuta ja edasi arendada
12Kavandamine
- Tulemus
- analüüsimudel, mis kirjeldab süsteemi
linnulennult ja täieneb iga iteratsiooni käigus - disainimudel, mida kasutavad programmeerijad
koodi kirjutamisel ja mille põhjal genereeritakse
algne kood - andmemudel, mis kirjeldab süsteemis loodavaid ja
vanemates süsteemides eksisteerivaid
andmestruktuure
13Kavandamise tulemus
14Väljad Sündmused
Tekst vormil Välja tunnus
- id
- loomId
Ehitis asukRegistriNr
Loomapidaja id loomapId
Loomapidaja nimi loomapNimi
Loomapidaja kood loomapRegkood
Loomapidaja aadress loomapAadress
Alguse kuupäev algusKp
Väljamineku kuupäev loppKp
Algdokumendi nr algusKandenr
Lõppdokumendi nr loppKandenr
Impordi kuupäev importKp
Sündmus Komponent / Meetod Parameeter Väli tunnus
Lehekülje Liikumised avamine srv_loom_andmed.sel_loom_andmed loomId loomId
Loomapidaja ID labelbutton click avada frm_klient klinr klientId
Ehitis labelbutton click avada frm_ehitis_vaade id asukId
15Realiseerimine
- Realiseerimine on tegevus, mille käigus
kavandamise käigus tehtud plaanid realiseeritakse
töötavaks tarkvaraks - Suhteliselt "odav" võrreldes muude etappidega
- Kodeerimisega käib kaasa ka dokumenteerimine
- näiteks kõik Java keeles kirjutatud klassid ja
meetodid kommenteeritakse kasutades JavaDoc
formaati ning nende põhjalt genereeritakse
HTML-kujul ja ka trükitav dokumentatsioon
16Realiseerimine
- Tulemus
- programmikood, mille põhjal on võimalik
kompileerida käivitatav süsteem - andmebaasiskriptid, mis tekitavad vajalikud
andmebaasistruktuurid - dokumentatsioon, mis kirjeldab sisemiselt loodud
koodi - käivitatav süsteem, mille funktsionaalsust on
võimalik reaalselt kasutada
17Testimine
- Eesmärk
- kontrollida, kas disainis määratletud
funktsionaalsus on esindatud realiseerimise
käigus valminud funktsionaalsusega - veenduda, et kõik parandamiseks esitatud defektid
ka parandatud saavad ning parandused ei
põhjustaks omakorda uusi vigu
18Testimine
- Tarkvara testimisega tuleb tegelda
tarkvaraarenduse protsessiga paralleelselt, selle
käigus, sest nii saab avastada vigu kõigist
tarkvaraarenduse protsessi etappidest
Vigade tekke jaotus erinevate etappide vahel
19Testid
- Komponenttest
- Moodultest
- Integratsioonitest / süsteemitest
- Jõudlustest
- Andmete ülekandmise kvaliteeditest
- Kasutatavuse test
- Aktsepteerimistest
20Jõudlustesti näide
- Süsteem peab töötama normaalse reaktsioonikiiruseg
a 30 samaaegse kasutaja korral - Normaalne reaktsioonikiirus on defineeritud
järgnevalt - Vormid peavad avanema 3 sekundi jooksul. Erandiks
on juhud, kus vormile tõmmatakse palju andmeid - Toortabeli kirje salvestamine kasutajaliideses ei
tohi üle 3 sekundi aega võtta - Ühe veisepassi väljastamisele süsteemist ei tohi
kuluda üle 10 sekundi. Mõõdetakse aega alates
nupu Trüki vajutamisest kuni hetkeni, mil aruanne
ekraanil lahti tuleb
21Testjuhtumi näide
Testi nimi Programmiosa Testi algolek Testi kirjeldus Testi oodatav tulemus
ARUANDE VORMID -erinevate aruannete liikide vahetamine Otsing -gtAruanded gt Aruannete käivitamine 1. Avatud on vorm Aruannete käivitamine.2. Andmebaasis on realiseeritud aruannete vorme. 1. Valitakse aruande Liik PRIA ja loomapidajad / Veterinaar- ja Toiduamet / Põllumajandusministeerium ja Statistikaamet.2. Kontrollitakse allpooltoodud nimekirja, kas vastab valitud liigile. 1. Vastavalt aruande liigile on nimekirjas õige loetelu aruannetest.
22Juurutamine
- Tarkvara jõuab arendajate käest kasutajate kätte
- Tulemus
- juurutusplaan, mis kirjeldab tarkvara
kasutuselevõtuks tarvilikud tegevused ja tulemid - installeerimisprotseduurid, mis on kogum
tarkvaralistest ja tegevusjuhenditest tarkvara
installeerimiseks - koolitusmaterjalid, mille põhjal on võimalik suur
hulk kasutajaid korraga välja õpetada - kasutajajuhendid, mida kasutajad saavad oma töö
käigus jooksvalt kasutada
23Hooldus
- Eesmärgid
- Parandada
- Kohandada
- Täiustada
24Hooldus
- Korrigeerimine (korrigeeriv hooldus)
- Kasutamisel avastatud vigade korrigeerimine
- Kohandamine (kohandav hooldus)
- Tarkvara modifitseerimine vastavalt kasutava
keskkonna muutustele - Täiustamine (täiustav hooldus)
- Tarkvara modifitseerimine vastavalt
tellija/kasutaja uutele, täiendavatele soovidele.
Võib vaja minna pöördkonstrueerimist - Ennetamine (preventiivne hooldus)
- Tarkvara hooldatavuse ja usaldusväärsuse
parandamine edasise täiustamise paremaks
tagamiseks
25Erinevad tarkvaraprotsesside mudelid
- Erinevad mudelid eristuvad nende etappide
järgnevuse ning kordamise poolest - Kaskaad- ehk koskmudel
- Spiraalmudel
- RUP
26Koskmudel
Süsteemianalüüs
Analüüs
Kavandus
Kood
Test
Hooldus
27Spiraalmudel
Planeerimine
Riskianalüüs
Nõuete kogumine ja projekti planeerimine
Esialgne
Vastavalt tellija reaktsioonile
?
Stopp
Prototüübina
Tellija hinnang
Produkti loomine
28RUP