tarkvara projekt –nõuded ja ainemudel › 2007 › tvp › uploads › main › seminar_3.pdf ·...
TRANSCRIPT
Tarkvara projekt – nõuded ja ainemudel
1. märts 2007Ivo Mägi, Karel Kravik
Tänased teemad
� Administratiivne� Nõuded� Ainemudel
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 2
Administratiivset: kuhu jäi risthindamine?
� Mitte ükski rühm ei hinnanud ühegi teise rühma esimese iteratsiooni tulemeid
� Ilmselt korraldajate süü� Alates järgmisest iteratsioonist tuleb
risthinnata tulemeid hiljemalt 2x24h pärast tulemite saatmist listi
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 3
tulemite saatmist listi� Tähtajaks saadetud tulemid� Hilinenud tulemid
� Risthindamise tulem tuleb saata aine üldlisti
Administratiivset: risthindamine� AIESEC -> Ando Aasa, Elis Kõivumägi� Ando Aasa-> Elis Kõivumägi, EMHI� Elis Kõivumägi -> EMHI, HTG� EMHI -> HTG, LAIS� HTG -> LAIS, MobiBook� LAIS -> MobiBook, Mööblifurnituur� MobiBook -> Mööblifurnituur, Noored teaduses
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 4
� MobiBook -> Mööblifurnituur, Noored teaduses� Mööblifurnituur -> Noored teaduses, Puhkpilliorkester� Noored teaduses -> Puhkpilliorkester, Raadimõisa� Puhkpilliorkester -> Raadimõisa, AIESEC� Raadimõisa -> AIESEC, Ando Aasa
Administratiivset: auhinnad
� Kursuse raames ei kandideeri auhindadele rühm “AndoAasa”� … kuna rühm koosneb auhinna välja pannud ettevõtte töötajatest …
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 5
Administratiivset: keskkonnad
� Ats.cs.ut.ee operatsioonisüsteemi kasutajad� Autentimiseks ülikooli kasutajatunnus/parool� Grupikuuluvus on loodud selle info põhjal mis oli
minuni jõudnud esmaspäeva hommikuks
� Changelogic kasutajad� Autentimiseks ülikooli kasutajatunnus + @ut.ee
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 6
� Autentimiseks ülikooli kasutajatunnus + @ut.ee� Paroolid saadetakse teie ülikooli e-maili
aadressile selle nädala jooksul
Administratiivset: ats.cs.ut.ee
� Kodukataloog: /projects/home/tvp2007/meeskond
� Veebialias: http://ats.cs.ut.ee/tvp2007/meeskond
� SVN repositooriumid: svn://ats.cs.ut.ee/courses/tvp2007/meeskond
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 7
svn://ats.cs.ut.ee/courses/tvp2007/meeskond� SVN paroolid:
/projects/home/tvp2007/meeskond/svnpasswd
I iteratsiooni tagasivaade
� Tervelt kolm rühma hilines!� Punkte kaotasite minimaalselt� Kui aga praegu juba hilinete, mis siis edaspidi saab?
� Iteratsiooni tulemid tuleb saata kõik
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 8
� Iteratsiooni tulemid tuleb saata kõik koos.� Kui iteratsiooni tulemid saadetakse mitmes osas läheb arvesse viimase saatmise kuupäev/kellaaeg
I iteratsioon: tagasivaade� Kliendiga ei tohi(ks)? kõik projektiliikmed suhelda.
Miks?� Nõuete kogumisele kavatsetakse pühendada
keskmiselt 8-20h. � Kas seda on vähe või seda on palju?
� Edaspidistes iteratsiooni plaanides ei võta arvesse “nõuete dokumenti" tulemina.
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 9
“nõuete dokumenti" tulemina.� Iteratsioonide plaane ja eriti just kokkuvõtteid sai
hinnatud väga pehmelt. Kokkuvõtted peavad peegeldama järeldusi tulevikuks!
� Kasutage spellerit, jätate professionaalsema mulje.
I iteratsioon: tagasivaade
� Dokumendi struktuuri kopeerimine eelmisest aastast/näiteprojektist on OK. Dokumendi sisu kopeerimine ilma viitamata on plagiaat.
� Dokumentide kopeerimine ilma mõtlemata on lihtne, paraku aga lasete sellega
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 10
on lihtne, paraku aga lasete sellega iseendale kuuli jalga. Kood lõppkokkuvõttes ju tööle ei hakka ning alguses võidetud tunnid muutuvad lõpuks kaotatud kuudeks.
I iteratsioon: punktiseis
Tulemused
30,00
40,00
50,00
60,00
Pu
nk
tid
Series1
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 11
0,00
10,00
20,00
LAIS
Mob
iBoo
kAIE
SECRaad
imõis
a
Noored
tead
uses
AndoA
asa
Möö
blifurn
ituur
HugoEM
HI
Elis K
õivum
ägi
Puhkp
illiork
este
r
Rühmad
Pu
nk
tid
Administratiiv: protestid
� Tulemid on pärast loengut üleval ka aine kodulehel
� Kes mingi iteratsiooni tulemiga rahul ei ole, palun esitada põhjendatud protest korraldajate listi
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 12
protest korraldajate listi� Proteste saab esitada kuni 7 x 24h pärast iteratsiooni esitamise tähtaega
Infrastruktuur: Changelogic
� Kasutame tööülesannete haldust� Tööd on:
� Nullpointer esilehel� Luua ainemudel� Parandada nõuete dokumenti
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 13
� Parandada nõuete dokumenti
� Iteratsioon = toodangväljalaske tsükkel
Infrastruktuur: Subversion
� Versioonihalduse süsteem� Keskne koht, mille kaudu koodi vahetada
� Salvestab kõik versioonid� Kasutamine on kohustuslik
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 14
� Kasutamine on kohustuslik� Rohkem infot: http://subversion.tigris.org/
Analüüs: nõuded, ainemudel
Projektid ei ebaõnnestu nende asjade pärast mida me teame, vaid nende asjade pärast,
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 16
vaid nende asjade pärast, mida me ei tea.
Analüüs tarkvaraprojektis
Eesmärk: saada ette võimalikult hea pilt sellest, mida süsteem tegema peab ja panna see
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 17
tegema peab ja panna see võimalikult üheselt mõistetavasse keelde.
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 18
Selge, teeme analüüsi ära!
Kliendi soovid muutuvad
� Kuidas tulla toime muutustega?� Iteratsioonideks jagamine� Kooskõlastus kliendiga� Tihe tagasiside kliendilt� Muutuste jälgimine
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 19
� Muutuste jälgimine
� Muutused on väiksema mõjuga
Analüüsi tegevused
� Nõuete kogumine� Kasutussituatsioonide kirjeldamine� Aine/andmemudeli loomine� Spetsifikatsioonide kirjutamine
� Võib sisaldada veel hulgaliselt
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 20
� Võib sisaldada veel hulgaliselt modelleerimist (activity, state, timing,…)
� Tulemite selgitamine� Tellijale� Arendajale
Ideaalne projekt
� Eelanalüüs� Nõuded� Esmased kasutussituatsioonid� Prototüüp� Algeline ainemudel
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 21
� Algeline ainemudel
� Realiseerimise hinnang� Realiseerimine
Mis on nõue?
“Tingimus või omadus, millele süsteem peab vastama”
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 22
Nõuete tüübid
� Funktsionaalsed nõuded - kirjeldavad süsteemi sisu
� Mittefunktsionaalsed nõuded –kirjeldavad süsteemi muid (kvalitatiivseid) omadusi
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 23
(kvalitatiivseid) omadusi
Kuidas koguda nõudeid?
� Intervjuu� Tellijaga� Lõppkasutajaga
� Olemasolevate süsteemide uurimine� Lõppkasutaja töö jälgmine
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 24
� Lõppkasutaja töö jälgmine
FURPS
� Functionality (funktsionaalsus)� Usability (kasutatavus)� Reliability (käideldavus)� Performance (jõudlus)
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 25
� Supportability (toetus)
Funktsionaalsed nõuded
� Esitatakse tavaliselt kasutussituatsioonidena
� Alternatiiv on “story board” XP metoodikast ehk vabas vormis kirjeldus, mida kasutaja süsteemiga
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 26
kirjeldus, mida kasutaja süsteemiga teeb
Kasutussituatsioon
� Tegutseja� Stsenaarium
� Põhivoog� Alternatiivsed vood
� Tulemus
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 27
� Tulemus� Näide � Tekst või diagramm?
Kasutussituatsioonid I
� Formaalsuse astmed� Ainult põhivoog� Lisada alternatiivsed vood� Lisada eel- ja järeltingimused
� Kliendile arusaadavas keeles
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 28
� Kliendile arusaadavas keeles� HALB: Tehakse uus Oracle baasi kirje tabelisse new_orders ning seotakse see välisvõtmega uue order_process külge
� HEA: Süsteem salvestab kasutaja paketivahetuse andmed
Näide: lift
� Peab saama lifti kutsuda� Peab saama korrust valida
� Peab saama abi kutsuda
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 29
� Peab saama uksi sulgeda� Peab saama uksi avada� Peab saama lifti peatada
Kasutatavus (usability)
� Sobivus kasutaja mõttemudeliga� Esteetika (disain, pildid, ikoonid)� Õpitavus� Tagasiside aeg (response time)
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 30
� Lihtne navigeerimine� Kasutajaliidese ühtlus� Abiinfo, dokumentatsioon
Näide: lift
� Lihtne kutsumine� Selge korruse valik� Info käesoleva korruse kohta� Info kutsenupu seisundi kohta
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 31
� Valitud korruse indikaator peab olema eristatav ka värvipimedale
Käideldavus (reliability)
� Lubatav vigade arv ning tõsidus� Vigade esinemisele vahele jääv ajavahemik (MTBF – mean time between failures)
� Taastatamisele kuluv aeg
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 32
� Taastatamisele kuluv aeg� Väga kriitilised ärirakendused, reaalajasüsteemid
� Service Level Agreement
Näide: lift
� Ei tohi juhtuda rohkem kui üks selline tõrge aastas, mille tulemusena inimesed jäävad lifti lõksu
� Sellist tüüpi vead tuleb lahendada 30 minuti jooksul
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 33
minuti jooksul
Jõudlus (performance)
� Tegevuse kestus (keskmine, maks)� Tegevuste arv (tegevusi sekundis)� Võimsus (maks samaaegsete klientide arv)
� Piirkoormus, lubatavad jõudluse
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 34
� Piirkoormus, lubatavad jõudluse languse piirid kõrge koormuse tingimustes
Näide: lift
� Lift peab suutma teenindada 300 inimest tunnis
� Lifti keskmine tulekuaeg peab jääma alla 1 minuti, tippajal kuni 2 minuti jooksul
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 35
jooksul
Toetatavus (supportability)
� Kui palju raha peab kulutama süsteemi käigus hoidmisele?
� Testitavus (vigade diagnoosimise lihtsus)
� Hooldatavus (regulaarsed uuendused)
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 36
� Hooldatavus (regulaarsed uuendused)� Konfigureeritavus (runtime vs koodis)� Laiendatavus� Lokaliseeritavus
Näide: lift
� Lifti tarkvara uuendamine ei tohi võtta üle 10 minuti
� Lift ei tohi nõuda hooldust tihemini kui kord aastas
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 37
Nõuded: kommunikeerimine
� Kes viitsib lugeda 500 lk dokumenti?� Prototüüp
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 38
Nõuded: prioritiseerimine
� Väärtus kliendile� Makse tegemine internetipangas
� Suur risk� Integreerimine välise süsteemiga
� Mõju arhitektuurile
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 39
� Mõju arhitektuurile� Peab teenindama 5000 samaaegset kasutajat
Teie tulem: nõuete dokument
� FURPS (ilma plussita) mudeli järgi� Peab sisaldama kõiki sektsioone � Funktsionaalsed nõuded kasutuslugudena
� Esialgses versioonis EI PEA ja EI
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 40
� Esialgses versioonis EI PEA ja EI SOOVITA kirjutada lahti kõiki kasutuslugusid maksimaalse täpsusega. Vähemasti loetleda tuleb kõik.
Teie tulem: nõuete dokument II
� Ärge kirjutage sisse nõudeid, millele vastamist te ei suuda testimisega tõestada:
Nõue Testi tulem
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 41
Nõue Testi tulem
Sisselogimine OK
Klientide nimekirja vaatamine OK
Kliendi lisamine OK
Kliendi andmete muutmine OK
Teenindada 500 000 kasutajat päevas SNAFU
Ainemudel (i.k. domain model)
� Reaalse maailma kontseptuaalsete klasside esitus.� Klassid� Seosed� Atribuudid
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 42
� Atribuudid
� Esitus: tavaliselt UML klassdiagrammina
� Erinevus andmemudelist
Ainemudel: näide
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 43
Ainemudel: protsess
� Leia klassid� Joonista leitud klassid klassdiagrammile
� Lisa vajalikud seosed� Lisa vajalikud atribuudid
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 44
� Lisa vajalikud atribuudid� Klass või atribuut?
Mobiiltelefoni ainemudel
� Klassid:� Kontakt� Kõne� SMS
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 45
class Domain ModelEA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
KONTAKT KÕNE
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 46
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
SMS
class Domain ModelEA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
KONTAKT KÕNE
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 47
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
SMS
class Domain ModelEA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
KONTAKT
- NIMI: char- NUMBER: int
KÕNE
- ALGUSAEG: int- LÕPPAEG: int- SISSETULEV: boolean- VASTATUD: boolean
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 48
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
SMS
- AEG: int- SISSETULEV: boolean- SISU: char
Ainemudel: käitumine
� Isendite võimalike tegevuste kirjeldamine
� Kas peaks olema ainemudeli osa?� Low coupling, high cohesion
� Näited
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 49
� Näited� Arve oskab leida oma käibemaksu� Arve oskab ennast maksta luues uue Makse
� Klient oskab leida oma käibe üle kõigi oma Arvete
class Domain Model
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
KONTAKT
- NIMI: char- NUMBER: int
KÕNE
- ALGUSAEG: int- LÕPPAEG: int- SISSETULEV: boolean- VASTATUD: boolean
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 50
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
+ ARVUTA KESTUS(int, int) : int
SMS
- AEG: int- SISSETULEV: boolean- SISU: char
Andmemudel (data model)
� Ainemudeli säilitamiseks� Objektorienteeritud andmebaas� Relatsiooniline andmebaas� Hierarhiline andmebaas� Flat file
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 51
� Flat file
� Tänapäval 99% juhtudest RDBMS� Ainemudel konverteerituna sobivale meediumile
Andmemudel relatsioonilisel baasil
� Mapping klassi ja meediumi vahel� Objekti ID� Välisvõtmed� Seosed (mitu mitmele)
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 52
� …
Teie tulem: ainemudel
� Valdkonna mõistete esitus� Visuaalne� Ei pea olema UML� Soovitavalt sisaldab käitumist� Võib olla andmemudel
15.03.2007 Ivo Mägi, Karel Kravik, Webmedia AS 53
� Võib olla andmemudel