Ohjelmistotekniikka - Luento 6

Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 14 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

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)

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Johdantoluento. Ohjelmien ylläpito

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

Ylläpito. Ylläpidon lajeja

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

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

Projektin suunnittelu

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

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

ISO 9001:2015 JÄRJESTELMÄ- JA PROSESSIAUDITOIN- NIN KYSYMYKSIÄ

Missä mennään BI? Mikko Kontio

Software engineering

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

Mitä on ohjelmistotuotanto?

Vaatimusmäärittely- ja hallinta

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

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

SFS, STANDARDIEHDOTUKSEN ISO/DIS ESITTELY

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

8. Laadunvalvonta. Mitä laatu on?

Testaaminen ohjelmiston kehitysprosessin aikana

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotuotteen hallinnasta

Tutkittua tietoa. Tutkittua tietoa 1

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Innovaatiivinen hallinta Saimaan ja Atlantin rannalla. Case: I-SSHP & Walter Reed Army Medical Center

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

Tietohallinnon liiketoimintalähtöinen toiminnanohjaus IT-ERP

Projektityö

ITK130 Ohjelmistojen luonne

3. Projektinhallinta. Miksi ohjelmistoprojektin hallinta on erilaista?

Onnistunut SAP-projekti laadunvarmistuksen keinoin

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Miten luodaan tehokas ja sertifioitu laatujärjestelmä?

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Ohjelmistotuotanto, projektinhallinta Kevät 2005

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Jyrki Kontio, Ph.D

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

SC7 Interim, Hoboken, USA WG 7 ja 10 kokoukset, marraskuu Keskeiset työkohteet ja tulokset. Timo Varkoi, Senior Advisor FiSMA

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

Big Room -toiminta tutkimuksen näkökulmasta. Sari Koskelo, Vison Oy

Tietoturvallisuus yhteiskunnan, yritysten ja yksityishenkilöiden kannalta

Projektinhallinta SFS-ISO mukaan

LAATU, LAADUNVARMISTUS JA f RISKIEN HALLINTA JOUNI HUOTARI ESA SALMIKANGAS PÄIVITETTY

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

ITSM. Olli Saranen Senior Consultant Avoset Oy Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan

Tietohallinnon arvo liiketoiminnalle

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

SYSTEEMITYÖ. Tärkeitä sanoja

Prosessien hallinta ammatillisen koulutuksen laadunhallintasuosituksessa ja eurooppalaisessa viitekehyksessä

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

ITK130 Ohjelmistoprosessi

Ohjelmiston toteutussuunnitelma

Ketterä vaatimustenhallinta

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

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

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

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

Projektinhallinta: riskeihin varautuminen

Tietojärjestelmän osat

Prosessien kehittäminen osa 2. Prosessien kehittämisen haasteita. SEI:n mukan kolme odotettavissa olevaa ongelmaa

Määrittely- ja suunnittelumenetelmät

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

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

Security server v6 installation requirements

NESTE ENGINEERING SOLUTIONS

Prosessikuvaukset ja elinkaarimallit

Suunnittelun ja rakentamisen nykytila

Projektin suunnittelu A71A00300

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Prosessien kehittäminen osa 2

Prosessien kehittäminen osa 2

Projektin suunnittelu 71A00300

Organisaation kokonaissuorituskyvyn arviointi

ISO Standardisarja Eräitä ulottuvuuksia Kari Komonen

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Security server v6 installation requirements

Ohjelmistojen suunnittelu

Transkriptio:

Ohjelmistotekniikka - Luento 6 Luku 28: Riskien hallinta - reaktiivinen ja proaktiivinen riskien hallinta - riskien tunnistus, arviointi ja tarkentaminen - riskien vähentäminen, valvonta ja hallinta (MMM), RMMM suunnitelma Luku 29: Ylläpito ja uudelleensuunnittelu - ylläpito - liiketoimintaprosessin ja ohjelmiston uudelleensuunnittelu - takaisinmallintaminen/käänteistekniikka Luku 30: Ohjelmistoprosessin parantaminen - menetelmiä ja malleja - kyvykkyysmalli CMMI

Core Body of Knowledge Areas Graduate Software Engineering 2009 (GSwE2009) Curriculum Guidelines for Graduate Degree Programs in Software Engineering Integrated Software & Systems Engineering Curriculum (issec) Project!2

28. Projektin riskien hallinta Mikä voi mennä pieleen? Millä todennäköisyydellä? Miten pahasti? Miten siitä selvitään?!3

Mitä riskillä tarkoitetaan? From Middle French risque, from Italian risco ("risk"; > Modern Italian rischio) and rischiare ("to run into danger"). Latin resicum ( that which cuts, rock, crag ), from Latin resecō ( cut off, loose, curtail, verb), in the sense of that which is a danger to boating or shipping; or from Ancient Greek ῥιζικόν (rhizikón, root, radical, hazard ). Ancient Greek ῥίζα (rhíza, cliff ) due to the hazards of sailing along rocky coasts. From Byzantine Greek ῥιζικό, ριζικό (rhizikó, rizikó, sustenance obtained by a soldier through his own initiative, fortune ), from Arabic ر ز ق (rizq, sustenance, that which God allots ), from Classical Syriac ration ), (rezqā, rōzīqā, daily ܪܘܙܝܩܐ,ܪܙܩܐ If there is no choice, there is no risk, even though there may be loss incurred (Charette 1989) jos valinnan mahdollisuutta ei ole, ei ole myöskään mahdollisuutta välttää tulevia tapahtumia Yleinen määritelmä: the possibility of loss or injury tappion tai vahingon mahdollisuus!4

Negatiivinen / positiivinen Negatiivinen riski riski tavoitteena ymmärtää mahdolliset ongelmat jotka voivat sattua projektissa ja kuinka ne voivat estää projektin onnistumisen negatiivinen riskinhallinta voidaan nähdä eräänlaisena vakuutuksena Riski voi olla positiivinen positiiviset riskit aiheuttavat toteutuessaan hyviä asioita, ne voidaan nähdä mahdollisuutena riskinhallinnan tavoitteena on minimoida mahdollisia negatiivisia riskejä ja maksimoida positiivisia!5

Johdon osuus onnettomuuksiin In the inquiries into numerous major accidents, including the Chernobyl nuclear explosion, the sinking of the Herald of Free Enterprise, the Challenger space shuttle explosion, and the Piper Alpha oil rig fire, senior management failure was concluded to be a primary cause / Redmill 2002 Johdon toiminnasta aiheutuva häiriö Inhimillinen virhe Laitevika Käytetty työpanos Todellinen tärkeys Challenger onnettomuudessa NASA:n insinööreillä oli onnettomuuden todennäköisyydestä arvio 1:200 (parhaimmillaan 1:1000), mutta johdolla arvio 1:100.000!6

Reaktiivinen riskien hallinta projekti reagoi riskeihin niiden lauetessa vähentäminen resursseja myös tulen sammutuksen ennakointiin häiriön poisto resursseja on käytettävissä, kun riski laukeaa kriisin hallinta häiriötä ei saada kuriin ja projekti on vaarassa!7

Proaktiivinen riskien hallinta tehdään riskianalyysi korjataan riskien aiheuttajat Total Quality Management (TQM) ja tilastollinen laadunvarmistus tutkitaan ohjelmiston ulkopuoliset riskien aiheuttajat kehitetään muutosten hallinnan taitoja!8

Seitsemän periaatetta /SEI Kokonaisvaltainen tarkastelu view software risks within the context of system and the business problem Ennakoiva tarkastelu think about the risks that may arise in the future; establish contingency plans Avoin kommunikointi if someone states a potential risk, don t discount it. Integrointi a consideration of risk must be integrated into the software process Jatkuva prosessi the team must be vigilant (tarkkaavainen) throughout the software process, modifying identified risks as more information is known and adding new ones as better insight is achieved. Yhteinen näkemys tuoteesta if all stakeholders share the same vision of the software, it likely that better risk identification and assessment will occur. Tiimityön rohkaisu the talents, skills and knowledge of all stakeholder should be pooled!9

Risk Assessment Methodology/NIST - hakkerit - teollisuusvakoilu - palomuuri - käyttäjätunnukset - SQL injektio Järjestelmän tarkoituksen määrittely Uhkien tunnistus Haavoittuvuuksien tunnistus Valvonnan analyysi Todennäköisyyden määrittely Vaikutus- analyysi RE = P * C Riskien määrittely Suositeltu valvonta Tulosten dokumentointi Stoneburner, Goguen, Feringa, Risk Management Guide for Information Technology Systems, 2002!10

Riskiin varautuminen Riskiin (riskin laukeamiseen) varautuminen RE (risk exposure) määritellään kaavalla [Hall 1998]: missä RE = P x C P todennäköisyys riskin laukeamisesta C kustannus projektille riskin lauetessa.!11

Riskiin varautumisen aste (risk exposure) Kustannus Todennäköisyys Pieni Keskisuuri Korkea Pieni Pieni Pieni Keskisuuri Keskisuuri Pieni Keskisuuri Suuri Suuri Keskisuuri Suuri Suuri!12

Yleisimpiä riskejä ja niiden hallintakeinoja Avainhenkilö vaihtaa työpaikkaa Epärealistiset aikataulut ja budjetit Kehitetään vääriä toimintoja ja turhia piirteitä Huono käyttöliittymä Muutokset määrittelyissä Ongelmat muualta hankituissa komponenteissa ja/tai palveluissa Tekniset ongelmat (suoritusteho, reaaliaikaisuus, muistitila, epäkypsä teknologia) Tehtävien kierto, varahenkilöt, sopimustekniset keinot Huolellinen projektisuunnittelu, inkrementit, ketterät menetelmät Prototyyppien käyttö, ketterät menetelmät, markkinatutkimukset Prototyyppien käyttö, ulkopuoliset asiantuntijat, käyttäjän työskentelyn analysointi Prototyyppien käyttö, ketterät menetelmät, muutosten byrokratisointi ja rahastus, huolellinen määrittely Referenssiasiakkaiden hyödyntäminen, suorituskyvyn ja toiminnallisuuden testaus, yhteensopivuuden varmistaminen, toimittajan laatujärjestelmän arviointi Simulointi, mallintaminen, prototyypit, referenssiasiakkaiden hyödyntäminen perustuu lähteisiin Boehm 1989 ja Haikala & Märijärvi 2000 13

Syklomaattinen kompleksisuus 80 40 20 0 2 0 6 4 5 3 1 0 50 100 150 200 Suoritettavia lauseita C++ koodi esimerkki (315 moduulia) 0 ei riskiä 1 pieni riski 2 pienikeskink. riski 3 keskinkertainen riski 4 keskink. - korkea riski 5 korkea riski 6 hyvin korkea riski moduulien määrä 238 51 0 15 2 9 0 % osuus 75.5 16.2 0 4.8 0.6 2.9 0 Ohjelmamoduulien riskialttius Software Assurance Technology Center (SATC) tutkimus / Buttigieg A.D. http://www.cis.um.edu.mt/~abut/#section%203!14

11 tärkeintä ohjelmistoprojektin riskitekijää Keil M., Cule P., Lyytinen K., Schmidt R., Communications of the ACM, no 11,1998!15

Riskien tunnistus / Keil et al. 1998 1. Ovatko tärkeimmät päälliköt (sekä ohjelmiston kehittämisen että asiakkaan puolella) sitoutuneet projektin tukemiseen? 2. Ovatko loppukäyttäjät innostuneesti sitoutuneet projektiin ja rakennettavaan järjestelmään/ tuotteeseen? 3. Ymmärtävätkö ohjelmistotuotantotiimi ja asiakkaat täysin vaatimukset? 4. Ovatko asiakkaat täysin mukana vaatimusten määrittelyssä? 5. Ovatko loppukäyttäjien odotukset realistisia?!16

Riskien tunnistus / Keil et al. 1998 6. Onko projektin tarkoitus vakaa? 7. Onko ohjelmistotuotantotiimissä oikea sekoitus osaamista? 8. Ovatko projektin vaatimukset vakaita? 9. Onko projektiryhmässä kokemusta käytettävästä teknologiasta? 10. Onko projektiryhmän koko riittävä tehtävään nähden? 11. Ovatko asiakkaan ja käyttäjän edustajat yhtä mieltä projektin tärkeydestä ja rakennettavan järjestelmän/ tuotteen vaatimuksista?!17

Riskien luokittelu / U.S. Air suorituskykyriski Force tuote ei ehkä täytä vaatimuksia ja eikä sovi tarkoitukseen. kustannusriski projektin budjettia täytyy mahdollisesti päivittää. tukiriski ohjelmistoa voi olla hankala korjata, sovittaa käyttöön ja laajentaa. aikatauluriski projektin aikataulu ei ehkä pidä eikä tuotetta toimiteta ajoissa.!18

Riskien välttäminen, valvonta ja hallinta mitigation (Risk Mitigation, Monitoring and Management) kuinka riskejä voidaan välttää? monitoring mitä tekijöitä seuraamalla voidaan ennustaa riskien laukeamista? management millaisia varasuunnitelmia on, jos riskit toteutuvat?!19

Riskien luettelointi Riskit Luokittelu Todennäköisyys Vaikutus RMMM Kokoarvio liian pieni Käyttäjiä arvioitua enemmän Uudellenkäyttöä arvioitua vähemmän Julkistusaikaa aikaistetaan Rahoitusongelmia Käyttäjä muuttaa vaatimuksia Teknologia ei vastaa odotuksia PS PS PS BU FU PS TE 60 % 30 % 70 % 50 % 40 % 80 % 30 % 3 2 3 3 4 3 4 Luokittelu PS = Project size risk BU = Business risk FU = Funding risk TE = Technical risk Vaikutus 4 = katastrofaalinen 3 = kriittinen 2 = pieni 1 = vähäinen!20

Riskin raportointilomake Tunnus: < numero tai tunniste > Kuvaus: < milloin riskitilanne syntyy - mitä siitä aiheutuu > (esim. kaikki asiakkaat eivät ole tyytyväisiä tuotteelle asetettuihin vaatimuksiin, voimme toteuttaa vain tärkeimmän asiakkaan vaatimukset) Todennäköisyys: Kustannus: Riskiin varautuminen: < todennäköisyys * kustannus >Ensimmäinen indikaattori: < mikä voi ilmaista riskin muuttumista ongelmaksi > Kuinka välttää: < millä toimilla riskin vaikutusta voi vähentää tai välttää > Vastuuhenkilö: < kuka on vastuussa riskin vähentämistoimista> > Milloin: < milloin viimeistään vähentämistoimet täytyy tehdä!21

Esimerkki riskin laukeamiseen varautumisesta Riskin tunnistaminen: Vain 70 prosenttia komponenteista, joita on suunniteltu käytettäväksi sovelluksen rakentamisessa, voidaan todellisuudessa käyttää. Loput toiminnallisuudesta joudutaan rakentamaan sovellusta varten. Riskin todennäköisyys: 80 % Riskin vaikutus: Sovelluksen rakentamisessa suunnitellaan käytettäväksi 60 ohjelmistokomponenttia. Jos vain 70 % voidaan käyttää, 18 komponenettia joudutaan rakentamaan sovellusta varten. Kun komponentin keskimääräinen koko on 100 LOC ja jos (kokemuksen mukaan) ohjelmiston rakentaminen maksaa 15 euroa / LOC, niin kokonaiskustannukset komponenttien rakentamiselle on 18 * 100* 15 = 27.000 euroa Riskin laukeamiseen varautuminen (Risk exposure) RE = 0.80 x 27.000 ~ 21.600 euroa.!22

29. Ylläpito ja uudelleensuunnittelu ylläpito ja Lehmanin lait liiketoimintaprosessin ja ohjelmiston uudelleensuunnittelu takaisinmallintaminen/käänteistekniikka!23

Ohjelmiston ylläpito Muutokset ohjelmistoon ovat väistämättömiä katso Lehmanin lait E-tyypin järjestelmille Ylläpidon luokittelu on elänyt ajan kuluessa Swanson 1976 esitteli kolme: korjaavan, mukauttavan ja täydellistävän Pfleeger 1998 esitteli neljä: korjaavan, mukauttavan, ennalta ehkäisevän ja täydellistävän Sommerville 2004 ei suosittele luokittelun käyttöä, koska on sitä on vaikea käyttää kiistattomasti oikein Korjaus Laajennus Proaktiivinen Reaktiivinen Ennalta ehkäisevä (preventive) Korjaava (corrective) Täydellistävä (perfective) Mukauttava (adaptive) eteenpäin suunnittelu (forward engineering) on lähinnä ennalta ehkäisevää (preventive) ja täydellistävää (perfective)!24

Lehmanin lait 1. Jatkuvan muutoksen laki E-tyypin järjestelmiä täytyy jatkuvasti sovittaa käyttöön, muuten ne tulevat käyttökelvottomiksi 2. Kasvavan mutkikkuuden laki Kun E-tyypin järjestelmä elää, sen mutkikkuus kasvaa - jossakin vaiheessa sitä täytyy parantaa tai se täytyy hylätä 3. Itsesäätelyn laki Globaalin E-tyypin järjestelmän evoluutioprosessi on itseään säätävä 4. Organisationaalisen pysyvyyden laki Keskimääräinen globaalin toiminnan määrä on kehittyvän E-tyypin järjestelmässä muuttumaton koko järjestelmän elinjakson ajan!25

Lehmanin lait 5. Tuttuuden säilyttämisen laki Uusien piirteiden määrä E-tyypin järjestelmän uusissa julkaisuissa on vakio koko järjestelmän aktiivisen elämän ajan 6. Jatkuvan kasvun laki E-tyypin järjestelmien toiminnallisuuden täytyy jatkuvasti lisääntyä, jotta käyttäjät pysyvät tyytyväisinä 7. Laadun heikentyminen E-tyypin järjestelmien laatu huononee, kunnes järjestelmää korjataan ja sovitetaan ympäristössä tapahtuneisiin muutoksiin 8. Takaisinkytketyn järjestelmän laki E-tyypin järjestelmien evoluutioprosessi on monitasoinen, monisilmukkainen ja moniagenttinen takaisinkytketty järjestelmä ja sitä pitää kohdella sellaisena, jota muutokset tai parannukset onnistuvat!26

Esimerkki elinkaarikustannusten jakautumisesta (Schach 2005) ohjelmiston elinjakson pituus vaikuttaa ylläpidon osuuteen aikana 1976-1981 tehdyissä mitauksissa ylläpidon osuus oli 67 % aikana 1992-1998 tehdyissä mitauksissa ylläpidon osuus kasvoi ja oli 75 % ohjelmiston kehitysvaiheiden työmäärissä ei tapahtunut suuria muutoksia ylläpito koostuu (räätälöidylle) virheiden korjauksista (17 %) asiakkaan toiminnan ja ympäristön muuttumisen vaatimista korjauksista (18 %) uusien piirteiden lisäämisestä (65 %) vaat.määr. määrittely suun koodaus mod.test integrointi ylläpito 40-60 % ylläpitotyöstä kuluu ylläpidettävän järjestelmän ymmärtämiseen 27

Ylläpidon työpanos koko ohjelmiston elinaikana Korjaava ylläpito 100 % 90 % 80 % Mukauttava ylläpito Täydellistävä ylläpito 70 % 60 % 50 % 40 % 30 % 20 % 10 % Ajankohta, kun täydellistävä vie 65 %, korjaava 17 % ja mukauttava 18 %? aika Wiederholdin (2006) esitystä mukaellen

Uudelleensuunnittelu Liiketoiminta prosessit Tieto- järjestelmät Uudelleensuunnittelu Ohjelmisto- sovellukset!29

Liiketoimintaprosessin uudelleensuunnittelu Tehdään tarkennukset (protoiluun perustuen) ja otetaan uusi prosessi käyttöön Liiketoiminnan määrittely Tavoitteet - kustannusten pienentäminen - ajan lyhentäminen - laadun parannus - henkilöstön kehittäminen Testataan uutta prosessia protoilemalla Tarkennus ja käyttöönotto Tunnistetaan kriittiset prosessit tavoitteiden saavuttamiseksi Prosessin tunnistus Protoilu Tuotetaan käyttö- tapaukset uudelleen- suunniteltaville prosesseille, Niiden avulla suunnitellaan uudet tehtävät. Prosessin arviointi Tunnistetaan prosessin tehtävät ja niiden kustannukset ja ajantarpeet. Tunnistetaan laatu- ja suorituskykyongelmat. Prosessin määrittely ja suunnittelu Business Process Reengineering (BPR)!30

Ohjelmiston uudelleensuunnittelu Muokataan ohjelmistoa laadun parantamiseksi ja ylläpidon helpottamiseksi. Siirrytään esim. asiakas/palvelin arkkitehtuuriin tai palvelupohjaiseen arkkitehtuuriin. Esim. tiedostot korvataan tietokannalla. Muutokset voivat aiheuttaa muutoksia arkkitehtuuriin ja koodiin refaktorointi tiedon uudelleenmuotoilu eteenpäin suunnittelu uudelleenkoodaus inventointi uudelleendokumentointi takaisinmallintaminen Arvioidaan kaikki sovellukset - tarpeellisuus - ylläpidettävyys (katso kuvaus) kuinka paljon, kuinka täydellisesti Ohjelmasta tuotetaan suunnittelutason kuvaus (katso kuvaus)!31

Olemassaolevien järjestelmien arviointi Koska järjestelmä on yritykselle tärkeä mutta huonolaatuinen (ylläpito kallista) kannattaa uudelleensuunnitella tai korvata uudella Järjestelmä pitää säilyttää toimintakunnossa, mutta tavalliset ylläpito- toimet riittävät Liiketoiminnan arvo Arvokas yritykselle & Laadultaan huono Ei tärkeä yritykselle & Laadultaan huono Arvokas yritykselle & Laadultaan hyvä Ei tärkeä yritykselle & Laadultaan hyvä Niin kauan kun tavalliset ylläpitotoimet riittävät, kannattaa pitää käytössä Järjestelmän laatu Laadultaan huonoa järjestelmää & yritykselle arvotonta ei kannata pitää toiminnassa Sommerville 2004!32

Takaisinmallintaminen / käänteistekniikka (reverse engineering) vain rakenteellisen ohjelmoinnin rakenteita Käytetään aputyökaluja toiminnan ymmärtämiseksi Miten nykyinen käyttöliittymä toimii? Mikä on relevanttia jatkossa? Tietomäärittelyjen arviointi esim. luokan attribuuttien kannalta. Tietokannan kaavan arviointi.!33

30. Ohjelmistoprosessin parantaminen menetelmiä ja malleja kyvykkysmalli CMMI!34

Prosessin arviointi ja parantaminen Pressman 2005!35

Ohjelmistoprosessin parantaminen yrityksessä PSP (Personal Software Process) Humphreyn (1996) esittämä menetelmä, joka tavoitteena on henkilökohtaisen osaamisen parantaminen TSP (Team Software Process) Humphreyn (2000) esittämä menetelmä, joka tavoitteena on ryhmätyön parantaminen SW-CMM (Capability Maturity Model) US DoD:n kehittämä malli alihankkijoiden ohjelmistoprosessin arvioimiseksi. Kiinnittää prosessin parannuskohteet viidellä kypsyystasolla (Humphrey 1989). Crosby esitteli tasot jo 1979. BOOTSTRAP Eurooppalainen versio SW-CMM mallista. Joustavampi kuin CMM, koska parantaminen voidaan kohdistaa haluttuun osaprosessiin (Kuvaja et al. 1994). Tuki loppui 2004.!36

Ohjelmistoprosessin parantaminen... SPICE (Software Process Improvement and Capability Determination) malli = ISO 15504 standardi BOOTSTRAPin periaatteiden pohjalle rakennettu standardi ISO 9001 CMM mallin kaltainen malli, jonka avulla varmistutaan alihankkijoiden ohjelmistoprosessin laadusta ISO 9001 sertifikaatti vastaa CMM tasoa 1-3 CMMI (Capability Maturity Model Integration) CMM mallin kehittyneempi versio (V1.1 julkistettiin tammikuussa 2002) Mallin staged representation osa vastaa CMM mallia Mallin continuous representation osa vastaa SPICE mallia!37

Organisaatiokohtainen prosessin suorituskyky Mittauksiin perustuva projektin hallinta Organisaatiokohtainen innovointi ja käyttöön ottaminen Kausaalinen analyysi ja ratkaisut Vaatimusten kehittäminen Tekninen ratkaisu Tuotteen integrointi Verifiointi ja validointi Organisaatiokohtainen prosessin suuntaaminen Organisaatiokohtainen prosessinmäärittely Organisaatiokohtainen koulutus Integroitu projektin hallinta Integroitu sopimusten hallinta Riskien hallinta... Taso 5: Optimoiva (optimizing) jatkuva parantaminen Taso 4: Määrällisesti hallittu Taso 3: Määritelty (defined) prosessin standardointi Taso 2: Hallittu (managed) projektin hallinta Vaatimusten hallinta Projektin suunnittelu Projektin valvonta Alihankkijoiden sopimusten valvonta Mittaus ja analyysi Laadunvarmistus (prosessi ja tuote) Tuotteenhallinta Taso 1: Suoritettu (performed) CMMI (staged, tasoittainen) kypsyystasot ja prosessialueet!38

Jatkuva (continuous) CMMI malli Taso 0: Epätäydellinen Taso 1: Suoritettu kaikki prosessialueen tavoitteet täytetty Taso 2: Hallittu kaikki tason 1 kriteerit saavutettu lisäksi noudatetaan organisaatiolle määriteltyjä menettelytapoja Taso 3: Määritelty kaikki tason 2 kriteerit saavutettu lisäksi prosessi on räätälöity organisaatiolle Taso 4: Määrällisesti hallittu kaikki tason 3 kriteerit saavutettu lisäksi prosessialuetta parannetaan mittauksin ja arvioinnein Taso 5: Optimoiva kaikki tason 4 kriteerit saavutettu lisäksi prosessialuetta optimoidaan tilastollisin keinoin prosessialue (esim PP) ei toteuta tason 1 tavoitteita Kyvykkyystaso 4 3 2 1 0 PP REQM MA CM PPQA... Prosessialue PP Project planning REQM Requirements management MA Measurement and analysis CM Configuration management PPQA Process and product quality assurance 39

Jatkuva CMMI malli Jokaiselle prosessialueelle määritellään tavoitteet (specific goals, SG) ja käytänteet (specific practices, SP). Esim. projektin suunnittelu SG 1: Ota käyttöön arvioinnit SP 1.1 arvioi projektin laajuus SP 1.2 arvioi erilliset tehtävät projektissa SP 1.3 määrittele projektin elinjakso SP 1.4 määrittele työpanos- ja kustannusarviot SG 2: Kehitä projektisuunnitelma SP 2.1 tee budjetti ja aikataulu SP 2.2 tunnista projektin riskit SP 2.3 tee suunnitelma tiedon hallinnalle SP 2.4 tee suunnitelma projektin resursseista SP 2.5 tee suunnitelma tarvittavasta tietämyksestä ja taidoista SP 2.6 tee suunnitelma, miten asiakkaat otetaan mukaan SP 2.7 tee projektisuunnitelma SG 3: Hanki sitoutuminen suunnitelmaan!40

Jatkuva CMMI malli CMMI määrittelee myös viisi geneeristä tavoitetta GG (ja niitä vastaavat käytännöt GP), joiden avulla arvioidaan mille kyvykkyystasolle prosessialueessa on päästy GG 1: Toteuta prosessialueen erityiset tavoitteet (SG) GG 2: Vakiinnuta hallittu prosessi GP 2.1 ota käyttöön organisaatiokohtainen menettelytapa GP 2.2 suunnittele prosessi GP 2.3 varaa resurssit GP 2.4 kiinnitä vastuut GP 2.5 kouluta henkilöstö GP 2.6 hallitse tuotteet (konfiguraatiot) GP 2.7 tunnista ja sido prosessiin asiakkaan edustajat GP 2.8 valvo prosessia GP 2.9 arvioi prosessin noudattamista GO 2.10 katselmoi tilanne ylemmän johdon kanssa GG 3: Vakiinnuta määritelty prosessi GG 4: Vakiinnuta määrällisesti hallittu prosessi GG 5: Vakiinnuta optimoiva prosessi!41

ROI (Return on Investment) eri prosessin parantamistavoille David F. Rico 2003 (www.davidfrico.com/rico03apdf.htm) ROI = Ratio of adjusted benefits to costs Benefits - Costs Costs x 100% 40:1 33:1 30:1 Benefit/Cost Ratio 20:1 10:1 26:1 23:1 8:1 3:1 2:1 Inspection PSP TSP SW-CMM ISO 9001 CMMI!42

SEMAT (Software Engineering Methods and Theory) ydin (Asiat (alphat), joita työstetään ohjelmistojen kehittämisen aikana) Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp. 7-14!43

Asiat, joita tehdään ohjelmistojen kehittämisen aikana Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp. 7-14!44

Korttien avulla saadaan kehitys näkyväksi Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp. 7-14!45

Korttien avulla arvioidaan tiimin/projektin tilanne Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp. 7-14!46

Mitä seuraavaksi (mitä ei vielä olla tehty)? Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp. 7-14!47