Sisältö: 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 2

Samankaltaiset tiedostot
Vaatimustenhallinta. Exit

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Tietojärjestelmän osat

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

Mitä on ohjelmistotuotanto?

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

ENE-C2001 Käytännön energiatekniikkaa. Aloitustapaaminen Osa II: Projekti- ja tiimityö

Ohjelmistojen suunnittelu

Johdantoluento. Ohjelmien ylläpito

Projektityö

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

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

Vaatimusmäärittely- ja hallinta

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Salasanan vaihto uuteen / How to change password

Millainen on onnistunut ICT-projekti?

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

1. Liikkuvat määreet

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

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

ENE-C2001 Käytännön energiatekniikkaa. Projekti- ja tiimityö /

Projektin suunnittelu

Ohjelmistotekniikka. Ohjelmistotekniikka 1

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

ITK130 Ohjelmistoprosessi

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

Työkalut ohjelmistokehityksen tukena

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

Software engineering

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

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)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

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

Avoimen ja yhteisen rajapinnan hallintamalli

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Choose Finland-Helsinki Valitse Finland-Helsinki

Capacity Utilization

2. Ohjelmistotuotantoprosessi

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

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

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

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

MEETING PEOPLE COMMUNICATIVE QUESTIONS

Tutkittua tietoa. Tutkittua tietoa 1

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Hankkeen toiminnot työsuunnitelman laatiminen

Johdatusta ohjelmistotekniikkaan

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

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Ohjelmistoprojektien hallinta Vaihejakomallit

Kestävä kehitys - Lupa toimia eri tavalla Naantali Anssi Tuulenmäki, Yli-innovaatioaktivisti

Security server v6 installation requirements

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

CT60A4600 Projektinhallinta. Luentorunko. Luento 1:Yleistä ja organisaatiot. Projektinhallinta Osa 1: yleistä. Kurssin tavoitteet

Testaaminen ohjelmiston kehitysprosessin aikana

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

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

Määrittely- ja suunnittelumenetelmät

anna minun kertoa let me tell you

EVALUATION FOR THE ERASMUS+-PROJECT, STUDENTSE

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

Norpe Winning Culture

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

Miehittämätön meriliikenne

Ohjelmistoihin perustuva liiketoiminta: haasteita ja mahdollisuuksia

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

Security server v6 installation requirements

API:Hack Tournee 2014

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

Vertaispalaute. Vertaispalaute, /9

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

LUONNOS RT EN AGREEMENT ON BUILDING WORKS 1 THE PARTIES. May (10)

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

MUSEOT KULTTUURIPALVELUINA

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Group 2 - Dentego PTH Korvake. Peer Testing Report

7. Product-line architectures

Curriculum. Gym card

Oleelliset vaikeudet OT:ssa 1/2

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

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

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

CALL TO ACTION! Jos aamiaistilaisuudessa esillä olleet aiheet kiinnostavat syvemminkin niin klikkaa alta lisää ja pyydä käymään!

Transkriptio:

Johdanto Ohjelmistotuotannon perusteiden kurssilla annetaan yleiskuva ohjelmistotuotannosta, sen eri osa-alueista ja ohjelmistotuotantoon vaikuttavista tekijöistä. Tavoitteena on luoda toiminnalliset ja tekniset valmiudet järjestelmän määrittelyprojektiin osallistumiseen. Kurssi on suunnattu asiakkaan ja toimittajan väliseen vuorovaikutukseen, jossa korostuu järjestelmäkuvauksiin perustuva kommunikaatio. Kuvausmenetelmien pohjan luo UMLkuvausstandardi. Kurssi edellyttää itseopiskeluun liittyvää omatoimista työskentelyä harjoitustehtävien ja laajahkon harjoitustyön muodossa. Itseopiskelumateriaali pohjautuu oppikirjaan Haikala Ilkka, Märijärvi Jukka, Ohjelmistotuotanto, jonka luvut 1-10 tämä kurssi kattaa. Kirjan luvut 10-19 sisältyvät jatkona olevaan Ohjelmistotuotannon menetelmät - kurssiin. Exit

Sisältö: Kurssin perustelu Tämän päivän ohjelmistot Tuotantoprosessi Vain muutos on pysyvää Kustannusten syntyminen Määrittelyn ongelmat ja riskit Lisää pohdintaa Kertauskysymykset 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 2

Miksi tämä kurssi? Exit

Ohjelmistotuotannon kehitys Teollinen ohjelmointi: vain joitakin vuosikymmeniä Ohjelmien koko kaksinkertaistuu muutamien vuosien välein Ohjelmistotyön tuottavuus kasvaa vuosittain vain noin 4 % Yli puolet ohjelmistoprojekteistä myöhästyy ja ylittää kustannusarvionsa Repeated Repeatedstudies have have shown shown that that the the failure failure rate rate for for custom custom software softwareprojects is is above above 70% 70% 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 4

Toimialakatsaus Suomi Tietoteollisuuden taloudellinen merkitys kasvaa jatkuvasti» Suomen BKT (2000) oli 783 Mrd mk, josta tavaravienti 334 Mrd mk» sähkö- ja elektroniikkateollisuuden tuotannon bruttoarvo 140 Mrd mk, josta vienti 95 Mrd mk (~60%); työllistää n. 70.000 työntekijää suurempi kuin metsä- ja metalliteollisuus» ohjelmistoliiketoiminnan arvo (2000) oli n. 5 Mrd mk, josta vienti n. 2 Mrd mk; työllistää n. 12.000 työntekijää» ohjelmistoliiketoiminnan odotetaan kasvavan lähivuosina merkittävästi sähkö- ja elektroniikkateollisuutta nopeammin... 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 5

Suomen tietoteollisuus alle kymmenen miljardiluokan ( ) yritystä n. 10 yritystä joiden liikevaihto ylittää 100 M suuri yritys - liikevaihto kymmeniä M tyypillinen ohjelmistoyritys - liikevaihto luokassa M Liikevaihtotilastoja ohjelmistoteollisuus ~ 100 t /hlö laite- ja ohjelmistomyynti: laaja skaala; moninkertainen edelliseen verrattuna Suomen Suomen tietoteollisuus tietoteollisuus (2001): (2001): 1. 1. Nokia Nokia 30 30 Mrd Mrd 2. 2. Sonera Sonera 2Mrd 2Mrd 10. 10. Compaq Compaq Computer Computer 0,3 0,3 Mrd Mrd 50. 50. Proha Proha 35 35 M M 100. 100. Tieto-X Tieto-X 20 20 M M 200. 200. Helsoft Helsoft 5M 5M 250. 250. Mikkelin Mikkelin SavoData SavoData 3 3 M M Suomen tietoteollisuus - 250 suurinta 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 6

Ohjelmointi Suomessa ohjelmistovienti tapahtuu vielä pääosin sulautettuna eri järjestelmiin» puhdas ohjelmistovienti on kuitenkin voimakkaassa kasvussa (kasvuodotukset kymmenprosentti-tasolla) Ohjelmistyö on jo monessa maassa (Intia, Pakistan, Irlanti,...) muuttumassa kaikkein tärkeämmäksi vientialaksi Ohjelmointi on tuotannonala ja sen ohjaaminen ja hallinta on tieteellisten, taloudellisten ja insinöörintoiminnan menetelmien ja lähestymistapojen sovellusalue. 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 7

What Weinberg says: Mikään ei ei korvaa korvaa ratkaistavan ongelman perusteellista ymmärtämistä joskus joskus voi voi tosin tosin käydä käydä hyvä hyvä tuuri tuuri Mikään ratkaisu ei ei sovellu sovellu kaikkiin tehtäviin ja ja johonkin tilanteeseen parhaiten soveltuva lähestymistapa voi voi olla olla toisessa tilanteessa kaikista huonoin On On olemassa monia monia hyödyllisiä lähestymistapoja, jotka jotka toimivat useammassa kui kui yhdessä tilanteessa, joten joten kannatta tutustua sellaiseen mikä mikä on on toiminut aikaisemmin Gerald Gerald Weinberg Weinberg :: 1956..1969 1956..1969 --software software developer, developer, researcher, researcher, teacher, teacher, and and designer designer of of software software curricula curricula at at IBM; IBM; after after that that formed formed consulting consulting firm firm to to help help software software engineering engineering organizations manage manage the the change change process process in in a more more fully fully human human way; way; has has written written several several hundred hundred articles articles and and more more than than 30 30 books books I've I've discovered that people are are at at the the bottom of of just just about every problem. When I'm I'm not not starting a new social system, I'm I'm often repairing an an old old one; in in this this role, I'm I'm an an organizational therapist I I like like to to think of of my my profession as as restoring human works of of art. art. Exit Weinberg & Weinberg and Friends 11/04/2002 "Ohjelmistotuotanto", Hannu Jaakkola 8

Fairley: It may well be that great Software Engineers are born rather than taught. However, they don t grow great software engineers themselves; without training they may become great hackers instead CSEE 95 Dr. Richard E. (Dick) Fairley 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 9

Työkalut Ala nähdään helposti työkalusidonnaisena» työkalut ovat vain apuväline mm. kuvata, tuottaa ja hallita syntyneitä (vaihe)tuotteita» konservatismi - sidos "menneisyyden" työkaluihin vaikeuttaa rationaalista valintaa» kehitystyön paradigmat ohjaavat työkalujen valintaa (esimerkiksi nyt oliomenetelmät) Keskeisenä kurssilla ovat kuvaamisen työkalut, esimerkiksi Rational Rose MS-Visio myös toimisto-ohjelmat (PowerPoint, Word, ) 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 10

Tarvittavat valmiudet Ohjelmistoprosessien kehittäminen Erikoiskurssit Ohjelmistoprojekti Ohjelmointi Ohjelmistotuotannon perusteet Ohjelmistotuotannon menetelmät Tiedonhallinta 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 11

Tämän päivän ohjelmistot Ohjelmistot on perinteisesti totuttu jakamaan soveltamisalueidensa mukaisesti kaupallishallinnollisiin ohjelmistoihin, tuotantoprosessien tietotekniikkaan sekä sulautettuihin järjestelmiin. Luokittelu perustuu ajatukseen siitä, että erityyppisissä sovelluksissa korostuvat erilaiset käsittelytarpeet ja toteutuksen tekniikat. Kaupallishallinnollisille ohjelmistoille ominaista on suurten tietomäärien hallinta. Tuotantoprosessien tietotekniikassa voidaan erottaa toisistaan prosessiautomaatio ja tuotantoautomaatio. Prosessiautomaatiojärjestelmissä tietotekniikka on integroitu ohjaamaan ja valvomaan tuotantojärjestelmää esimerkiksi paperikonetta; tuotantoautomaatiossa taas on kyse yksittäisten tuotantosolujen (työstökoneet, robotit) ja niiden muodostaman kokonaisuuden (kuljettimet) ohjauksesta tietokoneiden avulla. Esimerkkejä tästä ovat pitkälle automatisoidut tehtaat ja automaattivarastot. Kasvava osuus ohjelmistoista on ns. sulautettuja ohjelmistoja, jotka on tarkoitettu erilaisten toimilaitteiden ohjaukseen. Esimerkiksi matkapuhelimeen sisältyvää tietotekniikkaa ohjataan useiden satojen tuhansien ohjelmarivien muodostamalla ohjelmistolla. Edellä esitetty luokittelu on itse asiassa hieman keinotekoinen, koska käytännössä nykyaikaiset ohjelmistot sisältävät monipuolisesti erityyppisten sovellusluokkien piirteitä: vaikka matkapuhelin on tyyppiesimerkki sulautetusta järjestelmästä, sisältää sen ohjelmisto mm. tietokantojen käsittelyä ja jopa prosessinohjausta Exit

Tämän päivän ohjelmistot Tavanomainen atk Prosessinohjaus Tuotantoautomaatio Sulautetut järjestelmät Edellisten kombinaatiot 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 13

Ohjelmistot ennen ja nyt 20 vuotta sitten Nyt pienet ohjelmat päättyvät ohjelmat eräajo toimintaa tukeva gurut ja sankarit räätälöity 1000-5000 kloc Microsoft Word, Microsoft Excel - > 10000 KLOC suuret järjestelmät 24h/vrk, 7 pv/vkko RT interaktiivinen kriittinen ryhmätyö tuotteet 10-50 kloc "Serious" programs 1997 2000 The TheAI AIsystem systemcyc encompasses encompasses more more than than 1.4 1.4 million million assertions, assertions, has has consumed consumed some some $50 $50 million million and and500 500 person-years person-years of of development development effort effort 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 14

Mutta... Mikä ei ole muuttunut : ohjelmistoissa on vakavia laatuongelmia ohjelmistotyön tuottavuus on alhainen onnistuminen riippuu ratkaisevasti projektiin osallistuvien ammattitaidosta ohjelmistokehitys on ratkaisevasti kalliimpaa ja hitaampaa kuin osataan ennakoida 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 15

Osaamisalueet Tekniikka Tuotantoprosessi Sovellusalue Painotukseen vaikuttavat projektin koko sovelluksen luonne laatuvaatimukset tehtävän selkeys... 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 16

Motto If you always do what you always did, you ll always get what you always got anon Lesson learned: Parhaiten onnistuvat ne, jotka eivät luota liikaa viimeisimpiin poppakonsteihin, mutta ovat silti valmiita kokeilemaan uusia ideoita Weinberg 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 17

Tuotantoprosessi...ohjelmistojen tuotantoprosessi on vaiheittainen kuvaus käyttäjien tarpeista toimivaksi järjestelmäksi Haikala&Märijärvi, s.1. Exit

Järjestelmän kehitysvaiheet vaatimukset ja määrittely suunnittelu ja ja toteutus testaus ja ja integrointi Development Development Life Life Cycles Cycles (Murphy (Murphy 1): 1): Order Order T-shirts T-shirts Announce Announce delivery delivery date date Write Write manuals manuals Write Write software software Hire Hire product product manager manager Write Write specifications specifications Ship Ship Test Test Sack Sack the the manager, manager, announce announce uppgrade uppgrade Mikään Mikäänei eikorvaa ratkaistavan ratkaistavanongelman perusteellista perusteellistaymmärtämistä tarpeet tyydyttävä ratkaisu 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 19

Ohjelmistoprojekti tarpeet, ideat, vaatimukset, reunaehdot Projekti Development Development Life Life Cycles Cycles (Murphy (Murphy 2): 2): Pick Pick Code Code Name Name Change Change Code Code Name Name Leak Leak Old Old Code Code Name Name Claim Claim compatibility compatibility Write Write Software Software Develop Develop Technical Technical Design Design Ship Ship Blame Blame developers developers tietojärjestelmä The Software Project Manager's handbook 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 20

Kehitysprosessin vaiheet Määrittely Tuote asiakkaan kannalta Arkkitehtuurisuunnittelu Jako moduuleiksi, rajapintojen määrittely Moduulisuunnittelu Moduulien suunnittelu ja toteutus 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 21

Prosessimalli Liiketoiminta, johtaminen Laatujärjestelmä Hankkeiden hallinta (tuotteen tasolla) Projektinhallinta Projektinhallinta Projektinhallinta ohjelmointi suunnittelu testaus määrittely käyttöönotto, ylläpito tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta... 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 22

Vesiputousmalli Esitutkimus Mikä on ratkaistava ongelma, onko ratkaisua olemassa, mitä se saa maksaa, mitä reunaehtoja sillä on... Määrittely Millainen järjestelmä täyttää ongelman vaatimukset Suunnittelu Miten järjestelmä toteutetaan, järjestelmän osittaminen Toteutus Osien ohjelmointi Integrointi ja testaus Osien yhteenliittäminen Käyttöönotto ja ylläpito Määrittelyprojekti Toteutusprojekti Software Lifecycles 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 23

Toimintatapa Laatujärjestelmä määrittelee yrityksen tavan toimia Toiminta voidaan mallintaa tarkastelemalla yrityksen toimintaprosesseja, joihin ohjelmiston tuotantoprosessi liittyy Määrittely- ja suunnittelumenetelmä kattaa yleensä vain pienen osan koko prosessia Esimerkki laatukäsikirjasta (HYTT) 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 24

Overflow Oy:n asiakasprosessi Palaute Overflow Oy resurssit, ideat neuvottelut/ valmistelu projekti tai hanke asettaminen käyttöönotto käyttö asiakas tarpeet tehtävää koskevat asiakirjat tuotekansio 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 25

Ohjelmiston tuotantoprosessi Ohjeistukset -Projektiohje - Määrittelyohje - Tarkastusohje alustava projektisuunnitelma - Suunnitteluohje - Ohjelmointiohje - Testausohje loppuraportti määrittely tarkastukset Työn vaiheistus järjestelmätestaussuunnitelma suunnittelu tarkastukset ohjelmointi tarkastukset integrointitestaus järjestelmätestaus projektin käynnistäminen projektin päättäminen toiminallinen määrittely tekninen määrittely ohjelmakoodi testausraportti määrittelykatselmus hyväksymiskatselmus Katselmukset suunnittelukatselmus Pöytäkirjat Projektisuunnittelu, seuranta ja ohjaus tarkennettu projektisuunnitelma kokouspöytäkirjat 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 26

OMT-prosessi Vaatimusten kartoittaminen Feasibility Study -vaatimukset -käyttötapaukset olioanalyysi käyttäytymisanalyysi kälimäärittely kälitehtävien määrittely ohjelmalohkon määrittely User Interface Specification - dialogikaaviot (tilakaaviot) - tehtäväkuvaukset (tapahtumasekvenssikaaviot) olioiden suunnittelu ohjelmalohkon rajapintamäärittely käyttäytymisen suunnittelu luokkamäärittely luokkien toteutus Program Block Technical Specification -suunnittelun oliomallit -suunnittelun tapahtumasekvenssikaaviot testaus Vaiheiden eteneminen - normaalisti peräkkäistä -myös o rinnakkaista o iteratiivista Service Block Functional Specification - analyysin oliomalli - operaatiokuvaukset (tapahtumasekvenssikaaviot) Service Block Technical Specification -ohjelmalohkojen rajapinnat -ohjelmalohkojen kommunikointikaaviot (tapahtumasekvenssikaaviot) Ohjemakoodi -luokkamäärittely -luokkien toteutus 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 27

Rationaalinen tuotantoprosessi Todellisuus ei vastaa koskaan laatukäsikirjan ja oppikirjojen siloiteltuja prosessimalleja. Miksi prosessimalleja tarvitaan? rationaalinen prosessi antaa kuitenkin ohjeita siitä, mitä missäkin vaiheessa pitää tehdä ihmisten on helpompi siirtyä projektista toiseen jos projektien toimintatavat muistuttavat toisiaan ja dokumentaation on kunnossa kun tiedetään mitä prosessissa pitää tapahtua, tulee ulkopuolinen seuranta helpommaksi ulkopuolisen arvioijan on helpompi arvioida projektin tilannetta 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 28

Mikä on todellisuus? No No matter where you you are arein in the the system development life life cycle, the the system will will change, and and the the desire to to change will will persist troughout the the life life cycle. [Bersoff et et al. al. 1980] The The top top five five causes for for poor poor cost cost estimation all all relate to to the the requirements process 1. 1. Frequent requirements changes 2. 2. missing requirements 3. 3. insufficient communication with users 4. 4. poor poor specification requirements 5. 5. insufficient analysis [Lederer & Prasad 1992] Murphy's Murphy's Law Law of of Software Software Development: Development: Blessed Blessed is is the the end end user user who who expects expects nothing, nothing, for for he/she he/she will will not notbe be disappointed. disappointed. 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 29

Vain muutos on pysyvää Exit

Vain muutos on pysyvää, koska Kaikkia asiakasvaatimuksia ei välttämättä ymmärretä oikein projektin alkuvaiheessa Asikasvaatimuksia voi jäädä huomaamatta Ohjelmiston toimintaympäristössä voi tapahtua muutoksia projektin aikana (asiakkaan toimintatavat, laitteisto, ohjelmistot,...) Jonkin asiakasvaatimuksen täyttämiseksi määritelty ominaisuus osoittautuu syystä tai toisesta käyttökelvottomaksi Aikataulupaineista johtuen jokin ominaisuus jätetään toteuttamatta 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 31

... Kilpailija julkistaa kehitysprojektin aikana uuden tuotteen Markkinatilanteen muuttumiseen reagoidaan muuttamalla ja lisäämällä vaatimuksia Projektin alkuvaiheessa on tehty teknologiavalintoja, jotka hallitsevassa markkinaasemassa olevan teknologiatoimittajan suunnanmuutosten johdosta osoittautuvat epäonnistuneiksi... 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 32

Iteratiivinen kehitysmalli Määrittely Määrittely Määrittely... Suunnittelu Suunnittelu Suunnittelu Toteutus Toteutus Toteutus Testaus Testaus Testaus Versio 1 Versio 2 Versio 3 onnistuneen tuotekonseptin tärkeys: tuotteistettavissa ja samalla mukautettavissa asiakkaan vaatimuksiin asiakasvaatimusten ja muutosten hallinta => tuotekonsepti pysyy eheänä muutoksesta huolimatta on varauduttava tekemään asioita uudestaan 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 33

Asiakasvaatimusten analysointi, priorisointi ja hallinta Alustavat asiakasvaatimukset Vaatimustenhallinta: kartoitus, analysointi, jäljitettävyys, muutokset Vaatimukset Hallitut muutokset Kelpuutetut 1 5 Myöhempään versioon Toiminto 1 Toiminto 2 3 8 7 6 Toiminto 3 Hylätty 4 Analysoidut vaatimukset 2 2 ominaisuus 1 2 1 5 ominaisuus 2 Ohjelmistovaatimukset: Järjestelmän toiminnallinen määrittely moduuli a 1 moduuli b moduuli c 2 moduuli d moduuli e moduuli f Järjestelmän tekninen määrittely 2 1 5 25 5 5 2 5 1 5 1 1 2 5 5 1 2 5 5 2 2 2 1 1 1 5 1 1 2 5 5 2 2 2 1 2 1 1 Toteutettu järjestelmä 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 34 5 2 5 1 2 2 2 5 2 1 5 5

Kustannusten syntyminen It's It's morally morally wrong wrong to to allow allow naive naive end end users users to to keep keep their their money. money. Murphy's Murphy's Laws Laws of of Software Software Development Development Exit

rest Kustannusten syntyminen Infrastructure - 7 % Human resource management - 3% 1% Technology Development - 3% 5% 1% Management - 7% Quality assurance, configuration. management 5% Marketing and sales Inbound Logistic 1% 4% 3% preliminary design 8% 5% 8% 13% rework detailed code and integration design unit test and test 11% 8% 7% Outbound logistics Service Margin Boehm 1987 Operations 80% 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 36

Kustannusten jakautuminen, määrittely vaatimukset suunnittelu 5% 3% 7% koodaus 6% moduulitestaus 7% integrointi 6% 67% ylläpito Johtopäätös: Hankintahinta on vain alku tuleville kustannuksille Schach 1999 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 37

Virhekustannusten lumivyöryefekti Virheiten korjauskustannusten kerroin 35 30 25 20 15 10 5 0 määrittelyvirheet suunnitteluvirheet määrittely suunnittelu moduulisuunnittelutestaus hyväksymistestaus Virhe on kalliimpi korjata myöhemmin kuin lähellä syntyhetkeä Johtopäätös: Huolelliseen määrittelyyn tarkastuksiin kannattaa uhrata aikaa 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 38

Määrittelyn ongelmat ja riskit Exit

Top Risks, USA Avainhenkilö vaihtaa työpaikkaa Epärealistiset aikataulut ja budjetit Kehitetään ohjelmistoon vääriä toimintoja ja turhia piirteitä Huono käyttöliittymä Muutokset määrittelyssä Ongelmat muualta hankituissa komponenteissa ja/tai palveluissa Tekniset ongelmat (suoritusteho, reaaliaikaisuus, muistitila) Boehm 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 40

Epäonnistumiset case study Miten : aikataulu petti kustannukset ylittyivät asiakas tyytymätön tuotteeseen (ei vastaa tavoitteita, liiketaloudelliset menetykset) jälkihoidon suuri työmäärä Johtopäätös: syyt ongelmiin eivät juuri koskaan ole teknisiä, vaan liittyvät ihmisiin, organisaatioon ja projektin johtamiseen Miksi : työmääräarvio virheellinen määrittely puutteellinen muutosvastarinta liian suuri projekti asiakkaan / toimittajan asiantuntemattomuus suunnittelematon käyttöönotto henkilöstövaihtuvuus huono projektipäällikkö ongelmat työvälineissä / laitteissa The Risks Digest 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 41

Epäonnistumiset a case study Mars Climate Orbiter: due to a conversion error in which commands to the spacecraft were sent in English units rather than metric units, the spacecraft entered the atmosphere at too low altitude which led to the destruction of the spacecraft; the combined cost of losses was 327.6 million dollars some communications channels among project engineering groups were too informal ( e. g. not documented! ) the small mission navigation team was oversubscribed and its work did not receive peer review by independent experts no review ( e. g. verification), insufficient training informal processes in place, formal processes ignored Mission and Operations - 42.8 million unofficially, the problem had been detected but due to politics a fix was never deployed Some disasters caused by numerical errors 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 42

Epäonnistumiset a case study Explosion of the Ariane 5: On June 4, 1996 an unmanned Ariane 5 rocket launched by the European Space Agency exploded just forty seconds after lift-off. The rocket was on its first voyage, after a decade of development costing $7 billion. The destroyed rocket and its cargo were valued at $500 million. The cause of the failure was a software error: a 64 bit floating point number was converted to a 16 bit signed integer, but the number was larger than the largest integer storeable in a 16 bit signed integer, and thus the conversion failed. The error occurred in a software system that was not needed during launch! it was an inappropriate reuse of a 10- year old software component exception handlers had been placed around 4 of 7 variables; unfortunately, the data conversion error occurred in one of the 3 variables, which were left unprotected, since exception handling code makes the system slower A Bug and a Crash 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 43

Ohjelmistotyö on kommunikointia Menetelmät, kuvaustekniikat käyttäjien tarpeet, ideat, rajoitukset reunaehdot mitä esitutkimus määrittely miten mitä miten mitä miten mitä miten mitä toiminnallinen määrittely tekninen määrittely asiakasvaatimukset arkkitehtuurisuunnittelu moduulisuunnittelu moduulisuunnitelmat verifiointi verifiointi verifiointi verifiointi hyväksymistestaus järjestelmätestaus integrointitestaus moduulitestaus ohjelmointi miten ohjelmakoodi verifiointi 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 44

... Ohjelmistojen tuottaminen on spesifikaatioiden tuottamista, so. asioiden määrittelyä Spesifikaatioiden kommunikoimiseksi tarvitaan» luonnollista kieltä» kuvaustekniikoita» sopimuksia Menetelmät ohjeistavat spesifikaatioiden tuottamista 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 45

Lisää pohdintaa Tämän päivän tietotekniikka Exit

Keskeisiä kehityskulkuja Hajautetut ratkaisut» tietoliikenne olennainen osa järjestelmiä Langattomien ratkaisuiden merkitys kasvaa» useita rinnakkaisia ratkaisuita Yhteistoiminnallisuus ja sovellusten integroituminen - myös laitetasolla» välillinen seuraus: riippuvuus vaikutusmahdollisuuksien ulkopuolella olevista ratkaisuista Tietotekniikka integroituu ympäristöön 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 47

Tulevaisuutta? Andy Grove, Intelin pääjohtaja (1998) : [klikkaa kuvaa] http://www.bluetooth.com Vaikutukset järjestelmäkehitykseen? 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 48

Kertauskysymykset Mitä ominaispiirteitä odotetaan ohjelmistotyön ammattilaiselta. Ohjelmistojen jaottelu niiden käyttökohteen mukaan. Miten käyttökohde vaikutta ohjelmistotyöhön. Miten eroavat toisistaan tuotantoprosessin näkökulmasta ohjelmistot, joiden koko on 100 LOC, 1 kloc, 10 kloc, 100 kloc, 1 MLOC. Ohjelmistotyön keskeiset ongelmat. Ohjelmistotyön prosessimallin keskeiset osat ja niiden rooli työn kokonaisuudessa. Mikä on laatukäsikirja. Mitä ongelmia liittyy asiakasvaatimusten kartoittamiseen. Mikä on vesiputousmallin ja iteratiivisen kehitysmallin ero kehitystyön organisoinnin näkökulmasta. Ohjelmistotyö on kommunikointia. Mitä tämä tarkoittaa ja miten kommunikointi hoidetaan. Johdannon viimeisellä kalvolla on esitelty eräitä ohjelmistoille tyypillisiä kehityskulkuja. Miten nämä vaikuttavat ohjelmistotyöhön. Suomessa ohelmistoteollisuus on voimakkaasti kasvava liiketoiminnan alue. 1990-luvulla ohjelmistovienti tapahtui pitkälti erilaisten tietoliikennetuotteiden muodossa ja edelleenkin tämä tuotannon ja viennin sektori on selkeästi eri suuruusluokassa kuin tavanomainen ohjelmistotuotteiden vienti. Mitä tämä vaikuttaa ohjelmistotyön luonteeseen. Ohjelmistoliiketoiminta on pienyritysvaltainen toimiala, jolle ominaista on verkottuminen ja alihankintarakenteiden kehittyminen. Pohdi miten ohjelmistotyön ja liiketoiminnan näkökulmasta toimiminen alihankkijana eroaa itsenäisesti ohjelmistotyötä tekevän yrityksen toiminnasta. 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 49

kertauskysymykset Termi software industrialization tarkoittaa sitä, että ohjelmistoja aletaan tuottaa teollisten tuotteiden kaltaisesti. Käytännön ilmentymänä on mm. se, että ohjelmistotuotteen osia ostetaan ja myydään kuten mitä tahansa kauppatavaraa. On olemassa yrityksiä, jotka ovat erikoistuneita tuottamaan ohjelmistoja, siihen liittyviä rakenteita ja ohjelmiston osia toisten tarpeita varten. Mitä tällainen toimintamuoto vaikuttaa ohjelmistoliiketoimintaan eri näkökulmista asiaa tarkastellen. Ylläpitotyö aiheuttaa tilastojen mukaan noin 2/3 ohjelmiston elinkaaren aikaisista kokonaiskustannuksista. Millä tavalla ohjelmistotyössä voidaan vaikuttaa näiden kustannusten pienentämiseen. Millä keinoilla ohjelmistoyritys voi alentaa virheistä aiheutuvien kokonaiskustannusten suuruutta. Vertaile eri keinoja vaikutusten näkökulmasta toisiinsa. Arvioi myös sitä, miten ohjelmiston elinkaaren eri vaiheissa tehdyt toimenpiteet vaikjuttavat näihin kustannuksiin. Johdannon lopussa on pieni videoleike. Luettele siinä esiintyviä teknologia ja tietojärjestelmäratkaisuita ja arvioi mitä ongelmia niiden tekemiseen liittyy. Miten nämä ongelmat voidaan ratkaista ohjelmistotyössä. Ohjelmistoliiketoiminta kansainvälistyy. Työtä voidaan ostaa ja on tarjolla eri puolilla maailmaa. Mitä tämä merkitsee ohjelmistotyötä ostavan yrityksen toiminnan käytäntöihin. 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 50

kertauskysymykset Tutki Internetissä saatavissa olevaa aineistoa käyttäen suomalaisen tietoteollisuuden luonnetta tarkentaen kurssimateriaalin esitystä. Hyviä lähteitä työlle ovat esimerkiksi tilastokeskuksen verkkosivut (http://www.tilastokeskus.fi) tietoviikon katsaukset (http://www.tietoviikko.fi) sähkö- ja elektroniikkateollisuusliiton verkkosivut (http://www.electroind.fi) tietotekniikan kehittämiskeskuksen tietoyhteiskuntasivut (http://www.tieke.fi) Sitran tietoyhteiskuntasivut (http://www.sitra.fi) tidotusporttaalin verkkosivu (http://www.digitoday.fi) Laadi aiheesta lyhyt tutkielma pohtien alan kehitystä, kansantaloudellista merkitystä, työllisyysvaikutuksia (sekä välittömät että välilliset), alan tuotavuutta, palkkakehitystä, yrityskannan rakennetta toimialapohjaisesti jne. 11/04/2002 Exit "Ohjelmistotuotanto", Hannu Jaakkola 51