Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Unified Process (UP)

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

ITK130 Ohjelmistoprosessi

Oleelliset vaikeudet OT:ssa 1/2

OT-s200: Prosessimallit

2. Ohjelmistotuotantoprosessi

Tapahtuipa Testaajalle...

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

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

Projektityö

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

UCOT-Sovellusprojekti. Testausraportti

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Prosessikuvaukset ja elinkaarimallit

Ohjelmiston toteutussuunnitelma

Ohjelmistojen suunnittelu

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

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

Projektityö

Ohjelmistotekniikka: Luento 3 Jouni Lappalainen

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

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

Ohjelmistotekniikka kevät Jouni Lappalainen

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

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

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

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

Ohjelmistotekniikka kevät 2015 Jouni Lappalainen

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

Ohjelmistoprojektien hallinta Vaihejakomallit

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Työkalut ohjelmistokehityksen tukena

Projektisuunnitelma Nero-ryhmä

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

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

Mitä on ohjelmistotuotanto?

Ohjelmistotekniikan menetelmät, kesä 2008

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Onnistunut ohjelmistoprojekti

Ketterä vaatimustenhallinta

Pakkanen * * * Sovellustuotannon menetelmäpilotti

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

Tietojärjestelmän osat

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Testaaminen ohjelmiston kehitysprosessin aikana

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Lyhyt johdatus ketterään testaukseen

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Projektin suunnittelu

Onnistunut Vaatimuspohjainen Testaus

Software engineering

Analyysi on tulkkaamista

Kurssin aihepiiri: ohjelmistotuotannon alkeita

T Projektikatselmus

LAATURAPORTTI Iteraatio 1

PlugIT-projektin työsuunnitelma 3. jaksolle EHDOTUS johtoryhmälle, Koko projektin keskeiset tehtävät

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

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

Johdantoluento. Ohjelmien ylläpito

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

ja -kehitysmenetelmistä Jyri Partanen, QA Manager Sulake Corporation

Yhteenveto. Menettelytavat

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Ohjelmistotekniikka Syksy 2017

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

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

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Projektin vaiheet

Ohjelmistotekniikka Syksy 2018

OpenUP ohjelmistokehitysprosessi

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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

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

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

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

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen, kesä 2010

Ostavat organisaatiot konsultin silmin

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

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

Kansallinen ASPAtietojärjestelmä

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Transkriptio:

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1

Luento 2: Prosessimallit Jouni Lappalainen 3

Luku 2: Prosessimallit Työkalut Menetelmät Prosessi Sitoutuminen laatuun Tasoittainen eteneminen Prosessikehikon aktiviteetit kommunikointi projektisuuunnittelu mallintaminen rakentaminen toimitus, jakelu, käyttöön vieminen (deployment) 4

Ohjelmistoprosessien kehittyminen Leffingwell D., Agile Software Requirements, 2011 5

Prosessityypit Kommunikointi Proj. suunnnittelu Mallintaminen Rakentaminen Toimitus Lineaarinen prosessi Kommunikointi Proj. suunnnittelu Mallintaminen Rakentaminen Toimitus Iteratiivinen prosessi Proj. suunnnittelu Kommunikointi Toimitus Lisäys (inkrementti) Kommunikointi Proj. suunnnittelu Mallintaminen Mallintaminen Rakentaminen Evolutionaarinen prosessi Rinnakkainen prosessi Rakentaminen Toimitus 6

Prosessikehyksestä prosessimalleihin Ohjelmistotuotannon yleiset käytännöt Ymmärrä ongelma How to solve it Polya 1945 kommunikointi ja analyysi Suunnittele ratkaisu mallintaminen ja ohjelmistosuunnittelu Toteuta suunnitelma koodin generointi Testaa toteutusta testaus ja laadunvarmistus Prosessikehyksen aktiviteetit» Pressman 2005 kommunikointi projektisuuunnittelu mallintaminen rakentaminen toimitus, käyttöön vieminen (deployment) 7

Käyttäjän tarpeet Vesiputousmalli Vaatimusmäärittely Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapausanalyysi Ohjelmistosuunnittelu Toteutus Integrointi ja testaus Käyttöönotto ja ylläpito 8

V-malli Käyttäjän tarpeet Ohjelmisto käytössä Vaatimusmäärittely Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapaus-analyysi Toiminnallinen testaus Koodaus Ohjelmistosuunnittelu Integrointitestaus Järjestelmätestaus Hyväksymistestaus Yksikkötestaus 9

Lisäyksin etenevä kehittäminen (inkrementaalinen) Kommunikointi Projektin suunnittelu Mallintaminen Lisäys n Rakentaminen Ohjelmiston toiminnallisuus ja ominaisuusdet Lisäys 1 Lisäys 2 Lisäyksen 1 toimitus Lisäyksen 2 toimitus Toimitus Lisäyksen n toimitus Projektin kalenteriaika 10

Nopea sovelluksen kehittäminen (RAD, Rapid Application Development) Tiimi n Kommunikointi Projektin suunnittelu Tiimi 1 Mallintaminen - liiketoiminta - tieto - prosessi Tiimi 2 Mallintaminen - liiketoiminta - tieto - prosessi Mallintaminen - liiketoiminta - tieto - prosessi Rakentaminen - komponenttien uudelleenkäyttö - automaattinen koodigenerointi - testaus Rakentaminen - komponenttien uudelleenkäyttö - automaattinen koodigenerointi - testaus Rakentaminen - komponenttien uudelleenkäyttö - automaattinen koodigenerointi - testaus Toimitus - integrointi - jakelu - palautteet 60-90 päivää 11

Nopea sovelluksen kehittäminen (RAD, Rapid Application Development) Milloin vaikeuksia? isoissa projekteissa RAD vaatii tarpeeksi henkilöitä, jotta saadaan riittävä määrä tiimejä jos projektihenkilöt eivät ole sitoutuneita tiukkaan aikatauluun, projekti voi epäonnistua jos järjestelmää ei voida jakaa aidosti moduleihin, komponenttien rakentaminen vaikeutuu jos pyritään korkeaan suorituskykyyn, joka vaatii komponenttien viritystä (loppuvaiheessa), RAD ei välttämättä toimi RAD ei ole paras malli, jos tekniset riskit ovat suuret (esim. kun käytettävä teknologia on uutta) 12

Evolutionaariset prosessimallit Evolutionaariset mallit ovat iteratiivisia Tuottavat joka iteraatiolla hieman täydellisemmän ohjelmistoversion Protoilu kun asiakas voi kiinnittää yleiset tavoitteet ohjelmistolle, mutta ei pysty kertomaan yksityiskohtia, prototyypin kehittäminen auttaa iteraatio suunnitellaan ja toteutetaan nopeasti tärkeää sopia asiakkaan kanssa periaatteista, esim. proto palvelee vaatimusten määrittelyä, lopullinen ohjelmisto rakennetaan noudattamaan myös laatutavoitteita Spiraalimalli yhdistää protoilun ja vesiputousmallin piirteitä sopii suurten ohjelmistojen/järjestelmien kehittämiseen jopa kattamaan tuotteen koko elinjakson riskivetoinen prosessimalli, jossa kaksi perusperiaatetta syklisyys: joka kierroksella tuotetaan tarkempi määrittely ja vähennetään riskiä etapit: sidosryhmät sitoutuvat kierroksella esitettyyn ratkaisuun 13

Kommunikointi Projektisuunnittelu Suunnittelu - työmäärä - aikataulu - riskianalyysi Asiakkaan kommentit ja muutosvaatimukset Vaatimusten analyysi ja projektin suunnittelu Riskianalyysi Asiakkaan vaatimusten määrittely Asiakkaan tekemä arviointi Toimittaminen - jakelu - palautteet Asiakkaan tekemä arviointi Ensimmäisen proton rakentaminen Rakentaminen Rakentaminen - koodaus - testaus Asiakkaan vaatimuksiin liittyvien riskien arviointi Ensimmäisen proton suunnittelu Suunnittelu Mallintaminen - analyysi - suunnittelu Kehittynyt spiraalimalli, Boehm 1998 14

Inception (aloitus) - tuotteen ominaisuudet - alustavat käyttötapausmallit - alustava projektihakemisto - alustava liiketoimintacase - alustavat riskit - projektisuunnitelma - vaiheet ja iteraatiot - yksi tai useampia protoja julkaisu ohjelmiston lisäys (inkrementti) (Rational) Unified Process kommunikointi suunnittelu toimitus Production (tuotanto) mallintaminen rakentaminen Transition (siirto) - valmis ohjelmiston osa - Beta testauksen raportit - käyttäjän palautteet Elaboration (kehittäminen) - käyttötapausmallit - tarkentavat vaatimukset - (myös laatu) - analyysimalli - arkkitehtuurikuvaus - arkkitehtuuriin perustuva suoritettava prototyyppi - tarkennettu riskilista - alustava suunnittelumalli - tarkennettu projektisuunnitelma - alustava käyttöohje Construction (rakentaminen) - suunnittelumalli - ohjelmistokomponentit - integroitu ohjelmiston uusi osa - testisuunnitelmat - testitapaukset - tukidokumentit, ohjeet - käyttöönotolle - käytölle - osan kuvaus 15

Project Projektin vaiheet Iteraatiot Inception Elaboration Construction Transition 1 2 3 4 5 6 7 8 Requirements Analysis Design Implementation Test Työnkulut Neliön koko kertoo aktiviteettiin käytetystä ajasta time 16

Vesiputousmallin erot RUP malliin Vesiputousmallissa vaiheet ja työnkulut on yhdistetty Esimerkiksi vaatimusmäärittelyvaiheessa suoritetaan vain vaatimusmäärittelyn aktiviteetteja Kaikki vaatimusmäärittelyn aktiviteetit tulisi olla tehtynä, ennenkuin analyysivaihe alkaa Iteratiivisessa projektin elinjaksossa huomataan, että osa vaatimusmäärittelyjen työstä tapahtuu rinnakkain analyysin kanssa 17

PSP menetelmä PSP (Personal Software Process) Humphreyn (1996) esittämä menetelmä, joka tavoitteena on henkilökohtaisen osaamisen parantaminen Menetelmässä henkilö pyrkii parantamaan työnsä laatua seuraavissa työvaiheissa Projektisuunnittelu Korkean tason suunnittelu Korkean tason suunnittelun katselmointi Kehittäminen Projektin jälkeinen katselmointi (postmortem) PSP tarjoaa kurinalaisen ja metriikkapohjaisen tavan oppia hyviä ohjelmistotekniikan käytänteitä. Ideana on oppia tekemistään virheistä. 18

PSPmenetelmä 19

TSP menetelmä TSP (Team Software Process) Humphreyn (2000) esittämä menetelmä, joka tavoitteena on ryhmätyön parantaminen Menetelmässä tiimi pyrkii parantamaan työnsä laatua seuraavissa työvaiheissa (aktiviteeteissa) Projektin käynnistys Korkean tason suunnittelu Toteutus Integrointi ja testaus Projektin jälkeinen katselmointi (postmortem) TSP tarjoaa kurinalaisen tavan oppia rakentamaan ohjelmistoja ja miten samalla kvantitatiivisesti mitataan sekä prosessia että tuotetta. TSP menetelmä perustuu skriptien käytölle, joilla ohjataan edellä mainittujen aktiviteettien suorittamista. TSP tunnistaa itseohjautuvat tiimit parhaiksi, niissä tiimi asettaa tavoitteet, sovittaa prosessin tavoitteisiin, valvoo aikataulua ja keräämiensä mittatietojen perusteella pyrkii parantamaan prosessia. http://jounilappalainen.fi/ohjelmistotekniikka 20