Dokumentointi ketterissä menetelmissä

Samankaltaiset tiedostot
Tietojärjestelmän osat

Ohjelmistojen suunnittelu

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Implisiittiset vaatimukset. 4. Vaatimusmäärittely. Eksplisiittiset vaatimukset. Vaatimusmäärittelyn tavoitteet. Vaatimusten luonne II

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

4. Vaatimusmäärittely

Määrittely- ja suunnittelumenetelmät

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Määrittelyvaihe. Projektinhallinta

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

2. Ohjelmistotuotantoprosessi

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Oleelliset vaikeudet OT:ssa 1/2

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Specifying user requirements for corporate intranet with user centered design methods. Espoo Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki

Tuotemallipohjaisen toimintaprosessin mallintaminen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

SoberIT Software Business and Engineering institute

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotuotanto, s

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Johdantoluento. Ohjelmien ylläpito

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

Käyttäjäkeskeinen suunnittelu

Ohjelmistotekniikka - Luento 2

Projektityö

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

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

Muistitko soittaa asiakkaallesi?

Vaatimustenhallinta. Exit

PS-vaiheen edistymisraportti Kuopio

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Projektinhallinta: johtajuus ja organisaatio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Projektisuunnitelma Nero-ryhmä

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

5. Järjestelmämallit. Mallinnus

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Käyttäjätarinat perinteisessä hankkeessa. Sisältö ja käytännöt

Kokemuksia yritysarkkitehtuurista

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

UCOT-Sovellusprojekti. Testausraportti

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Tapahtuipa Testaajalle...

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, kesä 2008

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

Hankinnan problematiikka

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Onnistunut Vaatimuspohjainen Testaus

Kehittämisprosessin vaihemalli. Pirkko Mäkinen Asiantuntija, Työturvallisuuskeskus

Suomen Ekonomien hallitukseen Hallitushaastattelut Taitavaksi haastattelijaksi

IT2015 EKT-ehtojen käyttö

ARVIOINTI Esiopetuksen opsin perusteissa

Testaaminen ohjelmiston kehitysprosessin aikana

OT-s200: Prosessimallit

Miksi: Suunnittelun sidosryhmien ja joskus suunnittelijoidenkin valmistaminen hankkeen käynnistykseen, mm. tiedonkeruuta ja työajan käyttöä varten

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

1. Johdanto. Ohjelmistotuotannon piirteitä

Projektin suunnittelu A71A00300

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

2. Vaatimusmäärittely. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina

Ohjelmistotekniikan menetelmät, kevät 2008

S Ihminen ja tietoliikennetekniikka

UML- mallinnus: Tilakaavio

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ketterä vaatimustenhallinta

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

1. Johdanto. Ohjelmistojen vaatimusmäärittely. Vaatimusmäärittelyn faktat ja vaihtoehdot. Vaatimusmäärittelyn luonne. Vaatimusmäärittely tänään

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

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

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Tutkimuksen alkuasetelmat

Multisite -projektit uhasta mahdollisuus? Johtamiseväitä projektipäällikölle

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

Asiakastarpeiden merkitys ja perusta. asiakastarpeiden selvittämisen merkitys ja ongelmat asiakastarvekartoitus asiakastarvekartoitustyökaluja

Ohjelmistojen mallintaminen, kesä 2009

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Seuratoiminnan. Tämä on seuroille tarkoitettu työkirja urheiluseuran tulevaisuuden pohtimiseen. Kokoa tiimi omasta seurasta.

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Transkriptio:

Dokumentointi ketterissä menetelmissä Dokumentointi kuuluu ketteriin menetelmiin niin kuin kaikkeen ohjelmistotuotantoon Dokumentointi itsessään yksi vaatimus, jonka prioriteetti pitää arvioida (asiakkaan kanssa) Inkrementaalinen ja iteratiivinen lähestymistapa myös dokumentointiin Yleensä dokumentointi painottuu projektin loppuun Myöhäisellä dokumentoinnilla pyritään takaamaan ettei dokumentoida turhaan 581259 Ohjelmistotuotanto 123

Kommunikoinnista Ketterissä menetelmissä painotetaan kommunikointia kasvotusten, ei niinkään dokumenttien välityksellä Toisaalta dokumentoinnilla voidaan säästää resursseja vähentämällä kommunikoinnin tarvetta Brooks law: When you add more programmers to a late project, it gets even later. kirjasta The Mythical Man- Month (1975) Kun kaikki kommunikoivat keskenään, vuorovaikutuspareja on n(n-1)/2, eli kommunikoinnin aikavaativuus on O(n 2 ) 581259 Ohjelmistotuotanto 124

Ketterät menetelmät ja vaatimusdokumentti Vaatimusdokumentin tuottaminen nähdään riskinä, joka voi johtaa resurssien hukkaamiseen, koska vaatimusten ajatellaan muuttuvan nopeasti Vaatimusdokumentti siksi aina vanhentunut Vaatimusten jatkuvaa muuttumista voidaan liioitellakin Johtuuko dokumentoinnin välttäminen aina todella vaatimusten muuttumisen uhasta vai siitä että dokumentointi ei ole hauskaa? Hyvä tiimi tekee ketterissä menetelmissä dokumentointia aina kun se on hyödyllistä (hyödyllisyyttä arvioidaan yhdessä asiakkaan kanssa) 581259 Ohjelmistotuotanto 125

Dokumentointi riski vai resurssi? Ketterissä menetelmissä dokumentointi nähdään riskinä, koska voidaan dokumentoida turhaan (ollaanko yhtä huolestuneita siitä, että saatetaan koodata turhaan?) Suunnittelukeskeisissä lähestymistavoissa huolellinen dokumentointi nähdään keinona estää resurssien hukkaaminen myöhemmissä työvaiheissa Prosessimallin sopivuus ja tarvittavan dokumentoinnin yksityiskohtaisuus riippuu tehtävästä 581259 Ohjelmistotuotanto 126

Vaatimusmäärittely ketterissä menetelmissä Ketterissä menetelmissä iteratiivinen lähestymistapa vaatimusmäärittelyyn(kin) Vaatimusten etsintä painottuu projektin alkupään iteraatioihin Ensimmäiseksi keskitytään Asiakkaalle tärkeimpiin vaatimuksiin Ohjelmiston arkkitehtuurin kannalta keskeisiin vaatimuksiin Vaatimukset yleensä valtaosaltaan kiinnittyvät jo alkuvaiheissa projektia 581259 Ohjelmistotuotanto 127

581259 Ohjelmistotuotanto 128

Vaatimusmäärittelyprosessi 581259 Ohjelmistotuotanto 129

Vaatimusmäärittelyn perustehtävät 1. Kelpoisuusselvitys Onko toteutettavasta järjestelmä hyötyä? 2. Kartoitus ja analyysi Vaatimusten etsiminen, luokittelu, priorisointi 3. Spesifiointi (määrittely) Vaatimusten esittäminen standardoidussa muodossa 4. Validointi Tarkastetaan määrittelevätkö vaatimukset todella sellaisen järjestelmän, jonka asiakas haluaa 581259 Ohjelmistotuotanto 130

Vaatimusten muuttuminen Mitä isommasta järjestelmästä on kyse, sitä varmemmin vaatimukset muuttuvat: Sidosryhmien tarpeet vaihtelevat Käyttöönoton jälkeen löytyy uusia vaatimuksia Toisaalta sanotaan, että suunnittelukeskeinen malli sopii parhaiten suuriin järjestelmiin ristiriita? Vaatimusmäärittelyprosessissa täytyy aina jollakin tavalla huomioida muuttuvien vaatimusten vaikutus aikatauluun ja tuotteeseen 581259 Ohjelmistotuotanto 131

Iteratiivinen vaatimusmäärittely Muutosten huomioiminen tarkentamalla vaatimuksia vähitellen spiraali Sallii myös vaatimusmäärittelyn rinnalla tehtävän ohjelmiston suunnittelun ja toteutuksen Vaatimusmäärittelyprosessi on enemmän tai vähemmän iteratiivinen esim. ketterissä malleissa, prototyyppimalleissa ja komponenttimalleissa 581259 Ohjelmistotuotanto 132

Kelpoisuusselvitys Kelpoisuusselvitys (feasibility analysis) on lyhyt esivaihe vaatimusmäärittelylle Kelpoisuusselvitysraportti arvioidaan kannattaako järjestelmän kehitystyötä jatkaa 1. Tuoko kehitettävä järjestelmä lisäarvoa asiakkaalle? 2. Voidaanko järjestelmä toteuttaa nykyisellä teknologialla, projektille varatulla aikataululla ja budjetilla? 3. Voidaanko järjestelmä integroida jo olemassaoleviin järjestelmiin? 4. Kannattaako järjestelmä toteuttaa, vai voidaanko vastaava järjestelmä ostaa valmiina? Onko ostettava järjestelmä sovitettavissa asiakkaan tarpeisiin? 581259 Ohjelmistotuotanto 133

Vaatimusten kartoitus ja analyysi Yhteistyö asiakkaan ja loppukäyttäjien kanssa mitä palveluja järjestelmältä vaaditaan, mitä järjestelmän suorituskyvyltä vaaditaan, mitä laitteisto- ja ympäristörajoituksia on huomioitava jne. Työvaiheessa huomioidaan sidosryhmät Sidosryhmä (stakeholder) on henkilö tai ryhmä, joka suoraan tai välillisesti on tekemisissä kehitettävän järjestelmän kanssa. 581259 Ohjelmistotuotanto 134

Vaatimusanalyysin ongelmia Sidosryhmien edustajat eivät aina tiedä mitä he todella haluavat tai toiveet voivat olla epärealistisia (esim. liian kalliita toteuttaa) Sidosryhmien edustajat esittävät asioita käyttäen omaa ammattiterminologiaansa Eri sidosryhmillä erilaisia tarpeita vaatimukset voivat olla keskenään ristiriidassa Organisaatioon liittyvät ja poliittiset tekijät saattavat vaikuttaa vaatimuksiin Sidosryhmiinkin voi tulla muutoksia ja sitä(kin) kautta vaatimukset voivat muuttua prosessin aikana 581259 Ohjelmistotuotanto 135

Kartoituksen ja analyysin vaiheet Vaatimusten etsiminen Vaatimusten luokittelu Järjestämätön vaatimusten joukko ryhmitellään Vaatimusten priorisointi Vaatimusten tärkeysjärjestys ja konfliktoivien vaatimusten käsittely neuvottelemalla sidosryhmien kanssa Vaatimusten dokumentointi Dokumentti lähtökohta spiraalin seuraavalle kierrokselle 581259 Ohjelmistotuotanto 136

Kartoituksen ja analyysin spiraali Kartoitus ja analyysi on iteratiivinen prosessi. Prosessi aloitetaan isoista vaatimuksista ja edetään kohti pienempiä ja pienempiä yksityiskohtia. 581259 Ohjelmistotuotanto 137

Vaatimusten etsimisen tekniikoita Vaatimusten etsiminen: mitä sidosryhmät odottavat järjestelmältä? Näkökulmat (viewpoints) mitä suoria tai epäsuoria yhteyksiä sidosryhmillä on järjestelmään? Haastattelut (interviews) sidosryhmiltä selvitetään keskustelemalla ja sopivin kysymyksin, mitä he odottavat järjestelmältä Dokumentaatioon tutustuminen 581259 Ohjelmistotuotanto 138

Etsimistekniikoita 2 Skenaariot (scenarios) ja käyttötapaukset (use cases) kirjataan suoraviivaisia kuvauksia tulevan järjestelmän käytöstä, skenaarioita toisiinsa sidoksissa olevat skenaariot ryhmitellään tarvittaessa yhteen käyttötapauksiksi niin suunnittelukeskeisissä kuin ketterissä menetelmissä paljon käytetty tapa Etnografia Loppukäyttäjien havainnointi todellisessa työskentely-ympäristössä 581259 Ohjelmistotuotanto 139

Näkökulmat Tapa jäsentää vaatimuksia tarkastelmalla järjestelmää eri sidosryhmien näkökulmista Suorat näkökulmat Ihmiset tai toiset järjestelmät jotka suoraan tekemisissä järjestelmän kanssa Epäsuorat näkökulmat Sidosryhmät jotka eivät itse käytä järjestelmää, mutta vaikuttavat vaatimuksiin Ympäristöön liittyvät näkökulmat Ympäristön piirteet ja rajoitukset, jotka vaikuttavat vaatimuksiin 581259 Ohjelmistotuotanto 140

Sosiaaliset ja organisaatioon liittyvät tekijät Järjestelmää käytetään jossakin sosiaalisessa ympäristössä ja organisaatiossa Näihin liittyvä, usein vaikeasti esille saatava tieto voi vaikuttaa oleellisesti vaatimusten määrittelyn onnistumiseen Jos oleellisia tekijöitä jää piiloon, järjestelmää ei välttämättä todellisuudessa käytetä Nämä tekijät eivät ole yksi näkökulma muiden joukossa, vaan ne vaikuttavat kaikkiin näkökulmiin Hyvän vaatimusten analysoijan pitäisi olla sensitiivinen näille tekijöille, ei kuitenkaan olemassa mitään systemaattista tapaa niiden analysoimiseksi 581259 Ohjelmistotuotanto 141

Etnografia Idea ohjelmistotuotannossa: asiakas ei välttämättä tiedä, tiedosta tai osaa pukea sanalliseen muotoon kaikkia loppukäyttäjille tarpeellisia vaatimuksia mennään paikan päälle katsomaan, miten tulevan järjestelmän loppukäyttäjät työskentelevät Etnografia-käsite kulttuurintutkimuksesta: kulttuurin kuvaaminen sisältä päin, kulttuuriin liittyvien merkitysten ymmärtäminen Historiallisena lähtökohtana vieraiden ( alkukantaisina pidettyjen) kansojen tutkimus 1900-luvun alussa Perusmenetelmä osallistuva havainnointi 581259 Ohjelmistotuotanto 142

Etnografia (2) Vaatimusten pohjana siis tapa, jolla ihmiset todellisuudessa työskentelevät vastakohtana sille, miten heidän virallisesti kerrotaan tai ajatellaan työskentelevän Osallistuvan havainnoinnin ongelmana voi joskus olla se, että havainnointi saattaa vaikuttaa ihmisten työskentelytapoihin 581259 Ohjelmistotuotanto 143

Haastattelu/keskustelu koskien vaatimuksia Sidosryhmien haastattelu koskien nykyistä sekä kehitettävää järjestelmää Suljetut (strukturoidut) haastattelut Etukäteen määritelty joukko kysymyksiä sidosryhmien vastattavaksi Avoimet haastattelut Etukäteen määritelty korkeintaan aihepiirit, joista keskustellaan vapaasti sidosryhmien kanssa 581259 Ohjelmistotuotanto 144

Hyvä haastattelija Keskittyy kuuntelemaan Avoin ja vastaanottavainen: vaatimukset tulevat haastateltavalta Ei kannata kysyä: Mitä haluatte järjestelmältä? Fokusoidumpia kysymyksiä ja ehdotuksia Haastateltavan sanomien asioiden tarkentamista sopivilla lisäkysymyksillä 581259 Ohjelmistotuotanto 145

Skenaariot Skeenaariot ovat todellisia esimerkkejä siitä, kuinka järjestelmää käytetään Niihin tulee sisältyä Lähtotilanteen kuvaus Normaalin (=onnistuneen) käyttötilanteen etenemisen kuvaus Kuvaus vaihtoehtoisista tilanteista, joissa jokin menee pieleen Kuvaus samanaikaisista tapahtumista Lopputilan kuvaus 581259 Ohjelmistotuotanto 146

Käyttötapaukset Käyttötapaukset (use cases) ovat skenaarioihin pohjautuva UML-tekniikka, jolla määritetään erityyppiset järjestelmän käyttäjät ja käyttötilanteet Käyttötapausten joukon pitäisi kuvata kaikki mahdolliset tavat käyttää järjestelmää UML-sekvenssidiagrammeja voidaan käyttää kuvaamaan käyttötapausten yksityiskohtia 581259 Ohjelmistotuotanto 147

Vaatimusmäärittely XP:ssä Asiakas mukana tiimissä ja vastaa vaatimuksia koskevista päätöksistä Vaatimukset esitetään yleensä korteille kirjoitettavina käyttäjäkertomuksina (user stories) Kertomukset lähellä käyttötapauksia, mutta ilmaistu luonnollisella kielellä, usein vain muutamilla lauseilla 581259 Ohjelmistotuotanto 148

Vaatimusmäärittely XP:ssä Tiimi muokkaa kertomuksesta joukon (toteutus)tehtäviä Tiimi arvioi tehtävien vaatiman ajan ja kustannukset Asiakas valitsee prioriteettien ja aikatauluarvion perusteella kertomukset, jotka toteutetaan seuraavassa syklissä 581259 Ohjelmistotuotanto 149

Vaatimusten validointi Todennetaan että vaatimuksilla kuvattu järjestelmä on sitä, mitä asiakas haluaa Validointi on erityisesti suunnittelukeskeisissä prosessimalleissa erittäin tärkeää, sillä virheelliset vaatimukset heijastuvat koko tuotteen elinkaaren ajan Mitä myöhemmin virheellinen vaatimus keksitään, sitä kalliimpaa sen korjaus on 581259 Ohjelmistotuotanto 150

Vaatimusten validointi Verifioituvuus Voidaanko vaatimusten toteutumista testata? Ymmärrettävyys Onko vaatimukset ymmärretty oikein? Jäljitettävyys Onko jokaisen vaatimuksen esittäjä ja sidosryhmä tiedossa? Mukautuvuus Voidaanko vaatimusta muuttaa ilman laajoja muutoksia muihin vaatimuksiin? 581259 Ohjelmistotuotanto 151

Vaatimusten validointi Yhtenäisyys Onko vaatimukset kuvattu johdonmukaisella tarkkuudella ja tekniikoilla? Täydellisyys Kuvaavatko vaatimukset koko järjestelmän? 581259 Ohjelmistotuotanto 152

Vaatimusten validointi: tekniikoita Vaatimusten katselmukset Systemaattinen manuaalinen vaatimusten analysointi Prototyypit Suorituskelpoisen prototyypin käyttäminen vaatimusten tarkistamiseen Testitapausten generoiminen vaatimuksille 581259 Ohjelmistotuotanto 153