Kuvaustekniikat Luvussa tarkastellaan tietojärjestelmän määrittelymenetelmiä. Määrittelymenetelmä sitoo yhteen ja ohjeistaa sen, miten eri kuvausmenetelmiä käyttäen voidaan tehdä tietojärjestelmän määrittely. Luku keskittyy Modern Structured Analysis eli SA-menetelmään, mutta siinä sivutaan myös oliosuuntautunutta järjestelmäkehitystä tukevia menettelyjä. Näitä ovat Jaaksin Simplified Method sekä OMT++. Edellinen on tarkoitettu pienten tietojärjestelmien kuvaamiseen ja jälkimmäinen, jota käsitellään yksityiskohtaisesti Ohjelmistotuotannon menetelmät kurssin oliosuunnitteluosuudessa, on Nokian matkapuhelinjärjestelmien kehittämisessä käytetty menetelmä. Exit
Sisällys Kuvaustekniikat Kuvaustekniikoiden soveltuvuus Structured Analysis (SA) Menetelmien kohdealue SA-menetelmä SA-menetelmä määrittelyssä SA-mallin komponentit SA-mallin komponentit (määrittely) Ydinmalli Ydinmallin osat Ympäristömalli Käyttäytymismallin laadinta Käyttäytymismalli Esimerkki: Kurrek Toteutusmalli SA-menetelmän soveltaminen Muita menetelmiä Simplified Method OMT++ RUP Unified Software Development Process Unified SDP vaiheet Kertauskysymykset Kuvaustekniikat 2
Kuvaustekniikat kuvaustekniikat muodostavat yhteisesti sovitun tavan kuvata ohjelmiston keskeiset ominaisuudet ohjelmistotyön kokonaisuuden näkökulmasta kuvauksen on katettava kaikki keskeiset osat ja näkökulmat kehitetävästä järjestelmästä menetelmät ohjeistavat kuvaustekniikoiden tarkoituksenmukaisen käytön Järjestelmän Järjestelmän kehitystyön kehitystyön toteuttaminen toteuttaminen määritellään määritellään kehitysprosessin kehitysprosessin kuvauksella kuvauksella (ks. (ks. esim. esim. HYTT-prosessit), HYTT-prosessit), jossa jossa kuvataan kuvataan kunkin kunkin työvaiheen työvaiheen suorittamisen suorittamisen periaatteet, periaatteet, sidotaan sidotaan prosessi prosessi tuotoksiin tuotoksiin (dokumentit) (dokumentit) ja ja edelleen edelleen mahdollisesti mahdollisesti tuetaan tuetaan tuotosten tuotosten synnyttämistä synnyttämistä erilaisilla erilaisilla dokumenttirungoilla. dokumenttirungoilla. Kehitysmenetelmä Kehitysmenetelmä (määrittely-) (määrittely-) sitoo sitoo kuvaustekniikat kuvaustekniikat tähän tähän prosessiin prosessiin ja ja edelleen edelleen dokumenttimalleihin dokumenttimalleihin yrityksen yrityksen kannalta kannalta tarkoituksenmukaisella tavalla. tavalla. Kuvaustekniikat 3
Yhteenveto kuvaustekniikoista kulkukaaviot pseudokoodi UML aktiviteettikaavio päätöstaulut ja -puut esi- ja jälkiehdot tietohakemistot luokkakaaviot käsitekaaviot tilakaaviot (ja -taulut) tapahtumasekvenssit (ja oliointeraktiot) käyttötapaukset yhteyskaavio tapahtumaluettelo tietovirtakaavio tietovirtamatriisi DARTS Kuvaustekniikat 4
Kuvaustekniikoiden soveltuvuus Tarvekartoitus Määrittely Arkkitehtuurisuunnittelu Moduulisuunnittelu Ohjelmointi Käyttötapaukset Tapahtumaluettelo t Tapahtumasekvens sit Tapahtumaluettelo Yhteyskaavio Tietovirtakaavio Toimintokuvaukset Päätöstaulut Tilakaaviot Tapahtumasekvens sit Tietovirtakaaviot Toimintokuvaukset Tilakaaviot Tapahtumasekvenssit Tietohakemistot ER-kaaviot Toimintokuvaukset Tilakaaviot Tietohakemistot ER-kaaviot Toimintokuvaukse Tietokantakuvauksett Tietohakemisto Luokkakaaviott ER-kaaviot Määrittelymenetelmä: kuvaa kuvaa määrittelyn määrittelyn työprosessin, työprosessin, tuotosten tuotosten jäsentelyn jäsentelyn sekä sekä sitoo sitoo käytettävät käytettävät kuvaustekniikat kuvaustekniikat prosessiin. prosessiin. Valitaan Valitaan menetelmät, menetelmät, esimerkiksi esimerkiksi yllä yllä olevasta olevasta valikoimasta. valikoimasta. Kuvaustekniikat 5
Structured Analysis (SA) SA-menetelmä on yksi yleisimmin käytetyistä ohjelmiston määrittely- ja suunnittelumenetelmistä useita eri versioita: Muita:» Structured Analysis (Yordon et al.)» Structured Design» SA/RT (Real Time, Ward&Mellor) OMT (Oliomenetelmä, Rumbaugh et al) OMT++(Aalto & Jaaksi) Simplified Method (Jaaksi)... Edward Yourdon, Modern Structured Analysis Edward Yourdon, Just Enough Structured Analysis Sovita Sovitamenetelmä ongelmaan eikä eikä päinvastoin! Weinbergin Weinbergin viisaus viisaus Kuvaustekniikat 6
Menetelmien kohdealue yksittäinen elinkaarivaihe (esim. määrittely) kokonaisvaltaisesti koko kehityksen elinkaarivaiheet kattava eriytyvien menetelmien ketju (vaihekohtainenen, yhteensopivat menettelyt) tuki järjestelmän osien automaattiselle tuottamiselle Kuvaustekniikat 7
SA-menetelmä Modern SA alkuvaiheessa SA-menetelmä korosti vanhan järjestelmän kuvausta ja sen muuttamista uudeksi (ongelmat!) nykyinen malli korostaa tarvekartoituksesta lähtevää määrittelyä Kuvaustekniikat 8
SA-menetelmä määrittelyssä 1. Johdanto 1.1 Tarkoitus 1.2 Tuote 1.3 Määritelmät, termit ja lyhenteet 1.4 Viitteet, muut tähän liittyvät dokumentit 1.5 Yleiskatsaus dokumenttiin 2. Yleiskuvaus 2.1 Ympäristö 2.2 Toiminta 2.3 Käyttäjät 2.4 Yleiset rajoitteet 2.5 Oletukset ja riippuvuudet 3. Tiedot ja tietokanta 4. Toiminnot tietovirtakaavio tila-automaatit toimintokuvaukset liittymäkaavio tapahtumaluettelo käyttötapauskaavi o tietovirtakaavio luokkakaavio käyttöliittymäkuv aus luokkakaavio käsitekaavio tietohakemist ot 5. Ulkoiset liittymät 5.1 Käyttöliittymä 5.2 Laitteistoliittymät 5.3 Ohjelmistoliittymät 5.4 Tietoliikenneliittynnät 6. Muut ominaisuudet 6.1 Suorituskyky 6.2 Käyttetävyys, toipuminen, turvallisuus ja suojaukset 6.3 Ylläpidettävyys 6.4 Siirettävyys, yhteensopivuus 6.5 Operointi 7. Suunnittelurajoitteet 7.1 Standardit 7.2 Laitteistorajoitteet 7.3 Ohjelmistorajoitteet 7.4 Muut rajoitteet Dokumenttirakenne Dokumenttirakenne palvelee palvelee dokumentin dokumentin käyttöä, käyttöä, kehitysmenetelmä kehitysmenetelmä luontevaa luontevaa kehitysprosessia kehitysprosessia ja sen toiminnan sen toiminnan luonnollista luonnollista jäsentämistä. jäsentämistä. => => määrittelydokumentin määrittelydokumentin rakenne rakenne ei ei välttämättä välttämättä suoraan suoraan heijasta kuvausta heijasta kuvausta sen sen tuottamisessa tuottamisessa käytetystä käytetystä prosessista. prosessista. Kuvaustekniikat 9
SA-mallin komponentit Tapahtumalista 1. tapahtuma 1 2. tapahtuma 2... Liittymäkaavio Tietohakemisto tieto_a = tieto_b + tieto_c tieto_x =... Hierarkiset tietovuokaaviot ER-kaaviot Tilakaaviot Minispesifikaatiot if a<b then... Kuvaustekniikat 10
SA-mallin komponentit (määrittely) Tapahtumalista: luettelo tapahtumista, joihin järjestelmän on reagoitava perusta liittymäkaaviolle ja edelleen tietovuokaavioille Tietovuokaavioiden keskeinen rooli kuvauksessa käsittely-orientoitunut lähestymistapa SA-RT-malli Ydinmalli (essential model) Ympäristömalli (enviromental model) - järjestelmän tavoitteet (statement of purpose). - liittymäkaavio (context diagram) - tapahtumalista (event list) Käyttäytymismalli (behavioral model) - tietovuokaavio, minispesifikaatiot - käsitekaavio - tilakaaviot - tietohakemisto Vaiheistus järjestelmän looginen kuvaus (irrallaan toteutustekniikasta): ydinmalli lisätään toteutusteknologian synnyttämät rajoitukset: toteutusmalli Toteutusmalli (implementation model) - toteutettavan järjestelmän rajaaminen - käyttöliittymien määrittely - kaavioiden muokkaaminen toteutusta silmällä pitäen Valmis määrittely Kuvaustekniikat 11
Ydinmalli kuvaa järjestelmän toiminnan ilman toteutusteknologian aiheuttamia rajoituksia tarpeettomat tietovarastot, toiminnan sisäisten virheiden käsittely, kuvauksen tarkkuustaso vs. käytötarve erilaiset intressiryhmät -> erilaiset kuvaustarpeet Kuvaustekniikat 12
Ydinmallin osat ympäristömalli: järjestelmän rajaus ja liitynnät ympäristöön järjestelmän tarkoitus lyhyt yleisluonteinen kuvaus järjestelmän tavoitteista liittymäkaavio tapahtumalista käyttäytymismalli: järjestelmän toiminnan kuvaaminen (hierarkkinen esitys) tiedot käsittely Kuvaustekniikat 13
Ympäristömalli ominaisuudet jokainen saapuva tietovirta»on tapahtuma» siitä aiheutuu johdettu tapahtuma» järjestelmä kysyy / lukee sen prosesoidessaan tapahtuman jokainen lähtevä virta on vaste tapahtumaan jokaiseen ei-ajastettuun tapahtumaan liittyy saapuva virta, josta järjestelmä tietää tapahtuman tapahtuneen jokaisen tapahtuman tulee aiheuttaa toimintoja järjestelmässä: 1) välitön vaste 2) järjestelmän tila muuttuu (tilakaaviot) 3) tieto talletetaan Kuvaustekniikat 14
Käyttäytymismallin laadinta edetään hierarkkisesti liittymäkaaviosta eteenpäin jokaisesta tapahtumalistan tapahtumasta laaditaan erillinen tietovirtakaavio; vain muutama transformaatio kussakin kaaviossa transformaatiot nimetään vastetta kuvaavalla nimellä kaavioon lisätään virrat, jotka tarvitaan vasteen tuottamiseen mikäli käsitekaaviota ei ole, luodaan se osana eo. prosessia» konsistenssi käsitekaavion ja tietovirtakaavioiden välillä Kuvaustekniikat 15
Käyttäytymismalli alustavassa tietovirtakaaviossa ei ole transformaatioiden välisiä suoria yhteyksiä, vaan kommunikointi perustuu aina tietovarastojen käyttöön» järjestelmä ei voi määrätä milloin ulkomaailman tapahtumat tapahtuvat» jos tapahtuman vasteen tuottaminen edellyttää toisen tapahtuman tuottamaa tietoa, ei voida tietää onko tieto käytettävissä Kuvaustekniikat 16
... käyttäytymismalli kun aloitetaan alustavan tietovirtakaavion laadinta aloitetaan myös tietohakemiston laadinta (virrat, tietovarastot) tietovirtakaavion tietovarasto on käsitekaavion käsite; käsitteet helpottavat tietovirtakaavion tietovarastojen hahmottamista tapahtumalistan substantiivit vastaavat usein järjestelmään kuuluvia käsitteitä ristikkäistarkastukset: käsitekaavio - tapahtumalista, tietovirta - käsitekaavio, tietohakemisto sisäinen eheys, tietovirtakaavion tasojen välinen eheys Kuvaustekniikat 17
... käyttäytymismalli jatkokehittely» transformaatioiden sijoittelu eri kuvaustasoille» transformaatioiden yhdistely» transformaatioiden jakaminen alimman tason transformaatioiden kuvaaminen minispesifikaatioina (toimintokuvaukset) kaavioiden viimeistely kaavioiden yhteensopivuuden tarkastus» CASE-välineet saattavat tehdä automaattisesti Kuvaustekniikat 18
Esimerkki: Kurrek Järjestelmän tarkoitus: KURREK-järjestelmä sisältää kuvaukset TTKK:n opintojaksoista, opettajista ja opintosuorituksista. Järjestelmä tuottaa kurssien osallistujalistoja, tenttien tuloslistoja ja opintosuoritusrekisterin otteita. Opettajat kirjaavat järjestelmän avulla opintosuoritukset rekisteriin. Opiskelijat pystyvät ilmoittautumaan kursseille ja tutkimaan omia suoritustietojaan Kuvaustekniikat 19
Kurrek: Liittymäkaavion laatiminen opiskelija suorituskysely opettajatiedot suoritukset opintojaksotiedot opiskelijatiedot ylläpitäjä KURREK kurssi-ilmoittautuminen tenttiilmoittautuminen suorituskysely osallistujalista tuloslista ov_yhteenveto opettaja laitoksen johtaja Kuvaustekniikat 20
Kurrek: Tapahtumien etsintä luettelo tapahtumista, joihin järjestelmän on reagoitava Tapahtumat voi luokitella vuotapahtumat (F): järjestelmään saapuu siinä toiminnan aiheuttavaa tietoa; terminaattorista järjestelmään tuleva tietovirta; jokaiseen virtaan ei välttämättä liity tapahtumaa ajastetut tapahtumat (T): järjestelmän itsensä määräajoin generoima (esim. päiväraportti tuotetaan klo 9.00) ohjaustapahtumat (C): aiheuttaja on järjestelmään (ulkopuolelta) saapuva ohjausvirta johdetut tapahtumat (I): järjestelmä päättelee muista tapahtumista järjestelmän määrittelyn kannalta luokittelu ei ole oleellinen tapahtumia eivät ole järjestelmän sisäiset toiminnot, ulkoiset tapahtumat joihin järjestelmä ei reagoi, järjestelmästä ulos tulevat virrat Apuna Apunavoi voikäyttää käyttääkäsite- käsite- // luokkakaaviota: luokkakaaviota: kaaviossa kaaviossa tapahtuvat tapahtuvat muutokset muutokset indikoivat indikoivat tapahtumalistaan tapahtumalistaan tulevia tulevia tapahtumia tapahtumia Kuvaustekniikat 21
Kurrek: Tapahtumalistan laadinta 1. Ylläpitäjä päivittää opiskelijan tietoja (lisäys, poisto, muutos) (F) 2. Ylläpitäjä päivittää opintojakson tietoja (F) 3. Ylläpitäjä päivittää opettajan tietoja (F) 4. Opiskelija ilmoittautuu kurssille (F) 5. Opiskelija ilmoittautuu tenttiin (F) 6. Opiskelija osallistuu tenttiin (F) 7. Opiskelija pyytää kurssin osallistujalistan (F) 8. Opettaja pyytää tentin osallistujalistan (F) 9. Opettaja kirjaa opintosuorituksen (F) 10. Opiskelija yytää opintorekisteriotteen (F) 11. Laitoksen johtaja saa opintoviikkoyhteenvedon (T) Kuvaustekniikat 22
Kurrek: Tapahtumaluettelo ja tietovirtakaaviot 1. Ylläpitäjä päivittää opiskelijan tietoja (lisäys, poisto, muutos) 2. Ylläpitäjä päivittää opintojakson tietoja 3. Ylläpitäjä päivittää opettajan tietoja 4. Opiskelija ilmoittautuu kurssiulle 5. Opiskelija ilmoittautuu tenttiin 6. Opiskelija osallistuu tenttiin 7. Opiskelija pyytää kurssin osallistujalistan 8. Opettaja pyytää tentin osallistujalistan 9. Opettaja kirjaa opintosuorituksen 10. Opiskelija pyytää opintorekisteriotteen opettaja suoritukset opettajat suorituskirjaus kurssit opiskelijat opintojaksot Kuvaustekniikat 23 tentit 11. Laitoksen johtaja saa opintoviikkoyhteenvedon suoritusdialogi Yhteyskaaviossa ei ei yleensä esitetä esitetä tietovarastoja
Kurrek: Luokkakaavio (Käsitekaavio) Opiskelija nimi op.nro osoite osallistuu 1..* 0..* kurssi kurssitunnus periodit lukukausi <kuvaa 0..* 1 opintojakso kuvaus ilmoittaudu() 0..* suorittaa 1 kuuluu 0..* tentti 0..* luennoi 0..1 opettaja nimi osoite henkilönro 0..* suoritus arvosana ov-määrä pvm opiskelija 0:N 1:N 0:N kurssi 1:1 0:N 0:N suorittaa tentti kuuluu 0:N 0:N <-kuvaa luennoi 1:1 0:1 osallistuu opintojakso suoritus opettaja Kuvaustekniikat 24
Toteutusmalli automatisoinnin rajat käynnistyksen ja lopetuksen vaatimat lisäykset toteutuksen reunaehdot käyttöliittymän suunnittelu (näytöt, lomakkeet, ) varautuminen laitevirheisiin kapasiteettivaatimukset tietokantojen koon arviointi (vaikuttaa toteutukseen) Kuvaustekniikat 25
toteutusmalli vastausaikojen määrittely laitteisto- ja varusohjelmarajoitukset luotettavuusvaatimukset suojaus- ja turvallisuusjärjestelyt... Kuvaustekniikat 26
SA-menetelmän soveltaminen soveltamiskulttuurien kirjavuus kehitystyötä / ylläpitoa tukevat välineet, mm. automaattinen koodi(rungo)n generointi SA-kaavioista automaattinen tietokantakuvausten generointi ER-kaaviosta SD-menetelmä tietovuokaavio ohjelman rakennekaavioksi Kuvaustekniikat 27
Muita menetelmiä Edellä on kuvattu määrittelytyön etenemistä ja dokumentointia Modern Structured Analysis menetelmän mukaisesti. Määrittely on osa ohjelmistotyön kokonaisuutta, jossa käytettävän prosessin kuvaa ohjelmistotyön laatujärjestelmä ja sen pohjalta laaditut ohjeistot. Vaikka nämä prosessikuvaukset vaihtelevat yrityskohtaisesti, on niiden pohjana yleensä jokin alan kirjallisuudessa esiintyvä prosessikuvaus. Ohjelmistotyössä on vallalla trendi kohti oliosuuntautunutta ohjelmistotyötä. Tämä näkyy sekä välinevalinnoissa että toimintatavoissa. Seuraavassa käsitellään tosin yleisluonteisesti kolmea oliosuuntautunutta ohjelmistotyön prosessia. Simplified Method on yksinkertainen pienten oliopohjaisesti kehitettyjen järjestelmien kehitysprosessin kuvaava menetelmä. Siinä käytettävät kuvausmenetelmät ovat yksinkertaisia: käyttötapauskuvaukset, luonnollinen kieli, tapahtumasekvenssikaaviot ja luokkakaaviot. OMT++ -menetelmä on kehitetty suurten oliotekniikalla toteutettujen järjestelmien kehittämiseen. Menetelmään liittyy paitsi runsaasti yksityiskohtia myös kehitystyön järjestelyjä: uudelleenkäyttö, tuoteperheajattelu, kehitysalustat, rakennekulttuurin luonti (MVC++) jne. Näihin ei tässä yhteydessä puututa. Kolmas lyhyesti esiteltävä menetelmä on Rational Unified Software Development Method, joka pohjautuu Jacobsonin, Rumbaughin ja Boochin kehittämille oliojärjestelmien kehittämisen ja kuvaamisen periaatteille ja luo käytännön soveltaa UML-kuvaustekniikoita. Menetelmiä Menetelmiä tarkastellaan tarkastellaan pintapuolisesti pintapuolisesti ja ja tarkoitus tarkoitus on on antaa antaa eväät eväät asian omakohtaiselle asian omakohtaiselle opiskelulle opiskelulle menetelmiä menetelmiä koskevasta koskevasta kirjallisuudesta. kirjallisuudesta. Exit
Simplified Method yksinkertaistettu OMT++ -menetelmästä OMT++ on (tekijänsäkin mukaan) vaikea omaksua joskin perusidean oivaltamisen jälkeen se on suhteellisen suoraviivainen soveltaa Jaaksi on kehittänyt yksinkertaistetun menetelmän, joka pohjautuu OMT++ perusideaan (Simplified Method) menetelmä ensimmäisen oliojärjestelmän kehittämiseen Kuvaustekniikat 29
Simplified method Vaatimukset UseCaseA UseCaseB Use Case C Muut Vaat. Suunnitteluoliomalli Määrittelyoliomalli Toimintolista Operaatio Operaatio X attribute attribute Y attribute Operaatio Operaatio Simplified method X function2 function3 attribute attribute X function2 function3 attribute attribute Tapahtumakaaviot User X Y Z function1 function2 function3 User X Y Z function4 function5 X function2 function3 attribute attribute function6 Määrittelyt Class Y { function3(); function5(); X x; } Koodi Y::function5() { x function6(); } Testitapaukset UseCaseA UseCaseB Use Case C Muut Vaat. Kuvaukset Kuvaukset Käyttötapaukset Operaatiokuvaukset Käyttötapaukset Luokkakaaviot Operaatiokuvaukset Tapahtumasekvenssit Luokkakaaviot Tapahtumasekvenssit Kuvaustekniikat 30
simplified method 1. vaatimuskartoitus käyttötapausten määrittely» toiminnot joista järjestelmän on kyettävä vastaamaan» kuvaus: käyttötapaus tai luonnollinen kieli» ei-toiminnalliset ominaisuudet kuvataan erikseen luonnollisella kielellä tulos:» käyttötapaukset» ei-toiminnalliset vaatimukset Kuvaustekniikat 31
simplified method 2a. Olioanalyysi (object analysis) alustavan luokkakaavion laadinta perustana käytetään käyttötapauksia tulos: alustava luokkakaavio (analysis object model) Kuvaustekniikat 32
simplified method 2b. Toimintoanalyysi (behavioral analysis) relevanttien toimintojen määritys perustana käyttötapaukset kuvaustapa: luonnollinen kieli tulos: toimintoluettelo (operations list) Kuvaustekniikat 33
simplified method 3a. Luokkasuunnittelu (object design) luokkakaavion tarkentaminen (suunnittelumenetelmästä riippuvalla tavalla) operaatiot ja luokkien välinen vuorovaikutus (tapahtumasekvenssikaaviosta) muokkaus (luokkien / attribuuttien lisääminen / poistaminen) tulos: tarkennettu luokkakaavio (design object model) Kuvaustekniikat 34
simplified method 3b. Toimintojen suunnittelu (functional design) toimintoluettelon pohjalta määritetään toimintojen toteuttamistapa tapahtumasekvensseinä luokkien välillä luokkien toiminnot tarkentuvat tulos: tapahtumasekvenssikaaviot Kuvaustekniikat 35
simplified method 4a. Luokkamääritykset luokkien kuvaus käytettävällä toteutusvälineellä tarkentaa luokkakaaviota 4b. Koodaus operaatioiden lopullinen koodaus tarkentaa luokkakaaviota 5. Testaus (käyttötapauksilla) Kuvaustekniikat 36
OMT++ evoluutio OMT-menetelmästä (Rumbaugh et al.; OMT:ssä vaikutteita Fusion- ja OOSEmenetelmistä) Nokia Telecommunications (Jaaksi) tapahtumasekvenssikaavioiden keskeinen rooli käyttöliittymien suunnittelun korostunut merkitys käytetty suuren reaaliaikaohjelmiston kehittämisessä» yli 2 MLOC (yli 10.000 luokkaa)» Unix, Motif, Oracle, C++ Kuvaustekniikat 37
OMT++ Vaatimusten kartoittaminen olioanalyysi käyttäytymisanalyysi kälimäärittely kälitehtävien määrittely ohjelmalohkon määrittely olioiden suunnittelu ohjelmalohkon rajapintamäärittely käyttäytymisen suunnittelu luokkamäärittely luokkien toteutus testaus Feasibility Study -vaatimukset -käyttötapaukset User Interface Specification - dialogikaaviot (tilakaaviot) - tehtäväkuvaukset (tapahtumasekvenssikaaviot) Program Block Technical Specification -suunnittelun oliomallit -suunnittelun tapahtumasekvenssikaaviot Service Block Functional Specification - analyysin oliomalli - operaatiokuvaukset (tapahtumasekvenssikaaviot) Service Block Technical Specification -ohjelmalohkojen rajapinnat -ohjelmalohkojen kommunikointikaaviot (tapahtumasekvenssikaaviot) Ohjemakoodi -luokkamäärittely -luokkien toteutus Vaiheiden Vaiheiden eteneminen: eteneminen: --normaalisti normaalisti peräkkäistä peräkkäistä -myös -myös o o rinnakkaista rinnakkaista o o iteratiivista iteratiivista Kuvaustekniikat 38
OMT++ vaatimusten kartoitus järjestelmään (uusi versio) tulevat ominaisuudet» käyttötapaukset määrittely olioanalyysi: Class 1 Class 2 1» analyysin oliokaavio (käsitteet ja yhteydet) käyttäytymisanalyysi» määrittelee järjestelmän käyttäytymisen olioanalyysin oliokaavion käsitteitä hyödyntäen» tekstuaalinen kuvaus jokaisesta käyttäjän operaatiosta; voidaan tukea operaatiota kuvaavalla kommunikaatiokaaviolla 0..n Class 1 Class 2 Kuvaustekniikat 39
OMT++ käyttöliittymän määrittely» käyttöliittymän toiminnot määritellään dialogikaavion (Harelin tilakaavio) avulla» dialogin toteutuksessa tarvittavat UIC1 käyttöliittymäkomponentit määritellään komponenttikaavioilla UIC2» tapahtumien kulku toiminnan suorituksessa voidaan kuvata kommunikaatiokaavioilla Class 1 Class 2 Kuvaustekniikat 40
OMT++ suunnitteluvaihe oliomallin sunnittelu» uusi oliomalli analyysin oliomallin pohjalta» lisätään toteutuksessa tarvittavia luokkia ja yhteyksiä käyttäytymisen suunnittelu» luokkakohtaiset tilakaaviot State2 State3» luokkien välistä kommunikaatiota (metodikutsut) kuvaava kommunikatiokaavio» näiden perusteella laaditaan (NTC:llä) C++ -kieliset luokkamäärittelyt ja näitä vastaavien luokkien toteutus Kuvaustekniikat 41
OMT++ vs. elinkaarivaiheet Määrittely Suunnittelu Ohjelmointi Testaus Ohjelmalohkojen rajapinnat sisäinen suunnittelu Oliokeskeinen analyysi Oliokeskeinen suunnittelu Olio-ohjelmointi Testaus Vaatimusten kartoitus Vaatimusten määritys Arkkitehtuuri suunnittelu Moduulisuunnittelu Vaatimusten kartoittaminen olioanalyysi käyttäytymisanalyysi kälimäärittely kälitehtävien määrittely ohjelmalohkon määrittely ohjelmalohkon rajapintamäärittely olioiden suunnittelu käyttäytymisen suunnittelu luokkamäärittely luokkien toteutus testaus Kuvaustekniikat 42
RUP Booch, Jacobsson, Rumbaugh (Rational) ovat yhdistämällä oliomenetelmänsä luoneet yleisen kuvauskielen (UML - Unified Modelling Language) järjestelmien oliopohjaiseen kuvaamiseen RUP on soveltamismenetelmä, joka sitoo kuvausmenetelmät kehitysprosessiin Rational Unified Process (RUP); The Unified Software Development Method "The "The Unified UnifiedModeling ModelingLanguage (UML) (UML) is is a a graphical graphical language language for for visualizing, visualizing, specifying, specifying, constructing, constructing, and and documenting documenting the theartifacts artifactsof of a a software-intensive software-intensive system. system. The The UML UML offers offers a a standard standard way way to to write write a a system's system's blueprints, blueprints, including including conceptual conceptualthings things such such as as business business processes processes and and system system functions functions as as well well as as concrete concrete things things such suchas as programming programming language language statements, statements, database database schemas, schemas, and and reusable reusable software softwarecomponents" Kuvaustekniikat 43
Unified Software Development Process Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iter. Inception Elaboration Construction Transition - Tuotteen ominaisuudet - Täydennetyt mallit - Alustavat mallit - Toteutettu toimiva - Alustava tuotearkkitehtuuri perusarkkitehtuuri - Tarvittaessa proto - Arkkitehtuurikuvaus -Riskit -Riskit - Alustava projektisuunnitelma - Seuraavan vaiheen - Onnistumiskriteerit projektisuunnitelma - Onnistumiskriteerit - Alustava käyttöohje - Lähes täydelliset mallit -Beta-versio - Arkkitehtuurikuvaus - Seuraavan vaiheen projektisuunnitelma - Onnistumiskriteerit - Käyttöohje - Installointivalmis ohjelmisto - Byrokratiadokumentit - Täydelliset mallit - Arkkitehtuurikuvaus - Käsikirjat - WWW-palvelut yms. UML Documentation UML Tutorial Kuvaustekniikat 44
Unified SDP vaiheet Inception Elaboration Construction Transition Requirements Analysis Design Implementation Test iter. 1 iter. 2..................... Kuvaustekniikat 45
Kertauskysymykset Mitä ovat SA-menetelmän kuvauksen keskeiset komponentit. Miten ne näkyvät määrittelydokumantaation osana. Selvitä termien ydinmalli, ympäristömalli, käyttäytymismalli, toteutusmalli merkitys SAmenetelmässä. Minkälaisilla yhdenmukaisuustarkistuksilla on syytä varmistaa käyttäytymismallin oikeellisuus ja yhdenmukaisuus muiden mallinnettavien seikkojen kanssa. Käy läpi kurssoimateriaaliin sisältyvä esimerkki Kurrekjärjestelmän SA-menetelmän mukaisesta kuvauksesta vaiheittain. Kiinnitä erityisesti huomiota eri kuvausten välisiin yhteyksiin. Selvitä eri kuvaustekniikoiden käyttö Simplified Method - menetelmässä. Mitä eroa on analyysin ja suunnittelun luokkakaavioilla. Miten Simplified Methodissa toteutetaan järjestelmätestaus. Selvitä pääpiirteittäin OMT++ - menetelmän mukainen kehitysprosessi ja eri kuvaustekniikoiden rooli siinä. Selvitä RUP-menetlmän mukaisen järjestelmäkehityksen periaatteet. Mikä on iteratiivisen työskentelykäytännön rooli tässä prosessissa. Kuvaustekniikat 46