Ohjelmistotekniikka - Luento 2

Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Unified Process (UP)

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

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.

Projektityö

Ohjelmiston toteutussuunnitelma

Ohjelmistojen suunnittelu

Prosessikuvaukset ja elinkaarimallit

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

Projektityö

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

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

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

Ohjelmistotekniikka: Luento 3 Jouni Lappalainen

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

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

Ohjelmistotekniikka kevät Jouni Lappalainen

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

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Projektisuunnitelma Nero-ryhmä

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

Ohjelmistotekniikan menetelmät, kesä 2008

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Onnistunut ohjelmistoprojekti

Ketterä vaatimustenhallinta

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

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

Työkalut ohjelmistokehityksen tukena

Tietojärjestelmän osat

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

Mitä on ohjelmistotuotanto?

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Testaaminen ohjelmiston kehitysprosessin aikana

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Onnistunut Vaatimuspohjainen Testaus

Software engineering

Pakkanen * * * Sovellustuotannon menetelmäpilotti

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Analyysi on tulkkaamista

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

Lyhyt johdatus ketterään testaukseen

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 suunnittelu

Ohjelmistotekniikka Syksy 2018

OpenUP ohjelmistokehitysprosessi

Projektin vaiheet

$$$ 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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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ä

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Transkriptio:

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

Luento 2: Prosessimallit 2

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

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

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

Prosessikehyksestä prosessimalleihin Ohjelmistotuotannon yleiset käytännöt How to solve it Polya 1945 Ymmärrä ongelma 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) 6

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

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 8

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

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

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) 11

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 12

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

(Rational) Unified Process Inception (aloitus) tuotteen ominaisuudet alustavat käyttötapausmallit alustava projektihakemisto alustava liiketoimintacase alustavat riskit projektisuunnitelma vaiheet ja iteraatiot yksi tai useampia protoja kommunikointi suunnittelu mallintaminen rakentaminen 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 julkaisu ohjelmiston uusi osa toimitus Production (tuotanto) Transition (siirto) valmis ohjelmiston osa Beta testauksen raportit käyttäjän palautteet Construction (rakentaminen) suunnittelumalli ohjelmistokomponentit integroitu ohjelmiston uusi osa testisuunnitelmat testitapaukset tukidokumentit, ohjeet käyttöönotolle käytölle osan kuvaus 14

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 15

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 16

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ä. 17

PSPmenetelmä 18

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. 19