Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

Samankaltaiset tiedostot
Ohjelmistotuotanto, s

Lähestymistavat - toiminnallinen

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistotekniikan menetelmät, UML

5. Järjestelmämallit. Mallinnus

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML-kielen formalisointi Object-Z:lla

3a. Projektin hallinta (lisäys lukuun 3)

UML- mallinnus: Tilakaavio

UML:n yleiskatsaus. UML:n osat:

Ohjelmiston vaatimusmäärittely. Systeemianalyysi

Yhteenveto. Menettelytavat

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Automaatit. Muodolliset kielet

UML -mallinnus TILAKAAVIO

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotuotanto, s /3/2003

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotuotanto, s

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

VH5, JOTU, MagicDraw:n käyttö

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

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

Tietojärjestelmän osat

Dynaaminen analyysi II

MagicDraw-pikaohje (VH5)

Ohjelmistojen mallintaminen

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Ohjelmistojen mallintaminen, mallintaminen ja UML

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s Harri Laine 1. Vaatimusten spesifiointi ja dokumentointi

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Toimintokaavio. UML-Toimontokaavio 1

Analyysi on tulkkaamista

Ohjelmistojen mallintaminen, sekvenssikaaviot

Vaatimusmääritelystä UML:n avulla

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

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

1. Tarkastellaan seuraavaa kaaviota

HELIA 1 (12) Outi Virkki Tiedonhallinta

TIE = JOTU. VH5 - MagicDraw

Esimerkki 1: Kahviautomaatti.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

1. Universaaleja laskennan malleja

Suunnitteluvaihe prosessissa

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

UML - unified modeling language

Unified Modeling Language

Ohjelmistojen mallintaminen, kesä 2010

Olioiden yhteistyön mallintaminen

Turingin koneen laajennuksia

Luento 3 Tietokannan tietosisällön suunnittelu

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Luokkakaavion laatiminen

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

3. Käsiteanalyysi ja käsitekaavio

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistoarkkitehtuurit

GroupDesk Toiminnallinen määrittely

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotekniikan menetelmät, kesä 2008

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

Tutoriaaliläsnäoloista

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Predikaattilogiikkaa

Ohjelmiston toteutussuunnitelma

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistotekniikan menetelmät, koe

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Transkriptio:

Ohjelmistojen vaatimusmäärittely syksy 2013/5b Vaatimusten spesifiointi ja dokumentointi DeMarco & Yourdon 1979, Gane & Sarson 1979 Kuvauksen sisältö toiminnan hierarkkinen osiinjako tiedon kulku toimintojen välillä tiedon säilytys tiedon käyttäjät ja tuottajat Harri Laine Helsingin yliopisto Tietojenkäsittelytieteen laitos 1 2 PROSESSI (process) toiminto = tehtäväkokonaisuus kuvaa tekemistä (tietoa muokataan jollain tavoin) prosessi saa syötteitä ja tuottaa tulosteita TIETOVARASTO (data store) kuvaa tiedon tilapäistä tai pitkäaikaista säilytystä saa tietoa yhdeltä tai useammalta prosessilta prosessit voivat hakea tietoa tietovarastosta 3 ULKOINEN OLIO (external entity) järjestelmän ulkopuolelle rajattu järjestelmä, käyttäjä tai muu olio, joka joko saa systeemiltä tietoa ja/tai antaa systeemille tietoja ulkoisten olioiden toimintaan ei voi vaikuttaa joskus erotellaan ulkoiset oliot tiedontuottajiksi (source) ja tiedon hyväksikäyttäjiksi (sink) TIETOVUO (tietovirta) (data flow) kuvaa suoraa tiedonkulkua prosessin ja toisen prosessin / tietovaraston / ulkoisen olion välillä tietovuon toisena osapuolena on aina prosessi tietovuolla on suunta. 4 U1 V1 P V2 V3 U2 U3 Kuvaus on hierarkkisesti tarkentuva V1 P.1 P.2 V2.1 5 V.1 V.2 T.1 V.3 P.3 V2.2 V3 6 Harri Laine 1

Ulkopuolinen taho Notification Meetin gsyste m järjestelmä constraints constraintssent Notification data-yhteys Check constraint Syötetieto invalid valid copyof constraints individual Ask Collect Merge participant Tulostieto Prosessi Notification Determine Schedule Taso 0: yhteyskaavio (context diagram) 7 Ulkoinen olio Tietovarasto 8 Taso 1: yleiskaavio tärkeimmät toiminnot Tietovuokaavioissa ei esitetä toimintojen aikariippuvuutta eikä toimintaan liittyvää kontrollia. Näiden kuvaamista varten on kehitetty muunnelma (Ward & Mellor - reaaliaikalaajennos) ohjausprosessit ohjausvuot (-signaalit) Järjestelmän ohjaustiedon siirtyminen prosessien välillä. Osa prosesseista voi olla yksinomaan ohjausprosesseja. ohjaavat muun järjestelmän toimintaa. Myös osa tietovarastoista voi sisältää pelkkää ohjaustietoa. Ajoitussingnaalit yms, ohjausieto 9 Jatkuvat tietovuot. Jatkuva tietovuo kuvaa sellaista tietoa, jota tulee järjestelmään jatkuvasti. Tavallinen tietovuo on diskreettiä: sitä tulee hetken ja sitten tulo loppuu. Esim. antureilta luettavat tiedot ovat jatkuvia. Ohjausprosessit. Ohjausprosessi vaikuttaa tavallisten prosessien tekemiin tehtäviin lähettämälläohjaustietoja. Ohjaustiedot. Ohjaustieto on jokin järjestelmän tilasta toiseen siirtävä tieto. 10 Ohjaustietovarastot. Jatkuva tietovuo Ohjaustietovarasto on ohjaustietojen tallennuspaikka. Moniajoprosessit. Tavallinen tai ohjausprosessi, josta voi olla monta samanaikaistakopiota suorituksessa. Näin voidaan kuvata moniajo-ohjelmistoja. Ohjausviittaukset. Ohjausviittaus liittyy johonkin ohjaustietoon. Siinä viitataan ohjauskaaviota vastaavaan tilasiirtymäkaavioon, joka kertoo yksityiskohtaisesti, miten järjestelmän tila muuttuu ohjaustietojen johdosta. Kaikki kaavion ohjausviittaukset viittaavat samaan tilasiirtymäkaavioon. 11 Ohjausprosessi, käsittelee ohjaustietoja Ohjausvuo (ohjaussignaali) Ohjausviittaus Samanaikaiset 12 Harri Laine 2

ER-kaaviot oikeuskanta Oikeuksien kirjaus avain tarkistus avaussignaali Oven avaus hälyytys kamerasignaali 13 ER-kaavioilla (Entity-Relationship diagrams) kuvataan ongelmakentän käsitteitä, tietosisältöä tai tulevan järjestelmän komponentteja sekä niiden välisiä yhteyksiä. Kuvataan toiminnan kohteita tai osapuolia. Ei kuvaa toimintaa. Alkuperäiset ER-kaaviot esiteltiin jo 1976 (Chen), mutta sittemmin niistä on kehitetty erilaisia variaatioita. Tutuin variaatio on (UML:n) luokkakaavio (class diagram). 14 ER-kaaviot Käyttötapaukset Important GeneralPrefs Email invitedto Invitation Invites Meeting 1..* 0..* Date Name Location Address c onstraintsfor constraintsfrom 1..* Email ing exc ludeddates dat erange preferreddates withwhom Normal 1..1 Figure 4.5 Portion of an entity-relationship diagram for the scheduler 15 Käyttötapauskaaviot (use case) kuvaavat tiedoille suoritettavia operaatioita ja niiden yhteyttä toimintaympäristöön. Toimintakokonaisuudet määritellään käyttötapauksiksi (use cases). Käyttötapaus kuvaa järjestelmän tarjoamaa palvelua ja siihen vuorovaikutuksessa olevia järjestelmän komponentteja. Poikkeustapaukset pystytään esittelemään Kaaviot ovat kovin yleisellä tasolla, joten yksityiskohdat täytyy kuvata muilla spesifiointikielillä. 16 Käyttötapaukset Check <<extend>> Unauthorized Deny Determine Schedule <<include>> Resolve Conflicts Ask Collect Merge Poikkeustapaus Käyttötapaus, palvelu, operaatio Conflict Resolver Tarkenne Scheduler Järjestelmän Figure 4.9 Use case diagram for the scheduler komponentti 17 Työnkulkuja ja toimintojen suoritusketjuja voidaan kuvata esimerkiksi UML:n aktiviteettikaavioilla. Toiminnot Kontrollin kulku Toimintojen välillä kulkevia tietoja Toimintoihin liittyviä ehtoja Ehtoja siirtymille Vaihtoehtoja Rinnakkaisia tehtäviä Ositus esim. vastuutahon mukaan 18 Harri Laine 3

Vaihtoehdot haarautuvat/yhtyvät Toiminta voidaan sijoittaa kaistoille (swimlane) Kaista kuvaa esimerkiksi jotain oliota tai osajärjestelmää, jonka vastuulla toiminta on Asiakas toiminto aloitus Rinnakkaisuus alkaa / päättyy Toimittaja Kuva: Wikipedia Välittyvä tieto Kontrollin kulku 19 20 Viestiyhteyskaavio (event trace diagram) kuvaa skenaariona järjestelmän komponenttien välisen vuorovaikutuksen (viestinvälityksen, kommunikaation). Viestiyhteyskaavio kuvaa skenaarioon osallistuvien komponenttien tehtävät toisiinsa liittyvinä aikajanoina. Aika juoksee kaaviossa ylhäältä alas. Kaaviossa kuvataan komponentit, komponenttien toisilleen lähettämät pyynnöt ja vastaukset sekä toisinaan arviot pyyntöjen käsittelyyn kuluvasta ajasta. Kukin viestiyhteyskaavio kuvaa vain yhtä toimintaskenaariota, joten niitä tarvitaan useita järjestelmän koko toiminnan kuvaamiseksi. UML:n sequence diagram Viesti/yhteys Attribuutti Komponentti (daterange, withwhom) OK-request notification (date, location) Scheduler OK-constr? constraints! constraints scheduledetermination notification (date, location) 21 22 Aikajana Sisäinen toiminta Tilakaaviot Viestiyhteyskaavioon voi laittaa vaihtoehtoisia polkuja ja jopa silmukoita, mutta tekniikka on varsin kömpelö näiden osalta Kommunikointi kuvattavissa helposti kiinteän osallistujajoukon kesken entä dynaamisen 23 Tilasiirtymäkaavio (state machine diagram) on kompakti tapa kuvata komponentin koko elinkaari. Vaatimuksena on, että komponentilla on äärellinen joukko tiloja (states) ja tapahtumia (events). Tila kuvaa tiettyä komponentin tilannetta. Tapahtumat siirtävät komponentin tilasta toiseen. Komponentti siirtyy tilasta toiseen, kun se vastaanottaa tapahtuman ja kun määrätty suoritusehto (guard) toteutuu. Suoritusehto on tilasiirtymäkaavion välttämätön reunaehto. Siirtymä tilasta toiseen tapahtuu vain, jos tilojen välinen suoritusehto on voimassa. Tavallisten tilojen lisäksi tilasiirtymäkaaviossa on alkutila (initial state), joka kuvaa komponentin elinkaaren alkua, ja lopputiloja (final state), jotka kuvaavat komponentin elinkaaren loppua. 24 Harri Laine 4

Tilakaaviot Alkutila Tapahtuma Tila Gathering Meeting Data ed weakening Resolving [Unauthorized] [Conflicts] [No schedule conflicts] Determination notification Denied [Authorized] Validating Meeting KO-request Data OK-request [All available] Planning Suoritusehto MeetingScheduled MeetingNotified Lopputila 25 Formaali määrittely (formal specification) korjaa semi-formaalien kielten ongelmat lisäämällä tarkan syntaksin ja semantiikan myös kuvausten selityksiin. Formalismia käyttämällä vaatimusmäärittelyssä löydetyt ominaisuudet määritellään täsmällisesti ja yksiselitteisesti. Formaalilla kielellä kuvatut ominaisuudet voidaan verifioida automaattisesti. Toisaalta formaali määrittely vaatii syvällistä erikoisosaamista, jota ei ole kaikilla sidosryhmillä eikä edes keskiverto-ohjelmistokehittäjillä. Määrittelyt eivät ole kaikenkattavia 26 Formaalit spesifiointikielet perustuvat matemaattiseen formalismiin ja jakautuvat seuraavasti: Propositiologiikkaan (propositional logic) perustuvat kielet kuvaavat totuusarvoisia sääntöjä, joita yhdistetään loogisilla operaattoreilla,,,, ). Predikaattilogiikkaan (predicate logic) perustuvat kielet käyttävät propositiologiikan lisäksi muuttujia, vakioita, lausekkeita ja kvanttoreita (, ). Korkeamman kertaluvun funktioihin (higher-order functions) perustuvat kielet laajentavat propositio- ja predikaattilogiikkaa siten, että funktioiden argumentit voivat olla muuttujien ja vakioiden lisäksi funktioita. Temporaalilogiikkaan (temporal logic) perustuvat kielet lisäävät formalismiin ajan hallinnan. Kielet perustuvat historian (history) käsitteeseen. Historia kuvaa elementtien toimintaa ajassa ( joskus tulevaisuudessa, aina tulevaisuudessa, joskus menneisyydessä, aina siitä lähtien kun jne.). 27 Historiaan perustuvissa kielissä määritellään sallitut historiat. Perustuvat temporaalilogiikkaan. Tiloihin perustuvissa (state-based) kielissä lauseet kuvaavat mallinnettavan järjestelmän tiloja tietyllä hetkellä. Tunnetuin formaali spesifiointikieli Z on tilapohjainen kieli. Tulo ja jättöehdot Tapahtumiin perustuvissa (event-based) kielissä lauseet kuvaavat mallinnettavan järjestelmän siirtymistä tilasta toiseen. Sallitut siirtymät. Siirtymät kuvataan siirtymäfunktioina, joiden lähtö- ja maalitilat, laukaisevat tapahtumat ja suoritusehdot määritellään formaalisti. Algebraan perustuvissa kielissä (algebraic specification) järjestelmän operaatiot kuvataan yhtälöinä ja järjestelmässä käsiteltävä tieto abstrakteina tietotyyppeinä. Operaatioiden vaikutukset. 28 Harri Laine 5