Kuvaustekniikat. Exit



Samankaltaiset tiedostot
Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Ohjelmistotekniikan menetelmät, UML

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistotekniikka - Luento 2

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistojen mallintaminen, mallintaminen ja UML

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen suunnittelu

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

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

Tietojärjestelmän osat

Spesifikaatioiden laatiminen

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

käyttötapaukset mod. testaus

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Luento 3 Tietokannan tietosisällön suunnittelu

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen, kesä 2010

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

Lähestymistavat - toiminnallinen

Ohjelmistojen mallintaminen, kesä 2009

GroupDesk Toiminnallinen määrittely

Unified Process (UP)

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Ohjelmistotuotanto, s

Yhteenveto. Menettelytavat

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen mallintaminen. Matti Luukkainen

Ohjelmistotekniikan menetelmät, kesä 2008

Käyttötapausanalyysi ja testaus tsoft

UML-kielen formalisointi Object-Z:lla

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

UML - unified modeling language

Ohjelmistojen mallintaminen

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Ohjelmistotekniikka: Luento 5

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

TIETOKANNAN SUUNNITTELU

HELIA 1 (20) Outi Virkki Tiedonhallinta

Projektityö

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Projektin suunnittelu

Kokonaisarkkitehtuuri. Kankaanpään kaupunki

Työssäoppimispaikan työtehtävien ja ammattiosaamisen näytön suorittaminen työssäoppimisja näyttösuunnitelman mukaan hyväksytysti.

Johdantoluento. Ohjelmien ylläpito

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Analyysi on tulkkaamista

Kertaus: yleistys-erikoistus ja perintä

IIO30100 Tietokantojen suunnittelu (6 op)

Ohjelmiston toteutussuunnitelma

Prosessikuvaukset ja elinkaarimallit

Suunnitteluvaihe prosessissa

Testaaminen ohjelmiston kehitysprosessin aikana

IIO30100 Tietokantojen suunnittelu (6 op)

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

ITK130 Ohjelmistojen luonne

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Yhteistoimintakaavio (Esimerkki)

Kuvaustekniikoista menetelmiin

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1. Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

sovellussuunnitteluun

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1

JHS XXX ICT-palvelujen kehittäminen: Laadunvarmistus Liite 6: Katselmointi

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

Ohjelmistoprojektien hallinta Vaihejakomallit

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Luokka- ja oliokaaviot

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 4)

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

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

OTM-HANKE. Opintohallinnon tietojärjestelmän modernisointi - tilannekatsaus

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Nimi: Henkilötunnus: {id} {+id}

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

Transkriptio:

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