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



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

Mitä on ohjelmistotuotanto?

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

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

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?

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)

Prosessikuvaukset ja elinkaarimallit

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

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

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

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

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

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

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

Vaatimusmäärittely- ja hallinta

Johdatusta ohjelmistotekniikkaan

Ohjelmistotekniikka - Luento 2

Software engineering

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Johdantoluento. Ohjelmien ylläpito

Tietojärjestelmän osat

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

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

Projektin suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistoihin perustuva liiketoiminta: haasteita ja mahdollisuuksia

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

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

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

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

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

Elinar Oy Ltd IBM Arkistointiratkaisut

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Oleelliset vaikeudet OT:ssa 1/2

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

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Tietojärjestelmän kehittäminen syksy 2003

Ketterä vaatimustenhallinta

T Ohjelmistoprojektien hallinta

Standardi IEC Ohjelmisto

ITK130 Ohjelmistoprosessi

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

2. Ohjelmistotuotantoprosessi

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

ISO Päivi Kähönen-Anttila

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

Projektityö

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

Integrointi. Ohjelmistotekniikka kevät 2003

Collaborative & Co-Creative Design in the Semogen -projects

CoRD verkostoituneen tuotekehityksen toteutus oppilaitosympäristössä

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

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

SOA SIG SOA Tuotetoimittajan näkökulma

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Palvelukonsepteja korjausrakentamiseen muilta toimialoilta - liiketoiminta- ja verkostotutkijan näkemys korjaamiseen

Ohjelmistotuotanto historiallinen perspektiivi JOTU2013/K.Systä 1

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

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Miten luodaan tehokas ja sertifioitu laatujärjestelmä?

7.4 Variability management

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

Katselmoinnit. Katselmoinnin määritelmä

Projektityö

Tuotantotalouden 25 op sivuaine

Pyhä ITIL - mikä toimii ja mikä ei. Aale Roos

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

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

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

A4.1 Projektityö, 5 ov.

Ohjelmistotuotteen hallinnasta

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

HITSAUKSEN TUOTTAVUUSRATKAISUT

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

Teollisuustalouden sivuaineopiskelijoille tarkoitettujen jatkomoduulien suorittaminen vuoden 2005 tutkintosäännön mukaisesti

Projekti toteuttaa muutostarpeen

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

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Excellence in Action: AMK yritysrajapinnassa

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

Käyttäjäkeskeinen suunnittelu

Projektinhallinta: riskeihin varautuminen

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

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

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

ITK130 Ohjelmistojen luonne

Verkkokurssin suunnitteluprosessi

Globalisaatio ja asiantuntijapalvelut

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

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

Transkriptio:

Mitä on ohjelmistotuotanto? Johdanto Sami Kollanus TJTA330 Ohjelmistotuotanto 9.1.2007 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) OHTU 2007 Sami Kollanus 2 Tämän kurssin näkökulma Kurssin suhde muuhun opetukseen Liiketoiminta CORE-opinnot -Johdatus ohjelmistotekniikkaan -Oliokeskeinen TJ kehittäminen Software engineering Operationaalinen johtaminen Tekniikka Tämä kurssi Ylläpito - Business Models and Software Companies - Software and Services Sourcing OHJELMISTO- TUOTANTO Projektiopinnot -Projektin hallinta -Sovellusprojekti -Projektin hallinta -Projektitoiminnan kehittäminen Testaus ja laadunvarmistus - Tietojärjestelmien kehittämismenetelmät - Menetelmien käyttö ja sovittaminen OHTU 2007 Sami Kollanus 3 OHTU 2007 Sami Kollanus 4

Kurssin tavoite Weinbergin teesit (1/3) Muodostaa kokonaiskuva ohjelmistotuotannon osa-alueista Ymmärtää erilaisia ohjelmistotuotannon menetelmiä ja niiden merkitystä ohjelmistotuotantorpsessille Mitä? Miksi? Milloin? 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 OHTU 2007 Sami Kollanus 5 OHTU 2007 Sami Kollanus 6 Weinbergin teesit (2/3) Weinbergin teesit (3/3) Mikään ratkaisu ei sovellu kaikkiin tehtäviin ja johonkin tilanteeseen parhaiten soveltuva lähestymistapa voi olla toisessa tilanteessa kaikista huonoin. (lisäys: 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. 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. 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 OHTU 2007 Sami Kollanus 7 OHTU 2007 Sami Kollanus 8

OT:n kehitys OT-nykypäivänä 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) 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 OHTU 2007 Sami Kollanus 9 OHTU 2007 Sami Kollanus 10 Software Engineering Prosessiajattelu IEEE 610.12: The application of a systematic, disciplined, quantifiable development, operation and maintenance of software. Sisään Prosessi Ulos OHTU 2007 Sami Kollanus 11 ohjaus mittaus OHTU 2007 Sami Kollanus 12

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 Ohjelmistotuotanto on Prosesseja Jokaisessa organisaatiossa on joka tapauksessa joukko prosesseja! Implisiittiset, näkymättömät prosessit Eksplisiittiset, määritellyt prosessit OHTU 2007 Sami Kollanus 13 OHTU 2007 Sami Kollanus 14 Ohjelmistotuotantoprosessi(t) CMMI -prosessialueet PROSESSIN KEHITYS, KOULUTUS SYÖTE ANALYYSI LAADUN HALLINTA SUUNNITTELU TOTEUTUS TESTAUS PROJEKTIN HALLINTA YLLÄPITO TUOTOS Level5 Level4 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 Organizational Innovation and Deployment Causal Analysis and Resolution Organizational Process Performance Quantitative Project Management MITTAUS, KONTROLLI OHTU 2007 Sami Kollanus 15 OHTU 2007 Sami Kollanus 16

Toimintaympäristö vaikuttaa Toimintaympäristö vaikuttaa Tavallinen ohjelmistokehitys vs. systeemisuunnittelu Tuoteliiketoiminta vs. projektiliiketoiminta Hajautettu kehitys Markkinoiden vaikutus (Matkapuhelin vs. taloushallinnon ohjelmisto) Suuret vs. pienet projektit Toimiala (ydinvoimala, sotateollisuus) Organisaation koko Asiakassuhteen asettamat vaatimukset (DoD, Nokia, julkishallinto) Tuotetekijät OHTU 2007 Sami Kollanus 17 OHTU 2007 Sami Kollanus 18 Tuotteen ominaisuuksia Ohjelmiston koko Käsiteltävän tiedon määrä Vasteaika ja reaaliaikavaatimukset Luotettavuusvaatimukset Hajautusaste Tuotteistusaste (massatuote vs. räätälöity) Ohjelmistotuotanto on... Dokumenttien tuottamista! OHTU 2007 Sami Kollanus 19 OHTU 2007 Sami Kollanus 20

Dokumentteja... Esitutkimus - dokumentteja Esitutkimus Määrittely Mittaus, kontrolli, prosessin kehitys yms. Suunnitte lu Toteutus Päätöksenteko, projektinhallinta, yms. Testaus OHTU 2007 Sami Kollanus 21 Alustava sopimus Alustava projektisuunnitelma Alustava toiminnallinen määrittely Alustava toteutussuunnitelma Alustava testaussuunnittelu Alustava tuotteenhallintasuunnitelma Alustava laatusuunnitelma Dokumentointisuunnitelma OHTU 2007 Sami Kollanus 22 Määrittely - dokumentteja Suunnittelu - dokumentteja Tarkennettu sopimus Tarkennettu projektisuunnitelma Toiminnallinen määrittely Alustava tekninen määrittely Tarkennettu testaussuunnitelma Tarkennettu tuotteenhallintasuunnitelma Tarkennettu laatusuunnitelma Alustava käyttöohje Tekninen määrittely Integrointisuunnitelma Tarkennettu käyttöohje Alustava ylläpito-ohje Alustava operointi-/huolto-ohje Alustava asennusohje OHTU 2007 Sami Kollanus 23 OHTU 2007 Sami Kollanus 24

Toteutus - dokumentteja Testaus - dokumentteja Moduulisuunnitelmat Moduulitestaussuunnitelmat Moduulitestauspöytäkirjat Koodimoduulit Integrointitestaussuunnitelma Integrointitestauspöytäkirjat Integroitu ohjelmisto Tarkennettu ylläpito-ohje Tarkennettu operointi/huolto-ohje Tarkennettu asennusohje Järjestelmätestauspöytäkirjat Hyväksymistestauspöytäkirjat Paketointiohje Koulutusmateriaali Tuotedokumenttien viimeistellyt versiot OHTU 2007 Sami Kollanus 25 OHTU 2007 Sami Kollanus 26 Miksi ohjelmistotuotanto? Ohjelmistotuotanto on ylläpitoa Siis miksi systemaattinen työskentely ja loputon dokumenttien tuottaminen? Miksi kunnon koodari ei voi tehdä työtä niin kuin huvittaa? vaatimukset 2 % määrittely 5 % suunnittelu 6 % koodaus 5 % integrointi 7 %??? ylläpito 67 % testaus 8 % OHTU 2007 Sami Kollanus 27 OHTU 2007 Sami Kollanus 28

Ohjelmistotuotanto on koko toiminnan hallintaa Ajatellaan projektin onnistumista osatekijöiden tulona: 1 * 1 * * 1 = 100 % onnistuminen Millään osa-alueella ei voi tehdä huonoa työtä! Ajattele vaikka totaalista epäonnistumista vaatimusten määrittelyssä Laatu Iranilainen matkustajakone Sädehoitokone Ariane kantoraketti Huono laatu maksaa! Koskaan ei ehditä tekemään kunnolla, mutta aina ehditään tekemään kahteen kertaan OHTU 2007 Sami Kollanus 29 OHTU 2007 Sami Kollanus 30 Laatu Prosessin laatu Ja kaikkihan meistä tekevät virheitä! 40-1000X Virheen korjaamisen suhteellinen kustannus 1 3-6X 10X 15-40X 30-70X (82X IBM keskiarvo) Prosessin laatu = Tuotteen laatu + Tuotannon Tehokkuus Vaatimusmäärittely Suunnittelu Koodaus Kehitys- Testaus Hyväksymis- Testaus Käyttöönotto, Ylläpito Boehm 1981 OHTU 2007 Sami Kollanus 31 OHTU 2007 Sami Kollanus 32

Projektien onnistuminen Kustannusten ylitys, (Chaos report 1994) CHAOS report (1994) 1. Täysin onnistunut 16,2 % 2. Osittain onnistunut 52,7 % 3. Täysin epäonnistunut 31,1 % www.standishgroup.com OHTU 2007 Sami Kollanus 33 www.standishgroup.com OHTU 2007 Sami Kollanus 34 Ajan ylitys (Chaos report 1994) Chaos report eri vuosilta 1994 2000 2004/Q3 Onnistuneet 16,2 % 28 % 29 % Osittain onnistuneet 52,7 % 49 % 53 % Täysin epäonnistun eet 31,1 % 23 % 18 % www.standishgroup.com OHTU 2007 Sami Kollanus 35 www.standishgroup.com OHTU 2007 Sami Kollanus 36

Projektitoiminnan tarpeita Miksi dokumentteja? 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! 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 OHTU 2007 Sami Kollanus 37 OHTU 2007 Sami Kollanus 38 Kuitenkin ihmisten osaaminen ratkaisee 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,34 1,49 1,49 1,51 1,56 1,57 1,66 1,87 2,36 Software productivity range Yhteenvetoa No silver bullet Systemaattinen kehittäminen kannattaa Täytyy ymmärtää toiminnan kokonaisuus Toiminta suhteutettava tilanteeseen Ihmiset kuitenkin ratkaisevat, eivät prosessit Personel / team capacity 4,18 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 Boehm 1981 OHTU 2007 Sami Kollanus 39 OHTU 2007 Sami Kollanus 40