tarkvara projekt – seminar iii · tarkvara projekt – seminar iii 28.veebruar 2008 ivo mägi....

Post on 05-Aug-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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