ITK130 Ohjelmistoprosessi

Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

OT-s200: Prosessimallit

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

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

Oleelliset vaikeudet OT:ssa 1/2

2. Ohjelmistotuotantoprosessi

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

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

Johdantoluento. Ohjelmien ylläpito

ITK130 Ohjelmistojen luonne

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

Ohjelmistojen suunnittelu

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

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

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

Software engineering

Projektityö

Tietojärjestelmän osat

Projektin suunnittelu

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Lyhyt johdatus ketterään testaukseen

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Yhteenveto. Menettelytavat

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

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

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

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

Tapahtuipa Testaajalle...

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

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

Tutkittua tietoa. Tutkittua tietoa 1

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

13/20: Kierrätys kannattaa koodaamisessakin

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

Ohjelmistoarkkitehtuurit. Syksy 2010

Unified Process (UP)

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

Avoimen ja yhteisen rajapinnan hallintamalli

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

Johdatusta ohjelmistotekniikkaan

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistoarkkitehtuurit. Kevät

Onnistunut ohjelmistoprojekti

Standardi IEC Ohjelmisto

Työkalut ohjelmistokehityksen tukena

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

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

Mitä on ohjelmistotuotanto?

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Projektityö

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Onnistunut ohjelmistoprojekti

ja -kehitysmenetelmistä Jyri Partanen, QA Manager Sulake Corporation

käyttötapaukset mod. testaus

Suunnitteluvaihe prosessissa

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelmistoarkkitehtuurit. Syksy 2008

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

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Ohjelmistotuotteen hallinnasta

Ohjelmistoarkkitehtuurit, syksy

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

Millainen on menestyvä digitaalinen palvelu?

7. Tuoterunkoarkkitehtuurit

1.3 Katsaus ohjelmistotuotannon kehittymiseen

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

POHJOIS-KARJALAN AMMATTIKORKEAKOULU

Finnaa arkistoille. Aki Lassila Arkistot

Tuotekehitys ja yrityksen laatujärjestelmä

OTM-HANKKEEN SIDOSRYHMÄSEMINAARI

Hankesuunnitelma. Novus-Hanke. Novus-Hanke. YYL:n tietojärjestelmien kokonaisuudistus HANKESUUNNITELMA. LIITE 1

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)

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

PROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu

Petteri Pyrrö OHJELMISTOTUOTANTOPROSESSIN KEHITTÄMINEN INFOMATES SOFTWARE TECHNOLOGIES OY:SSÄ

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

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Transkriptio:

ITK130 Ohjelmistoprosessi Ohjelmistotuotteen elinkaari Ohjelmistoprosessimalli Koodaa ja korjaa Miksi ohjelmistoprosesseja? Prosessimallin tavoitteet Prosessi ongelmaratkaisuna Prosessi, musta laatikko Prosessi, valkoinen laatikko Ohjelmistoprosessi Ohjelmistoprosessimallin määrittely Tukitoiminnot/ Sateenkaaritehtävät Luennon sisältö Ohjelmistotuotannon osatehtävät Mitä? Vaatimusten hallinta Miten? Suunnittelu, koodaus ja testaus Muutos Käyttöönotto ja ylläpito Ohjelmistoprosessimallityypit Vesiputousmallit Inkrementaaliset mallit Muita prosessimalleja Pari esimerkkiä Projekti vs. prosessi

Ohjelmointi Tuotteen hallinta Työkalut Menetelmät Laatu Projektin hallinta Toteutus Suunnittelu Vaatimukset Testaus Ylläpito Ohjelmistotekniikka Prosessi (process) Ihmiset (people) Projekti (project) Tuote (product) Ohjelmistotuotteen elinkaari Vaiheittainen ideasta tuotteeksi kehittyminen Vaatimusten keräys ja analyysi Arkkitehtuurisuunnittelu ja määrittely Koodaus ja testaus Toimitus ja käyttöönotto Ylläpito ja kehittäminen Käytöstä poistaminen

Ohjelmistoprosessimalli Ohjelmistoprosessin tavoitteet Standardointi Ennustettavuus Tuottavuus Korkealaatuinen tuote Aika- ja aikataulubudjettivaatimusten suunnittelu Organisoidaan ohjelmistotuotteen elinkaari Määrittelemällä aktiviteetit jotka liittyvät ohjelmistojen tuotantoon Aktiviteettien järjestys ja niiden väliset suhteet Ensimmäinen prosessi Kirjoita koodi Koodaa ja korjaa Korjaa koodista kaikki huomatut viat, paranna toiminnallisuuksia tai lisää uusia toiminnallisuuksia Vaikeuksia Vaikea ennustaa Vaikea hallita Sopii hyvin pieniin ohjelmistoihin

Miksi ohjelmistoprosesseja? Ohjelmistotuotannossa on aloitettu puhumaan projekteista ja prosesseista samoihin aikoihin kuin ohjelmistotuotannosta ja sen kriisistä 1968 Kriisi: Ongelmia ohjelmistojen tuotannossa aikataulut eivät pitäneet kustannukset nousivat laajojen ohjelmistojen tuottaminen vaikeaa ohjelmistojen laatu oli huono mallia insinööritieteistä projektimuotoinen ohjelmistokehitys Ohjelmistojen koko ja ekonominen tärkeys vaativat prosesseja Prosessimallin tavoitteet (B. Boehm 1988) "determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions: What shall we do next? How long shall we continue to do it?"

Prosessi ongelmaratkaisuna Ongelman määritys Vallitseva tila Tekninen kehittämien Ratkaisun integrointi Prosessi, musta laatikko Informal Requirements Process Product Ongelmia Oletetaan, että vaatimukset ymmärretään täysin ennen kehitystä tuskin koskaan pitää paikkansa! Keskustelut asiakkaan kanssa tapahtuvat vain alussa (vaatimukset) ja lopussa (tuotteen jakelun jälkeen)

Prosessi, valkoinen laatikko Inform al Requirements Process Product feedback Etuja Riskit vähenee kun näkyvyys lisääntyy Sallii projektin muutokset projektin edistyessä Perustuu asiakkaan palautteeseen Ohjelmistoprosessi Prosessi määrittelee yleisesti Kuka tekee Mitä tekee Koska tekee Kuinka saavuttaa tavoitteet Ohjelmistotuotantoprosessi Ohjelmiston rakentamisen vaiheet ja niiden tulokset Ohjelmiston elinkaaren määrittely Yleisrakenne sille miten ohjelmisto tuotetaan Pääaktiviteettien suorittamiseen ei prosessi vaikuta vain niiden väliseen kytkentään

Ohjelmistoprosessimallin määrittely Sisältää ohjelmistotuotantoprosessin keskeiset osa-alueet Kuvaa osaprosessien suoritusjärjestyksen Määrittelee osavaiheiden keskinäiset vaikutussuhteet Ei konkreettisia yksityiskohtaisia toimintasääntöjä vaan pelkkä yleisrakenne Määrittelee osavaiheiden keskinäisiin rajapintoihin liittyvät toimenpiteet kuten dokumentointi, tarkastukset yms. Jokaisen vaiheen alku ja loppu on selvästi havaittavissa Prosessiin liittyy kaikille osavaiheille yhteisiä tukitoimenpiteitä Malli on yleinen -> sovellettavissa kaikkialle, mutta mukautettava organisaation tarpeisiin Tukitoiminnot / sateenvarjotehtävät dokumentointi laadunvarmistus tuotteen hallinta projektinhallinta formaalit tekniset tarkastukset konfiguraation hallinta- kokoonpanon hallinta uudelleenkäytön hallinta mittaaminen riskien hallinta

Ohjelmistotuotannon osatehtävät Esitutkimus Vaatimusten määrittely MITÄ? Suunnittelu Ohjelmointi Testaus MITEN? Käyttö ja Ylläpito MUUTOS MITÄ? - Vaatimusten hallinta Koostuu Löytäminen Ymmärtäminen Analysointi Määrittely Etsitään Mitä vaatimuksia tarvitaan ei miten ne saavutetaan Keskittyy Ymmärtämään sovelluksen ja ulkoisen maailman välisen rajapinnan Ymmärtää sovellusalueen Tunnistaa pääasialliset osakkaat ja ymmärtää odotukset Erilaisilla osakkailla on eri näkemykset Ohjelmistosuunnittelijan täytyy integroida ja sovittaa ne yhteen

Esimerkki1 rautateiden automatisointi Ketä asia koskee Junayhtiön hallintoa Junankuljettajia ja heidän liittoaan Matkustajia (asiakkaat) Alihankkijat Vaatimuksia ovat esimerkiksi Turvallisuusvaatimukset Onnettomuuksien todennäköisyys tulisi olla vähemmän kuin 10-9 vuodessa Hyödyllisyys Järjestelmän hyödyllisyyden asti kuten useat asianomistajat ovat ilmaisseet MITEN? Suunnittelu, koodaus, testaus Ohjelmistoarkkitehtuuri ja ohjelmistosuunnittelu Tuloksena suunnitteludokumentti Usein määritelty yrityksen standardissa Noudattaa esim. UML Koodaus ja moduulitestaus tietty koodaustyyli voi olla määritelty Integrointi ja järjestelmätestaus voidaan integroida inkrementaalisesti viimeisenä järjestelmätestaus (jonka jälkeen voi olla alfatestaus)

MUUTOS - Käyttöönotto, ylläpito Käyttöönotto Beetatestaus voi edeltää Ohjelmisto oikeaan ympäristöön Ylläpito Korjaava Mukauttava Parantava Prosessimallityypit 1/2 Rakentava peräkkäisiä työvaiheita, jokaisen jälkeen syntyy jokin vaihetuote määrittely-suunnittelu- toteutus seuraava vaihetta ei voi aloittaa ennen edellisen päättymistä Kasvattava (inkrementaalinen) tehdään ensin toimiva ydinjärjestelmä, jota kasvatetaan useassa iteraatiossa kunnes saavutetaan riittävä järjestelmä

Prosessimallityypit 2/2 Kehittävä (iteratiivinen) tehdään ensin koko järjestelmä vajavaisin toiminnoin järjestelmää kehitetään useissa iteraatioissa paremmaksi Kokoava järjestelmä kootaan uudelleenkäytettävistä osista tarvitaan myös komponenttiprosessi, uudelleenkäyttöprosessi Vesiputousmalli Vesiputousmallit Vesiputousmalli, jossa on osaprojekteja Vesiputousmalli, jossa vaiheet osittain menevät päällekkäin Vesiputousmalli, jossa riskiä on vähennetty

Vesiputousmalli "! Feasibility study Requirements Design Coding and module testing Integration and system testing Delivery, deployment, and maintenance

Vesiputousmalli, jossa on käytetty osaprojekteja Detailed design Programming Subsytem Testing! Design Code Tested subsystem Detailed design!## $ Programming Subsytem Testing Design Code Tested subsystem! Detailed design Programming Subsytem Testing %&' # Design Code Tested subsystem ()*! Vesiputousmalli, jossa vaiheet osittain päällekkäisiä (a.k.a. "sashimi" model) ()* $ ()* ' ()*! $ + %&' # #, -.#$" "!#&/0

(1* (1* Vesiputousmalli, jossa riskiä vähennetty ()* ()* ()* 1234 )2/+ 52 521!## 52)+# + 222 627 #, -.#$" "!#&/0 Inkrementaaliset mallit Spiraalimalli Evolutiivinen protoilu Vaiheittainen toimitus, inkrementaalinen toteutus Aikataulu suunnittelu (Design-to-schedule) Evolutiivinen toimitus (Evolutionary delivery) Käyttötapa ohjautuva inkrementaalinen kehitys

Spiraali malli Evolutiivinen protoilu ' +# #%# $ ' # %&' # 3%8 %2

Vaiheittainen toteutus eli inkrementaalinen toteutus,$ # -!" $ # - #,$ # -! $,$ # - # Aikataulusuunnittelu &%,$ # - &%!" $ # - ) ' % #,$ # -! %% (% $,$ # - #

Evolutiivinen toimitus $ ' ' 342!!## $ 34 3% 9%# $% % 3 9 :%.#; 7' #125 712< 121 12) 125 Käyttötapaohjattu inkrementaalinen tuotekehitys /+,@15 =)&= =)&= =)&= =)&= 9<21 >?/+, @)6A =)&= =)&= =)&= =)&= 9<2A B /+,@C"1< =)&= =)&= =)&= =)&= 912<

Muita prosessimalleja Komponenttiprosessimalli Rinnakkaisen kehitystyön malli Formaalit menetelmien malli Ketterät/ kevyet mallit Cleanroom menetelmä malli Prosessimallin valinta Vaikuttavia tekijöitä organisaation kypsyys teknologiaympäristö tuotteen tyyppi asiakkaan kanssa tehtävän sopimuksen tyyli projektiryhmän taidot tuotteen arvioitu elinaika aikataulu laatuvaatimukset projektin luonne sovelluksen luonne tarvittava kontrolli

Suunnitteluvaihe Esimerkki 2 Tahdista ja vakauta (Mikrosoftin ohjelmistoprosessi) Visio/mielikuva tuotteesta, määrittely, aikataulu Kehitysvaihe Kehitystiimi koostuu kahdesta ryhmästä Kehittäjät ja testaajat (jatkuva testaus) Prosessi määrää Päivittäisen synkronoinnin/tahdistamisen Tuotteen vakauttamisen Esimerkki 3 Avoin lähdekoodikehitys Säännöstelee ohjelmistojen lisenssejä, määrittelee oikeudet ohjelmiston käyttöön, kopiointiin, muuttamiseen ja jakeluun Liikeala ei saa tuottoaan myymällä ohjelmistoja, vaan pikemminkin muista, epäsuorista kohteista (palvelut, lisävarusteista, ilmoituksista, jne.) Prosessi Hyvin laajalle levinnyt ohjelmistokehitysprosessi, jota kuvaa lukuisat iteraatiot Lähdekoodi on laajalti käytettävissä Laaja kehittäjien joukko Mahdollistava teknologia Internet Talletuspaikat, joissa toimii version hallinta ja kokoonpanojen hallinta

Ohjelmistoprojekti Projekti = prosessin instanssi Projekti on määritelty ja ajallisesti sidottu tehtävä, jolla on tietty päämäärä. Lisäksi projektilla on merkitys elinkaari riippuvuuksia projekti on yksilöllinen rajallinen määrä resursseja

Luentotehtävä Millaisen prosessimallin valitsisit seuraavissa tapauksissa? Perustele valintasi kussakin tapauksessa. 1. Stabiilit vaatimukset, pieni projekti, kohde tunnetaan (ei epävarmuutta). 2. Epävarmoja asiakasvaatimuksia, helposti mallinnettava tuotteen toiminta. 3. Pitkän elinkaaren omaava tuote, jonka tuotejakelu tehdään vaiheittain.