arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi



Samankaltaiset tiedostot
Ohjelmistotuotanto, k

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

A. Työmäärän ja resurssien arviointi

Mikä sitten on kallista? Milloin raha on viisaasti käytetty? Miten kallis määritellään toimintopistelaskennan näkökulmasta?

Vaihtoehtoja. Työmäärän arviointi. Arviointiprosessi. Ohjelmiston koon arviointi

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Yhteenveto. Menettelytavat

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Tietojärjestelmän osat

Projektityö

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Teollisuusautomaation standardit Osio 9

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Projektinhallinnan merkitys

Ohjelmistojen koon mittaaminen eri tyyppisissä kehityshankkeissa

2 Konekieli, aliohjelmat, keskeytykset

Projektisuunnitelma. Karstula. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen suunnittelu

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistoprojektin työmäärän arviointimallit

Software product lines

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Ohjelmistotuotanto, projektinhallinta Syksy Miksi ohjelmistoprojektin hallinta on erilaista? 3. Projektinhallinta

TKT224 KOODIN KOON OPTIMOINTI

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Visual Basic -sovelluskehitin Juha Vitikka

Ylläpito. Ylläpidon lajeja

Luonnosversio Tommi Koivula hyväksytty versio Tommi Koivula

Uudelleenkäytön jako kahteen

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

UUDENKAUPUNGIN KAUPUNKI

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Mittausjärjestelmän kalibrointi ja mittausepävarmuus

Ohjelmistotuotanto s

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

Oleelliset vaikeudet OT:ssa 1/2

10 metriikkaa, joilla parannat johtamisen tasoa. Pekka Forselius, Senior Advisor, FiSMA ry Risto Nevalainen, Senior Advisor, FiSMA ry

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

OHJELMISTON TOIMINNALLISEN KOON LASKENTA. Markku Savolahti Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Ohjelmiston testaus ja laatu. Testaustasot

ISO/IEC 29881:2010 => SFS-ISO 29881:2013. FiSMA 1.1 menetelmä vihdoin myös suomeksi. Pekka Forselius, Senior Advisor, FiSMA ry

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

12. Javan toistorakenteet 12.1

Tik Ohjelmistotuoteliiketoiminta

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Käännös, linkitys ja lataus

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Projektisuunnitelma. pokeriv3. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Toimilohkojen turvallisuus tulevaisuudessa

Software engineering

1 Tivax siirto uuteen koneeseen

Hieman lisää malleista ja niiden hyödyntämisestä

Webforum. Version 14.3 uudet ominaisuudet. Viimeisin päivitys:

4. Lausekielinen ohjelmointi 4.1

Webforum. Version 15.3 uudet ominaisuudet. Päivitetty:

Ohjelmistotekniikka - Luento 6

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Suunnitteluvaihe prosessissa

Projektisuunnitelma. Kaapo - Kaavioiden piirto-ohjelma

TIE Ohjelmistojen suunnittelu

Test-Driven Development

TIE Ohjelmistojen suunnittelu

Yhdeksän mittaria ohjelmistotuotannon. seuraamiseen. tsoft. Vesa Tenhunen Joensuun yliopisto, TKT:n laitos

ADM Arkkitehtuuritason automaatio #tdarc

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Projektisuunnitelma. myva. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Ohjelmoinnin perusteet Y Python

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Verkkopokerijärjestelmä Projektisuunnitelma Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Tässä tiivistelmässä standardi tarkoittaa standardia SFS-EN

.NET ajoympäristö. Juha Järvensivu 2007

t osatekijät vaikuttavat merkittävästi tuloksen epävarmuuteen Mittaustulosten ilmoittamiseen tulee kiinnittää kriittistä

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

12. Javan toistorakenteet 12.1

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Estimointityökalut. Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Tutoriaaliläsnäoloista

Ohjelmoinnin peruskurssi Y1

Transkriptio:

Työmäärän arviointi algoritmiset menetelmät asiantuntija-arviot analogiaan perustuvat arviot Parkinsonin laki: "Työ vie kaiken käytettävissä olevan ajan." hinnoittelu kilpailun mukaan top-down arviointi bottom-up arviointi arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi useimmiten arviointi perustetaan kokonaisuuden jakamiseen komponenteiksi miten jako pystytään tekemään jo projektin alkaessa? kokemukset aiemmista projekteista periaatepäätökset on syytä arvioida kustannuksia useilla menetelmillä ja verrata: esim. algoritminen kustannusmalli aiemman projektin kustannusarvio (modifioituna) jaottelu, osakustannusten arviointi ja summaus Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 1

Työmääräarviot Lähtökohtana arvioitu tuotteen koko. Yksikkönä käskyt, rivimäärä, monimutkaisuus, Ohjelmakoodin määrä - lähdekielisten käskyjen lukumäärä DSI (delivered source instructions) - ohjelmarivien lukumäärä LOC (lines of code) - vaikea arvioida projektin alkuvaiheessa - kokoon perustuvat arviot eivät yleensä ota huomioon vaatimusanalyysivaihetta - koko vaikuttaa kustannuksiin ylilineaarisesti Mitä lasketaan vaikuttaa tulokseen (max/min = noin 5) vain 'loogiset rivit' eli syntaktiset rakenteet (source instruction) vain suoritettavat rivit suoritettavat rivit ja tietomäärittelyt suoritettavat rivit, tietomäärittelyt ja kommentit suoritettavat rivit, tietomäärittelyt, kommentit ja käännösdirektiivit Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 2

Miten suhtaudutaan muunnettuun ja / tai uudelleenkäytettävään koodiin: lasketaan vain uudet rivit uudet ja muutetut uudet, muutetut ja uudelleenkäytetyt (kirjastosta otetut) kaikki toimitetut kaikki toimitetut ja kehityksessä tarvitut kaikki toimitetut, kehityksessä tarvitut ja tukikoodi Jonkinlainen yhteensovitus paikallaan, esim. 1000 riviä uudelleenkäytettyä koodia = 500 riviä uutta 1000 riviä kommentteja = 200 riviä uutta koodia Ohjelmiston muunnettu koko = uusien rivien lukumäärä + 0.5* uudelleenkäytettyjen rivien lukumäärä + 0.2* kommenttirivien lukumäärä. Tiettyyn tehtävään tarvittavien ohjelmarivien lukumäärä riippuu sekä käytettävästä ohjelmointikielestä että tehtävän luonteesta Toimintopisteet (Function points) toimintopisteet mittaavat ohjelmiston kokoa syötteiden, tulosteiden ja käsittelyn määrään perustuen. Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 3

Työmäärä ei riipu yksin ohjelmiston koosta, vaan useat tekijät vaikuttavat lisäksi, esim: - vaadittu luotettavuus: tiukat luotettavuusvaatimukset lisäävät kustannuksia projektin kaikissa vaiheissa, erityisesti testausvaiheessa - monimutkaisuus: keskeisimpiä kustannuksia lisääviä tekijöitä monimutkaisuuteen vaikuttavia tekijöitä: kontrollin kulku, rinnakkaisuus moduulien välinen kommunikointi kirjastorutiinien käyttö tiedonhallintaoperaatiot I/O-operaatiot - työympäristön (laitteiston) ominaisuudet nopeus- ja tilarajoitukset toimivaa sovellusta koskevat ohjelmistoprojektia koskevat työympäristön muuttuvuus - projektiin liittyvät tekijät - työmenetelmät ja työkalut koulutus: hyöty ei välttämättä näy ensimmäisissä projekteissa työmoraali, viihtyvyys yms. Miten mitataan? - aikataulurajoitukset Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 4

Esimerkki algoritmisesta kustannusten arvioinnista: COCOMO (Boehm) - yleinen sopii kaikenlaisille järjestelmille COnstructive COst MOdel kolme laajuudeltaan erilaista versiota, joissa otetaan huomioon erilainen määrä vaikuttavia osatekijöitä - perustuu koodirivien määrän arviointiin 1. Basic COCOMO - kustannusten (= työmäärän) ja projektin keston arviointi perustuu ohjelman kokoon missä MM = a*k b, T = c*mm d, MM on projektin työmäärä henkilötyökuukausina T on projektin kesto kuukausina K on ohjelmiston koko tuhansina lauseina Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 5

vakiot a, b, c ja d riippuvat ohjelmiston tyypistä: helppo malli(organic) normaali (semidetached) vaativa (embedded) tekijä helppo normaali vaativa a 2.4 3.0 3.6 b 1.05 1.12 1.20 c 2.5 2.5 2.5 d 0.38 0.35 0.32 Esim.: helppo 15000 rivin Pascal kääntäjä MM= 2.4 * 15 1.05 = n. 41 henkilötyökuukautta T= 2.5 * 41 0.38 = n. 10 kuukautta joten projektiryhmän koko on 41/10 eli 4-5 henkilöä. huomioita: ohjelmiston koon kasvaessa työmäärä kasvaa ylilineaarisesti aikataulua ei voida kiristää mielin määrin pelkästään lisäämällä työntekijöitä Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 6

2. Intermediate COCOMO - perusmallista saatua työmäärää modifioidaan työn ominaisuuksista riippuvilla korjauskertoimilla: MM = a*k b * c1 * c2 *... * c15 missä kukin ci kuvaa tietyn tekijän vaikutusta työmäärään - korjauskertoimen c i arvot vaihtelevat tyypillisesti välillä (0.7,..., 1.6) - tärkeimpiä tekijöitä: henkilöstön kyvykkyys tuotteen monimutkaisuus luotettavuusvaatimus tekijä helppo normaali vaativa a 3.2 3.0 2.8 b 1.05 1.12 1.20 c 2.5 2.5 2.5 d 0.38 0.35 0.32 3. Detailed COCOMO - jaottelee ohjelmiston osiksi: moduulit, alijärjestelmät, vaiheet - kunkin osakokonaisuuden kustannuksia arvioidaan erikseen - vaiheiden osuus kokonaisuudesta Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 7

COCOMO:n (ja muiden vastaavien) ongelmia - epätarkkuus - tuotantoprosessin vaikutus? - tulevan tuotteen koon arvioiminen vaikeaa - kustannusarvio sisältää suunnittelu- ja toteutusvaiheen kustannukset ei vaatimusanalyysin kustannuksia - kertoimien vaihteluvälit ovat suuret, jolloin pieni arviointivirhe kertointa määrättäessä voi johtaa suuriin eroihin lopputuloksissa - kertoimet on syytä kalibroida oikeaan ympäristöön: malli on käyttökelpoinen vain, jos kalibrointiin käytetty aineisto vastaa käyttötilannetta - käytetty kertoimien joukko ei välttämättä ole paras: uusien kertoimien lisääminen vaatii kalibroinnin riittävän laajalla aineistolla Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 8

Toimintopistemenetelmä (Albrecht) Albrecht: Measuring Application Development Productivity, Proc. IBM Application Development Symposium, Monterey, CA, 1979, 83-92 Työmäärän mittana toimintopisteet vaikuttavat tekijät - syötteiden määrä - tulosteiden määrä - kyselyjen määrä - kantatiedostojen määrä - liittymien määrä nämä jaotellaan: - yksinkertaisiin, - tavallisiin ja - vaativiin jolloin saadaan 15 luokkaa kuhunkin 15 luokkaan liittyy oma painokerroin, jolla lukumäärä kerrotaan, painotettu summa on toimintopisteiden peruslukumäärä (PP) simple average complex total inputs * 3 * 4 * 6 outputs * 4 * 5 * 7 inquiries * 3 * 4 * 6 files * 7 * 10 * 15 interfaces * 5 * 7 * 10 Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 9

Toimintopistemäärä saadaan kun lisäksi otetaan huomioon tuotteen monimutkaisuustekijät (14 kpl): (F i : pisteytys 0-5) - varmistus - tietoliikenne - hajautettu käsittely - suorituskykyvaatimukset - laiteympäristö - on-line -käyttö - syöttötapahtumien laajuus - on-line -päivitys - syötteiden, tulosteiden ja tiedostojen monimutkaisuus - käsittelyn monimutkaisuus - koodin uudelleenkäytettävyys - sisältyykö konversio ja asennus - käytön laajuus - muutettavuus ja helppokäyttöisyys no incidental moderate average significant essential influence 0 1 2 3 4 5 TP = PP*(0.65 + 0.01*SUM(F i )) vaihteluväli 0.65*PP.. 1.35*PP Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 10

Edut ja ongelmat: - luokittelun subjektiivisuus - korjaustekijöiden arviointi - vanhentuneet korjaustekijät ja perustekijät - sopiiko uusiin suunnittelumenetelmiin? + riippumaton ohjelmointikielestä + arvioitavissa aiemmin kuin rivilukumäärä + nopeus Toimintopisteiden muunnelmia - perustana käsitemalli/oliomalli - tuotetyyppikohtaiset tekijät vastaavuus toimintopisteet / ohjelmarivit Assembler 300 Cobol 110 Pascal 90 PL/I 65 Oliokielet 30 4GL 25 Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 11

Arviointiohjeita: - tee arvio mahdollisimman myöhään - käytä yksinkertaisia arviointiperusteita - luo kokemusperäinen työmäärämalli - hanki jokin arviointiohjelmisto ja viritä se Työmäärä / projektin kesto Projekteilla optimaalinen kestoaika esim. COCOMO: kaavan mukaan T= 2.5 * MM d, missä d=(0.38,0.35, 0.32) henkilöiden lisääminen lisää kommunikointia => yksittäisen henkilön tuottavuus laskee henkilöiden lisääminen myöhässäolevaan projektiin ei yleensä edistä aikataulun saavuttamista vaan voi jopa lisätä myöhästymistä projektin eri vaiheissa tarvitaan eri määrä henkilöitä nyrkkisääntö työmäärän jakautumisesta suunnittelun, koodauksen ja testauksen kesken: 40-20-40 Ohjelmistotuotanto kevät 1998 - Harri Laine - työmäärän arviointi 12