Tarkvara projekt seminar aprill 2007 Ivo Mägi

Relevanta dokument
Tarkvara projekt seminar IX. 6.aprill 2006 Ivo Mägi, Roland Kender

Tarkvara projekt seminar VI. 16.märts 2006 Ivo Mägi, Roland Kender, Toomas Römer

Muudatused seadusandluses. Toimumise koht: Tallinn Toimumise aeg: 01/ 12/ 2011 Lektor: Annika Tamm Lektori kontakt:

Per Söderbäck oma sünnimajas kõnet pidamas Per Söderbäck håller tal i huset där han föddes

Namn...Pers.nr... Gatuadress...Tel dagtid... Postnummer...Tel kväll:... Postort...Mobil... E-post... Ägarandel... Namn...Pers.nr...

Estniska B höstterminen 2012 Allmänt Möten i Adobe Connect Dokument Dokument Dokument Dokument Innehåll Innehåll

Eva Hessman/Stadsledningskontoret/GBGStad :09 Prenumeration från Personec

SAMMANTRÄDESPROTOKOLL

EESTI KULTUURILOOLINE

Historik om Odensholm Osmussaare ajaloost

Sydnärkes byggnämnd

SAMMANTRÄDESPROTOKOLL

antud väljaanne on mediaplaneti toodetud teemaleht BRÄND,

RONOR. %^30^^G?&3w^ Rågöbornas återkomst. Pakrilaste tagasitulek SAMFUNDET FÖR ESTLANDSSVENSK KULTUR EESTIROOTSLASTE KULTUURI SELTS

3/1992 EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FÖR ESTLANDSSVENSK KULTUR

KONTAKT. Rahvuslik. REL kui mesipuu. üheskoos suudame rohkem üksteisele toeks olla! 2015 nr 1

Tervise Arengu Instituut, Haigekassa Projekt Kooli tervisenõukogude arendamine Vaimse tervise probleemide märkamine ja ennetamine koolis

RONOR. II N:o EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FÖR ESTLANDSSVENSK KULTUR

Muudatused seadusandluses. Toimumise koht: Tallinn Toimumise aeg: 06/ 12/ 2011 Lektor: Annika Tamm Lektori kontakt:

Bruksanvisning Kasutusjuhend WELLSYSTEM RELAX

S/JI;-4dr d.j (ör76//clnij?ls

Nina Grip (L) Anders Loman (SD) Gunnel Ohlin (KD) tjg.ers 37. Underskrifter Sekreterare Paragrafer Kristina Granfelt. Angelica Katsanidou

Rahvuslik KONTAKT. 2016/1 nr 22. Aasta tegija IVAR ALGVERE. årets hjälte

Seesama romaan? Jaan Kaplinski Seesama jõgi teisel pool Läänemerd

KURSVÄRDERING FÖR KURSEN: CT3620 Vetenskapsmetodik inom teknikområdet HT Västerås

rr'f\p RONOR EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FÖR ESTLANDSSVENSK KULTUR 1 /1990 Odensholm nu Osmussaar praegu

Nuku- ja noorsooteater viib muinasjutumaale

Dalsgården, Gunnebo 3 september 2014 kl

Bedömning av skriftlig färdighet inom utbildning i

Recipient Sender Message Time Subject

Eestirootslane Estlandssvensk Eestirootslane. Nr Torsdagstanterna Neljapäevamemmed

SAMMANTRÄDESPROTOKOLL

1)

SAMMANTRÄDESPROTOKOLL

RONOR EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FÕR ESTLANDSSVENSK KULTUR 2-3 /1996. Pakrilased tantsisid Eestis Rågöborna dansade i Estland

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

RONOR SAMFUNDET FOR ESTLANDSSVENSK KULTUR EESTIROOTSLASTE KULTUURI SELTS 1 /1993

KAS SA RÄÄGID ROOTSI KEELT? ROOTSI KEELE AUDIOVIDEOKURSUS. Kirjastus Pangloss. Ola Nilsson, Eugene Holman, Artem Davidjants, Inge Davidjants

Att skriva klarspråk. Örjan Pettersson, Trafikverket

Originaali tiitel: Maria Ulaner DRÖMMAR A-Ö LEXIKON Över 900 drömsymboler och tolkningar LevNu W&W

l l Sll Kl RJAHl>lJSll K KOOllllOS SIOCKl10LH ~945 si s u:

EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FÖR ESTLANDSSVENSK KULTUR

tel

Värske õhk kodudes. Easy-Vent

Originaali tiitel: Stieg Larsson Män som hatar kvinnor Norstedts Förlag, Stockholm

JOKKMOKKS KOMMUN. SAMMANTRÄDESPROTOKOLL Sammanträdesdatum. Samhällsbyggarnämnden

Uppfattning av artiklar om finanskrisen publicerade i dagliga tidningar

Tentamen. Lösningsförslag

Programmering för språkteknologer II, HT2011. Rum

RONOR. ORMSÖ GAMLA KYRKOGÅRD Juli 1990 EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FOR ESTLANDSSVENSK KULTUR 5 /1990

(SE) Lås upp brunnen. (UK) Unlock. (EE) Ava veeäravooluava. Models:

Grundläggande datalogi - Övning 2

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

JK-International GmbH, Division JK-Global Service

2/2005 PUUINFO. Foto: Erik Konze

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

PAIGALDUS- JA HOOLDUSJUHEND NIBE SPLIT AMS 10-16, HBS 16, HE 30/HEV 300/HEV 500

RONOR. %^^0^Si&3w=3g- EESTIROOTSLASTE KULTUURI SELTS SAMFUNDET FOR ESTLANDSSVENSK KULTUR 2-3/ 1991

Estlandssvensk Eestirootslane

Programmering för språkteknologer II, HT2014. Rum

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Kiudoptilised ühendused lõppkasutajatele Juhised kiudoptiliste võrkude ehitamiseks FTTX

Estlandssvensk Eestirootslane

FORD KA KA_202054_V8_2014_Cover.indd /01/ :04:46

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Rootsi elanikkonna küsitlus: Eesti maine puhkusesihtkohana

Karin Larsson, sekreterare Hanna Olofsson, miljöinspektör Bengt Nilsson, räddningschef. Onsdag den 6 maj 2015, kommunhuset Jokkmokk ANSLAG / BEVIS

RONOR. Z 3&&gŽ&SngrŠ5ž%e- SAMFUNDET FÖR ESTLANDSSVENSK KULTUR EESTIROOTSLASTE KULTUURI SELTS 4/1991. Foto: Erik Põld, 1940.

ROOTSI KEELE GRAMMATIKA

Generiska konstruktioner. Kursbokens kapitel 13

DAT043 Objektorienterad Programmering

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

TERVE PERE. Aprill antud väljaanne on mediaplaneti toodetud teemaleht

LÜHIÜLEVAADE. euro pangatähtede turvaelementidest. MEIE

Föreläsning 12: Exempel och problemlösning

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Bevis om att justerat protokoll är anslaget. SAMMANTRÄDESPROTOKOLL Socialnämnden 1 (16)

Looduskoolid kui õppetegevuse ressurss

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Klientprogrammering mot databaser

OOP Objekt-orienterad programmering

PAIGALDUS- JA HOOLDUSJUHEND NIBE SPLIT AMS 10-16, HBS 16, HE 30/HEV 300/HEV 500

Anvisningar Svensk utgåva

Del A (obligatorisk för alla)

Ivar Lo- Johansson. Eesti-Rootsi Ühingu Teataja Estnisk-Svenska Föreningens Nyheter. November November 2001 Nr. 11. Eesti-Rootsi Ühing

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

EDA095 JavaScript. Per Andersson. Maj 4, Lund University Per Andersson EDA095 JavaScript Maj 4, / 23

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

KROONIKA VORMSI KULTUURISAAR!

Lösningsförslag till tentamen

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Tentamen Nätverksprogrammering Lösningsförslag

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Transkript:

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

Kava Administratiivset V iteratsiooni tulemite tutvustus Eriseminar: Miks mõned projektid õnnestuvad ja mõned ebaõnnestuvad? 26.04.2007 Ivo Mägi, Webmedia AS 2

Hindamine rutiinivabaks! Iteratsiooni plaanist: Neljandas iteratsioonis peab valmima rakendus mida julgeb näidata ka 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

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_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

Hindamine rutiinivabaks Tagastame! 1. return (MyClass) null; 2. return (Object) myobject; 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

Hindamine rutiinivabaks! Nõuete dokument ja EKI Ilma igasuguse irooniata on mul hea meel et on lõpuks aine kontekstis leitud teema mis elavat diskussiooni tekitab. 26.04.2007 Ivo Mägi, Webmedia AS 6

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 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

Iteratsioonide planeerimine Andke oma projektijuhtidele vastu pead Kui raske saab olla panna kirja kes, mida ja millal iteratsiooni käigus teeb? Kõigil rühmadel puudu toodangusse juurutamiseks tehtavate tegevuste planeerimine 26.04.2007 Ivo Mägi, Webmedia AS 8

Iteratsioonide kokkuvõtted Iteratsiooni kokkuvõttest peab näha olema mida projekti juures iteratsiooni käigus tehti, nn changelog Iteratsiooni kokkuvõtetes ei ole mahte hinnatud tegevuspõhiselt 26.04.2007 Ivo Mägi, Webmedia AS 9

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 kriitikat Miks te seda ei kasuta? 26.04.2007 Ivo Mägi, Webmedia AS 10

Analüüsi teema kokkuvõte Antud aine raames nõutu oli tegelikult suhteliselt pealiskaudne Tegelikult sisaldab spetsifikatsioon: Prototüübi pilti Reegleid andmete valideerimiseks Võimalike tegevuste kirjeldust Andmebaasivälju, kust loetakse ja kuhu salvestatakse Lisaks: õiguste kontroll, kirjete arvu hinnangud jne 26.04.2007 Rein Raudjärv, Webmedia AS 11

Spetsifikatsioon Spekke kirjutatakse selleks, et ei peaks sama asja korduvalt seletama: Arendajale Testijale Kliendi esindajale Juhul kui keegi neist vahetub Päris projektis ei säästa miski teid sisulisest tööst ei metoodika (XP) ega vahendid 26.04.2007 Rein Raudjärv, Webmedia AS 12

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 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 26.04.2007 Rein Raudjärv, Webmedia AS 13

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 Testide kokkuvõte vt rühm LAIS 26.04.2007 Rein Raudjärv, Webmedia AS 14

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 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

Kood: üldine Kõige olulisem koodi hindamise kriteerium on väga lihtne: Kood peab töötama 26.04.2007 Ivo Mägi, Webmedia AS 16

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. 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

Kood: üldine Palju sarnast/korduvat koodi, mis keskendub madalataseme operatsioonidele ja sõltub täielikult HTTP päringutest või JDBC operatsioonidest Kood räägib ainult kuidas teha ja ei peegelda seda mida tehakse 26.04.2007 Rein Raudjärv, Webmedia AS 18

Kood: üldine Raskesti loetav Puuduvad kommentaarid Pikad veaohtlikud meetodid Ülearused sõltuvused Kood ei ole jaotatud loogilisteks taaskasutatavateks osadeks 26.04.2007 Rein Raudjärv, Webmedia AS 19

Kood: kommentaarid... puuduvad peaaegu täielikult Kood on raskesti loetav ja hallatav Teadmised on ainult arendaja peas Välja kommenteeritud kood! 26.04.2007 Rein Raudjärv, Webmedia AS 20

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

Kood: struktuur Paketistruktuuris puudub äriloogika ja presentatsioonikihi eristus JSP-d ei ole jaotatud alamkaustadeks 26.04.2007 Rein Raudjärv, Webmedia AS 22

Kood: Java keel Staatiline vs. mittestaatiline Extendimine staatilise meetodi lühemaks kasutamiseks Kui klassi asemel saab kasutada liidest, siis kasutage! Serialiseeruvatel klassidel puudub serialversionuid Kasutage Generirc-uid! 26.04.2007 Rein Raudjärv, Webmedia AS 23

Kood: Ründeohtlik SQL injection URL-ist otsitava objekti ID lugemine 26.04.2007 Rein Raudjärv, Webmedia AS 24

Kood: Hooletus Kasutamata kood 26.04.2007 Rein Raudjärv, Webmedia AS 25

Kood: Raskesti muudetav Teated kirjutatakse otse koodi 26.04.2007 Rein Raudjärv, Webmedia AS 26

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 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

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 vigadest? Vigu peab logima 26.04.2007 Ivo Mägi, Webmedia AS 28

Punktiseis Tulemused Punktid 450,00 400,00 350,00 300,00 250,00 200,00 150,00 100,00 50,00 0,00 Series1 Rühmad 26.04.2007 Ivo Mägi, Webmedia AS 29

Hindamisest Parimal rühmal hetkel 81% maksimaalsetest võimalikest punktidest Nõrgim tulemus hetkel 45% 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