42
Tarkvara projekt – arhitektuur, prototüüpimine ja testimine 8. märts 2007 Ivo Mägi, Karel Kravik, Rein Raudjärv

Tarkvara projekt –arhitektuur, prototüüpimine ja testimineLoogiline arhitektuur Füüsiline arhitektuur Arhitektuursed otsused Platvorm, tehnoloogiad Kasutatavad teegid, viited

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 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