tarkvara projekt–seminar 10 · 2007. 4. 26. · eriseminar: miks mõned projektid õnnestuvad ja...

30
Tarkvara projekt–seminar 10 19. aprill 2007 Ivo Mägi

Upload: others

Post on 14-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Tarkvara projekt–seminar 10

19. aprill 2007

Ivo Mägi

Page 2: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kava

� Administratiivset

� V iteratsiooni tulemite tutvustus

� Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad?ebaõnnestuvad?

26.04.2007 Ivo Mägi, Webmedia AS 2

Page 3: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Hindamine rutiinivabaks!

Iteratsiooni plaanist:

“Neljandas iteratsioonis peab valmima rakendus mida julgeb näidata ka lõppkasutajale. Tööle peavad lõppkasutajale. Tööle peavad

hakkama vormide validatsioonid, otsingud, filtreerimised

ja logardid. Defineeritakse ja realiseeritakse arvete genereerimine

ja väljatrükk.”26.04.2007 Ivo Mägi, Webmedia AS 3

Page 4: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Hindamine rutiinivabaks!

� Mida nimetatakse globaliseerumiseks:global $xxxx_xxxxxxxx_xxxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxxx;

global $xxxx_xxxxxxxx_xxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx_xxxxxx;

global $xxxx_xxxxxxxx_xxxxxx;

global $xxxx_xxxxxxxx_xxxx;global $xxxx_xxxxxxxx_xxxx;

global $xxxx_xxxxxxxx_xxxxxx;

global $xxxx_xxxxxxxx_xxx;

global $xxxx_xxxxxxxx_xxxxx;

global $xxxx_xxxxxxxx_xxxx;

global $xxxx_xxxxxxxx_xxxxxxx_xxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxxx_xxxxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxx_xxxxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxxx_xxxxxxx; global $xxxx_xxxxxxxx_xxxxxx_xxxxxxx; global$xxxx_xxxxxxxx_xxxxx_xxxxxxx; global $xxxx_xxxxxxxx_xxxxx_xxxxxx; global$xxxx_xxxxxxxx_xxxxxxxx_xxxxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx_xxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx_xxxxxx_xxxxxxx;

global $xxxx_xxxxxxxx_xxxxxxxx_xxxxxx_xxxxxxx;

26.04.2007 Ivo Mägi, Webmedia AS 4

Page 5: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Hindamine rutiinivabaks

� Tagastame!

1. return (MyClass) null;

2. return (Object) myObject;

3. return (x > 0) ? true : false;3. return (x > 0) ? true : false;

4. If (x) return 1;

else if (Y) return 2;

else if (Z) return 3;

else if (W) return 4;

26.04.2007 Ivo Mägi, Webmedia AS 5

Page 6: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Hindamine rutiinivabaks!

� Nõuete dokument ja EKI

Ilma igasuguse irooniata on mul hea meel et on lõpuks aine kontekstis meel et on lõpuks aine kontekstis

leitud teema mis elavat diskussiooni tekitab.

26.04.2007 Ivo Mägi, Webmedia AS 6

Page 7: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Risthindamisest

� Kuna AIESEC loobus, siis neid risthinnanud rühmadel on kergem elu, saate oma punktid ainult ühe rühma hindamisega kätte

� Juhul kui hinnatav rühm hilines tulemi � Juhul kui hinnatav rühm hilines tulemi esitamisega, siis pääsete selle rühma risthindamisest. Seega - ärge hilinege, teete oma konkurentidele kingituse!

� Risthindamise käigus tuleb kindlasti süsteem installeerida

26.04.2007 Ivo Mägi, Webmedia AS 7

Page 8: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Iteratsioonide planeerimine

� Andke oma projektijuhtidele vastu pead

� Kui raske saab olla panna kirja kes, mida ja millal iteratsiooni käigus teeb?teeb?

� Kõigil rühmadel puudu toodangusse juurutamiseks tehtavate tegevuste planeerimine

26.04.2007 Ivo Mägi, Webmedia AS 8

Page 9: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Iteratsioonide kokkuvõtted

� Iteratsiooni kokkuvõttest peab näha olema mida projekti juures iteratsiooni käigus tehti, nn changelog

� Iteratsiooni kokkuvõtetes ei ole � Iteratsiooni kokkuvõtetes ei ole mahte hinnatud tegevuspõhiselt

26.04.2007 Ivo Mägi, Webmedia AS 9

Page 10: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Tagasiside tulemitele

� Risthindamise ja tagasiside mõte on anda rühmadele võimalus oma tööd paremini teha

� See on rühmale väga hea viis saada konstruktiivset kriitikatkonstruktiivset kriitikat

� Miks te seda ei kasuta?

26.04.2007 Ivo Mägi, Webmedia AS 10

Page 11: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Analüüsi teema kokkuvõte

� Antud aine raames nõutu oli tegelikult suhteliselt pealiskaudne

� Tegelikult sisaldab spetsifikatsioon:� Prototüübi pilti� Reegleid andmete valideerimiseks

26.04.2007 Rein Raudjärv, Webmedia AS 11

� Reegleid andmete valideerimiseks� Võimalike tegevuste kirjeldust� Andmebaasivälju, kust loetakse ja kuhu

salvestatakse� Lisaks: õiguste kontroll, kirjete arvu

hinnangud jne

Page 12: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Spetsifikatsioon

� Spekke kirjutatakse selleks, et ei peaks sama asja korduvalt seletama:� Arendajale

� Testijale

� Kliendi esindajale

26.04.2007 Rein Raudjärv, Webmedia AS 12

� Kliendi esindajale

� Juhul kui keegi neist vahetub

� Päris projektis ei säästa miski teid sisulisest tööst – ei metoodika (XP) ega vahendid

Page 13: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Süsteemitestid

� Viimases iteratsioonis peavad olema ka mittefunktsionaalsed nõuded testitud

� Jälle sama jutt – vahend ei tähenda, et sisulist tööd ei pea

26.04.2007 Rein Raudjärv, Webmedia AS 13

tähenda, et sisulist tööd ei pea tegema� Näiteks see, et te kirjeldate testid

Changelogic’us ei tähenda, et tegelikult testima ei peaks

� PS: testjuhtumeid CL-is kirjeldama ei pea

Page 14: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Testide kokkuvõte

� Süsteemitestide dokument näitab väga selgelt kaugel see süsteem on� Mitu kasutussituatsiooni on tehtud, mitu

testitud jne

� Kokkuvõttes on näha süsteemi arengut

26.04.2007 Rein Raudjärv, Webmedia AS 14

� Kokkuvõttes on näha süsteemi arengut

� Testide kokkuvõte – vt rühm LAIS

Page 15: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Ehitusskriptid

� PHP projektide puhul nõuti ehitusskriptidelt minimaalselt funktsionaalsust.

� Seda ei ole ju raske tööle panna?

� Ehitusskriptid enamikel Java rühmadel töötasid

� Overengineering

� Copy-paste liigsete targetitega� Copy-paste liigsete targetitega

� Sõltuvuste väärkasutamine

� Snaphot ei tohi sisaldada tühje kaustu ega faile .classpath ja .project

� Veenduge et ehitusskript töötab suvalises masinas

26.04.2007 Ivo Mägi, Webmedia AS 15

Page 16: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: üldine

� Kõige olulisem koodi hindamise kriteerium on väga lihtne:

Kood peab töötamaKood peab töötama

26.04.2007 Ivo Mägi, Webmedia AS 16

Page 17: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: üldine

� Kuigi selles iteratsioonis installatsioonijuhendit ei hinnatud, siis koodi ometigi hinnati

� Installatsioonijuhendid ei arvesta inkrementaalse paigaldusega

� Kui teie release järgmises iteratsioonis ei tööta siis te saate 340 punktist täpselt null punkti. siis te saate 340 punktist täpselt null punkti. Pooltel rühmadel release kas üldse ei tööta või töötab pärast mõningast ennustamist.

� Testige oma installatsioon läbi! Miks ma pean ennustama mis järjekorras baasiskripte sisse lasta? Kuskohast peaksin ma ära arvama administraatori parooli? Jne ...

26.04.2007 Ivo Mägi, Webmedia AS 17

Page 18: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: üldine

� Palju sarnast/korduvat koodi, mis keskendub madalataseme operatsioonidele ja sõltub täielikult HTTP päringutest või JDBCoperatsioonidest

26.04.2007 Rein Raudjärv, Webmedia AS 18

operatsioonidest

� Kood “räägib” ainult “kuidas teha”ja ei peegelda seda “mida tehakse”

Page 19: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: üldine

� Raskesti loetav

� Puuduvad kommentaarid

� Pikad veaohtlikud meetodid

� Ülearused sõltuvused

26.04.2007 Rein Raudjärv, Webmedia AS 19

� Kood ei ole jaotatud loogilisteks taaskasutatavateks osadeks

Page 20: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: kommentaarid

� ... puuduvad peaaegu täielikult

� Kood on raskesti loetav ja hallatav

� Teadmised on ainult arendaja peas

26.04.2007 Rein Raudjärv, Webmedia AS 20

� Välja kommenteeritud kood!

Page 21: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: stiil

� Läbisegi eesti ja inglise keel

� Tühikute pealt ei tasu kokku hoida!

� Vigane treppimine

26.04.2007 Rein Raudjärv, Webmedia AS 21

Page 22: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: struktuur

� Paketistruktuuris puudub äriloogika ja presentatsioonikihi eristus

� JSP-d ei ole jaotatud alamkaustadeks

26.04.2007 Rein Raudjärv, Webmedia AS 22

Page 23: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: Java keel

� Staatiline vs. mittestaatiline

� Extendimine staatilise meetodi lühemaks kasutamiseks

� Kui klassi asemel saab kasutada liidest, siis kasutage!

26.04.2007 Rein Raudjärv, Webmedia AS 23

liidest, siis kasutage!

� Serialiseeruvatel klassidel puudub „serialVersionUID”

� Kasutage Generirc-uid!

Page 24: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: Ründeohtlik

� SQL injection

� URL-ist otsitava objekti ID lugemine

26.04.2007 Rein Raudjärv, Webmedia AS 24

Page 25: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: Hooletus

� Kasutamata kood

26.04.2007 Rein Raudjärv, Webmedia AS 25

Page 26: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: Raskesti muudetav

� Teated kirjutatakse otse koodi

26.04.2007 Rein Raudjärv, Webmedia AS 26

Page 27: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: PHP� Kuna kõik kasutajatelt tulev sisend on vaikimisi

ebaturvaline, tuleks sellega ka vastavalt ümber käia. $_POST[$post_key] =

� htmlspecialchars($post_value) - klassi/funktsiooni alguses sellise asja tegemine on mõttetu, kuna võib muuta töötlemisele minevate andmete väärtuseid. Varjestamist tuleb teha alles andmeid brauseris kuvama Varjestamist tuleb teha alles andmeid brauseris kuvama hakates. Ning kui koodis üritatakse dünaamiliselt midagi includeda, tuleks enne kontrollida, kas antud sisend on valiidne.

� Milleks üldse kasutada objekt orienteeritud koodi, kui alamklassid defineeritakse globaalse muutujaga ülemklassi objekt. Alamklass saab ülemklassi meetoditele ilusti ligi.

26.04.2007 Ivo Mägi, Webmedia AS 27

Page 28: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Kood: PHP

� Ei ole otstarbekas klassi igas meetodis luua mingist klassist objekt. Selle asemel tuleks kasutada objekti klassi atribuudina.

� Tuleb kasutada logimisraamistikku, mis pakuks võimalust logitasemeid sisse-välja lülitada

� Kuidas saadakse teada toodangus tekkivatest � Kuidas saadakse teada toodangus tekkivatest vigadest? Vigu peab logima

26.04.2007 Ivo Mägi, Webmedia AS 28

Page 29: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Punktiseis

200,00

250,00

300,00

350,00

400,00

450,00

Pu

nkti

d

Tulemused

Series1

26.04.2007 Ivo Mägi, Webmedia AS 29

0,00

50,00

100,00

150,00

200,00Pu

nkti

d

Rühmad

Page 30: Tarkvara projekt–seminar 10 · 2007. 4. 26. · Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2. Hindamine rutiinivabaks!

Hindamisest

� Parimal rühmal hetkel 81% maksimaalsetest võimalikest punktidest

� Nõrgim tulemus hetkel 45% maksimaalsetest võimalikest maksimaalsetest võimalikest punktidest

� Pingutage, see on viimane iteratsioon. Iga projekti esimene release ongi kõige raskem ...

26.04.2007 Ivo Mägi, Webmedia AS 30