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



Samankaltaiset tiedostot
Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Määrittelyvaihe. Projektinhallinta

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

käyttötapaukset mod. testaus

Ohjelmistojen suunnittelu

UML- mallinnus: Tilakaavio

Ohjelmiston testaus ja laatu. Testaustasot

Johdantoluento. Ohjelmien ylläpito

Yhteenveto. Menettelytavat

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

Projektityö

Ohjelmistotekniikan menetelmät, kesä 2008

Tietojärjestelmän osat

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

2. Ohjelmistotuotantoprosessi

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Projektin suunnittelu

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

Kurssin aihepiiri: ohjelmistotuotannon alkeita

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Kontrollipolkujen määrä

Ohjelmistojen mallintaminen, kesä 2010

Suunnitteluvaihe prosessissa

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

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

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

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistojen mallintaminen. Matti Luukkainen

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

ITK130 Ohjelmistoprosessi

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2009

Laadunvarmistustekniikat

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

UML-kielen formalisointi Object-Z:lla

Ohjelmistotuotanto s

Vaatimusten keräys ja hallinta

Testaaminen ohjelmiston kehitysprosessin aikana

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

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Projektityö

Ohjelmistoprojektien hallinta Vaihejakomallit

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Turvakriittisen projektin menetelmät ja työkalut

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Analyysi on tulkkaamista

Ohjelmistotekniikan menetelmät, koe

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Tietokannan suunnittelu

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

Mitä on ohjelmistotuotanto?

Oleelliset vaikeudet OT:ssa 1/2

Vaatimukset mitä ne ovat

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Ketterä vaatimustenhallinta

Vaatimusmäärittelyistä

Käyttötapausanalyysi ja testaus tsoft

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Mobiilisovelluksen kehittäminen avoimen lähdekoodin ympäristöjen avulla

ITK130 Ohjelmistojen luonne

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Vaatimusmääritelystä UML:n avulla

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

4. Vaatimusmäärittely

Ohjelmistotuotanto, s

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Tietokantapohjaisen web-sovelluksen vaatimusmäärittely

TOIMINNALLINEN MÄÄRITTELY- DOKUMENTTI KETTERÄSTI

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

Testaussuunnitelma. Ohjelmistotuotantoprojekti XPerf. Helsingin yliopisto. Tietojenkäsittelytieteen laitos

UML:n yleiskatsaus. UML:n osat:

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Convergence of messaging

Transkriptio:

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