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

Samankaltaiset tiedostot
Mitä on ohjelmistotuotanto?

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

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

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

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

Prosessikuvaukset ja elinkaarimallit

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

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

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

Vaatimusmäärittely- ja hallinta

Johdatusta ohjelmistotekniikkaan

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Software engineering

Johdantoluento. Ohjelmien ylläpito

Tietojärjestelmän osat

Projektin suunnittelu

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

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

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

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Projektityö

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

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

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistoihin perustuva liiketoiminta: haasteita ja mahdollisuuksia

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Määrittely- ja suunnittelumenetelmät

Projektityö

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

Ohjelmistotuotteen hallinnasta

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

Elinar Oy Ltd IBM Arkistointiratkaisut

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

Standardi IEC Ohjelmisto

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

2. Ohjelmistotuotantoprosessi

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

A4.1 Projektityö, 5 ov.

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Integrointi. Ohjelmistotekniikka kevät 2003

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Katselmoinnin määritelmä. Katselmoinnit osa 1. ja vielä ajatuksia katselmoinneista. Katselmointi. Katselmointi, katselmus (review) IEEE Std

ITK130 Johdatus ohjelmistotekniikkaan

T Ohjelmistoprojektien hallinta

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

CoRD verkostoituneen tuotekehityksen toteutus oppilaitosympäristössä

Yrittäjien ja selvittäjien näkemykset yritysten suorituskyvystä

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

OHJ-3010 Ohjelmistotuotannon perusteet

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Ohjelmistotuotanto historiallinen perspektiivi JOTU2013/K.Systä 1

ITK130 Ohjelmistoprosessi

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

Tuotantotalouden 25 op sivuaine

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

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

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

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

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Millainen on onnistunut ICT-projekti?

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

NESTE ENGINEERING SOLUTIONS

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Tuotantotalouden tutkinto-ohjelma Korvavuusluettelo, päivitetty TU-22 TEOLLISUUSTALOUS

Globalisaatio ja asiantuntijapalvelut

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Tietojärjestelmän kehittäminen syksy 2003

Menetelmäraportti Ohjelmakoodin tarkastaminen

Toimilohkojen turvallisuus tulevaisuudessa

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

LAATU, LAADUNVARMISTUS JA f RISKIEN HALLINTA JOUNI HUOTARI ESA SALMIKANGAS

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

T Ohjelmistoprojektien hallinta Tehtävän 3 ratkaisu. Maija Kangas, Kimmo Stålnacke ja Outi Syysjoki

ITK130 Ohjelmistojen luonne

Projekti toteuttaa muutostarpeen

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

ISO Päivi Kähönen-Anttila

JHS XXX ICT-palvelujen kehittäminen: Laadunvarmistus Liite 2: Tarkistuslistoja

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Transkriptio:

Johdanto Sami Kollanus TJTA330 Ohjelmistotuotanto 6.3. Mitä on ohjelmistotuotanto? Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista ja käyttämistä siten, että voidaan tuottaa taloudellisesti ohjelmisto, joka on luotettavaa ja toimii tehokkaasti todellisissa koneissa. Naur & Randel (1969) 2 Tämän kurssin näkökulma Software engineering Liiketoiminta Operationaalinen johtaminen Tekniikka Tämä kurssi 3 1

Kurssin suhde muuhun opetukseen CORE-opinnot -Johdatus ohjelmistotekniikkaan -Oliokeskeinen TJ kehittäminen Ylläpito OHJELMISTO- TUOTANTO Testaus ja laadunvarmistus Projektiopinnot -Projektin hallinta -Sovellusprojekti -Projektin hallinta -Projektitoiminnan kehittäminen Tietojärjestelmien Kehittämismenetelmät 4 Kurssin tavoite Muodostaa kokonaiskuva ohjelmistotuotannon osa-alueista Ymmärtää erilaisia ohjelmistotuotannon menetelmiä ja niiden merkitystä ohjelmistotuotantorpsessille Mitä? Miksi? Milloin? 5 Weinbergin teesit (1/3) Parhaiten onnistuvat ne, jotka eivät luota viimeisimpiin poppakonsteihin, mutta ovat silti valmiita itse kokeilemaan uusia ideoita, vaikka ne esitettäisiinkin karnevaalihumussa mainosmiesten pötypuheiden seassa. Mikään ei korvaa ratkaistavan ongelman perusteellista ymmärtämistä joskus voi tosin käydä hyvä tuuri Haikala & Märijärvi 2002 6 2

Weinbergin teesit (2/3) Mikään ratkaisu ei sovellu kaikkiin tehtäviin ja johonkin tilanteeseen parhaiten soveltuva lähestymistapa voi olla toisessa tilanteessa kaikista huonoin. (oma kommentti: ajattelen, että todellinen ammattitaito on laajaa näkemystä asioihin ja eri vaihtoehtojen tunnistamista. Vasara kädessä kaikki ongelmat alkavat näyttää nauloilta.) On olemassa monia hyödyllisiä lähestymistapoja, jotka toimivat useammassa kuin yhdessä tilanteessa, joten kannattaa tutustua sellaiseen, mikä on toiminut aiemmin. Haikala & Märijärvi 2002 7 Weinbergin teesit (3/3) Ongelman ratkaisun niksi ei ole pelkästään miten menetelmiä sovelletaan (know-how), vaan mieluummin milloin niitä sovelletaan (know-when) tämä antaa mahdollisuuden sovittaa ratkaisumenetelmän ongelmaan, eikä päinvastoin. (siis mielestäni tämä on sitä ammattitaitoa) Riippumatta siitä, kuinka hyvin taidat edellisen kohdan miten ja milloin, on olemassa ongelmia, jotka ovat nykytietämyksellä mahdottomia ratkaista tai joiden perimmäisiä ominaisuuksia kukaan ei ymmärrä riittävän hyvin: nöyryys on siis aina paikallaan (tämä on vähän tekninen näkökulma asiaan, tähän kohtaan sopii ehkä projektien riskien arviointi. Voidaan tunnustaa, että projektia ei voida tai ei kannata tehdä vaatimusten mukaan) Haikala & Märijärvi 2002 8 OT:n kehitys Koskinen ym. (2001) Programming in the small, 50- ja 60 luku Programming in the large, 70-luku Programming in the many, 80-luku 2000-luku: tietoyhteiskunta, prosessien systemaattinen kehittäminen, kertynyttä tutkimustietoa (vrt. Weinbergin teesit) 9 3

OT-nykypäivänä Brooks (1986): Monimutkaisuus Näkymättömyys Mukautuvuus Muuttuvuus Skaalautumattomuus Kasvaneet järjestelmät Kasvanut tehokkuus(vaatimus) OT Monenlaiset ympäristöt: -Sulautetut järjestelmät -Internet -Integrointi, standardit -Mobiililaitteet Markkinat: Kilpailu Laatujärjestelmät 10 Software Engineering IEEE 610.12: The application of a systematic, disciplined, quantifiable development, operation and maintenance of software. Haikala & Märijärvi 2002 11 Prosessiajattelu Sisään Prosessi Ulos ohjaus mittaus Haikala & Märijärvi 2002 12 4

prosesseissa keskeistä siis Prosessilla on syöte (työvoima ja muut resurssit) Tuotos (dokumentit ja valmis ohjelma) Voi olla useampi prosessi erilaisiin projekteihin Prosessia täytyy mitata ja ohjata 13 Ohjelmistotuotanto on Prosesseja Jokaisessa organisaatiossa on joka tapauksessa joukko prosesseja! Implisiittiset, näkymättömät prosessit Eksplisiittiset, määritellyt prosessit 14 Ohjelmistotuotantoprosessi(t) PROSESSIN KEHITYS, KOULUTUS SYÖTE ANALYYSI SUUNNITTELU PROJEKTIN HALLINTA TUOTOS TOTEUTUS LAADUN HALLINTA TESTAUS YLLÄPITO MITTAUS, KONTROLLI 15 5

CMMI -prosessialueet Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution Organizational Process Performance Quantitative Project Management Level3 Requirements Development Technical Solution Product Integration Verification Validation Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management Risk Management Integrated Teaming Integrated Supplier Management Decision Analysis and Resolution Organizational Environment for Integration Level2 Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurement and Analysis Process and Product Quality Assurance Configuration Management Level1 16 Toimintaympäristö vaikuttaa Tavallinen ohjelmistokehitys vs. systeemisuunnittelu Tuoteliiketoiminta vs. projektiliiketoiminta Hajautettu kehitys Markkinoiden vaikutus (Matkapuhelin vs. taloushallinnon ohjelmisto) Suuret vs. pienet projektit 17 Toimintaympäristö vaikuttaa Toimiala (ydinvoimala vs. verkkokauppa) Organisaation koko Asiakassuhteen asettamat vaatimukset (DoD, Nokia, julkishallinto) Tuotetekijät 18 6

Tuotteen ominaisuuksia Ohjelmiston koko Käsiteltävän tiedon määrä Vasteaika ja reaaliaikavaatimukset Luotettavuusvaatimukset Hajautusaste Tuotteistusaste (massatuote vs. räätälöity) Haikala & Märijärvi 2002 19 Ohjelmistotuotanto on... Dokumenttien tuottamista! 20 Dokumentteja... Esitutkimus ää ääö 21 7

Esitutkimus - dokumentteja Alustava sopimus Alustava projektisuunnitelma Alustava toiminnallinen määrittely Alustava toteutussuunnitelma Alustava testaussuunnittelu Alustava tuotteenhallintasuunnitelma Alustava laatusuunnitelma Dokumentointisuunnitelma Haikala & Märijärvi (2002, 73) 22 Määrittely - dokumentteja Tarkennettu sopimus Tarkennettu projektisuunnitelma Toiminnallinen määrittely Alustava tekninen määrittely Tarkennettu testaussuunnitelma Tarkennettu tuotteenhallintasuunnitelma Tarkennettu laatusuunnitelma Alustava käyttöohje Haikala & Märijärvi (2002, 73) 23 Suunnittelu - dokumentteja Tekninen määrittely Integrointisuunnitelma Tarkennettu käyttöohje Alustava ylläpito-ohje Alustava operointi-/huolto-ohje Alustava asennusohje Haikala & Märijärvi (2002, 73) 24 8

Toteutus - dokumentteja Moduulisuunnitelmat Moduulitestaussuunnitelmat Moduulitestauspöytäkirjat Koodimoduulit Integrointitestaussuunnitelma Integrointitestauspöytäkirjat Integroitu ohjelmisto Tarkennettu ylläpito-ohje Tarkennettu operointi/huolto-ohje Tarkennettu asennusohje Haikala & Märijärvi (2002, 73) 25 Testaus - dokumentteja Järjestelmätestauspöytäkirjat Hyväksymistestauspöytäkirjat Paketointiohje Koulutusmateriaali Tuotedokumenttien viimeistellyt versiot Haikala & Märijärvi (2002, 73) 26 Miksi ohjelmistotuotanto? Siis miksi systemaattinen työskentely ja loputon dokumenttien tuottaminen? Miksi kunnon koodari ei voi tehdä työtä niin kuin huvittaa???? 27 9

Laatu Iranilainen matkustajakone Sädehoitokone Ariane kantoraketti Huono laatu maksaa! Koskaan ei ehditä tekemään kunnolla, mutta aina ehditään tekemään kahteen kertaan 28 Laatu 40-1000X Virheen korjaamisen suhteellinen kustannus 1 3-6X 10X 15-40X 30-70X (82X IBM keskiarvo) Vaatimusmäärittely Suunnittelu Koodaus Kehitys- Testaus Hyväksymis- Käyttöönotto, Testaus Ylläpito Ja kaikkihan meistä tekevät virheitä! 29 Prosessin laatu Prosessin laatu = Tuotteen laatu + Tuotannon Tehokkuus 30 10

Projektien onnistuminen CHAOS report (1994) 1. Täysin onnistunut 16,2 % 2. Osittain onnistunut 52,7 % 3. Täysin epäonnistunut 31,1 % www.standishgroup.com 31 Kustannusten ylitys, (Chaos report 1994) www.standishgroup.com 32 Ajan ylitys (Chaos report 1994) www.standishgroup.com 33 11

Chaos report eri vuosilta 1994 2000 2004/Q3 Onnistuneet 16,2 % 28 % 29 % Osittain onnistuneet Täysin epäonnistune et 52,7 % 31,1 % 49 % 23 % www.standishgroup.com 53 % 18 % 34 Projektitoiminnan tarpeita Jos toimintaa ei tunneta, sitä ei voida ennustaa. Systemaattisen toiminnan, vakiintuneiden prosessien ja seurannan avulla voidaan oppia: Estimoimaan työmäärä ja aikataulu Saadaan näkyvyyttä projekteihin Tiedetään, mikä toimii Ei kannata aina keksiä pyörää uudelleen! 35 Miksi dokumentteja? Asiakassuhde: Sopimukset, suunnitelmat, seuranta Tekniset tarpeet: Kommunikointi, ylläpito Johdon tarpeet: Seuranta, toiminnan ohjaus Oppiminen: virheiden jäljitys, päätösten perustelut, toiminnan kehittäminen 36 12