tarkvara projekt – seminar iii · tarkvara projekt – seminar iii 28.veebruar 2008 ivo mägi....
Post on 05-Aug-2020
4 Views
Preview:
TRANSCRIPT
Tarkvara projekt – seminar III
28.veebruar 2008Ivo Mägi
Seminari kava
� Kliendisuhtlusest� Infrastruktuur� I iteratsiooni tulemite nõuded
Projektiplaan
28. veebruar 2008 Ivo Mägi, Webmedia AS 2
� Projektiplaan� Riskide maandamise plaan� Ainemudel� Nõuete dokument� Testide plaan� Süsteemi arhitektuur� Esimese iteratsiooni kokkuvõte� Teise iteratsiooni plaan
Kliendisuhtlus
� Suhtluskanali tähtsus� Näost näkku� Telefon/Skype� Instant messenger
28. veebruar 2008 Ivo Mägi, Webmedia AS 3
� Instant messenger� E-mail
� Nõuete kogumine� Tagasiside hankimine
Kliendisuhtlus: võimalikud probleemid
� Mahuhinnang� Klient peab aru saama et töömaht peab
olema vahemikus 480-720h
� Klient peab olema valmis osalema
28. veebruar 2008 Ivo Mägi, Webmedia AS 4
� Klient peab olema valmis osalema nõuete täpsustamisel ning tagasiside andmisel
� Konfliktide tekkimisel palun otsekohe aine korraldajatele märku anda
Infrastruktuur
� Erinevad keskkonnad. Miks?� Arenduskeskkond� Testkeskkond
� Toodangukeskkond
28. veebruar 2008 Ivo Mägi, Webmedia AS 5
� Toodangukeskkond
� Propageerimine
Operatsioonisüsteem
� CentOS Linux 5.0� MS Windows XP� Eksootilisemaid variante (Solaris, HP-
UX, …) prooviksime elimineerida
28. veebruar 2008 Ivo Mägi, Webmedia AS 6
UX, …) prooviksime elimineerida
ats.cs.ut.ee
� Autentimine teie ülikooli kasutajatunnusega
� Grupikuuluvus on määratud grupi koosseisu järgi. Grupi nimi on võetud koosseisu järgi. Grupi nimi on võetud wikist
� Grupi kodukataloog (tulemite publitseerimiseks)� /projects/home/tvp2008/<group_name>
28. veebruar 2008 Ivo Mägi, Webmedia AS 7
Andmebaas
� MySQL� MS SQL Server� Postgres
28. veebruar 2008 Ivo Mägi, Webmedia AS 8
� Oracle
MySQL� Igal rühmal on olemas MySQL baas:
� server: mysql.cs.ut.ee� database: tvp2008_<project_name>� username: tvp2008_<project_name>� password: vaata � password: vaata
/projects/home/tvp2008/<project_name>/mysqlpasswd
� phpMyAdmin on kasutatav URLilt http://ats.cs.ut.ee/utils/phpmyadmin/
28. veebruar 2008 Ivo Mägi, Webmedia AS 9
PostgreSQL
� Igal rühmal on olemas Postgresibaas:� server: ats.cs.ut.ee� database: tvp2008_<project_name>� database: tvp2008_<project_name>� username: tvp2008_<project_name>� password: look at
/projects/home/tvp2008/<project_name>/postgresqlpasswd
28. veebruar 2008 Ivo Mägi, Webmedia AS 10
Rakendusserver
� Apache Tomcat� MS IIS
28. veebruar 2008 Ivo Mägi, Webmedia AS 11
Tomcat
� Igal rühmal on kasutada üks Tomcatiinstants� server: ats.cs.ut.ee� Väline proxy (via AJP) to URL: � Väline proxy (via AJP) to URL:
http://ats.cs.ut.ee/tvp2008/<project_name>� instance path:
/usr/share/tomcat5/instances/tvp2008_<project_name>
� start-stop script: /usr/share/tomcat5/instances/tvp2008_<project_name>/catalina.sh
28. veebruar 2008 Ivo Mägi, Webmedia AS 12
Veebiserver
� Apache HTTP Server� MS IIS
28. veebruar 2008 Ivo Mägi, Webmedia AS 13
Virtuaalmasinad
� JVM for Java� CLR for C#
28. veebruar 2008 Ivo Mägi, Webmedia AS 14
Tugitarkvara
� Versioonihaldus: SVN� Ehitamine: ANT for Java projects� Knowledge management: Wiki
28. veebruar 2008 Ivo Mägi, Webmedia AS 15
� Taskihaldus: Changelogic� Juhtumeid kus ülaltoodud komplekt ei
sobi käsitleme case-by-case
SVN
� Igal rühmal on repositooriumsvn://ats.cs.ut.ee/courses/tvp2008 /<project_name>
� Kasutajakontod on samad mis ülikooli � Kasutajakontod on samad mis ülikooli serverite omad
� Paroolid leiate /projects/home/tvp2008/<project_name>/svnpasswd
28. veebruar 2008 Ivo Mägi, Webmedia AS 16
Changelogic
� http://ats.cs.ut.ee/changelogic� Kasutajanimed ja paroolid on samad
mis SVN puhul� Projektid on loomisel� Projektid on loomisel
28. veebruar 2008 Ivo Mägi, Webmedia AS 17
Ehitusskriptid: kohustuslikud targetid
� snapshot: kogu lähtekood ja dokumentatsioon pakituna
� release: käivitatav rakendus, installatsioonijuhend ning muu
28. veebruar 2008 Ivo Mägi, Webmedia AS 18
installatsioonijuhend ning muu installatsiooniks vajalik
� build: arenduses ehitamine� test: automaattestide käivitamine� clean: puhastus
Wiki� http://courses.cs.ut.ee/2008/tvp/Teams/Teams� Igal projektil peab olema oma Wiki leht. Seal peab sisalduma
vähemalt järgnev:� Info kliendi kohta� Info projekti kohta� Projekti liikmete nimekiri ja liikmete rollid� Projektijuhi kontaktandmed
28. veebruar 2008 Ivo Mägi, Webmedia AS 19
� Projektijuhi kontaktandmed� Kõikide iteratsioonide tulemid (snapshot+release)� Viited
� Koodi dokumentatsioon (javadoc, …)� ViewVC� Changelogic
� Kõik valminud dokumendid� Näide eelmisest aastast
Struktuur: nõuded
28. veebruar 2008 Ivo Mägi, Webmedia AS 20
Tulemite esitamine� Märgendada versioonihalduses uus haru� Võtta vastav versioon versioonihaldusest� Java projektides:
� ant snapshot� ant release
� Kopeeride release ja snapshot
28. veebruar 2008 Ivo Mägi, Webmedia AS 21
� Kopeeride release ja snapshot /projects/home/tvp2008/<groupname>/public_html kataloogi ning viidata neile projekti Wikist
� Saata kursuse üldlisti kiri kus sisaldub� SHA1 räsi snapshotist. Miks?� SHA1 räsi releasest. Miks?� Viit grupi wikile kus on lingitud valminud tulemid ning
viited snapshotile ja releasele.� Kirja subjekt peab olema [ryhm] iteratsioon <iter.
nr> tulemus, näiteks [kosmos] iteratsioon 1 tulemus
sha1sum: näide arvutamisest
28. veebruar 2008 Ivo Mägi, Webmedia AS 22
Nõuded I iteratsiooni tulemitele� Meeldetuletusena: me ei õpeta siin aines midagi
� Anname võimaluse õpitut rakendada� Aitame lahendada rakendamisel tekkivaid probleeme� Anname tagasisidet tehtud tööle
� Et hoida meeskondi mingis kindlas rütmis kirjutame ette � Et hoida meeskondi mingis kindlas rütmis kirjutame ette tehtavad tulemid� Juhul kui mõni tehnoloogia ei võimalda antud tulemit
teostada või soovib klient mingit alternatiivset tulemit siis palun kohe kontakteeruda aine korraldajatega.
28. veebruar 2008 Ivo Mägi, Webmedia AS 23
Tulemid: projekti plaan
� Aine eripärad projektijuhtimise seisukohalt� Teie tiimi liikmed paiknevad hajali� Teie tiimi liikmed teevad tööd ainult ühe � Teie tiimi liikmed teevad tööd ainult ühe
päeva nädalas� Teie tiimi liikmed on erinevates
ajavööndites� Teil puudub otsene võimalus oma
tiimiliikmeid motiveerida
28. veebruar 2008 Ivo Mägi, Webmedia AS 24
Projekti plaan: sisu
� Arendusmetoodika� Rollide jaotus� Ajagraafik
28. veebruar 2008 Ivo Mägi, Webmedia AS 25
Projekti plaan: arendusmetoodika� Metoodika peab olema iteratiivne ja kergekaaluline. Soovitame
ühte järgnevaist:� Scrum� Crystal Clear� dX� XP
� Projekti plaanis peab olema kirjeldatud� Mis moel valitud metoodikat praktikas rakendada kavatsetakse � Mis moel valitud metoodikat praktikas rakendada kavatsetakse
arvestades aine eripärasid võrreldes “tavalise” tarkvaraarendusega� Kuidas toimub suhtlus. Kasutatavad suhtlusvahendid
� Wiki� E-mail� Instant Messenger� Telefon� Näost-näkku kohtumine
� Metoodika osas peab olema näha et teema on enese jaoks läbi mõeldud
28. veebruar 2008 Ivo Mägi, Webmedia AS 26
Projekti plaan: rollide jaotus I� Meeskonna liikmed� Liikmete CVd� Roll(-id) mida liige projektis täidab. Üks liige ei pea olema
ainult ühes rollis! Kõik rollid peavad olema täidetud. Võib vajadusel tekitada lisarolle� Projektijuht
28. veebruar 2008 Ivo Mägi, Webmedia AS 27
� Projektijuht� Projekti plaan ja kokkuvõte� Riskide tuvastamise ja maandamise dokument� Iteratsiooni plaan ja kokkuvõte� Üleandmise-vastuvõtmise akt� Tööülesannete jälgimine ja planeerimine
� Analüütik� Visioon� Nõuete dokument (Funktsionaalsed nõuded)� Ainemudel (koostöös disaineriga)� Prototüüp
Projekti plaan: rollide jaotus II� Rollid: jätkub
� Disainer� Ainemudel (koostöös analüütikuga)� Disainidokument
� Arhitekt� Arhitektuuridokument
� Arendaja� Kood (kommenteeritud)
28. veebruar 2008 Ivo Mägi, Webmedia AS 28
� Kood (kommenteeritud)� Ühiktestid� Ehitusskriptid
� Testija� Testimise plaan� Süsteemitestid� (Tööülesannete jälgimine ja planeerimine)
� Dokumenteerija� Kasutajajuhend� Installatsioonijuhend� Rakenduse esitlus
Projekti plaan: tööde planeerimine ja jälgimine
� Tööülesanded� Nimekiri� Sõltuvused. Te ei saa näiteks testida
enne kui kood on valmis
28. veebruar 2008 Ivo Mägi, Webmedia AS 29
enne kui kood on valmis� Mahtude hinnangud tundides
(planeeritud, tegelik)� Teostajad
� Tähtsad verstapostid (milestones). Meie puhul iteratsioonide lõpud.
Projekti plaan: tööülesanded
� “Kood” – 30h ei ole tööülesanne� Igal tööülesandel peab olema
mõõdetav tulem, näiteks:� Kõrvaldada “NullPointer Exception” arve � Kõrvaldada “NullPointer Exception” arve
salvestamisel� Realiseerida arvete väljatrüki komponent� Lisada arve vaatamise kuvale link
kreeditarvele (kui kreeditarve eksisteerib)
28. veebruar 2008 Ivo Mägi, Webmedia AS 30
Tulemid: iteratsiooni plaan
� Eesmärgid� Tööülesanded
� Tööülesannete seos konkreetse teostajaga
28. veebruar 2008 Ivo Mägi, Webmedia AS 31
teostajaga� Mõõdetava tulemiga (jällegi – “Testimine
20h” ei ole mõõdetav� Ülesannete vahelised seosed
� Mahtude hinnangud
Tulemid: iteratsiooni kokkuvõte
� Kas eesmärgid olid saavutatud? (tulemused vs eesmärgid)
� Reaalsed tegevuste mahud� Probleemid, mis tekkisid
28. veebruar 2008 Ivo Mägi, Webmedia AS 32
� Probleemid, mis tekkisid� Järeldused tulevikuks� Võtke iteratsioon kokku meeskonna
koosolekul, mitte ärge imege tund enne tähtaega pastakast välja
Tulemid: riskide haldamine
� Millised võimalikud ohud projekti edukat täitmist ähvardavad?
� Mis on riski realiseerumise mõju projektile
28. veebruar 2008 Ivo Mägi, Webmedia AS 33
projektile� Milline on riski realiseerumise
tõenäosus.� Kuidas ja milliseid riske maandatakse ning milliste riskidega elatakse
Tulemid: Nõuete dokument
28. veebruar 2008 Ivo Mägi, Webmedia AS 34
FURPS
� Functionality (funktsionaalsus)� Usability (kasutatavus)� Reliability (käideldavus)
28. veebruar 2008 Ivo Mägi, Webmedia AS 35
� Performance (jõudlus)� Supportability (toetus)
Funktsionaalsed nõuded
� Esitatakse kasutussituatsioonidena� Alternatiivsete esitussoovide korral
lepime eraldi kokku
28. veebruar 2008 Ivo Mägi, Webmedia AS 36
Kasutussituatsioon
� Tegutseja� Stsenaarium
� Põhivoog� Alternatiivsed vood
28. veebruar 2008 Ivo Mägi, Webmedia AS 37
� Alternatiivsed vood
� Tulemus� Näide � Tekst või diagramm?
Kasutussituatsioonid I
� Formaalsuse astmed� Ainult põhivoog� Lisada alternatiivsed vood� Lisada eel- ja järeltingimused
28. veebruar 2008 Ivo Mägi, Webmedia AS 38
� Lisada eel- ja järeltingimused
� 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
28. veebruar 2008 Ivo Mägi, Webmedia AS 39
� Peab saama abi kutsuda� Peab saama uksi sulgeda� Peab saama uksi avada� Peab saama lifti peatada
Kasutatavus (usability)
� Sobivus kasutaja mõttemudeliga� Esteetika (disain, pildid, ikoonid)� Õpitavus
28. veebruar 2008 Ivo Mägi, Webmedia AS 40
� Tagasiside aeg (response time)� Lihtne navigeerimine� Kasutajaliidese ühtlus� Abiinfo, dokumentatsioon
Näide: lift
� Lihtne kutsumine� Selge korruse valik� Info käesoleva korruse kohta
28. veebruar 2008 Ivo Mägi, Webmedia AS 41
� Info kutsenupu seisundi kohta� 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)
28. veebruar 2008 Ivo Mägi, Webmedia AS 42
between failures)� 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
28. veebruar 2008 Ivo Mägi, Webmedia AS 43
� Sellist tüüpi vead tuleb lahendada 30 minuti jooksul
Jõudlus (performance)
� Tegevuse kestus (keskmine, maks)� Tegevuste arv (tegevusi sekundis)� Võimsus (maks samaaegsete klientide
arv)
28. veebruar 2008 Ivo Mägi, Webmedia AS 44
arv)� 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
28. veebruar 2008 Ivo Mägi, Webmedia AS 45
alla 1 minuti, tippajal kuni 2 minuti jooksul
Toetatavus (supportability)
� Kui palju raha peab kulutama süsteemi käigus hoidmisele?
� Testitavus (vigade diagnoosimise lihtsus)
28. veebruar 2008 Ivo Mägi, Webmedia AS 46
lihtsus)� 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
28. veebruar 2008 Ivo Mägi, Webmedia AS 47
kui kord aastas
Nõuded: kommunikeerimine
� Kes viitsib lugeda 500 lk dokumenti?� Prototüüp
28. veebruar 2008 Ivo Mägi, Webmedia AS 48
Nõuded: prioritiseerimine
� Väärtus kliendile� Makse tegemine internetipangas
� Suur risk� Integreerimine välise süsteemiga
28. veebruar 2008 Ivo Mägi, Webmedia AS 49
� Integreerimine välise süsteemiga
� Mõju arhitektuurile� Peab teenindama 5000 samaaegset
kasutajat
Nõuded: seos projektiplaaniga
� Seega järjestage töid projektiplaani lihtsa valemi järgi� Tellija äri jaoks olulisemad protsessid
esmajärjekorras. Prioriteedid määrab esmajärjekorras. Prioriteedid määrab tellija esindaja.
� Riskantsemad komponendid esmajärjekorras. Komponent loetakse riskantseks kui ta on kas tehniliselt keerukas või on äriprotsess ebaselge.
28. veebruar 2008 Ivo Mägi, Webmedia AS 50
Teie tulem: nõuete dokument
� FURPS mudeli järgi� Peab sisaldama kõiki sektsioone � Funktsionaalsed nõuded
kasutuslugudena
28. veebruar 2008 Ivo Mägi, Webmedia AS 51
kasutuslugudena� Esialgses versioonis EI PEA ja EI
SOOVITA kirjutada lahti kõiki kasutuslugusid maksimaalse täpsusega. Vähemasti loetleda tuleb kõik.
Tulemid: Ainemudel
28. veebruar 2008 Ivo Mägi, Webmedia AS 52
Ainemudel (i.k. domain model)
� Reaalse maailma kontseptuaalsete klasside esitus.� Klassid� Seosed
28. veebruar 2008 Ivo Mägi, Webmedia AS 53
� Seosed� Atribuudid
� Esitus: tavaliselt UML klassdiagrammina
� Erinevus andmemudelist
Ainemudel: näide
28. veebruar 2008 Ivo Mägi, Webmedia AS 54
Ainemudel: protsess
� Leia klassid� Joonista leitud klassid
klassdiagrammile� Lisa vajalikud seosed
28. veebruar 2008 Ivo Mägi, Webmedia AS 55
� Lisa vajalikud seosed� Lisa vajalikud atribuudid� Klass või atribuut?
Ainemudel: käitumine
� Isendite võimalike tegevuste kirjeldamine
� Kas peaks olema ainemudeli osa?� Low coupling, high cohesion
28. veebruar 2008 Ivo Mägi, Webmedia AS 56
� Low coupling, high cohesion
� 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
Teie tulem: ainemudel
� Valdkonna mõistete esitus� Visuaalne� Ei pea olema UML� Soovitavalt sisaldab käitumist
28. veebruar 2008 Ivo Mägi, Webmedia AS 57
� Soovitavalt sisaldab käitumist� Võib olla andmemudel
� Ei pea esimeses tarnes veel sisaldama kõiki seoseid ja tunnuseid. Kõik olemid peaksid juba eksisteerima
Tulem: arhitektuuridokument I
� Loogiline arhitektuur� Füüsiline arhitektuur� Arhitektuursed otsused
28. veebruar 2008 Ivo Mägi, Webmedia AS 58
� Platvorm, tehnoloogiad� Kasutatavad teegid, viited
� Vabavaralised� Ostetavad
� Laienduse ja edasiarenduse võimalused
Tulem: arhitektuuridokument II
� Kihid (horisontaalne)� Funktsionaalsus (vertikaalne)� Aspektid (läbilõige)
28. veebruar 2008 Ivo Mägi, Webmedia AS 59
Tulem: testimisplaan
� Kes, millal, kuidas ning mida testib?� Milliseid automaatseid testimise vahendeid
kasutatakse? Mis otstarbel?� NB! Kas ühiktestid või automaatsed � NB! Kas ühiktestid või automaatsed
kasutajaliidese testid on kohustuslikud!
� Mis hetkedel ning mida testitakse käsitsi� Kuidas teostatakse ülevaatusi?� Kuidas raporteeritakse ning parandatakse
vigu?
28. veebruar 2008 Ivo Mägi, Webmedia AS 60
Tähtaeg: märts 2008
� Tuletan meelde: hilinemine ei ole soovitav:� Kuni 24 tundi hilinedes kaotate 25%
punktidest
28. veebruar 2008 Ivo Mägi, Webmedia AS 61
punktidest� Kuni 48 tundi hilinedes kaotate 50%
punktidest� Üle 48 tunni hilinedes kaotate kõik
punktid
Tähtaeg: tarnitavad tulemid
� Teil on kohustus tarnida ainult “paberit”
� Aga: suure tõenäosusega aga need rühmad kes selleks ajaks pole rühmad kes selleks ajaks pole hakanud koodi kirjutama ainest läbi ei saa
28. veebruar 2008 Ivo Mägi, Webmedia AS 62
top related