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

Samankaltaiset tiedostot
2. Ohjelmistotuotantoprosessi

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen suunnittelu

Ohjelmistotuotanto

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30

Tietojärjestelmän osat

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

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

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistotekniikka - Luento 2

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

1. Johdanto. Ohjelmistotuotannon piirteitä

Oleelliset vaikeudet OT:ssa 1/2

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

1. Johdanto. Ohjelmistotuotannon ongelmia

ITK130 Ohjelmistoprosessi

Ohjelmistoprosessit ja ohjelmistojen laatu kevät Suunnitelmakeskeiset prosessit (lukuisia lähteitä)

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Ohjelmistotuotanto

Suunnitteluvaihe prosessissa

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Kurssin aihepiiri: ohjelmistotuotannon alkeita

OT-s200: Prosessimallit

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmiston testaus ja laatu. Testaustasot

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

10. Tarkastukset. Tarkastusten rakenne

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi

Ylläpito. Ylläpidon lajeja

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Standardi IEC Ohjelmisto

Ohjelmistoprosessi. Ohjelmistotuotanto. Yleiset ohjelmistotuotannon osatehtävät. Ohjelmistoprosessimalli. Vaihejaon ominaispiirteitä

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

Tutkittua tietoa. Tutkittua tietoa 1

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

6. Suunnittelu. Suunnittelun tulos

ELM GROUP 04. Teemu Laakso Henrik Talarmo

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

Test-Driven Development

Ohjelmistojen mallintaminen. Matti Luukkainen

Vaatimustenhallinta. Exit

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Testaaminen ohjelmiston kehitysprosessin aikana

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kontrollipolkujen määrä

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

7. Verifiointi ja validointi

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

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

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.

Hieman lisää malleista ja niiden hyödyntämisestä

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttötapausanalyysi ja testaus tsoft

Johdantoluento. Ohjelmien ylläpito

Projektityö

Projektisuunnitelma Nero-ryhmä

Projektityö

Automaattinen yksikkötestaus

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Test-Driven Development

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

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

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

Johdatus ohjelmistotuotantoon

Projektin suunnittelu

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

Käyttäjäkeskeinen suunnittelu

OS AUTOMATION OY. 7DYRLWH

Ohjelmiston toteutussuunnitelma

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Turvakriittisen projektin menetelmät ja työkalut

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Ohjelmistotuotanto, s

Ohjelmistotuotanto s

Tietorakenteet ja algoritmit - syksy

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Transkriptio:

2. Ohjelmistotuotantoprosessi peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa tehdä ohjelmistoja projekti: prosessin ilmentymä: tietyn ohjelmiston laatiminen alusta loppuun Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 1 Prosessimalli pelkän yleisperiaatteen kuvaus ei sisällä konkreettisia yksityiskohtaisia toimintasääntöjä voidaan käyttää eri organisaatioissa ja sovellusalueilla yrityskohtaiset prosessi(malli)t yleensä perustuvat johonkin seuraavassa esiteltävistä yleisistä prosessimalleista Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 2 Prosessimallin vaihejako Prosessimallien perustehtävät prosessimalli sisältää vaiheita: yleensä ennalta määrätty järjestys osavaihe tuottaa määritellyn tuloksen vaiheen tulos on syötteenä toiselle vaiheelle vaiheen valmistumiselle kriteerit vaihejako voi perustua: tehtävän tyyppiin (esim. määrittely, suunnittelu, ) vaiheen sisältöön (esim. käyttöliittymä, tietokanta, ) eri prosessimallit rajoittavat eri tavoin vaiheiden ajoitusta jokaiseen prosessimalliin sisältyy tavalla tai toisella seuraavat perustehtävät: ohjelmiston määrittely ohjelmiston suunnittelu ja toteutus ohjelmiston verifiointi ja validointi ohjelmiston ylläpito eri malleissa näiden ajoitus voi erota Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 3 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 4 Ohjelmiston määrittely Ohjelmiston määrittely mitä vaatimuksia ohjelmistolle asetetaan: mitä toimintoja sen pitää sisältää liittyykö toimintaan laadullisia vaatimuksia (esim. nopeuden tai käyttötavan suhteen) mitä rajoituksia ohjelmiston toimintaan liittyy: esim. yhteistoiminta muiden ohjelmistojen kanssa Feasibility study Feasibility report elicitation and System models User and system requirements validation document Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 5 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 6 Taina, Verkamo 1

Ohjelmiston määrittely tarvitaanko uutta ohjelmistoa? jos markkinoilla on jo jokin vastaava tuote, projekti voi päättyä tähän tiedon keruu vanhat järjestelmät, käyttäjät, vaatimusten täsmentäminen vaatimusten kelpoistaminen realistisuus, riittävyys, ristiriidattomuus Ohjelmiston suunnittelu ja toteutus lähtökohtana määrittely laaditaan määrittelyn toteuttava ohjelmisto yleensä toteutusta edeltää suunnittelu, jossa ohjelma jaetaan osiin ja kuvataan täsmällisesti toteutusta varten eräissä prosessimalleissa määrittelyä tarkennetaan suunnittelun aikana Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 7 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 8 Ohjelmiston suunnittelu () Ohjelmiston suunnittelu Architectural Abstract System Software architecture Design activities Interface Component Interface Component Design products Data structure Data structure Algorithm Algorithm suunnitellaan kokonaisrakenne (ohjelmistoarkkitehtuuri) kunkin osajärjestelmän tehtävät osajärjestelmien rajapinnat kunkin osajärjestelmän rakenne tietorakenteet algoritmit Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 9 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 10 Suunnittelumenetelmät suunnittelu sisältää runsaasti yksityiskohtaista työtä systemaattinen suunnittelu: rakenteiset menetelmät käyttävät usein jotakin graafista esitystä menetelmien tueksi on usein saatavilla CASE-työkaluja Toteutus toteutus perustuu suunnitelmaan usein voidaan käyttää CASE työkaluja ja vanhoja ohjelmia usein toteutuksen osana on myös ohjelmakoodin virheiden jäljitys ja poisto Locate error Design error repair Repair error Re-test program Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 11 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 12 Taina, Verkamo 2

Ohjelmiston kelpoistaminen Ohjelmiston testaus verifiointi: ohjelmisto toimii virheettömästi validointi: ohjelmisto toteuttaa asetetut vaatimukset useita erityyppisiä tekniikoita, jotka sopivat elinkaaren eri vaiheisiin testaus katselmointi Unit Component Module Sub-system Integration System Acceptance User Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 13 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 14 Ohjelmiston testaus Ohjelmiston evoluutio (ylläpito) yksikkötestaus pieni kokonaisuus testataan yksinään moduulitestaus alijärjestelmätestaus järjestelmätestaus hyväksymistestaus asiakkaan toimittamalla aineistolla testataan erisuuruisia osakokonaisuuksia pienemmistä suurempiin ohjelmistoa on usein tarvetta muuttaa myöhemminkin: käytössä paljastuu virheitä käyttäjien vaatimukset täsmentyvät tai muuttuvat käyttöympäristö ja laitteisto muuttuvat käyttötavat muuttuvat ylläpito = ohjelmiston muuttaminen käyttöönoton jälkeen Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 15 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 16 Ohjelmiston evoluutio Ohjelmiston evoluutio Define system requirements Existing systems Assess existing systems Propose system changes Modify systems New system kukin ylläpitotehtävä on itse asiassa verrattavissa uuteen (pienimuotoiseen?) ohjelmiston tekoon ylläpidon lähtökohtana vanha ohjelmisto uudet vaatimukset (suuret) ylläpitotoimet toteutetaan usein omana projektinaan Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 17 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 18 Taina, Verkamo 3

Tunnetuimmat prosessimallit vesiputousmalli evoluutiomalli formaalit menetelmät iteratiiviset mallit lisäysmalli spiraalimalli kevyet prosessit 2.1. Vesiputousmalli vanhin ja tunnetuin prosessimalli lineaarinen lähestymistapa: jo päätettyyn vaiheeseen ei enää palata myöhemmin jokainen vaihe saatetaan loppuun, sen tulokset hyväksytään ja jäädytetään ennen seuraavaan vaiheeseen siirtymistä vaiheet = prosessimallin perustehtävät Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 19 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 20 Vesiputousmallin vaiheet Vesiputousmallin vaiheet Vaatimusanalyysi Suunnittelu Toteutus Ylläpito Dokumentointi Testaus 1. Vaatimusanalyysi mitkä ovat järjestelmän palvelut rajoitukset tavoitteet? laaditaan ohjelmistoa kuvaava malli, jonka avulla voidaan tarkistaa vaatimusten järkevyys 2. Suunnittelu tarkennetaan vaatimusanalyysissa laadittua mallia: osajärjestelmät ja niiden välinen yhteistyö tarkennetaan jokainen osajärjestelmä halutulle abstraktiotasolle asti riittävä tarkkuus toteutuksen pohjaksi Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 21 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 22 Vesiputousmallin vaiheet 3. Toteutus (+yksikkötestaus) suunnitelma toteutetaan osa kerrallaan eri osat voidaan tehdä eri ohjelmointikielillä kukin osa (yksikkö) testataan toteutuksen jälkeen yksikkötestauksen menetelmät Malli perustuu vahvasti hyvään dokumentaatioon. 4. Integrointi ja testaus toimivista osista kootaan osajärjestelmiä ja näistä edelleen koko järjestelmä integrointitestaus: rajapintojen toimivuus koko järjestelmän verifiointi (selvitetään, että se toimii) ja validointi (selvitetään, että se tekee mitä halutaan) 5. Ylläpito käyttöönotto korjaukset, laajennokset Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 23 2.2 Evoluutiomalli tavoitteena ohjelmiston kehittäminen vähitellen väliversioiden kautta: väliversiot ovat joko tuotantokäytössä olevia ohjelmia tai prototyyppejä aloitetaan parhaimmin ymmärretyistä osista käyttäjä antaa palautetta väliversioista palautteen perusteella jatketaan kehitystä Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 24 Taina, Verkamo 4

Evoluutiomallin vaiheet Evoluutiomallin edut Yleiskuvaus Määrittely Kehitystyö Validointi 1. Proto Väliproto Väliproto Valmis tuote nopea reagointi asiakkaan tarpeisiin: vaatimusten täsmällinen määrittäminen on usein vaikeaa kun asiakas näkee toimivan järjestelmän, hänen on helpompi kertoa mitä hän tahtoo väärinkäsitykset korjataan nopeammin = korjaus ei tule niin kalliiksi käyttöliittymä koko ajan näkyvillä: käyttö on helpompi oppia? Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 25 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 26 Evoluutiomallin ongelmat etenemisen seuranta: milloin tuote oikeastaan on valmis? rakenteelliset ongelmat: jatkuvat muutokset voivat rikkoa suunnitellun arkkitehtuurin työvälineiden tarve (sovelluskehitin): prototyyppien tekeminen vaatii sopivat välineet (ja taidon käyttää niitä) Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 27 Mitä prototyypille tehdään prototyypin hylkääminen tarkoituksena tarkentaa asiakkaan toiveita ja vaatimuksia prototyypin kehittäminen eteenpäin tarkoituksena esitellä asiakkaalle ydinohjelmisto tai jokin ydinohjelmistoon liitetty aputoiminto asiakkaan voi olla vaikeaa ymmärtää, miksi prototyyppi ei kelpaa lopputuotteeksi prototyyppi = esitoteutus ei täytä laadukkaalle ohjelmistolle asetettavia vaatimuksia Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 28 2.3 Formaalit menetelmät P(α 2) +Σφ s ω Formaalit menetelmät P(α 2) +Σφ s ω vastaavat vaiheet kuin vesiputousmallissa perustuu matemaattiseen malliin, jonka avulla määrittely muunnetaan ohjelmaksi ohjelman kehitys tapahtuu peräkkäisten muunnosten sarjana tarkkenevat esitysmuodot ohjelma voidaan todistaa oikeaksi mallien avulla: lähtien ohjelmasta taaksepäin osoitetaan, että kunkin muunnoksen tulos vastaa yksikäsitteisesti syötettä Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 29 jos löydetään sopiva formalismi, menetelmä on erinomainen sopivia malleja on kehitetty vain eräille pienille hyvin määritellyille ongelma-alueille tiukat turvallisuus- ja luotettavuusvaatimukset uuden mallin kehittäminen: kallista vaatii suurta ammattitaitoa mallit ovat usein vaikeita ymmärtää ja selittää asiakkaille Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 30 Taina, Verkamo 5

2.4 Iteratiiviset mallit Lisäävä malli todellisissa ohjelmistoprojekteissa tarvitaan iterointia, koska vaatimuksia ei tunneta kunnolla vaatimukset ovat epäselviä vaatimukset muuttuvat iteratiivisissa malleissa vaatimusten määrittely ja ohjelmiston kehitys limittyvät ohjelmisto jaetaan osiin jotka toteutetaan omina sykleinään ensiksi ydin, johon seuraavien syklien tulokset voidaan liittää vain yhden syklin vaatimukset kerrallaan toteuttamattomien syklien vaatimukset voivat muuttua vaatimusten prioriteettijärjestys: tärkeimmät vaatimukset ytimeen seuraavissa sykleissä vähemmän tärkeät vaatimukset pyrkii yhdistämään vesiputousmallin ja evoluutiomallin edut: hyvin määritelty rakenne eteneminen versioittain Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 31 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 32 Spiraalimalli Spiraalimalliesimerkki kukin spiraalin kierros esittää yhtä prosessin työvaihetta neljä sektoria: tehtävän asetus = tavoite ja aikataulu riskianalyysi = mitkä ovat tärkeimmät riskit kehitystyö ja validointi suunnittelu = tuloksen arviointi ja seuraavan vaiheen suunnittelu ei kiinteitä tehtäviä kussakin kierroksessa voidaan käyttää muita prosessimalleja esim. 1. kierros = vaatimusanalyysi prototyyppejä käyttäen 2. kierros suunnittelu vesiputousmallina sopii myös ylläpitoon Determine objectives alternatives and constraints Plan next phase Kuvalla (C) I. Sommerville 2000 REVIEW plan Life-cycle plan Development plan Integration and test plan Prototype 2 Prototype 1 Prototype 3 Operational protoype Simulations, models, benchmarks Concept of Operation S/W requirements Product Detailed Requirement validation Code Design V&V Service Acceptance test Integration test Evaluate alternatives identify, resolve risks Unit test Develop, verify next-level product Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 33 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 34 Kevyet prosessit XP:n ominaisuuksia kehitetään ohjelmaa hyvin pieninä lisäyksinä aluksi pieni ydin lisätään sykli kerrallaan mahdollisimman pieni järkevä joukko ominaisuuksia toteutusjärjestys määräytyy asiakkaiden tarpeista joustavuus: projektia suunnitellaan vain mahdollisimman lyhyt aika eteenpäin dokumentaatio = koodi tunnetuin kevyt prosessimalli: Extreme programming (XP) käyttäjätarinat minimaaliset syklit kevyt toteutus, ei mitään liikaa refaktorointi = koodin jatkuva korjaaminen testauslähtöinen toteutus pariohjelmointi kaikki koodi on yhteistä jatkuva integrointi 40-tuntinen työviikko asiakas on jatkuvasti mukana työryhmässä yhteiset koodausstandardit Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 35 Syksy 2004 Ohjelmistotuotanto / Taina, Verkamo 36 Taina, Verkamo 6