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

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

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

Mitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen

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

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Toimilohkojen turvallisuus tulevaisuudessa

Ohjelmistotuotanto, k

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

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

7.4 Variability management

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Onnistunut ICT hankinta faktoilla vai fiiliksillä?

Projektin suunnittelu

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Vaatimusmäärittely- ja hallinta. Peruskäsitteet. Syyt aikataulun ja budjetin ylitykseen. TJTA330 Ohjelmistotuotanto

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

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

Peruskäsitteet. Vaatimusmäärittely- ja hallinta. Vaatimusmuutosten hinta. Syyt aikataulun ja budjetin ylitykseen

Vaatimusmäärittely- ja hallinta

Prosessikuvaukset ja elinkaarimallit

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Katselmoinnit. Katselmoinnin määritelmä

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

Q = pienin suunniteltu ilmamäärä ja k = puhaltimen tai iirispellin k-arvo.

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

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

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

ProTieto Oy. Verottajan ilmoitus. Käyttöohje alihankkijoille

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Ohjelmistotekniikka - Luento 2

Johdatusta ohjelmistotekniikkaan

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Seminaari Projektin hallinta Arviointi

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

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

CLOUDBACKUP TSM varmistusohjelmiston asennus

Making use of BIM in energy management

Yhteenveto. Menettelytavat

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

NC-ohjelman tekeminen Catiassa

Ohjelmoinnin perusteet Y Python

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Luku 10 Käyttöönoton suunnitteluja toteutusvaihe

ITK130 Ohjelmistojen luonne

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Finnish Value Pack Asennusohje Vianova Systems Finland Oy Versio

Tietojärjestelmän osat

TAMFELT TAMELT. Tamfeltin Unicode-konversio

7. Product-line architectures

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

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

ISO/IEC sarja (SQUARE)

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

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

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Integrointi muihin järjestelmiin case AMKE

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

13/20: Kierrätys kannattaa koodaamisessakin

Projektin suunnittelu. CMMI-käytänteet. Projektin suunnittelu CMMI-käytänteet

Kaislanet-käyttöohjeet

Ohjelmistotekniikka - Luento 13 Jouni Lappalainen & Henrik Hedberg

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Garmin laitteiden ohjelmistopäivitys

Työryhmätyöskentely. Ryhmä A Rajapinnat Rajapintojen uudet mahdollisuudet Teknologiavalinnat. Ryhmä B Tietomalli Kaavan esittäminen tietomallina

UUDEN NETTIJÄSENREKISTERIN OHJEET. Kirjaudu sisään antamalla käyttäjätunnus ja salasana

Interfacing Product Data Management System

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

Suunnittelun ja rakentamisen nykytila

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Naisnäkökulma sijoittamiseen Vesa Puttonen

Ohjelmistojen suunnittelu

Ryhmän nimi: Crossing

4.2 Yhteensopivuus roolimalleihin perustuvassa palvelussa

Ohjelmistotekniikka - Luento 6

Tutkittua tietoa. Tutkittua tietoa 1

Projektin suunnittelu

Visual Basic -sovelluskehitin Juha Vitikka

Sanaluokkajäsennystä rinnakkaisilla transduktoreilla

Transkriptio:

Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti ja arvioidaan yksinkertaisesti kustannukset (asiantuntija-arvio) Käytetään empiirisiä kustannusmalleja Pressman 2000, 125. 2 Arviointiprosessi Ohjelmiston koon laskeminen Projektin ympäristön arviointi Aiempien kokemusten hyödyntäminen Riskien arviointi 3 1

Ohjelmiston koon arviointi Koodirivien määrä (LOC) Toimintopisteet (function points) Periaatteet ISO-standardoitu Silti monta eri menetelmää! Toimintopistemenetelmien vertailua http://www.fisma.fi/projektijohtaminen/arviointimenetelmat/kiss.htm 5 IFPUG-menetelmä International Function Point Users Group (IFPUG) http://www.ifpug.org Kehittää ja ylläpitää standardoitua IFPUGmenetelmää toimintopisteiden laskemiseksi Nykyinen versio.2 6 2

IFPUG-menetelmän komponentit 1. Internal logical files (ILF) Loogisia, pysyviä entiteettejä, joita ohjelmisto ylläpitää 2. External interface files (EIF) Loogisia pysyviä entiteettejä, joihin ainoastaan viitataan sovelluksesta, mutta niitä ylläpitää toinen sovellus 3. External inputs (EI) Loogisia liiketoimintaprosesseja, jotka ylittävät sovelluksen rajan niin, että esim. ylläpitävät ohjelman sisäistä tietoa (esim. käyttäjän toiminnot). External outputs (EO) Datan ulosmeno (raportit, tiedostot, yms.) 5. External queries (EQ) Siis kysellään ulkopuolelta jotain tietoa IFPUG-menetelmän komponentit EI EO EQ SOVELLUKSEN RAJAPINTA ILF EIF 8 Arvioidaan kompleksisuus Low Average High ILF EIF EI EO EQ 5 3 3 10 5 15 10 6 6 9 3

Esimerkki: vaatimukset 1. Ohjelmiston on talletettava ja ylläpidettävä seuraavia työntekijätietoja: nimi, numero, virka-asema, katuosoite, kaupunki, osavaltio, postinumero, syntymäaika, puhelinnumero, toimipiste ja viimeinen tietojen päivitysaika. 2. Ohjelmiston täytyy pystyä lisäämään uusia työntekijöitä, päivittää tietoja, poistaa tietoja ja yhdistää useampaan kertaan rekisteröidyt työntekijät. 3. Ohjelmiston täytyy tuottaa aikataulutettuna viikkoraportti, joka sisältää listan niistä työntekijöistä (nimi ja numero), joiden tiedot ovat muuttuneet viimeisen seitsemän vuorokauden aikana.. Käyttäjän täytyy pystyä katsomaan ja selaamaan kaikkia työntekijätietoja. 10 Esimerkki: vaatimukset 5. Käyttäjäturvaan liittyvä tieto (käyttäjätunnus ja salasana) on erillisen ohjelman vastuulla, jota käytetään sisään kirjauduttaessa käyttäjän tunnistamiseen. 6. Mihinkään muuhun ohjelmiston ulkopuoliseen tietoon ei ole viittauksia. Syntymäaika salataan riittävän monimutkaisella algoritmilla, jotta sitä ei voida suoraan lukea käyttäjätiedoista. 8. Ohjelmiston täytyy suoriutua tiedon ylläpidosta alle sekunnin vasteajassa suurimman kuormituksen aikaan kello 8-1 (Itäisen USA:n aikavyöhyke, GMT -5) 9. Ohjelmiston täytyy käyttää ohjelmointikieliä, jotka tukevat järjestelmän avoimuutta ja ovat yhteensopivia Oraclen tietokantojen kanssa. 11 Esimerkkilaskelma Oletetaan kaikissa kohdissa kompleksisuus alhaiseksi: Internal logical file: Työntekijöiden tiedot 1 IFL = unadjusted FP External interface file: Käyttäjätietoa hallitseva järjestelmä 1 EIF = 5 unadjusted fp 12

Esimerkkilaskelma External input processes: käyttäjän lisäys, tietojen päivitys, työntekijän poisto ja duplikaattien yhdistäminen EI = * 3 = 12 unadjusted fp External output processes: Näkymä käyttäjätietoihin, sisältää syntymäajan kryptauksen. 1 EO = unadjusted fp 13 Esimerkkilaskelma External query process: Viikkoraportti ja sisäänkirjautumiskysely 2 EQ = 2*3 = 6 unadjusted fp Lopputulos: +5+12++6 = 3 unadjusted fp 1 Työmäärän arviointi Laskentakaava on yleisesti muotoa: Työmäärä = A * koko B * M A = vakio, joka riippuu organisaatiosta ja kehitellävän ohjelmiston tyypistä B = eksponentti korjaa laajojen projektien erityistä kuormitusta M = kuvaa projektikohtaisia ominaisuuksia Sommerville 2001, 521. 15 5

COCOMO COnstructive COst MOdel Varmasti tunnetuin estimointimalli Barry Boehm 1981: Software Engineering Economics Taustalla laaja tutkimusaineisto ohjelmistojen kustannuksiin vaikuttavista tekijöistä COCOMO II vuonna 199 16 COCOMO:n peruskaavat Yksinkertainen projekti, pieni tiimi: PM = 2, * (KDSI) 1,05 * M Kompleksisempi projekti, uusi sovellusalue PM = 3,0 * (KDSI) 1,12 * M Sulautetut järjestelmät: PM = 3,6 * (KDSI) 1,20 * M Boehm 1981: Software Engineering Economics. 1 Data base size Schedule constraint Turnaraund time Virtual machine experience Software tools Virtual machine volatility Modern programming practices Storage constraint Application experience Timing constraint Required reliability Product complexity 1,23 1,23 1,32 1,3 1,9 1,9 1,51 1,56 1,5 1,66 1,8 2,36 Software productivity range Personel / team capacity,18 0 0,5 1 1,5 2 2,5 3 3,5,5 Boehm 1981: Software Engineering Economics. 18 6

COCOMO:n kustannustekijät Tuotetekijät: luotettavuusvaatimus, tietokannan koko, kompleksisuus Laitetekijät: Suoritusaikarajoitus, talletuskapasiteetti, virtuaalikoneen epävakaus, vasteaikarajoite Henkilötekijät: kokemus sovellusalueesta, virtuaalikoneesta ja ohjelmointikielestä sekä kyvykkyys analyysiin ja ohjelmointiin Projektitekijät: ohjelmointikäytänteet, työkalut, aikataulurajoite Boehm 1981: Software Engineering Economics. 19 Kustannustekijöiden vaikutus Esimerkki: luotettavuusvaatimuksen määritys Arvio vaatimuksesta Very low Low Nominal High Very high Vaatimukset + suunnitelmat 0,80 0,90 1,10 1,30 Tarkka suunnittelu 0,80 0,90 1,10 1,30 Koodaus + yks. testaus 0,80 0,90 1,10 1,30 Kokonaiskerroin Itegraatiotestaus 0,60 0,80 1,30 1,0 0,5 0,88 1,15 1,0 Boehm 1981: Software Engineering Economics. 20 Kustannustekjöiden arviointi 2, * (KDSI) 1,05 * M M = m 1 + m 2 + m n Esim. M = 0,8 * 0, *1, * 1 * 1,2 = 0,9 21

Estimointi Suomessa Finnish Software Measurement Association (FiSMA) www.fisma.fi 22 Miksi kummassa tällaista estimointia kannattaa tehdä? Estimoinnin tarkkuus (???) Hyvillä menetelmillä ei olla riippuvaisia tietyistä ihmisistä Ohjelmiston koon arvioinnista on hyötyä erilaisia metriikoita seurattaessa Käytännössä esim. hinnoittelu /fp Kustannustekijöitä seuraamalla voidaan kehittää prosessia Vaatimukset on pakko tehdä kunnolla 23 8