Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka Koskinen T1-vaiheen palautusdokumentti
Sisällysluettelo 1. Johdanto...3 2. Menetelmän kuvaus...4 3. Menetelmän soveltaminen projektissa...5 4. Tulokset menetelmän soveltamisesta projektiin...6 5. Lähdeluettelo...7 Määrittely- ja suunnittelumenetelmät 2
1. Johdanto Kurssilla sovelletaan USDP-prosessimallia (Unified Software Development Process), joka on ohjelmistoprosessin viitekehys. Tässä dokumentissa esitetään joitakin projektinsuunnittelu (PS) ja toteutus 1 (T1) vaiheissa käytettyjä määrittely ja suunnittelumenetelmiä. Ryhmä on työstänyt ohjelmiston määrittelyä ja suunnittelua siten, että ensin asiakasvaatimukset kerättiin vaatimusmäärittelyyn. Seuraavaksi laadittiin erillinen käyttötapausdokumentti (Use Caset), joiden pohjalta piirrettiin sekvenssidiagrammit toiminnalliseen määrittelyyn. Määrittely- ja suunnittelumenetelmät 3
2. Menetelmän kuvaus Ohjelmistoprojektin alussa tulee kartoittaa asiakkaan tarpeet ja toiveet eli asiakasvaatimukset toteutettavan järjestelmän suhteen. Vaatimustenhallinnan keskeisin tehtävä on varmistaa, että lopputuote vastaa asiakkaiden vaatimuksia. Lopputuotteessa on oltava kaikki halutut ominaisuudet ja vain ne. [1] Asiakasvaatimuksia analysoimalla pyritään 1) selvittämään kunkin asiakasvaatimuksen tarve eli perimmäinen syy, 2) arvioimaan kunkin vaatimuksen tärkeys (priorisointi) ja 3) sovittamaan yhteen ristiriitaiset vaatimukset. [1] Vaatimuksien keräämisessä voidaan käyttää käyttäjähaastatteluita, yhteisiä vaatimusten suunnittelukokouksia (Joint Requirements Planning, JRP), vaatimuslistoja sekä prototyyppejä. [2] Use case-mallinnus on menetelmä, jossa järjestelmän vaatimukset kuvataan käyttötapausten (Use Cases) avulla. Use case-mallinnus muodostuu käyttäjältä kerättyjen vaatimusten perusteella ja sen päätehtävä on kuvata se mitä järjestelmä tekee kun käyttäjät käyttävät sitä. Siihen miten toiminnot todellisuudessa toteutetaan ei oteta kantaa tässä vaiheessa. Use casemallinnuksessa järjestelmää siis tarkastellaan mustana laatikkona, joka toteuttaa käyttäjälle näkyviä toimintoja. [3] Vuorovaikutuskaaviot lisäävät yksityiskohtia ja näyttävät kuinka osallistuvat objektit vuorovaikuttavat keskenään toteuttaakseen käyttötapauksen. Vuorovaikutuskaavioita on kahdenlaisia: sekvenssikaavioita ja yhteistyökaavioita. Sekvenssikaaviossa osallistuvat objektit kuvataan pystysuorilla viivoilla, elämänviivoilla (lifeline). Vuorovaikutusta tapahtuu kun objektit lähettävät toisilleen viestejä, jotka myös kuvataan kaaviossa. [4] Määrittely- ja suunnittelumenetelmät 4
3. Menetelmän soveltaminen projektissa Asiakkaan toiveet kartoitettiin keräämällä asiakasvaatimukset vaatimusmäärittelyyn. Vaatimukset kerättiin koko ryhmän ja asiakkaan edustajien välisissä asiakaspalavereissa sekä erillisessä vaatimusmäärittelypalaverissa, johon osallistui kolme ryhmän (Hurmalainen, Koskinen, Nissilä) sekä kaksi asiakkaan edustajaa (Erkkilä, Vuorio). Käyttäjähaastatteluita ei tässä vaiheessa tehty, koska asiakkaalla oli varsin selkeä näkemys siitä mitä oltiin tekemässä. Lisäksi koska käyttäjien haastatteluun oli rajoitetut mahdollisuudet, se haluttiin säästää käyttöliittymäsuunnitteluun. Asiakasvaatimukset analysoitiin siten, että osa ryhmän vaatimusmäärittelystä vastuussa olleet jäsenet (Hurmalainen, Koskinen) pyrkivät selvittämään kunkin asiakasvaatimuksen tarpeen ja prioriteetin. Lisäksi ristiriitaiset vaatimukset sovitettiin yhteen. Tämän pohjalta valmistui vaatimusmäärittely, jossa vaatimukset esitettiin ns. vaatimuslistana siten, että ne olivat yksilöidysti numeroitu ja priorisoitu. Vaatimusmäärittelyn pohjalta jatkettiin siten, että editorin osalta vaatimukset muodostettiin käyttötapauksiksi (Ståhlberg). Käyttötapausten pohjalta eriytettiin käyttöliittymäsuunnittelu (Ståhlberg) sekä toiminnallinen määrittely (Koskinen). Käyttöliittymäsuunnittelu ja siinä käytetyt menetelmät on kuvattu erillisessä dokumentissa. Toiminnallisen määrittelyn ydintä eli toimintojen kuvausta varten käyttötapaukset purettiin sekvenssikaavioiksi, jotka kuvaavat prosesseihin liittyviä objekteja ja niiden keskinäistä vuorovaikutusta. Toiminnallisen määrittelyn ja erityisesti sekvenssikaavioiden perusteella tehdään varsinainen tekninen suunnittelu, joka esitetään teknisessä määrittelyssä. Määrittely- ja suunnittelumenetelmät 5
4. Tulokset menetelmän soveltamisesta projektiin Asiakasvaatimusten kerääminen ja vaatimusmäärittelyn tekeminen onnistuivat hyvin. Varsinkin erillinen vaatimusmäärittelypalaveri asiakkaan kanssa oli tehokas. Aineiston työstäminen parityönä eteni myös sujuvasti ja toisaalta kaksi henkeä pystyi antamaan siihen enemmän kuin yksi. Vaatimukset saatiin kerättyä ilman käyttäjähaastatteluitakin siten, että niiden perusteella saatiin selkeä kuva tuotteesta. Käyttötapaukset tehtiin heti toteutusvaiheen aluksi. Ne teki eri henkilö, kuin ne jotka olivat osallistuneet vaatimusmäärittelyn tekemiseen. Tämä oli havaittiin hyväksi, koska näin saatiin ylimääräinen tarkistuskierros vaatimuksille kun henkilö joka ei ollut mukana tekemässä niitä perehtyi niihin. Sama toistui sekvenssikaavioiden osalta. Käyttötapaukset saivat ylimääräisen huolellisen tarkastuksen, kun niiden pohjalta lähdettiin eri henkilön toimesta tekemään sekvenssikaavioita. Kokonaisuutena määrittely- ja suunnittelumenetelmät ovat tuoneet projektiin suunnitelmallisuutta ja huolellisuutta. Parityöskentelyä olisi voinut ehkä käyttää vielä enemmän tehostamaan menetelmiä. Varsinkin dokumentteja kirjoittaessa sekä kuvia ja kaavioita piirrettäessä palaute on tärkeää ja parin rooli voisi olla vain sen antaminen. Määrittely- ja suunnittelumenetelmät 6
5. Lähdeluettelo [1] Ilkka Haikala ja Jukka Märijärvi. Ohjelmistotuotanto. 7. uudistettu painos. Talentum Media, 2001. [2] Daryl Kulak and Eamonn Guiney. Use Cases: Requirements in Context. 1. painos, ACM Press Books, 2000. [3] Martin Fowler. UML Distilled. 1. painos. Addison Wesley Longman, 1997. [4] Ivar Jacobson. The Road to the Unified Software Development Process. 1. painos. Cambridge University Press, 2000. Cantor, Murray R., Project Management With UML, 1998, Wiley Määrittely- ja suunnittelumenetelmät 7