tarkvara projekt –arhitektuur, prototüüpimine ja testimineloogiline arhitektuur füüsiline...
TRANSCRIPT
-
Tarkvara projekt – arhitektuur, prototüüpimine ja testimine
8. märts 2007
Ivo Mägi, Karel Kravik, Rein Raudjärv
-
Tänased teemad
� Administratiivne
� Arhitektuur
� Prototüüpimine
� Testimine
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
2
� Näitetulemite esitlus
-
Administratiivne: tulemid
� Järgmised tulemid tuleb esitada snapshoti ja releasena
� Link ja räsi (SHA) kursuse listi
� Näited selle seminari lõpus
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
3
-
Administratiivne: infrastruktuur
� Kõik kellel on täna teada nõuded infrastruktuurile� Operatsioonisüsteemid
� Programmeerimiskeeled
� Andmebaasid
� Rakendusserverid
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
4
� Rakendusserverid
� …
� Kui need nõuded ei lange kokku kursuse raames vaikimisi pakutavaga siis andke sellest kohe korraldajate listi märku
-
Arhitektuur: sisu
� Rakenduse struktuur� Füüsiline
� Loogiline
� Alamsüsteemid, nendevaheline suhtlus.
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
5
suhtlus.
� Sidussüsteemid
� Evolutsiooni kirjeldus
-
Arhitektuur: valikud
� Palju valikuid on arhitekti eest juba visiooni koostamisel tehtud� Missioonikriitiline suure kasutajate arvuga veebirakendus
� Operatsioonisüsteem
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
6
� Operatsioonisüsteem
� Kopeerida olemasolevat? - EI
-
Arhitektuur: kihid
� Peaaegu iga rakenduse korral on kasulik jaotada kood loogiliselt ja/või füüsiliselt eraldatud kihtidesse
� Tüüpilised kihid:� Presentatsioonikiht
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
7
� Presentatsioonikiht
� Loogika kiht
� Andmekiht
� Kihtide piiril kasutada kindlasti abstraktsioone ja/või facade.
-
Arhitektuur: evolutsioon
� Pea iga arhitektuur elab oma loojast kauem – arhitektuur peab olema teie järeltulijatele arusaadav!� Fakt: loojad 1-3 aastat
� Fakt: süsteem 3-30 aastat
� Iga arhitektuur vananeb:
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
8
� Iga arhitektuur vananeb:� client-server
� Corba
� EJB
� Web-Services
� ?
-
Arhitektuur: probleemid
� Näited: method invocation
� Synchronous vs asynchronous
� Millal?
� JMS
� Local vs remote
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
9
� Local vs remote
� Millal?
� Kuidas� Web Services
� RMI
� Corba
-
Arhitektuur: ärirakendused
� Arhitektuuri eripärad
� Integratsioon
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
10
-
Tulem: arhitektuuridokument I
� Loogiline arhitektuur
� Füüsiline arhitektuur
� Arhitektuursed otsused� Platvorm, tehnoloogiad
� Kasutatavad teegid, viited
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
11
� Kasutatavad teegid, viited� Vabavaralised
� Ostetavad
� Laienduse ja edasiarenduse võimalused
-
Tulem: arhitektuuridokument II
� Kihid (horisontaalne)
� Funktsionaalsus (vertikaalne)
� Aspektid (läbilõige)
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
12
-
Prototüüpimine
Karel Kravik
-
Prototüüp – eesmärgid
� Riskide maandamine
� Püüame uurida asju, millest me midagi ei tea (proof of concept)
� Efektiivsem kommunikatsioon
� Tulemi näitamine
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
14
� Tulemi näitamine
-
Muud aspektid
� Prototüüp peab olema lihtsasti realiseeritav
� Prototüüp peab olema kergesti muudetav
� Throw-away proto vs edasiarendatav
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
15
� Throw-away proto vs edasiarendatav prototüüp
-
Mida prototüüpida?
� Arhitektuur
� Keerulised algoritmid
� Integratsioon/andmevahetus
� Kasutajaliides
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
16
-
Arhitektuur
� Framework’ide sobivus
� Tehnoloogiate sobivus
� Teekide sobivus
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
17
-
Algoritmid
� Sessiooni haldamine
� Interpoleerimine Newtoni valemiga
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
18
-
Integratsioon
� Välised süsteemid
� Suhtlusprotokollid
� Failiformaadid
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
19
-
Kasutajaliides
� Disain
� Navigatsioon
� Sisuline loogika
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
20
-
Näited
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
21
-
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
22
-
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
23
-
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
24
-
Teie tulem: prototüüp
� Soovitav (aga mitte kohustuslik) on prototüüpida kasutajaliidest
� Tuleb esitada:� HTML lehtedena veebirakenduse puhul
� Desktop rakendused?
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
25
� Desktop rakendused?
� Arhitektuuri/algoritmide prototüüp lähtekoodina
-
Teie tulem: prototüüp
� UI prototüüp ei pea (praegu) katma kõiki kasutussituatsioone
� Prototüüpe tuleb esitleda 29. märtsil, enne III iteratsiooni lõppu
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
26
-
Testimine
-
Eeldused testimiseks
� Testkeskkond
� Uuendusprotseduur
� Installeerimisjuhend
� Muud eeldused
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
28
-
Testimismeetodid
� Automaatne vs manuaalne testimine� Koodi ülevaatus� Tööde ja vigade järelkontroll� Ühiktestid� Verifitseerimine
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
29
� Verifitseerimine� Kas teostasime õieti? Kas vastab nõuetele?
� Valideerimine� Kas tegime õige asja? Kas on see mis klient tahtis?
-
Kuidas siis ikkagi testida?
"Just do it."
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
30
— Nike
-
Aga tegelikult?
� Võrrelge rakendust detailse kasutuslooga
� Võrrelge rakendust sellega, mis sai kirja mittefunktsionaalsete nõuete alla
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
31
alla
� Küsige iga iteratsiooni lõpus kasutajatelt tagasisidet
-
Veel vihjeid
� Väljade/argumentide piir/erijuhud
� Suuruse kontrollid
� Veatöötlus
� Paralleelne töö
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
32
� Lokaliseerimine
� Erinevad keskkonnad/platvormid/ brauserid
-
Tööde ja vigade haldus
� Changelogic’u demo
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
33
-
Teie tulem: testimisplaan
� Kes, millal, kuidas ning mida testitakse?
� Milliseid automaatseid testimise vahendeid kasutatakse? Mis otstarbel?� NB! Ühiktestid on kohustuslikud!
� Mis hetkedel ning mida testitakse käsitsi
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
34
� Kuidas teostatakse ülevaatusi?
� Kuidas raporteeritakse ning parandatakse vigu?
-
Teie tulem: süsteemitestid
Nõue Testi tulem
Sisselogimine OK
Klientide nimekirja vaatamine OK
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
35
Kliendi lisamine OK
Kliendi andmete muutmine OK
Teenindada 500 kasutajat korraga SNAFU
-
II iteratsiooni tulemid
� Nõuete dokument
� Testimisplaan
� Prototüüp
� Arhitektuuridokument
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
36
� Ainemudel
� II iteratsiooni kokkuvõte
� III iteratsiooni plaan
-
Näitetulemite esitlus ja Eclipse
Rein Raudjärv
-
Eclipse plugins� Eclipse (3.2.2)
� http://download.eclipse.org/eclipse/downloads/� EMF-SDO-XSD SDK (2.3)
� http://www.eclipse.org/modeling/emf/downloads/?project=emf
� GEF runtime (3.2.2)� http://download.eclipse.org/tools/gef/downloads/
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
38
� http://download.eclipse.org/tools/gef/downloads/� Java EMF (JEM) runtime (1.2.3)
� http://download.eclipse.org/tools/ve/downloads/� WTP release (1.5.3)
� http://download.eclipse.org/webtools/downloads/
-
Eclipse plugins (2)
Subclipse (Subversion)� http://subclipse.tigris.org/install.html
� Spring IDE (Spring Framework)� http://springide.org/project/wiki/SpringideInstall
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
39
deInstall
-
Mõisted
� Snapshot
� Kogu projekti kaust v.a genereeritav osa (build, release, javadoc, ...)
� Release
� War-fail
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
40
� War-fail
� Paigaldusjuhend
-
Tulemite esitamine
� build.xml targetid snapshot ja release genereerivad vastavad zip-failid
� Kopeerida zip-failid ATS-i public_html kausta
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
41
� Lisada Wikisse lingid� Genereerida räsid
� sha1sum (failinimi)
� Saata kiri üldlisti
-
Kirja näide
Subject: [Jedi] iteratsioon 2 tulemusFrom: [email protected]: [email protected]
7ef24b014dd1e78188ae1f86cebf9e1ecbc8e228 jedi-snapshot-2.zip
15.03.2007 Ivo Mägi, Karel Kravik, Rein Raudjärv, Webmedia AS
42
jedi-snapshot-2.zipcaf5cc84dd7860907fcf010a56dd971a81b3418d
jedi-release-2.zip
http://courses.cs.ut.ee/2007/tvp/Groups/Jedi