Yhteenveto
Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright by Haikala 1.9.2004/HJH
Copyright by Haikala 1.9.2004/HJH
Copyright by Haikala 1.9.2004/HJH
Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary analysis, system engineering, system design) strateginen suunnittelu, toiminnan suunnittelu, kehittämisohjelmat, ideat, tarpeet, reunaehdot 2. Määrittelyvaihe, vaatimusmäärittely (requirements analysis, requirements specification, system analysis) nykytoiminnot ja uuden toiminnan tavoitteet, ulkoiset vaatimukset, tietojen, tietoryhmien ja niiden väliset yhteydet, tietosysteemin periaateratkaisu, rajoitukset 3. Suunnitteluvaihe: ohjelmiston arkkitehtuurisuunnittelu (sovellus-, tieto-, tietoliikenne- ja laitearkkitehtuuri sekä moduulisuunnittelu (achitecture design, module design, detailed design) käyttäjän toiminta, käyttöliittymä, tietosuunnittelu ja tietokantojen rakenne, ohjelmisto, käyttöönoton suunnittelu, kokonaisratkaisun esitestaus 4. Toteutusvaihe: ohjelmointi, ohjelmisto- ja laitteistohankinnat, tietoliikenne, tietokannat 5. Testaus: moduulitestaus, integrointitestaus, järjestelmätestaus 6. Käyttöönotto: koulutus, jakelu, seuranta 7. Ylläpito: virheenkorjaus, uusien piirteiden lisäys, sisältää vaiheet 2-6 versioissa
Vaihejakomalleja 1. Vesiputousmalli - vaiheet seuraavat toisiaan lineaarisesti 2. Evo/proto-malli - piirteiden lisäys vähittäin 3.Spiraalimalli - syklit, sektorit 4. Kevyet menetelmät -XP (extreme programming) 5. Formaalit menetelmät - matemaattinen malli muunnetaan ohjelmaksi
Copyright by Boehm Esimerkki ohjelmistoyrityksen arvoketjusta
Laatu, laatujärjestelmä ja laadunvarmistus
Projekti ja projektinhallinta -projekti: -kertaluonteinen ja tavoitteellinen tehtävien kokonaisuus -ajalllisesti, kustannuksiltaan ja laajuudeltaan rajattu -projektinhallinta *suunnittelu -projektin osittaminen -projektisuunnitelma -työmäärien arviointi
Spesifikaation sisältö toiminnalliset ominaisuudet (rajapinnat: käyttöliittymä, muut liittymät, tiedot, tietoryhmät, toiminnot) ei-toiminnalliset ominaisuudet (suorituskyky, luotettavuus, turvallisuus, siirrettävyys) reunaehdot ja rajoitukset (laitteisto ja ohjelmisto, budjetti, aikataulu, työkalut, lait ja standardit)
Hyvän spesifikaation ominaisuuksia täydellisyys (kaikki tarvittavat asiat ja vain ne) tarkkuus virheettömyys ymmärrettävyys voi olla ristiriidassa tarkkuuden kanssa testattavuus (verifiointi) jäljitettävyys
Määrittely Määrittely, eli kansanomaisesti speksaus, tarkoittaa yleisesti asioista sopimista asiakkaan ja toteuttajan välillä: Todetaan, että hanke voidaan (tai ei voida) viedä läpi. Toteuttaja tietää mitä tehdään. Asiakas tietää mitä saa. Epäselvät asiat ja riskit tulevat tunnistetuiksi. Käsitteet ja termit täsmentyvät. Määrittely pitää siis kirjoittaa sen lukijaa, so. asiakasta ajatellen. Määrittely Määrittelee kaiken tarpeellisen Ei määrittele mitään turhaa, eli ei kuvaa asioita, joita ei tarvitse vielä kiinnittää, ja/tai joista asiakkaan ei tarvitse tietää Copyright by Haikala
Copyright by Haikala
Copyright by Haikala
Käyttötapauksen kuvaaminen UML ei standardoi esitystapaa. Käyttötapauksen sisältö voidaan kuvata esimerkiksi: Käyttötapauksen nimi: Kuvaava nimi Osallistujat: Mitkä aktorit osallistuvat Tuloehdot: Mitkä ehdot ovat voimassa, kun käyttötapaus aloitetaan Kuvaus: Epäformaali, voidaan käyttää myös sekvenssikaavioita Poikkeukset: Poikkeustilanteet (mainitaan myös kuvauksessa) Lopputulos: Mitkä ehdot ovat voimassa, kun käyttötapaus lopetetaan Prioriteetti: Miten tärkeä käyttötapaus on Muut vaatimukset: käyttötapaukseen liittyvät ei-toiminnalliset vaatimukset Tila: ei-hyväksytty/hyväksytty
Copyright by Haikala
Luokkakaavio -kuvaa järjestelmän luokat ja niiden väliset suhteet (staattinen rakenne) -luokkien välisiä suhteita: assosiaatio periytyminen koostuminen roolit yhdestä moneen, monesta yhteen
Copyright by Haikala Luokkakaavioesimerkki
Copyright by Haikala Luokkakaavioesimerkki
Sekvenssikaavio -sekvenssikaavioilla kuvataan olioiden välistä kommunikaatiota normaalitapauksessa ( happy days, ei poikkeuksia) -vaihtoehtoinen nimitys: skenaario -ei yleensä riittävä spesifikaatio -havainnollinen, mutta ei kuvaa kaikkea toiminnallissuutta
Copyright by Haikala Esimerkki sekvenssikaaviosta
Sekvenssikaavion käyttötapoja -määrittely -laaditaan luokkakaavio -kuvataan sekvenssikaaviolla luokkien välistä kommunikaatiota (käyttötapaukset) -keskeisistä luokista laaditaan tilakaaviot -toteutus -tapahtumat toteutetaan järjestelmän funktiokutsuina (sen olion metodina, johon nuoli päättyy) -rajapintojen suunnittelu -laaditaan sekvenssikaaviot erilaisista käyttötavoista -rajapintojen funktiot saadaan kuten edellä
Copyright by Haikala Esimerkki tilakaaviosta
Käyttötapoja - Mitä järjestelmässä saa tapahtua - Mitä järjestelmässä ei saa tapahtua - Olioiden elinkaaren mallintaminen - Algoritmien kuvaaminen - Käyttöliittymälogiikan kuvaaminen
Copyright by Haikala Esimerkki aktiviteettikaaviosta
Tietovirtakaaviot -Kuvaa järjestelmän tiedon kulkua, varastointia ja käsittelyä -Käytetään mm. SA-menetelmässä -UML ei sisällä vastaavaa notaatiota -Symboleja: Terminaattori -järjestelmän ulkopuolinen olio Transformaatio -tietoa muuntava toiminto Tietovarasto Tietovirta
Copyright by Haikala Esimerkki
Testaus -virhe, vika ja häiriö -testauksen V-malli - testaustyypit - white box - black box - ekvivalenssiluokat - raja-arvoanalyysi - testauksen vaiheet
Tentti 22.12 klo 10 Materiaali: - luennot - Haikala & Märijärvi: - luvut 1-8 - luvut 9.1-9.3 - luvut 11-15