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

Samankaltaiset tiedostot
Ohjelmistotuotanto, s

Ohjelmiston vaatimusmäärittely. Systeemianalyysi

TOIMINNALLINEN MÄÄRITTELY MS

Tietojärjestelmän osat

Suunnitteluvaihe prosessissa

Ohjelmistojen suunnittelu

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotuotanto, s /29/2003

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmiston toteutussuunnitelma

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Projektityö

Avoimen ja yhteisen rajapinnan hallintamalli

Tietokannan suunnittelu

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen mallintaminen

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Ohjelmistotekniikan menetelmät, UML

UML- mallinnus: Tilakaavio

Lohtu-projekti. Määrittelydokumentti

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Standardi IEC Ohjelmisto

Uudelleenkäytön jako kahteen

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Lähestymistavat - toiminnallinen

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

2. Ohjelmistotuotantoprosessi

Luokka- ja oliokaaviot

Sisällönhallinnan menetelmiä

Luento 3 Tietokannan tietosisällön suunnittelu

GroupDesk Toiminnallinen määrittely

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

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

4. Vaatimusmäärittely

Matematiikan oppifoorumi Projektisuunnitelma

Infra FINBIM YLEISET TAVOITTEET, AP1 Hankintamenetelmät FINBIM-PILOTTIPÄIVÄ ANTTI KARJALAINEN

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Yhteenveto. Menettelytavat

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

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Vaatimusten keräys ja hallinta

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Tietojärjestelmien hankinta ja ICT-projektit

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmiston testaus ja laatu. Testaustasot

käyttötapaukset mod. testaus

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Vaatimusten hallinta ja vaatimusmäärittely

Digitaaliset fysiikan ja kemian kokeet. Tiina Tähkä Kemian jaoksen jäsen

Ohjelmistojen mallintaminen, kesä 2010

Projektin suunnittelu

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

Digitaaliset kemian kokeet. Tiina Tähkä Kemian jaoksen jäsen

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Tik Projektiryhmä: TeamAhma. Projektin HAYABUSA opponointi. Opponointisuunnitelma

HELIA 1 (20) Outi Virkki Tiedonhallinta

Vaatimusmäärittely Good Minton Sulkapalloliiton kilpailutoiminnan rekisteriohjelma

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmiston vaatimusmäärittely

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Paikkatietojen tietotuotemäärittely

Määrittelyvaihe. Projektinhallinta

Paikkatietojen tietotuotemäärittely

Johdantoluento. Ohjelmien ylläpito

Perustietovarantojen rajapintaratkaisun sidosryhmät - yhteenveto PERA-määrittely Liite 2

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

Projektityö

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Visual Case 2. Miika Kasnio (C9767)

Transkriptio:

Ohjelmiston vaatimusmäärittely tietoteknisen järjestelmän osat toiminta dokumentit laitteisto järjestelmä tietokanta ihmiset ohjelmisto 1 Määrittelyprosessi Määrittelyprosessi ideat lähtökohdat rajoitteet reunaehdot ongelman ymmärtäminen vaatimusten kartoitus toteutettavan järjestelmän spesifiointi korjattavaa toiminnallinen määrittely tietosisältö käyttöohjeet projektisuunnitelma Tarkastus 2 1

Määrittelyprosessi - päävaiheet ongelman analysointi esitutkimus kannattaako tehdä arvioidut tuotantokustannukset < arvioitu tuotto tarvittava toteutus ja käyttötekniikka saatavilla? onko oikeudellisia tai eettisiä ongelmia potentiaalinen asiakas-/käyttäjäkunta 3 Määrittelyprosessi - päävaiheet järjestelmälle asetettujen vaatimusten kartoitus asiakkaan tarpeet mikä ongelma on tarkoitus ratkaista käyttäjälle tarjottavat palvelut MITÄ? asiakas ja tuottaja yhteistyössä 4 2

Määrittelyprosessi - päävaiheet järjestelmän määrittely MITÄ? tuloksena määrittelydokumentti: sopimus asiakkaan ja tuottajan välillä perusta myöhemmille vaiheille asiakkaan hyväksyttävä 5 Määrittelyprosessi - selvitettävää Ongelman analysointi/ vaatimusten kartoitus kokous kuka on asiakas onko käynnissä tarjouskilpailu millaista hyötyä odotetaan millaista tietoa pitäisi käsitellä millainen käyttöympäristö onko suorituskykyä mietitty 6 3

Määrittelyprosessi - selvitettävää Määrittelydokumentin laatimiskokous / kokoukset lähtökohtana kartoituksen tulokset tavoitteena asiakkaalle ja tuottajalle yhteinen näkemys järjestelmän yleisistä ominaisuuksista pääkomponenteista suorituskykyvaatimuksista ja rajoitteista 7 Määrittelyprosessi - selvitettävää Tarkastuskokous täydellisyys yhdenmukaisuus ristiriidattomuus vastaako asiakkaan näkemystä ymmärrettävyys onko tutkittu vaihtoehtoja mitä riskejä liittyy 8 4

Määrittelyprosessi - selvitettävää tarkastus syytä toteuttaa määrämuotoisena katselmuksena jos tulosta ei hyväksytä palataan ed. vaiheeseen ja tehdään uusi tarkastus sen jälkeen jos tulos OK, siirrytään seuraavaan vaiheeseen on varauduttava määrittelydokumenttiin kohdistuviin muutoksiin määrittelydokumentti ei ole oikeaksi osoitettavissa ei voi todistaa ei voi testata 9 Vaatimusten oltava virheettömiä (correct) ristiriidattomia (consistent) täydellisiä (complete) realistisia (realistic) tarpeellisia (needed) todennettavissa (verifiable) jäljitettävissä (tracable) 10 5

Ohjeita määrittelydokumentin laadintaan (Heninger): 1. M:n pitää kuvata vain järjestelmän ulkoista käyttäytymistä. 2. M:n pitää sisältää toteutusta koskevat rajoitukset. 3. M:n pitää olla helposti muutettavissa. 4. M:n pitää soveltua ylläpitäjän työn tueksi. 5. M:n pitää kuvata järjestelmän ajateltu elinkaari. 6. M:n pitää kuvata hyväksyttävät reaktiot odottamattomiin(kin) tilanteisiin. 11 Seuraavassa tarkastellaan suositusrakennetta määrittelydokumentille dokumentin lukujen otsakkeet on syytä mukauttaa käytettävän menetelmän käsitteistöön on olemassa myös muita perusteltuja tapoja jäsentää määrittelydokumentti ANSI-standardi 830-1984: IEEE Guide to Software Requirements Specification - määrittelee useita vaihtoehtorakenteita (jä hieman seuraavasta poikkeavan yleisrakenteenkin) 12 6

1. Johdanto 1.1. Tuotteen tausta ja tarkoitus 1.2. Mahdollinen erikoissanasto ja käytetyt lyhenteet 1.3 Yleiskatsaus dokumenttiin [Mikäli tuotettava ohjelmisto perustuu johonkin olemassaolevaan järjestelmään, niin: 2. Nykyjärjestelmän kuvaus + viitteet sen dokumentaatioon ] 13 2. Yleiskuvaus 2.1. Yleinen toiminta ("mitä järjestelmän pitäisi tehdä?") 2.2. Tuotteen pääasiallinen toimintaympäristö 2.3. Tuotteen käyttäjäkunta 2.4. Katsaus muihin vastaaviin järjestelmiin 14 7

3. Tietokuvaus 3.1. Tietosisältö 3.2. Tietokantamalli 3.3. Kapasiteetti- ja saantiaikavaatimukset tekniikkoja: luokkakaavio, elinkaarikuvaukset, ERkaavio, 15 4. Toimintokuvaus 4.1. Järjestelmän yleisarkkitehtuuri toiminnalliset pääkomponentit pääkomponenttien väliset suhteet ja rajapinnat Tekniikkoja: osajärjestelmäkaavio, rajaus suhteessa ympäristöön, komponenttien yhteistyötä kuvaavat kaaviot käyttötapausmalli, 16 8

4.2. Komponentit 4.2.1 Komponentti 1 yleiskuvaus syötteet toiminta eli tiedon käsittely tulosteet Komponentti voi olla osajärjestelmä, jolloin se jakautuu edelleen pienempiin osiin toiminto tai palvelukokonaisuus käyttötapaus Tekniikkoja: käyttötapaukset, skenaariot, tietovuokaaviot, päätöstaulut, pseudokoodi, 4.2.2-4.2.x. Komponentti 2 - Komponentti x 17 5. Järjestelmän ulkoiset liittymät sekä järjestelmän käyttämät että sitä käyttävät muut järjestelmät 5.1. Käyttöliittymä mahdollisen prototyypin kuvaus kuvaus tyypillisistä käyttöskenaarioista = käyttötapauksen toteutuma kuvia hahmotellusta käyttöliittymästä (prototyypistä saatuina tai piirrettyinä) 5.2. Laitteistoliittymät 5.3. Ohjelmistoliittymät 5.4. Tietoliikenneliittymät 5.5. Alustustiedot 18 9

6. Muut ominaisuudet 6.1. Suorituskyky 6.2. Käytettävyys, virheistä toipuminen, turvallisuus, suojaukset, varmistuskopiointi 6.3. Ylläpidettävyys (ohjelmointityyliohjeet yms.) 19 7. Testaus kuinka kattavasti on testattava? millaisella aineistolla on testattava? 8. Rajoitteet suunnittelulle ja toteutukselle 8.1. Noudatettavat standardit 8.2. Laitteistorajoitteet 8.3. Ohjelmistorajoitteet (ohjelmointikielet, käyttöjärjestelmät, käyttöliittymät,...) 20 10

Lähdeluettelo Liitteet: kaavioissa käytettyjen symbolien kuvaus, ellei standardinmukainen syötteiden rakenne tulosteiden rakenne formaalit spesifiointikaavat 21 Määrittely Määrittelyn keskeinen tehtävä järjestelmää kuvaavan käsitteellisen mallin (conceptual model) muodostaminen: yksinkertaistettu malli käyttäjien ja suunnittelijoiden kommunikoinnin perusta malli esitettävä täsmällisessä muodossa paperilla / seinätaululla ymmärrettävyys tärkeää mallissa pitäisi käsitellä ainakin toimintoja (function) dataa ohjausta (control) 22 11

Määrittely - menetelmät Järjestelmän mallintamiseen on kehitetty monia menetelmiä: perusajatus siitä, mikä mallintamisessa on oleellista, on eri menetelmissä erilainen kukin menetelmä vaatii käytettävien käsitteiden, symbolien ja merkintätapojen opettelemisen menetelmät eivät sovellu mihin tahansa tilanteeseen 23 Määrittely - Menetelmät Menetelmät käyttävät yleensä graafisia kuvaustapoja: kaavioiden ylläpito voi olla hankalaa (automatisointi?) suurien kokonaisuuksien hahmottaminen: yhteen kuvaan ei mahdu kovin paljon 24 12

Määrittely - Formaalit menetelmät Formaali näkemys ohjelmisto tuotetaan jonona asteittain tarkentuvia spesifikaatioita formaali määrittely A oikeaksi todistettu formaali määrittely B... ohjelma oikeaksi todistettu muunnos 25 Määrittely - Formaalit menetelmät formaali määrittely = ohjelmiston ominaisuudet määrittelevä matemaattinen kaava Esim: lajittelu lajiteltu([x,l]) = ( y L: x y) and lajiteltu(l). lajiteltu([]). 26 13

Määrittely - Formaalit menetelmät - hyviä puolia täsmällisyys tuotettu ohjelmisto vastaa alkuperäistä määrittelyä, eli tekee sen, mitä vaaditaan automatisointi: spesifikaatiota voidaan analysoida ja havaita sisäiset loogiset virheet spesifikaatiota voi osittain suorittaa jo ketjun alussa abstraktiotason voi säätää sopivaksi erikoiskieliä (VDM,Z, LOTOS, Prolog, ) 27 Määrittely - Formaalit menetelmät - teoreettiset aukot miten varmistetaan, että ketjun 1. spesifikaatio on oikein (suhteessa epäformaaliin asiakkaaseen)? miten todistetaan, että muunnosten oikeaksitodistukset ovat oikein? entä oikeaksitodistuksen oikeaksitodistukset,... 28 14

Määrittely - Formaalit menetelmät - käytännön huonot puolet prosessin raskaus lyhyt ketju -> suuria semanttisia välejä spesifikaatioiden välillä -> todistaminen vaikeaa pitkä ketju -> paljon spesifikaatioita, muunnoksia ja todistuksia epähavainnollisuus (huono kommunikaatioväline, notaatio?) teollisuudelta puuttuva formaali osaminen vähän vakuuttavia näyttöjä käytössä erityisaloilla: tietoliikenne, kääntäjät 29 Määrittely - menetelmien synty käytäntö kaupalliset menetelmät teoria kirjat, artikkelit 30 15

Määrittely - menetelmien synty mutu myyty metu 31 Menetelmien yhteisiä piirteitä Tarvitaan välineet 1. tiedon analysointiin 2. toimintojen esittämiseen 3. liittymien kuvaamiseen 4. ongelman osittamiseen 5. abstrahoinnin tukemiseen 32 16

Ongelman osiinjako - ositus Osittaminen kokonaisuus jaetaan osiin, toiminnalliisuuden perusteella osa voidaan edelleen jakaa pienempiin osiin 33 Ongelman osiinjako - ositus Osittaminen kokonaisuus jaetaan osiin, toiminnalliisuuden perusteella osa voidaan edelleen jakaa pienempiin osiin 1 2 3 34 17

Ongelman osiinjako - ositus Osittaminen kokonaisuus jaetaan osiin, toiminnalliisuuden perusteella osa voidaan edelleen jakaa pienempiin osiin 1.1 1.2 1.3 35 Ongelman osiinjako - ositus Muodostuu jakohierarkia kullakin tasolla sama tarkastelukulma ja kuvaustapa, mutta suppeampi kohde 0 1 2 3 1.1 1.2 1.3 36 18

Järjestelmien osiinjako - abstrahointi Abstrahointi tarkastellaan aluksi karkeammalla tasolla lisätään yksityiskohtaisuutta siirryttäessä seuraavalle tasolle tarkstelun kohteena tasolla koko järjestelmä esim. käsitetaso rakennetaso fyysinen taso kuvaustapa tasoilla voi vaihdella 37 Järjestelmien osiinjako - abstrahointi karkea taso lisää yksityiskohtia... hyvin yksityiskohtaista 38 19

Järjestelmien osiinjako - projisointi Projisointi järjestelmää tarkastellaan jostain tietystä näkökulmasta (esim. suojaus, käytettävyys,..) kohde 39 Lähestymistapoja mallintamiseen toimintokeskeinen syötteistä tulosteita muokkaava systeemi tietokeskeinen kohdealueeseen liittyvää tietämystä ylläpitävä ja tarjoava systeemi oliokeskeinen olioiden joukkio, joka yhteistyössä toimien tuottaa halutut palvelut (vrt. organisaatioyksikkö) 40 20