Ohjelmistotuotanto, s

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

Ohjelmistotuotanto, s /29/2003

Tietojärjestelmän osat

Ohjelmiston vaatimusmäärittely. Systeemianalyysi

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Ohjelmistojen suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

TOIMINNALLINEN MÄÄRITTELY MS

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

4. Vaatimusmäärittely

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmiston toteutussuunnitelma

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Tietojärjestelmien hankinta ja ICT-projektit

Lähestymistavat - toiminnallinen

Dokumentointi ketterissä menetelmissä

Ohjelmistotuotanto, s

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

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

2. Ohjelmistotuotantoprosessi

Projektityö

Vaatimusten hallinta ja vaatimusmäärittely

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

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

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

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

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Määrittelyvaihe. Projektinhallinta

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

1 Kannat ja kannanvaihto

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

Määrittely- ja suunnittelumenetelmät

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Hieman lisää malleista ja niiden hyödyntämisestä

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

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

Vaatimustenhallinta. Exit

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Käyttäjätarinat perinteisessä hankkeessa. Sisältö ja käytännöt

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Sisällönanalyysi. Sisältö

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen. Matti Luukkainen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

hyvä osaaminen. osaamisensa tunnistamista kuvaamaan omaa osaamistaan

Luento 3 Tietokannan tietosisällön suunnittelu

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Johdantoluento. Ohjelmien ylläpito

Työkalujen merkitys mittaamisessa

Tietorakenteet ja algoritmit - syksy

Ohjelmistojen virheistä

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Ohjelmistotekniikan menetelmät, UML

Kehittämisprosessin vaihemalli. Pirkko Mäkinen Asiantuntija, Työturvallisuuskeskus

Näkemyksiä ja kokemuksia käyttäjälähtöisestä suunnittelusta Hannu Paunonen Metso Automation Oy

UML- mallinnus: Tilakaavio

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

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

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

Hyvinvointia työstä Tiina Kalliomäki-Levanto. Työterveyslaitos

811312A Tietorakenteet ja algoritmit I Johdanto

Matematiikan tukikurssi

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen

GroupDesk Toiminnallinen määrittely

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tuotteistaminen käytännössä: TPY:n malli

5. Järjestelmämallit. Mallinnus

Paikkatiedon hyödyntäminen vesiensuojeluyhdistyksissä

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

JHS129 Julkisten verkkopalvelujen suunnittelu ja kehittäminen. JHS-jaosto

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

Projektisuunnitelma Nero-ryhmä

OT-s200: Prosessimallit

JHS- seminaari Uudet suositukset ICT- palvelujen kehittämiseen

Asiakastarpeiden merkitys ja perusta. asiakastarpeiden selvittämisen merkitys ja ongelmat asiakastarvekartoitus asiakastarvekartoitustyökaluja

Oppimistavoitematriisi

Transkriptio:

Ohjelmistotuotanto Ohjelmiston määrittely n tavoitteena on selvittää ohjelmistolle asetettavat vaatimukset niin yksityiskohtaisesti, että niiden perusteella voidaan tuottaa haluttu ohjelmisto. Lineaarisissa malleissa työvaiheen lopputuloksena saadaan täydellinen lista vaatimuksista ja analyysi niiden vaikutuksesta lopputulokseen. Iteratiivisissa malleissa saadaan lista tällä iteraatiokierroksella vaikuttavista vaatimuksista. 1 Harri Laine 2 ideat lähtökohdat rajoitteet reunaehdot ongelman ymmärtäminen vaatimusten kartoitus Määrittelyprosessi toteutettavan järjestelmän spesifiointi korjattavaa n edeltäjänä tai sen osana voidaan katsoa olevan Systeemisuunnittelun (System Engineering). Sen tarkoituksena on kartoittaa ohjelmiston rooli yrityksessä, sen sidosryhmät ja vaikutukset. Tuottaa mallin koko yrityksestä tai tuotealueesta ja ohjelmiston asemasta siinä Selvittää nykytila. toiminnallinen määrittely tietosisältö käyttöohjeet projektisuunnitelma Tarkastus Harri Laine 3 Harri Laine 4 Kartoitus Määrittely ( speksaus ) Ohjelmistolle asetettujen vaatimusten kartoitus selvitetään asiakkaan tarpeet mikä ongelma on ohjelmistolla tarkoitus ratkaista halutut palvelut MITÄ asiakas haluaa? asiakas ja tuottaja tekevät kartoituksen yhteistyössä Ohjelmiston määrittely MITÄ ohjelmisto tarjoaa? tuloksena määrittelydokumentti: sopimus asiakkaan ja tuottajan välillä perusta myöhemmille vaiheille asiakkaan hyväksyttävä Harri Laine 5 Harri Laine 6 Harri Laine 1

Kartoituksen lähtökohtia kuka on asiakas? onko käynnissä tarjouskilpailu? millaista hyötyä odotetaan? millaista tietoa pitäisi käsitellä? millaisessa käyttöympäristössä ohjelmiston tulisi toimia? onko suorituskykyä mietitty? Vaatimuksia vaatimuksille Dokumentoitavien vaatimusten on oltava: Virheettömiä (correct) eli asiakkaan käsitysten mukaisia. Isoissa järjestelmissä virheettömyyden todentaminen on vaikeaa. Ristiriidattomia (consistent). Vaatimuksia pitää analysoida, jotta löydetään niihin sisältyvät ristiriidat. Ristiriitaisuutta saattaa syntyä kielen moniselitteisyydestä, mutta usein vaatimukset ovat aidosti ristiriitaisia. Täydellisiä (complete). Ei jätetä kirjaamatta tiedossa olevia vaatimuksia. Vaatimukset muuttuvat aina projektin elinkaaren aikana. Kun muutokset kohdistuvat jo jäädytettyyn vaatimusdokumenttiin, tarvitaan konfiguraationhallintaa. Harri Laine 7 Harri Laine 8 Vaatimuksia vaatimuksille Vaatimuksia vaatimuksille Jatkuu... Realistisia (realistic). Vaatimusten pitää olla toteutuskelpoisia. Selvitettävä käyttöympäristön ja sidosryhmien asettamat rajoitukset ja suorituskykyvaatimukset. Tarpeellisia (needed). Tarpeellisten vaatimusten määrittely on yllättävän vaikea tehtävä. Vaatimukset kannattaa priorisoida, jolloin on helpompaa vetää raja tarpeellisten ja vähemmän tarpeellisten vaatimusten välille. Todellinen tarve ei välttämättä ole se, minkä asiakas esittää. Todennettavissa (verifiable). Vaatimuksen toteutuminen tuotteessa täytyy olla osoitettavissa. Mitattavuus ja konkreettiset numeroarvoihin perustuvat vaatimukset ovat helpoiten todennettavissa. Jatkuu Jäljitettävissä (tracable). Jokaisen vaatimuksen kohdalla tulee kirjata ylös henkilö tai ryhmä, joka on asettanut tämän vaatimuksen. Näin voidaan tarpeen vaatiessa palata vaatimusketjua takaisin päin vaatimuksen esittäjään. Harri Laine 9 Harri Laine 10 n vaiheet Kartoitus Tässä vaiheessa selvitetään ongelma-alueet ja yleiset tuotteen komponentit. Osa tästä työstä on tehty jo projektija systeemisuunnitelman yhteydessä. Arviointi Kartoituksen perusteella saadaan selkeä kuva tuotteen yleisistä vaatimuksista. Vaatimukset dokumentoidaan ja analysoidaan yksityiskohtaisesti. Uusia vaatimuksia voi ilmetä tässä vaiheessa. Palataan takaisin kartoitukseen, kunnes uusia vaatimuksia ei löydy. Priorisointi ja yhteenveto Kun vaatimukset on löydetty, ne luokitellaan prioriteettiryhmiin. Ryhmittelyn perusteella tehdään yhteenveto, jota voidaan käyttää hyväksi mallinnuksessa. Harri Laine 11 n vaiheet Mallinnus Kun tuotteesta on kerätty riittävästi tietoa, siitä rakennetaan abstrakti malli. Mallinnus on selkeä keino kuvata tuotteen tietosisältö, tiedon kulku järjestelmässä, yleiset algoritmit ja sidosryhmät. Mallin avulla voidaan edelleen tarkentaa vaatimuksia. Mallinnusvaiheessa saatetaan palata kartoitukseen, jos mallin avulla löydetään puutteita tai virheellisiä vaatimuksia. Määrittely Kun edelliset vaiheet on hyväksytty, vaatimusdokumentti voidaan viimeistellä. Tällöin määritellään yksityiskohtaisesti kaikki vaatimukset prioriteetteineen ja vaatimuksista saatu malli. Harri Laine 12 Harri Laine 2

n vaiheet Jäädytys Vaatimusdokumentti tarkastetaan ja jäädytetään. Jos dokumentti ei ole riittävän täydellinen, palataan takaisin aikaisempiin osavaiheisiin. Vaatimuksia voidaan kartoittaa haastatteluilla, tutkimalla dokumentteja, perehtymällä ohjelmiston ajateltuun toimintaympäristöön, tutustumalla oppikirjoihin ja työoppaisiin, jne. On tärkeää huolehtia kommunikoinnin toimivuudesta asiakkaan ja tuottajien välillä. Esitysten havainnollisuuteen ja ymmärrettävyyteen tulee kiinnittää erityistä huomiota. Prototyyppi voi olla hyvä pohja kommunikoinnille. Harri Laine 13 Harri Laine 14 Eräs tapa analysoida vaatimuksia on tarkastella tietojärjestelmää reaktiivisena järjestelmänä. Järjestelmän toiminnot ovat tällöin reaktioita johonkin toimintaympäristön tapahtumaan. Vaatimukset kohdistuvat näihin reaktioihin. Kunkin reaktion kohdalla selvitetään mikä tapahtuma aiheuttaa sen, millaisia aiheuttajat ovat miten se vaikuttaa järjestelmään aktivoiko se muita reaktioita mitä sääntöjä siihen liittyy mitä vaatimuksia siihen liittyy Vaatimusten löytämisen jälkeen ne priorisoidaan. Myöhemmässä vaiheessa päätetään, miten korkean prioriteetin vaatimukset tullaan toteuttamaan ensimmäisessä ohjelmistoversiossa. Analyysissa kannattaa varoa spiraali-ilmiötä. Samaa ongelmaaluetta käsitellään uudestaan ja uudestaan yhä pienenvissä kehissä ilman että vaatimusten määrittely etenee oleellisesti. ssa kannattaa huomata, että myös sellaiset vaatimukset tulisi saada esille, jotka jäävät yleensä pois "itsestään selvyyksinä". Harri Laine 15 Harri Laine 16 Vaatimukset voidaankin jakaa kolmeen luokkaan: 1. Normaalit vaatimukset. Nämä tulevat esille vaatimusanalyysissa ja ne kirjataan vaatimusdokumenttiin. Asiakas tietää, että nämä vaatimukset toteutetaan. 2. Odotetut vaatimukset. Nämä ovat implisiittisesti mukana vaatimuksissa, mutta niitä ei yleensä kirjata. Asiakas olettaa, että nämä vaatimukset toteutetaan. 3. Ekstrat. Näitä ei ole kirjattu vaatimuksiksi, mutta ne ovat mukana lopputuotteessa. Asiakas ei oleta, että näitä tehdään. Harri Laine 17 Mallinnus Järjestelmää kuvaavan käsitteellisen mallin (conceptual model) muodostaminen on määrittelyn keskeinen tehtävä : 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) käyttäytymistä (behaviour) Harri Laine 18 Harri Laine 3

Mallinnus Mallinnus 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 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 asiaa yleiskuvan ja yksityiskohtien esittäminen samassa kuvassa ei toimi Harri Laine 19 Harri Laine 20 Formaali näkemys ohjelmisto tuotetaan jonona asteittain tarkentuvia spesifikaatioita formaali määrittely A oikeaksi todistettu formaali määrittely B... ohjelma formaali määrittely = ohjelmiston ominaisuudet määrittelevä matemaattinen kaava Esim: järjestäminen järjestetty([x,l]) = ( y L): x y and järjestetty(l). järjestetty([]). oikeaksi todistettu muunnos Harri Laine 21 Harri Laine 22 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, ) miten varmistetaan, että ketjun 1. spesifikaatio on oikein (suhteessa epäformaaliin asiakkaaseen)? miten todistetaan, että muunnosten oikeaksitodistukset ovat oikein? entä oikeaksitodistuksen oikeaksitodistukset, Harri Laine 23 Harri Laine 24 Harri Laine 4

Menetelmien synty prosessin raskaus lyhyt ketju -> suuria semanttisia välejä spesifikaatioiden välillä -> todistaminen vaikeaa pitkä ketju -> paljon spesifikaatioita, muunnoksia ja todistuksia käytäntö kaupalliset menetelmät epähavainnollisuus huono kommunikaatioväline, onko tämä vain notaatio ongelma? teollisuudelta puuttuva formaali osaaminen teoria vähän vakuuttavia näyttöjä käytössä erityisaloilla: tietoliikenne, kääntäjät kirjat, artikkelit Harri Laine 25 Harri Laine 26 Menetelmien synty Menetelmien synty mutu myyty Tarvitaan välineet 1. tiedon analysointiin 2. toimintojen esittämiseen metu 3. liittymien kuvaamiseen 4. ongelman osittamiseen 5. abstrahoinnin tukemiseen Harri Laine 27 Harri Laine 28 Osittaminen Osittaminen kokonaisuus jaetaan osiin, toiminnallisuuden perusteella kokonaisuus jaetaan osiin, toiminnallisuuden perusteella osa voidaan edelleen jakaa pienempiin osiin osa voidaan edelleen jakaa pienempiin osiin 1 2 3 Harri Laine 29 Harri Laine 30 Harri Laine 5

Osittaminen kokonaisuus jaetaan osiin, toiminnallisuuden perusteella Muodostuu jakohierarkia kullakin tasolla sama tarkastelukulma ja kuvaustapa, mutta suppeampi kohde osa voidaan edelleen jakaa pienempiin osiin 0 1.1 1.2 1.3 2 3 1 2 3 1.1 1.2 1.3 Harri Laine 31 Harri Laine 32 Ongelman osiinjako - abstrahointi Ongelman osiinjako - abstrahointi Abstrahointi tarkastellaan aluksi karkeammalla tasolla lisätään yksityiskohtaisuutta siirryttäessä seuraavalle tasolle tarkastelun kohteena kullakin tasolla koko järjestelmä esim. käsitetaso rakennetaso fyysinen taso kuvaustapa tasoilla voi vaihdella Harri Laine 33 karkea taso lisää yksityiskohtia... hyvin yksityiskohtaista Harri Laine 34 Ongelman osiinjako - projisointi Näkökulmia mallinnukseen Projisointi järjestelmää tarkastellaan jostain tietystä näkökulmasta (esim. suojaus, käytettävyys,..) toimintokeskeinen syötteistä tulosteita muokkaava systeemi tietokeskeinen kohdealueeseen liittyvää tietämystä ylläpitävä ja tarjoava systeemi oliokeskeinen kohde olioiden joukkio, joka yhteistyössä toimien tuottaa halutut palvelut (vrt. organisaatioyksikkö) Harri Laine 35 Harri Laine 36 Harri Laine 6