Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1. Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

sovellussuunnitteluun

Tietojärjestelmän osat

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistotekniikka - Luento 2

Suunnitteluvaihe prosessissa

Johdantoluento. Ohjelmien ylläpito

ITK130 Ohjelmistoprosessi

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

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

OT-s200: Prosessimallit

Oleelliset vaikeudet OT:ssa 1/2

2. Ohjelmistotuotantoprosessi

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

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

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

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelmistoprojektien hallinta Vaihejakomallit

ITK130 Ohjelmistojen luonne

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmiston toteutussuunnitelma

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIETOKANNAN SUUNNITTELU

Ohjelmistojen suunnittelu

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Ylläpito. Ylläpidon lajeja

Ketterä vaatimustenhallinta

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

S11-09 Control System for an. Autonomous Household Robot Platform

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Projektin suunnittelu

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

Mitä on ohjelmistotuotanto?

Standardi IEC Ohjelmisto

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Mylab Projektitoiminnan kehittäminen. PM Club Tampere

Liiketoimintajärjestelmien integrointi

Software engineering

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistojen mallintaminen. Matti Luukkainen

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Projektityö

Ohjelmiston testaus ja laatu. Testaustasot

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ylläpitodokumentti Mooan

Tietojärjestelmätieteen ohjelmat

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Liiketoimintajärjestelmien integrointi

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Kontrollipolkujen määrä

Elinar Oy Ltd IBM Arkistointiratkaisut

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

Avoimen ja yhteisen rajapinnan hallintamalli

Projektityö

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

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

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot

Ohjelmistoarkkitehtuurit. Syksy 2010

Turva-automaation suunnittelu

Hankesuunnitelma. Novus-Hanke. Novus-Hanke. YYL:n tietojärjestelmien kokonaisuudistus HANKESUUNNITELMA. LIITE 1

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

AutoCAD-natiiviobjektin toteutus

VALDA-tietojärjestelmän j versio 1

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

Testaaminen ohjelmiston kehitysprosessin aikana

NESTE ENGINEERING SOLUTIONS

Integrointi. Ohjelmistotekniikka kevät 2003

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Transkriptio:

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon 31.10.2008 Harri Laine 1

Ohjelmisto Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän suoritettava tehtävä voi olla laaja ja monimutkainen tai suppea ja yksinkertainen Tietokoneohjelmisto (software system) yhteenkuuluva kokoelma tietokoneohjelmia jonkin tehtäväkokonaisuuden hoitamiseksi 31.10.2008 Harri Laine 2

Ohjelmisto Tietojärjestelmä (enterprise information system) ohjelmistojen, laitteiden, ihmisten, toimintaohjeiden, työnkulkujen ja tietojen järjestelmä, jossa ohjelmilla suoritettavat tietojenkäsittelytehtävät palvelevat organisaation toimintaa 31.10.2008 Harri Laine 3

Ohjelmisto Toimintaympäristö (Environment) Organisaatio Tietojärjestelmä (information system) Ohjelmisto 31.10.2008 Harri Laine 4

Ohjelmisto Ohjelmistoja on erityyppisiä, esimerkiksi liiketoimintajärjestelmiä (enterprise applications) esim. tilaustenkäsittely, tutkimustiedon muokkaus sulautettuja ohjelmistoja (embedded) osana jotain laitetta esimerkiksi puhelinta tai autoa varusohjelmistoja (systems software) käyttöjärjestelmät, tietokanta- ja tietoliikenneohjelmistot yleiskäyttöisiä työkaluohjelmistoja tekstinkäsittely, kuvankäsittely, webbiselain tosiaikajärjestelmiä (real-time systems) valvonta- ja ohjausjärjestelmät, puhelinkeskusohjelmistot 31.10.2008 Harri Laine 5

Ohjelmisto Ohjelmistot ovat monimutkaisia kokonaisuuksia tarvitsevat toimiakseen usein muita ohjelmistoja, jolloin muodostuu riippuvuuksia ohjelmistojen välille ovat harvoin staattisia, muutokset tuovat tarpeen hallita ohjelmistojen versioita 31.10.2008 Harri Laine 6

Räätälöidyt ohjelmistot (tailored sowtware): asiakkaan erityistarpeesta lähtien rakennettavat ohjelmistot Tuotetyyppiset valmisohjelmistot (products) tietylle toimialalle suunnatut alalle tyypillisiä palveluja tuottavat ohjelmistot - asiakas sopeuttaa toimintansa Sovitettavat aihiot - eräänlaiset puolivalmisteet, joka on parametrein tai pienin säädöin muokattavissa asiakkaan tarpeita vastaavaksi 31.10.2008 Harri Laine 7

Ohjelmistot ovat siis tietokoneille tarkoitettuja toimintaohjeita Ohjelmistoja laativat vielä nykyään enimmäkseen ihmiset. Ohjelmistojen laatimiseen liittyvää työtä kutsutaan ohjelmistotuotannoksi (software production) tai ohjelmistojen kehittämiseksi (software development). Ohjelmistotekniikka (software engineering) on tietojenkäsittelytieteen osa-alue, joka käsittelee (laajojen ja monimutkaisten) ohjelmistojen tuottamista 31.10.2008 Harri Laine 8

Ohjelmistotuotantoprosessi tai ohjelmistoprosessi (software process) on systemaattinen tapa tuottaa ohjelmistoja Koska ohjelmat ovat varsin erilaisia, ei kaikkien tuotantoonkaan sovi samanlainen prosessi Ohjelmiston elinkaarella (life cycle) tarkoitetaan vaiheita, joiden kautta ohjelmisto etenee alkuperäisestä kehittämisideasta hautaansa 31.10.2008 Harri Laine 9

Koska ohjelmistot ovat monimutkaisia, ne on suunniteltava ennen toteutusta Jotta ohjelmisto pystytään suunnittelemaan pitää selvittää, mitä siltä vaaditaan Vaatimukset pitää suhteuttaa toimintaympäristöön ja resursseihin Näistä lähtökohdista syntyy seuraava geneerinen elinkaarimalli 31.10.2008 Harri Laine 10

idea määrittely suunnittelu ylläpito käyttöönotto toteutus loppu 31.10.2008 Harri Laine 11

Määrittely (requirement analysis): Millainen ohjelmisto tarvitaan = ohjelmistolle asetettavat vaatimukset (ulkoinen näkökulma ohjelmistoon) Selviteään tarkoitus: millaista toimintaa ohjelmistolla pitäisi tukea ketkä suorittavat avustettavia ttehtäviä mitä hyötyä / kustannuksia järjestelmästä on millaisia ongelmia ohjelmistolla halutaan poistaa Selvitetään mitä halutaan keitä ovat järjestelmän käyttäjät mitä palveluja järjestelmä tarjoaa / kenelle millainen on järjestelmän tietosisältö millaisessa ympäristössä järjestelmän tulisi toimia selvitetään sisältö ei toteutustapaa 31.10.2008 Harri Laine 12

Asetetaan tavoitteita, kohteina esim. suorituskyky (käsittelymäärät, vasteajat) tietotarpeiden tyydytys kustannukset (seuranta, vähentäminen) valvonnan kehittäminen (suojaus) tehokkuuden parantaminen (käyttöaste) palvelujen kehittäminen nykyjärjestelmän työnkulku tai muu nykyjärjestelmän ongelma. Tavoitteet täsmällisesti (esim 'ilmoittautumisaika puoleen nykyisestä' on parempi kuin 'ilmoittautumista nopeutettava') 31.10.2008 Harri Laine 13

Suunnittelu (system design): Miten ohjelmisto toteutetaan. Ohjelmistosuunnitelmassa kuvataan tulevan ohjelmiston rakenne, rakenneosien väliset rajapinnat ja tietosisältö sekä jossain tapauksissa algoritmit. [Sommerville] Näkökulma tekninen ja ohjelmiston sisäinen Kytkennät (sisäiset) muihin ohjelmistoihin 31.10.2008 Harri Laine 14

Suunnittelussa kehitetään ratkaisuvaihtoehtoja syötteiden ja tulosteiden muoto käsittelyperiaatteet (suorakäyttö/erätyö) tiedostoratkaisu (tiedostot/tietokanta) työnjako (ihminen/kone) hajautus (hajautettu/keskitetty) alusta, laitteisto ja varusohjelmisto työn muuttuminen, tarvittavat ohjelmat,... Useita vaihtoehtoisia suunnitelmia 31.10.2008 Harri Laine 15

Vaihtoehtoja on arvioitava Tarkastellaan vaihtoehdon vaikutusta käyttäjiin (liike)toimintaan tavoitteiden saavuttamiseen palveluiden saatavuuteen toimivuuteen saadaanko kaikki työt hoidettua määritellyllä ratkaisulla? onko toiminta järkevää? onko ratkaisu tehokas? 31.10.2008 Harri Laine 16

Suunnittelun osa-alueita Arkkitehtuurisuunnittelu suunnitellaan ohjelmiston kokonaisrakenne ja osien välinen yhteistyö tietokannan suunnittelu työnkulkujen ja kommunikaation suunnittelu Ohjelmasuunnittelu yksittäisen ohjelman tai pakkauksen tarkempi suunnittelu käyttöliittymän suunnittelu 31.10.2008 Harri Laine 17

Toteutus (implementation) Ohjelmointi Testaus Virheenjäljitys Dokumentointi 31.10.2008 Harri Laine 18

Käyttöönotto (integration and deployment) Ohjelmiston koostaminen osista Yhdistäminen olemassa olevaan järjestelmään Konversiot Sovitus Asennus Hyväksymistestit Käyttökoulutus ja -ohjeet Dokumentaatio 31.10.2008 Harri Laine 19

Käyttö ja ylläpito (Operation and maintenance) Ohjelmisto on asennettu ja otettu osaksi käyttäjän normaalia toimintaa Aiempi järjestelmä on poistettu käytöstä Ongelmaraportointi järjestetty Ylläpitotoimenpiteiden luokittelu Korjaavat ylläpitotoimet (virheiden poistaminen) Sopeuttavat ylläpitotoimet (ympäristön muutoksiin vastaaminen) Lisäävät / parantavat ylläpitotoimet (lisäominaisuudet) Uudelleenjärjestelytoimet (sisäiset muutokset, ei vaikutusta ulkoiseen käyttäytymiseen) 31.10.2008 Harri Laine 20

Määrittely Suunnittelu Koodaus Moduulitestaus Integrointi Ylläpito 8 % 7 % 6 % 7 % 6 % 67 % 31.10.2008 Harri Laine 21

idea määrittely suunnittelu ylläpito käyttöönotto toteutus loppu 31.10.2008 Harri Laine 22

Geneerinen malli ei pidä sisällään mitään ajoitustietoa. Se ei ota kantaa siihen, kuinka paljon määrittelyä pitää tehdä ennen suunnittelua ja kuinka paljon suunnittelua ennen toteutusta. Se ei myöskään ota kantaa siihen onko integrointi jatkuvaa vai tapahtuuko se isommissa erissä tai otetaanko uusi ohjelma heti käyttöön Näihin asioihin ottavat kantaa ohjelmistoprosessimallit 31.10.2008 Harri Laine 23

Vesiputousmallissa (waterfall model) suoritetaan kukin vaihe valmiiksi ennen kuin siirrytään seuraavaan. Vaiheen tuloksena saadaan vaihedokumentti (vaatimusdokumentti, suunnitteludokumentti, jne). Dokumentin hyväksyminen mahdollistaa seuraavan vaiheen aloituksen. Mallissa on mahdollista palata takaisin edelliseen vaiheeseen, jos seuraavassa törmätään ongelmiin 31.10.2008 Harri Laine 24

Tässä mallissa käyttäjä on mukana vain määrittelyvaiheessa ja tuotteen valmistuminen saattaa tapahtua pitkän ajan kuluttua. 31.10.2008 Harri Laine 25

Iteratiivisissa (iterative, evolutionary) prosessimalleissa kehitys etenee kasvattamalla ohjelmistoa pienissä erissä (increment) Kullekin laajennusosalle tehdään määrittely, suunnittelu, toteutus ja käyttöönotto vaiheet. Osa otetaan käyttöön antamaan palautetta seuraavaa iteraatiokierrosta varten. 31.10.2008 Harri Laine 26

31.10.2008 Harri Laine 27

Spiraalimalli on geneerinen yleismalli iteratiivisille ohjelmistoprosesseille. Malliin on otettu mukaan kustannusanalyysia ja riskien arviointia. 31.10.2008 Harri Laine 28

31.10.2008 Harri Laine 29