Spesifikaatioiden laatiminen

Samankaltaiset tiedostot
Copyright by Haikala. Ohjelmistotuotannon osa-alueet

TOIMINNALLINEN MÄÄRITTELY MS

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tietojärjestelmän osat

Kuvaustekniikat. Exit

Ohjelmistojen suunnittelu

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

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

GroupDesk Toiminnallinen määrittely

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Johdantoluento. Ohjelmien ylläpito

Suunnitteluvaihe prosessissa

UML-kielen formalisointi Object-Z:lla

UML:n yleiskatsaus. UML:n osat:

UML- mallinnus: Tilakaavio

Ohjelmistotekniikan menetelmät, UML

Määrittelyvaihe. Projektinhallinta

Vaatimustenhallinta. Exit

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

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

Oleelliset vaikeudet OT:ssa 1/2

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Avoimen ja yhteisen rajapinnan hallintamalli

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Projektityö

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Yhteenveto. Menettelytavat

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Työkalujen merkitys mittaamisessa

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

Teollisuusautomaation standardit Osio 9

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmiston testaus ja laatu. Testaustasot

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

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

Testaussuunnitelma Labra

Uudelleenkäytön jako kahteen

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

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

Ohjelmiston toteutussuunnitelma

Ohjelmistotekniikka - Luento 2

2. päivä. Etätehtävien purku Poikkeamat. Poikkeamat Auditoinnin raportointi Hyvän auditoijan ominaisuudet Harjoituksia

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ohjelmistotuotteen hallinnasta

T Testiraportti - järjestelmätestaus

Ohjelmistotekniikan menetelmät, kevät 2008

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

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

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Luokka- ja oliokaaviot

Testaaminen ohjelmiston kehitysprosessin aikana

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Projektin suunnittelu

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TIETOKANNAN SUUNNITTELU

Käyttötapausanalyysi ja testaus tsoft

Kansallinen ASPAtietojärjestelmä

Laatukäsikirja - mikä se on ja miten sellainen laaditaan?

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Matematiikan oppifoorumi Projektisuunnitelma

Kontrollipolkujen määrä

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

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

Toimilohkojen turvallisuus tulevaisuudessa

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

Opiskelija osaa suunnitella ohjelmiston toteuttamisen, toteuttaa, testata ja dokumentoida ohjelmiston.

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

ITK130 Ohjelmistojen luonne

Tietokannan suunnittelu

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotuotanto, s

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Ohjelmistojen mallintaminen, kesä 2009

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Transkriptio:

Spesifikaatioiden laatiminen Luku tarkastelee ohjelmistotuotantoprosessia spesifikaatioiden ketjuna. Ohjelmistotuotannossa korostuvat jäljitettävissä olevat hyvin dokumentoidut ratkaisut, joiden perustan luovat tarkoituksenmukaisesti valitut kuvaustekniikat ja menetelmät. Dokumentointi on suunnitelmallista, laatujärjestelmän periaatteita toteuttavaa toimintaa. Tuotedokumentaatio muodostuu erityyppisiä tarpeita palvelevista dokumenteista, jotka syntyvät prosessin eri vaiheissa iteratiivisesti tarkentuen. Luvussa esitetään malli dokumentointijärjestelmälle sekä määrittely- ja suunnitteludokumentaation perusrakenne. Aihetta käsitellään myös työkalujen ja standardien näkökulmasta. Exit

Sisällys Spesifikaatioiden laatiminen Hyvä spesifikaatio Esimerkki 1. Esimerkki 2. Kuvaustekniikat Spesifiointimenetelmät Kuvaustekniikat Spesifiointimenetelmät Menetelmien luokittelu SA-määrittelymenetelmä OMT++ Simplified method 4+1 View UML-kuvausmenetelmien ilmaisuvoima Dokumentointi Tuotedokumentit Laatujärjestelmän dokumentit Dokumentointi EVO-mallissa Ylläpitodokumentaatio Esimerkki Dokumentointimallit Määrittely Suunnittelu Arkkitehtuurisuunnittelu Moduulisuunnittelu Tekninen määrittely Työkalut Standardit Kertauskysymykset Spesifikaatioiden laatiminen 2

Spesifikaatioiden laatiminen Käsitellään spesifikaatioiden (dokumentaation) merkitystä ohjelmistotuotannossa kuvaustekniikoiden soveltamista (kuvausmenetelmät) dokumentoinissa ohjelmistotuotanto on jalostuvien spesifikaatioiden muodostama vaiheittain etenevä prosessi mitä-miten problematiikka alimman tason spesifikaatio: ohjelmakoodi Ohjelmistotyö Ohjelmistotyö on on dokumenttien dokumenttien tuottamista tuottamista Spesifikaatioiden laatiminen 3

spesifikaatioden laatiminen Menetelmät, kuvaustekniikat käyttäjien tarpeet, ideat, rajoitukset reunaehdot mitä esitutkimus määrittely miten mitä miten mitä miten mitä miten mitä toiminnallinen määrittely tekninen määrittely asiakasvaatimukset arkkitehtuurisuunnittelu moduulisuunnittelu moduulisuunnitelmat verifiointi verifiointi verifiointi verifiointi hyväksymistestaus järjestelmätestaus integrointitestaus moduulitestaus ohjelmointi miten ohjelmakoodi verifiointi Spesifikaatioiden laatiminen 4

spesifikaatioden laatiminen ohjelmistokehityksen elinkaaressa määrittely vastaa kysymykseen mitä? suunnittelu vastaa kysytmykseen miten? yleisesti ohjelmistotyön tehtävänä on jalostaa spesifikaatiota vaiheittain kohti lopullista toimivaa järjestelmää» jokaisen vaiheen voidaan katsoa tuottavan spesifikaation mitä seuraavassa vaiheessa on ratkaistava» kukin vaihe jalostaa spesifikaatiosta ratkaisun ko. elinkaarivaiheen tasolla kuvataan mitä tiedetään» oleellinen kiteyttäen (kuvausvälineen primitiivisyys)» täsmällisesti ratkaisua jäykistäviä päätöksiä pyritään lykkäämään elinkaaressa mahdollisimman pitkälle (tarkentuvat kuvaustasot) Spesifikaatioiden laatiminen 5

spesifikaatioden laatiminen Spesifikaatio N Spesifikaatio N+1 reunaehdot ja rajoitteet reunaehdot ja rajoitteet ei-toiminnalliset vaatimukset vaatimukset spesifiointi ei-toiminnalliset vaatimukset toiminnalliset vaatimukset toiminnalliset vaatimukset Verifiointi esimerkiksi tarkastamalla Prosessissa Prosessissa kussakin kussakin vaiheessa vaiheessa edellisen edellisen vaiheen vaiheen vaatimukset vaatimukset muuttuvat muuttuvat seuraavan seuraavan vaiheen vaiheen vaatimuksiksi. vaatimuksiksi. Spesifikaatioiden laatiminen 6

spesifikaatioden laatiminen Toiminnalliset ominaisuudet: järjestelmän toimintaa kuvaavat sekä käyttäytymisen ja liitynnät määrittävät ominaisuudet rajapinnat ulkomaailmaan, tiedot, käsittelysäännöt,... Ei-toiminnalliset ominaisuudet: suorituskyky, liitettävyys, siirrettävyys, turvallisuus,... Reunaehdot ja rajoitteet: mm. laitteisto- ja ohjelmistorajoitteet, hinta, aikataulu, työkalut, tyylioppaat, lait, standardit Spesifikaatioiden laatiminen 7

spesifikaatioden laatiminen työ käytännössä: spesifikaatiossa olevat virheet puutteet ristiriitaisuudet epätäsmällisyydet aiheuttavat tarpeen kehitystyö iterointiin spesifikaatioita tukevat dokumentit testaussuunnitelmat laatusuunnitelma, projektisuunnitelma... Spesifikaatioiden laatiminen 8

Hyvä spesifikaatio ymmärrettävä selkeät sanamuodot, lukijan huomioonottava kuvaustapa, yksinkertainen kaikkien tarvitsijoiden yhteinen näkemys kuvattavasta kohteesta miten saavutettavissa? täydellinen määrittelee kaikki tarvittavat asiat ja vain ne myös ympäristö kuvataan tarvittavassa laajuudessa miten saavutettavissa? tarkka tarkkuus vs. ymmärrettävyys vs. luettavuus miten saavutettavissa? Spesifikaatioiden laatiminen 9

hyvä spesifikaatio virheetön miten arvioitavissa? testattava sisältää ilmaisuita, joita vastaan vaihetuote voidaan verifioida yksiselitteisesti jäljitettävä katkeamaton ketju asiakasvaatimuksista toteutukseen ylöspäin / alaspäin jäljitettävyys toteutettavissa rajaehtojen puitteissa Spesifikaatioiden laatiminen 10

hyvä spesifikaatio muita ominaisuuksia kuvaa toiminnan, ei toteutusta toteutettavissa reunaehtojen puitteissa ristiriidaton, yksikäsitteinen ylläpidettävä, ei sisällä tarpeetonta redundanssia ongelmia vaatimukset ovat keskenään ristiriidassa lukijoiden erilaiset taustat - erilainen tulkinta samalle asialle (esim. termit) asiakas-toimittaja kommunikaatio todellisten tarpeiden selvittäminen saattaa olla vaikeaa Spesifikaatioiden laatiminen 11

hyvä spesifikaatio kaikki asiaan liittyvät tiedot eivät välttämättä ole tiedossa ja ne voivat muuttua poikkeustilanteiden huomioonottaminen kiire määrittelyssä (miksi?) määrittelymuutokset ovat kalliita (miksi?) analysis paralysis (määrittelyn loputon jatkuminen) railroad paradox (suunnan muuttamisen vaikeus) lopullisen onnistumisen mittari asiakkaan saama hyöty Spesifikaatioiden laatiminen 12

hyvä spesifikaatio Esimerkkejä (oppikirjasta) järjestelmän käytössä on 64 kb muistia» muistin luonnetta ei ole määritelty (ROM, RAM) luokalla voi olla vain yksi luokanvalvoja» voiko tehtävä olla jaettu (vaikuttaa tietokantaratkaisuun oleellisesti) jos kuukauden toteutunut myynti alittaa tavoitteet, tulostetaan raportti, ellei toteutuneen myynnin ja tavoitteen ero ole vähemmän kuin puolet edellisen kuukauden tavoitteen ja toteutuneen myynnin erosta, tai toteutunut myynti alittaa tavoitteen alle 5%» täsmällisyys ja ymmärrettävyys? keskimääräinen vastausaika on alle 5 sek» onko käyttäjän mitattavissa? mahdollistaa suuretkin poikkeamat! kun reset-nappulaa painetaan punainen merkkivalo saattaa syttyä» ei määritä toimintaa täsmällisesti Spesifikaatioiden laatiminen 13

Esimerkki: kirjastojärjestelmä Kirjastojärjestelmään sisältyy mm. seuraavia tapahtumia 1. Lainaa / palauta kirja 2. Lisää / poista kirja kirjastosta 3. Anna luettelo tietyn tekijän tai aiheluokan kirjoista 4. Anna luettelo tietyn lainaajan lainaamista kirjoista 5. Anna tiettyjen kirjojen viimeisimmät lainaajat Arvioi Arvioi määrittelyn määrittelyn hyvyyttä. hyvyyttä. Seuraavalla Seuraavalla kalvolla kalvolla on on joitain joitain kysymyksiä, kysymyksiä, joita joita tässä tässä yhteydessä yhteydessä ainakin ainakin aluksi aluksi kannattaa kannattaa pohtia pohtia Tapahtumat 1,2,5 ovat sallittuja vain henkilökuntaan kuuluville. Muut voivat käyttää tapahtumaa 4 saadakseen selville itsellään olevat kirjat. Lisäksi 1. Kaikkien kirjojen tulee olla joko lainattavissa tai lainassa 2. Kirja ei voi olla samaan aikaan lainattavissa ja lainassa 3. Lainaajalla voi olla korkeintaan ennalta määrätyn rajan määräämä määrä kirjoja lainassa Spesifikaatioiden laatiminen 14

esimerkki: kirjastojärjestelmä Kysymyksiä, joihin määrittely ei ota selvää kantaa saavatko henkilökuntaan kuulumattomat lainata kirjoja ollenkaan onko kirja fyysinen kirja vai teos yleensä tapahtuma 5: onko kyse yksi / kirja vai halutaanko ylläpitää historiaa mitä kirjan poistaminen tarkoittaa voiko poistettu kirja palata (esim. korjauksen jälkeen) määritetäänkö lainatavien kirjojen maksimimäärä kirjastolle, henkilölle vai kirjalle miten kirjat luokitellaan voiko samalla kirjalla olla monta luokkaa Spesifikaatioiden laatiminen 15

Esimerkki: lentokoneen laskutelineet Laskutelineet sisään -nappia painettaessa vedetään laskutelineet sisään F16: F16: nappia nappiapainettaessa painettaessalaskutelineet laskutelineetvedettiin vedettiinsisään sisään- -koneen koneenollessa ollessakentällä Spesifikaatioiden laatiminen 16

Kuvaustekniikat kuvaustekniikka, notaatio: kuvauksen kieli kommunikaatio työn apuväline syntaksi muodot, kielen rakenne; semantiikka merkitys ja esitetyn tulkinta kuvausmenetelmä: tapa soveltaa kuvaustekniikkaa kehitysmenetelmät, määrittelymenetelmät, suunnittelumenetelmät säännöstö kuvausmenetelmien soveltamiseksi tarvittavan kokonaiskuvauksen aikaansaamiseksi» mitä kuvausmenetelmiä tarvitaan, jotta kaikki hyvän kuvauksen vaatimukset täyttyvät tehtävänä olevan dokumentaation näkökulmasta esim. SA, RUP, OMT++, Spesifikaatioiden laatiminen 17

Spesifiointimenetelmät kuvaustekniikoiden käytön ja yhdistelyn ohjeistus tarkoituksenmukainen tapa soveltaa tekniikoita vaatimukset täyttävän spesifikaatioketjun aikaansaamiseksi kehitysmenetelmiä: SA: tarkoitettu vaatimusten analysointiin ja määrittelyyyn (määrittelymenetelmä)» kuvausmenetelmät: luonnollinen kieli, tietovirtakaaviot, käsitekaaviot, OMT++: kattaa oliopohjaisen järjestelmän koko elinkaaren (määrittely, suunnittelu, toteutus, testaus)» kuvausmenetelmät: luonnollinen kieli, käyttötapaukset, luokkakaavio, RUP: UML-tekniikan soveltamisen määrittävä oliopohjainen menetelmä; kattaa järjestelmän koko elinkaaren kehitysmenetelmät eivät kuitenkaan rajaa kuvausmenetelmien käyttömahdollisuutta (tarkoituksenmukaisuus) "Methodology? "Methodology? We We don't don'tneed need any anystinkin' methodology." methodology." "cowboy "cowboy coders" coders" or or the the no-methodology no-methodology methodology methodology Spesifikaatioiden laatiminen 18

spesifiointimenetelmät laatujärjestelmä määrittää menetelmien soveltamistavan dokumentit ja kuvaustekniikat sekä dokumentaation rakenne yleisiä, kaikkiin tilanteisiin ja ympäristöihin soveltuvia menetelmiä ei ole menetelmä määrittelee käytön puitteet ja käytettävät tekniikat; näitä sovelletaan tarpeen mukaan kohdeympäristöön dokumenttimallit antavat muistilistamaista ja ulkoasua standardoivaa tukea työlle Maalaisjärjen Maalaisjärjen käyttö käyttö on on sallittu sallittu dokumentoinnissakin Anon Anon Spesifikaatioiden laatiminen 19

Menetelmien luokittelu informaalit kuvausmenetelmät ja tekniikat käyttäjälle luonnollinen tapa ilman formalismin kuvaamista» luonnollinen kieli» seinätaulutekniikka: avoin kuvausympäristö, teknisesti yksinkertaiset kuvaukset, vapaata vuorovaikutusta tukeva käytäntö puoliformaalit menetelmät ja -tekniikat formalismi on määritelty, mutta se ei ole täsmällinen» esimerkiksi SA, OMT++» jako: tietokeskeiset / toimintokeskeiset / sekamenetelmät soveltamistapa voi olla informaalista formaaliin formaalit menetelmät ja -tekniikat matemaattisia, tarkkoja notaatioita (kieliä)» esimerkiksi Z, VDM, DisCo, Lotos, tilakaaviot, Petriverkot täsmällinen formaali kuvausmenetelmän määrittely Spesifikaatioiden laatiminen 20

menetelmien luokittelu Luonnollisuus Täsmällisyyden Täsmällisyyden lisääntyessä lisääntyessä luonnollisuus luonnollisuus käyttäjälle käyttäjälle vähenee vähenee (vaatii (vaatii opiskelua opiskelua = formalismin formalismin omaksumista) omaksumista) o luonnollinen kieli Formalismi Formalismi vaikka vaikka ei ei olekaan o seinätaulutekniikka olekaan käyttäjälle käyttäjälle aina aina luonnollinen luonnollinen tapa tapa kuvauksen kuvauksen tekemiseen, tekemiseen, tukee o SA tukee olennaisten olennaisten seikkojen seikkojen kiteyttämisprosessiprosessia ohjelmistotyössä. o OMT++ kiteyttämis- ohjelmistotyössä. o DisCo Täsmällisyys Spesifikaatioiden laatiminen 21

menetelmien luokittelu Näkökulmia kuvausmenetelmiin formaalit menetelmät täsmällisiä ja tukevat määrittelyn täydellisyyttä epähavainnollisia opittu menetelmä muuttuu kuitenkin ajan myötä luonnolliseksi suoritettavat spesifikaatiot jotkin (formaalit) kuvausmenetelmät mahdollistavat toiminnan animoinnin ja/tai suorittamalla testaamisen todistettavat spesifikaatiot logiikkaan pohjautuva spesifikaation toiminnan oikeellisuuden osoittaminen yleensä osa kuvauksen tuottavaa kehitysympäristöä koodia generoivat spesifikaatiot seuraavan kuvaustason tuottaminen automaattisesti laaditun kuvauksen pohjalta» tietovirtakaavio -> koodirungot» luokkakaavio (käsitekaavio) -> tietokantamäärittelyt Spesifikaatioiden laatiminen 22

SA-määrittelymenetelmä Tapahtumalista kirja hankitaan kirjastoon kirja lainataan kirja palautetaan kirja viedään hyllyyn kirja poistetaan myönnetään lainausoikeus poistetaan lainausoikeus tulostetaan luettelo lainausajan ylittäneistä lainauksista ER-kaaviot Tietohakemisto kirjatiedot = nimi + 0{tekijä}n + ISBN+ kustantaja + vuosi Liittymäkaavio Hierarkiset tietovirtakaaviot SA-määrittelymenetelmässä käytettäviä käytettäviä kuvausmenetelmiä kuvausmenetelmiä ovat ovat -tapahtumalistat -tapahtumalistat -tietovirtakaaviot -tietovirtakaaviot -käsitekaaviot -käsitekaaviot -tilakaaviot -tilakaaviot -toimintokuvaukset -toimintokuvaukset (minispesifikaatiot) (minispesifikaatiot) -tietohakemistokuvaukset -luonnollinen -luonnollinen kieli kieli Tilakaaviot Toiminnallisuuden hahmottelu Tilattu Hyllyssä Lainassa Minispesifikaatiot if a<b then... Poistettu Kadoksissa Korjattavana Spesifikaatioiden laatiminen 23

OMT++ Vaatimusten kartoittaminen Feasibility Study -vaatimukset -käyttötapaukset Kuvaukset: Kuvaukset: Käyttötapaukset Käyttötapaukset Luokkakaaviot Luokkakaaviot Tapahtumasekvenssikaaviot Tapahtumasekvenssikaaviot Tilakaaviot Tilakaaviot olioanalyysi käyttäytymisanalyysi kälimäärittely kälitehtävien määrittely ohjelmalohkon määrittely User Interface Specification - dialogikaaviot (tilakaaviot) - tehtäväkuvaukset (tapahtumasekvenssikaaviot) olioiden suunnittelu ohjelmalohkon rajapintamäärittely käyttäytymisen suunnittelu luokkamäärittely luokkien toteutus Program Block Technical Specification -suunnittelun oliomallit -suunnittelun tapahtumasekvenssikaaviot testaus Service Block Functional Specification - analyysin oliomalli - operaatiokuvaukset (tapahtumasekvenssikaaviot) Service Block Technical Specification -ohjelmalohkojen rajapinnat -ohjelmalohkojen kommunikointikaaviot (tapahtumasekvenssikaaviot) Ohjemakoodi -luokkamäärittely -luokkien toteutus Spesifikaatioiden laatiminen 24

Simplified method Vaatimukset Use Case A Use Case B 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 Use Case A Use Case B Use Case C Muut Vaat. Kuvaukset Kuvaukset Käyttötapaukset Operaatiokuvaukset Käyttötapaukset Luokkakaaviot Operaatiokuvaukset Tapahtumasekvenssit Luokkakaaviot Tapahtumasekvenssit Spesifikaatioiden laatiminen 25

4+1 View (UML) komponenttikaaviot komponenttikaaviot käyttötapauskaaviot käyttötapauskaaviot aktiviteettikaaviot aktiviteettikaaviot komponenttinäkymä käyttötapaus näkymä looginen näkymä staattinen:: staattinen:: luokkakaaviot luokkakaaviot oliokaaviot oliokaaviot dynaaminen dynaaminen tilakaaviot tilakaaviot sekvenssikaaviot sekvenssikaaviot yhteistyökaaviot yhteistyökaaviot aktiviteettikaaviot aktiviteettikaaviot sijoittelu näkymä samanaikaisuus näkymä Spesifikaatioiden laatiminen 26

UML-kuvausmenetelmien ilmaisuvoima Luokkakaaviot Komponenttikaaviot Sijoittelukaaviot Tapahtumasekvenssik.:t Yhteistyökaaviot Tilakaaviot Aktiviteettikaaviot Rakenne Vuorovaikutus Olion käyttäytyminen Käyttötapauskaaviot Järjestelmän käyttäytyminen Spesifikaatioiden laatiminen 27

Dokumentointi ohjelmistotyö on dokumenttien tuottamista käytännössä dokumentoinnissa ovat ohjelmistotyön suurimmat laatuongelmat jälkikäteisdokumentointi puutteet rakenteissa, sisällössä, esitystavoissa, ylläpidon ongelmat - sidokset dokumenttien välillä (dokumentaation yhdenmukaisuus ja eheys) Spesifikaatioiden laatiminen 28

dokumentointi luo perusteet Ohjelmistotyön prosessi kuvaa työn tulokset Dokumentoint järjestelmä 1..* 1..* käyttää Määrittelymenetelmä Kuvaustekniikka käyttää Spesifikaatioiden laatiminen 29

Dokumenttien luonne dokumentaation tehtävänä on dokumentoida tehdyt ratkaisut (sovitulla tavalla) tukea kehitystyötä (ratkaisuiden siirto)» edellisen vaiheen dokumentaatio luo perustan kunkin vaiheen työlle käytännön dokumentointityö saatetaan tehdä jälkikäteen; tällöin syynä tähän on kiire tai dokumentointityön huono imago merkitys kehitystyötä tukevana toimintona poistuu dokumenttien laatu (kuvaavuus) heikkenee dokumentointistandardien ja mallien rooli good practice hyväksi koettu käytäntö, muistilista lukijalle mallia noudattava dokumentti on odotuksia vastaava dokumentoinnin taso ja määrä riippuu projektista Spesifikaatioiden laatiminen 30

dokumenttien luonne mikä on dokumentaation oikea määrä liika dokumentaatio on yhtä suuri ongelma kuin puutteellinen dokumentaatio dokumenttien luokittelu laatukäsikirjaan liittyvät dokumentit projektinhallintaan liittyvät dokumentit tuotedokumentit (ks. kuva) Spesifikaatioiden laatiminen 31

... dokumenttien luonne Seurantaraportit, tarkastuspöytäkirjat Laatujärjestelmän ohjeistus Laatujärjestelmä Tuotekohtaiset ohjeet Ohjaus ja seuranta Projekti Projektisuunnitelma Syõtedokumentit Tulosdokumentit projektidokumentaatio tuotedokumentaatio ohjeistus Työdokumentit Laatujärjestelmän raportit: mittaus, auditointi... Spesifikaatioiden laatiminen 32

Tuotedokumentit tuotteeseen tai tuoteperheeseen liittyvät dokumentit projektikohtaiset tuotedokumentit tuotetta kuvaavat, projektityön tuloksena syntyvät dokumentit projektitoimintaa ohjaavat ja kuvaavat dokumentit tuotekohtaiset tuotedokumentit tuote voi sisältää useita projekteja, joista muodostuu tuotedokumentaatio projektin päätyttyä projektikohtaiset tuotedokumentit muokataan osaksi tuotekohtaista dokumentaatiota (muokkaus) Spesifikaatioiden laatiminen 33

Laatujärjestelmän dokumentit määrittää puitteet muulle dokumentaatiolle laatujärjestelmädokumentteja ovat mm. laatukäsikirja ohjeistukset ja dokumenttimallit laatujärjestelmän auditointiin liittyvät raportit erinäiset muistiot: tarkastusten pöytäkirjat, auditointiraportit, mittaustiedostot,... toiminnan kehittämisfunktio Spesifikaatioiden laatiminen 34

Projektidokumentit projektikohtaisia, kertaluonteisia dokumentteja projektin päätyttyä arkistoidaan projektidokumentteja ovat mm. sopimus projektisuunnitelma projektin seurantaraportit projektin loppuraportti Spesifikaatioiden laatiminen 35

Tuotedokumentaation rakentuminen Esitutkimus Esitutkimus Alustava sopimus, alustava projektisuunnitelma, alustava toiminnallinen määrittely, alustava toteutussuunnittelu, alustava testaussuunnittelu, alustava tuotteenhallintasuunnitelma, alustava laatusuunnitelma, dokumentointisuunnitelma. Määrittely Määrittely Tarkennettu sopimus, tarkennettu projektisuunnitelma, toiminnallinen määrittely, alustava tekninen määrittely, tarkennettu testaussuunnitelma (järjestelmä- ja hyväksymistestaus) tarkennettu tuotteenhallintasuunnitelma, tarkennettu laatusuunnitelma, alustava käyttöohje. Suunnittelu Suunnittelu Tekninen määrittely, integrointitestaussuunnitelma, tarkennettu käyttöohje, alustava ylläpito-ohje, alustava operointi/huolto-ohje, alustava asennusohje. Toteutus Toteutus Moduulisuunnitelmat, moduulitestaussuunnitelmat, moduulitestauspöytäkirjat, koodimoduulit, integrointitestaussuunnitelma, integrointitestauspöytäkirjat, integroitu ohjelmisto, tarkennettu ylläpito-ohje, tarkennettu operointi/huolto-ohje, tarkennettu asennusohje. Testaus Testaus Järjestelmätestauspöytäkirjat, hyväksymistestauspöytäkirjat, paketointi-ohje, koulutusmateriaali, tuotedokumenttien viimeistellyt versiot. 11/04/2002 Spesifikaatioiden laatiminen 36 Exit

Dokumentointi EVO-mallissa Dokumentaation rakentuminen projekti sisältää tuotteen vanhan version (k) kehittämisen uudeksi versioksi (k+1) lisäyksiä poistoja muutoksia korjauksia vanha spesifikaatio (versio k) toimii uuden (versio k+1) pohjana [ks. kuva] Määrittely Suunnittelu Toteutus Testaus Määrittely Suunnittelu Toteutus Testaus Määrittely Suunnittelu Toteutus Testaus Versio 1 Versio 2 Versio 3... Spesifikaatioiden laatiminen 37

Dokumentointi EVO-mallissa Ohjelmakoodi, versio k Tuotteen toiminnallinen määrittely, versio k Tuotteen tekninen määrittely, versio k Tuotteen tekninen määrittely, versio k+1 Tuotteen dokumentit Projektin dokumentit Projektin toiminnallinen määrittely (uudet ja muuttuneet vaatimukset) (uudet vaatimukset) Arkkitehtuurisuunnittelu Tuotedokumentaation päivitys version k+1 tasolle Projektin tekninen määrittely Tuotteen Tuotteen dokumentaatio dokumentaatio on on pidettävä pidettävä riittävän riittävän yleisenä, yleisenä, jotta jotta pienet pienet muutokset muutokset eivät eivät synnytä synnytä dokumenttien dokumenttien päivitystarvetta. päivitystarvetta. Projektidokumentaatio Projektidokumentaatio voi voi sisältää sisältää tätä tätä tarkempia tarkempia kuvauksia. kuvauksia. Suunnitteluvaihe EVO-mallin mukaisessa ohjelmistokehityksessä Spesifikaatioiden laatiminen 38

Ylläpitodokumentaatio projektin päättyessä tuotedokumentaatio muutetaan ylläpitoa tukevaan muotoon ylläpidon tuotedokumentaation rakenne (esim.) käyttöohje asennus- ja operointiohje koulutusmateriaali tekninen dokumentaatio» toiminnallinen määrittely» tekninen määrittely» testauksen ohjeistukset» tuotteenhallinan ohjeistukset Spesifikaatioiden laatiminen 39

... ylläpitodokumentaatio tarpeettoman redundanssin välttäminen (dokumenttien ylläpidettävyys) dokumentaation eheys suunnitteludokumentaation tarkkuustaso on hyvä pitää sellaisena, että pienet muutokset alemmalla dokumentointitasolla (esim. ohjelmavirheiden korjaaminen) eivät edellytä dokumentaation muuttamista rinnakkaisten dokumenttien eheys: yhteys eri dokumenttien välillä peräkkäisten dokumenttien eheys: yhteys saman kuvauskohteen eri kuvaustasojen välillä ohjelmakoodin kommentointi: moduulisuunnittelun tulokset kommentteina ohjelmassa kommenteista koodiksi Spesifikaatioiden laatiminen 40

Esimerkki projektidokumentaatiosta Palaute Overflow Oy resurssit, ideat neuvottelut/ valmistelu projekti tai hanke asettaminen käyttöönotto käyttö asiakas tarpeet tehtävää koskevat asiakirjat tuotekansio Ohjelmistohankkeen Ohjelmistohankkeen kulku - - tuotekansio tuotekansio sisältää kulku sisältää keskeisimmät keskeisimmät dokumentit dokumentit Spesifikaatioiden laatiminen 41

... Esimerkki projektidokumentaatiosta Ohjeistukset -Projektiohje - Määrittelyohje - Tarkastusohje alustava projektisuunnitelma - Suunnitteluohje - Ohjelmointiohje - Testausohje Projektisuunnittelu, seuranta ja ohjaus tarkennettu projektisuunnitelma kokouspöytäkirjat loppuraportti määrittely tarkastukset Työn vaiheistus järjestelmätestaussuunnitelma suunnittelu tarkastukset ohjelmointi tarkastukset integrointitestaus järjestelmätestaus projektin käynnistäminen projektin päättäminen toiminallinen määrittely tekninen määrittely Katselmukset hyväksymiskatselmus suunnittelukatselmus ohjelmakoodi määrittelykatselmus testausraportti Pienet Pienet projektit (alle projektit (alle 2 2 htkk) htkk) -> projektikortti -> projektikortti Pöytäkirjat Spesifikaatioiden laatiminen 42

Dokumentointimallit perusrakenne kansilehti» organisaatio, projekti, dokumentti, versio, sivuja, tekijä, tila (hyväksytty, jätetty tarkastettavaksi, kesken); tekijän, tarkastajan ja hyväksyjän nimi + nimikirjoitus, pvm tiivistelmä dokumentista sisällysluettelo versiohistoria (numero, pvm, muutokset) jokaisella sivulla sivunumero dokumentin nimi, versionumero, pvm ulkoasun yhdenmukaisuus eri dokumenteissa Dokumentaation Dokumentaation lukijalla lukijalla on on oikeus oikeus olettaa olettaa dokumentin dokumentin noudattavan noudattavan tehtyä tehtyä sopimusta sopimusta Spesifikaatioiden laatiminen 43

... Dokumentointimallit muuttuneet kohdat voidaan merkitä muutospalkilla kaaviot ovat osa dokumentaatiota (ei erillisenä liitteenä) dokumentaation tekninen toteutus voi olla elektroninen» mahdollistaa hypertekstiratkaisut paperimuoto ohjelmien tyyliopas dokumenttimallin kaltainen ohjeistus ohjelmointityölle ulkoasun, kommentoinnin, jne. periaatteet tarkastus- ja muistilistat laadunvarmistuksessa mallien soveltaminen tilanteeseen mikään malli ei sellaisenaan sovellu kaikkialle Spesifikaatioiden laatiminen 44

Määrittely tehtävät: projektin tarpeellisuuden ja toteuttamiskelpoisuuden selvittäminen tavoitteiden ja vaatimusten asettaminen ratkaisumallin laatiminen tulos: toiminnallinen määrittely vaatimukset vaatimukset täyttävän järjestelmän kuvaus Spesifikaatioiden laatiminen 45

määrittely Ideat, lähtökohdat, rajoitteet, reunaehdot Ongelman ymmärtäminen, vaatimusten kartoitus Määrittelyprosessi Toteutettavan järjestelmän spesifiointi Esitutkimuksen Esitutkimuksentyökaluja: työkaluja: kokoukset kokoukset seminaarit seminaarit haastattelut haastattelut tutustuminen tutustuminenvastaaviin tuotteisiin tuotteisiin luova luovaryhmätyö osallistuva osallistuvahavainnointi markkinatutkimukset prototyyppituotteet prototyyppituotteet Toiminnallinen määrittely, alustava käyttöohje, toteutusprojektin projektisuunnitelma, testaussuunnitelma korjattavaa Tarkastus OK Arkkitehtuurisuunnittelu Spesifikaatioiden laatiminen 46

määrittelydokumentti pienissä projekteissa laajennettu käyttöohje riittää määrittelydokumentiksi toiminnallinen määrittely on projektin tärkein dokumentti alistettava tuotteenhallintaan jäädytys ja byrokraattinen muutosmenettely muutokset kalliita; joudutaan kuitenkin aina jossain määrin tekemään (miksi?) Spesifikaatioiden laatiminen 47

... määrittelydokumentti 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 Kuvattavat kohteet ja esimerkkejä kuvaustekniikoista Spesifikaatioiden laatiminen 48

... määrittelydokumentti Otsaketiedot: tuotteen nimi, tekijät, versionumero, päiväys, versiohistoria, hyväksyjien nimet ja ja päivämäärä 1.1. Tarkoitus: miksi tehty, kenelle tarkoitettu 1.2. Tuote: tuotteen nimi, tarkoitus ja ja tavoitteet 1.3. Määritelmät : jos eivät ole yleisesti tiedossa 1.4. Viitteet : nimi, identifiointitiedot, mistä löytyy Spesifikaatioiden laatiminen 49

määrittelydokumentti 1.5. Yleiskatsaus: dokumentin rakenteen kuvaus 2.1. Ympäristö: laajempi kokonaisuus johon tuote liittyy 2.2. Toiminta: yhteenveto ominaisuuksista 2.3. Käyttäjät: käyttäjien ja ja käyttöympäristön kuvaus 2.4. Yleiset rajoitteet: lainsäädäntö, sovelluksen kriittisyys, suojaus- ja ja turvallisuus,...... Spesifikaatioiden laatiminen 50

määrittelydokumentti 2.5. Oletukset: oletukset, joiden vallitessa määrittely on voimassa 3. 3. Tiedot ja jatietokanta: tietosisältö, käyttöintensiteetti, kapasiteetti- ja ja saantiaikavaatimukset 4.n. Toiminnon kuvaus: tarkoitus, syötteet (mistä, mitä, paljonko, yksikkö, sallitut arvot), käsittely (tarkistukset, virhetilanteiden käsittely, käsittely, ), tulosteet Spesifikaatioiden laatiminen 51

määrittelydokumentti 5.1. Käyttöliittymä: näyttömallit, raporttimallit, siirtyminen näytöstä toiseen, komennot, 6.1. Suorituskyky: staattiset (montako päätettä, montako tietuetta, ), dynaamiset (montako tapahtumaa/aikayksi kkö, vastausaika, ) 6.2. Turvallisuus: käyttöoikeudet, salakirjoitus, ) Spesifikaatioiden laatiminen 52

määrittelydokumentti käytettävän rakenteen ja lopullisen sisällön määrittää tarkoituksenmukaisuus (ja ohjeistus) kuvitus - tarkoituksenmukainen ja selkeä kuvausmenetelmien oikea valinta integroidut kehitysympäristöt ohjaavat dokumentaatiota sekä huolehtivat (jossain määrin) kuvauskokonaisuuden eheydestä Spesifikaatioiden laatiminen 53

Suunnittelu Määrittelyvaiheesta Moduulisuunnittelu, toteutussuunnittelu Uudelleenkäytettävät komponentit Toiminnallinen määrittely Tekninen määrittely korjattavaa Moduulisuunnitelmat Arkkitehtuurisuunnittelu korjattavaa Tarkastus Tarkastus Ohjelmointi Koodi Tarkastukseen, testaukseen Spesifikaatioiden laatiminen 54

Arkkitehtuurisuunnittelu moduulijako ja rajapinnat - tavoitteena hallittavuus fokus rajapintojen määrittelyssä ja toimintojen jakamisessa lopulliseen moduulijakoon kuuluvan moduulin toteutus annetaan yhden suunnittelijan vastuulle mahdollisimman itsenäiset moduulit kiinteät rajapinnat hallittu ulkoinen kommunikaatio moduulin toteutus koteloidaan moduulin sisään uudelleenkäyttö Spesifikaatioiden laatiminen 55

Rajapintojen kiinteys Moduuli P Moduuli Q Data Käsittely -funct A -funct B P.A(x,y) Alustukset Analogia: Analogia: Kun Kun henkilö henkilö haluaa haluaa toisen henkilön toisen henkilön nostavan nostavan kättään, kättään, pyytää hän pyytää hän toista toista tekemään tekemään sen, sen, ei ei mene nostamaan mene nostamaan sitä sitä itse. itse. Luonnollinen tapa Luonnollinen tapa toimia! toimia! Palvelurajapinta Palvelurajapinta - - palvelukutsut palvelukutsut vain vain rajapinnan rajapinnan kautta kautta - - palvelun palvelun toteutus toteutus tarjoajan tarjoajan sisäinen sisäinen Spesifikaatioiden laatiminen 56

Mikä on moduuli termiä käytetään eri yhteyksissä hieman eri merkityksessä määritelmä: kokonaisuuden osa arkkitehtuurisuunnittelussa: ohjelmiston rakenneosa looginen järjestelmän osakokonaisuus ohjelmoinnissa: ohjelman rakenneosa koodimoduuli, luokka (attribuutit + toiminnallisuus),... Spesifikaatioiden laatiminen 57

Moduulisuunnittelu suunnitellaan moduulin sisäinen rakenne hierarkkisesti etenevä prosessi - mahdollisesti arkkitehtuurisuunnittelun kanssa rinnan (vuorovaikutuksessa) rajapinta elinkaaressa eteen ja taakse on häilyvä arkkitehtuurisuunnittelusta siirrytään rakenneosan sisäiseen suunnitteluun huomaamatta, samoin moduulisuunnittelusta toteutukseen (toimintokuvaus) joskus moduulin suunnittelu, toteutus ja moduulitestaus nähdään yhtenä kokonaisuutena Spesifikaatioiden laatiminen 58

Suunnittelun tavoitteita Tavoitteita : selkeys ymmärrettävyys tehokkuus luotettavuus ylläpidettävyys siirrettävys Tavoitteiden saavuttaminen: paikallisuus hierarkkisuus modulaarisuus rajapintojen tiiviys kotelointi tiedon kätkeminen abstraktit tietotyypit Spesifikaatioiden laatiminen 59

Tekninen määrittely 1. Johdanto 1.1. Tarkoitus 1.2. Dokumentin kattavuus 1.3. Määritelmät, termit, lyhenteet 1.4. Viittaukset muihin dokumentteihin, standardeihin, käsikirjoihin, jne. 1.5. Yleiskatsaus dokumenttiin 3. Arkkitehtuurin kuvaus 3.1. Ratkaisuperiaatteet 3.2. Tietokanta-arkkitehtuuri 3.3. Ohjelmistoarkkitehtuuri, moduulit ja prosessit 3.4. Uudelleenkäytettävät komponentit 2. Järjestelmän yleiskuvaus Sovellusalueen kuvaus, järjestelmän osuus siinä, laitteisto- ja ohjelmistoympäristön kuvaus, toteutuksen keskeiset reunaehdot ja järjestelmän liittyminen ympäristöönsä Spesifikaatioiden laatiminen 60

tekninen määrittely 4. Moduuli- (ja prosessi)kuvaukset 4.i. Kustakin moduulista esitetään yleiskuvaus attribuutit (ylläpidettävät tilatiedot) operaatiot (rajapinnan määrittely) poikkeus- ja virhetilanteiden käsittely (myös odottamattomien) ohjeita moduulisuunnittelua ja toteutusta varten (viittsaukset käytettäviin algoritmeihin, uudelleenkäytettävyys, jne.) Muita mahdollisia kohteita ylläpito-ohjeet siirrettävyys virhetilanteiden käsittely luotettavuus erityiset tekniset ratkaisut hylättyjä ratkaisuvaihtoehtoja; miksi ne hylättiin käyttöliittymä, jos ei tarkasti määrittelyssä ratkaisun rajoitteet testattavuus jäljitettävyys Spesifikaatioiden laatiminen 61

Työkalut käyttökohteen mukainen luokittelu edustavälineet (upper CASE, front-end)» määrittelyä ja suunnittelua tukevat taustavälineet (lower CASE, back-end)» toteutusvaiheen välineet integroidut ympäristöt (IPSE) laaja käytön kohdealue» yhteentoimivat erilliset välineet» yksi laajan toiminnallisuuden sisältävä väline integroinnin aste käytännössä vaihtelee Spesifikaatioiden laatiminen 62

työkalut työkalut työkalujen äly piirtämistä tukevat työkalut» symbolit, mahdollisesti niiden yhdistämisen hallinta» ei hallitse semanttista tietämystä järjestelmän rakenteesta kontekstiin ymmärtävät työkalut» kuvaus ja kuvauksen (jonkinasteinen) semantiikan hallinta kuvauskanta kuvaus ja sitä koskeva (vaihtelevantasoinen) tietämys» tietämyksen siirto kuvauksesta toiseen» kykenee tarkastamaan (jossain määrin) kuvauskokonaisuuden eheyttä automaattinen koodin generointi käyttöönottoprosessi väline on sovitettava osaksi työprosessia» työkalun tekninen sovittaminen (muuntaminen) ja prosessin muuttaminen Spesifikaatioiden laatiminen 63

työkalut Projektinhallinta Kuvauskannan hallinta Käytön hallinta Raportit, dokumentit Kuvausten teko ja käsittely Analyysit, johdonmukaisuustarkistukset Kuvauskanta Liittymät muihin välineisiin Generointi: ohjelmointikieli, näytöt, raportit...... Protoilu Tuotteenhallinta Testauksen apuvälineet Spesifikaatioiden laatiminen 64

Standardit Standardointijärjestöjä kansainvälisia: ISO, IEC, ITU; CEN, CENELEC kansallisia: ANSI, BSI, DIN, SFS toimialajärjestöjä: IEEE suomalaisia: SFS, TIEKE, THK, SESKO,... hallinnonalajärjestöjä: DoD, NASA, yritykset ja yrityskonsortiot: OMG, Rational,... Spesifikaatioiden laatiminen 65

standardit standardityyppejä sitovuuden mukaan jaoteltuna yleisluonteiset määräykset de facto -standardit kansalliset standardit (SFS-nnn,...) valmisteluvaiheen työdokumentit (esim. ISO/IEC:ssä WD, CD, DIS, ) kansainväliset standardit (ISO-nnn, ISO/IEC-nnn, ) lisäksi teknisiä raportteja (ISO-TR) ja täydennyksiä (AMD - amendment) Spesifikaatioiden laatiminen 66

standardit standardityyppeja luonteen mukaan jaoteltuna, mm: kehysstandardit (OSI) prosessistandardit (SPICE) ohjeluonteiset standardit (ohjeistukset standardien tekemiselle tai käytölle) varsinaiset kohdestandardit Spesifikaatioiden laatiminen 67

standardit ohjelmistotyön standardointi IEEE standardisarja ISO/IEC JTC1/SC7-työ kansainvälisellä tasolla TIEKEn työ Suomessa Systeemityökerho (TTL) - SyTyKe tietotekniikan kansainvälinen standardointityö ISO/IEC JTC1 alakomiteat (SC7 - ohjelmistotyö, SC22 - kielet) työryhmät(wg) ad hoc -ryhmät (AHG) Spesifikaatioiden laatiminen 68

standardit toimintaan osallistutaan kansallisten standardointijärjestöjen kautta demokraattinen (jäykkä, aikaavievä) hyväksymismekanismi» Fast Track menettely oikaisee työvaiheita» virallisten standardien alla saattaa muodostua de facto - standardeja suomalainen standardointityö SFS vastaa, saattaa delegoida vallan toimialajärjestöille tietotekniikka: TIEKE vastaa tietotekniikan toimialasta Hitaus, Hitaus, byrokraattisuus: byrokraattisuus: Esimerkiksi Algol-60 Esimerkiksi Algol-60 kielen kielen standardi standardi valmistui valmistui de facto de facto standardina standardina 1960. 1960. Virallinen standardointityö Virallinen standardointityö lopetettiin tuloksettomana lopetettiin tuloksettomana 1990-luvulla 1990-luvulla Spesifikaatioiden laatiminen 69

... standardit Laatujärjestelmä, prosessi: 1074-1997 Projektinhallinta: 1058.1-1998 Määrittely: 830-1998 määrittelnittelunittelu Ohjelmointi mointi 829-1998, ylläpito: Suun- suun- ohjel-testaus: testaus Käyttö, 1016-1998 1008-1987 1219-1998 Dokumentointi: 1063-1987... Laadunohjaus: 730-1998, 1028-1997, 1012-1998, 1045-1992, 1061-1998 1298-1992 Tuotteenhallinta: 828-1998, 1042-1987 Spesifikaatioiden laatiminen 70

Kertauskysymykset Mitä tarkoitetaan sanonnalla "ohjelmistotyö on dokumenttien tuottamista. Mikä on dokumenttien merkitys ohjelmistotyössä. Mitä tarkoitetaan spesifikaatioissa toiminnallisilla ominaisuuksilla, eitoiminnallisilla ominaisuuksilla ja reunaehdoilla / rajoitteilla. Mitä ovat hyvän spesifikaation ominaisuudet. Kurssimateriaalissa ohjelmistokehitys nähdään spesifikaatioiden ketjuna. Edellisen vaihetason tulos toimii spesifikaationa seuraavalle vaihetasolle. Selitä tämän tarkastelun / näkökulman taustalla oleva logiikka. Selvitä termien kuvaustekniikka, kuvausmenetelmä ja kehitysmenetelmä erot ja sisältö. Kuvausmenetelmien rooli kehitysmenetelmissä. Mitä ovat suoritettavat spesifikaatiot. Mihin perustuu spesifikaatioiden oikeaksi todistaminen. Selitä kurssimateriaalin perusteella kuvausmenetelmien käyttötapa SA-menetelmässä OMT++ -menetelmässä Simplified Method -menetelmässä Mikä on UML. Selitä hyvän dokumentointikäytännön (dokumenttien laadinnan) periaatteet. Mitä hyötyä on dokumenttimalleista ja niiden käyttöä ohjaavista ohjeista / standardeista. Mitä dokumentteja laatujärjestelmä edellyttää laadittavaksi. Mikä on dokumentoinnin rooli laatujärjestelmän mukaista toimintatapaa toteutettaessa. Spesifikaatioiden laatiminen 71

kertauskysymykset Ohjelmistokehitykseen liittyvät dokumentit syntyvät vaiheittain täydentyen (iteroiva kehittämismenettely) ja valmiita dokumentteja versioiden. Mitä nämä menettelytavat näkyvät käytännössä ja mitä projektihallinnollisia toimintoja tarvitaan niiden toteuttammisessa. Selvitä miten tuotedokumentaatio kehittyy EVO-mallissa. Mitä vaihetuotteita syntyy määrittelyvaiheen tuloksena. Mitä suunnittelun tehtäviä sisältyy arkkitehtuurisuunnitteluun ja moduulisuunnitteluun. Mikä on näiden luonteenomainen ero. Miten nämä vaiheet näkyvät järjestelmän testausprosessissa. Moduulisuunnittelulle on (kurssimateriaalissa) määritelty joukko tavoitteita. Selitä mitä ne ovat. Olet laatimassa yrityksellesi dokumentointijärjestelmän puitteita ja etsimässä sopivia malleja dokumenttimalleiksi. Mistä lähdet hakemaan työllesi kirjallista tukiaineistoa. Oliorakenteeseen kuuluu moduulirakenne, moduulien kiinteä rajapinta ja moduulin sisäisen toiminnan piilottaminen ulkopuoliselta käyttäjältä. Mitä etuja tämä tuo järjestelmän kehitystyölle. Mitä tarkoitetaan uudelleenkäytöllä ja miten se näkyy ohjelmistotyössä. Mihin elinkaarivaiheisiin sillä on vaikutusta. Pohdi työkalujen roolia ohjelmistotyön tukena. Mitä tehtäviä on kuvauskannalla ja mitä sillä tarkoitetaan. Miten kuvauskanta järjestelmäkehityksessä toteutuu. Pohdi tilannetta erilaisissa työskentelyolosuhteissa integroitujen kehitysympristöjen kanssa toimittaessa erillisten työkaluohjelmistojen kanssa toimittaessa (joukko piirtelyn apuvälineitä) ilman työkalutukea toimittaessa Viralliset standardit ohjelmistotyössä - mikä on niiden merkitys. Minkälaista sidosastetta edustavat WD, CD, DIS, IS -standardidokumentit (ISOn ja n standardeja). Minkälaisia rooleja (asikasyrityksessä, toimittajayrityksessä) liittyy toiminnalliseen määrittelyyn joko sen tuottajana, tietojen antajana tai dokumentaation tarvitsijana. Spesifikaatioiden laatiminen 72