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

Samankaltaiset tiedostot
Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

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

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

sovellussuunnitteluun

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Tietojärjestelmän osat

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Suunnitteluvaihe prosessissa

Ohjelmistotekniikka - Luento 2

Johdantoluento. Ohjelmien ylläpito

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

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

ITK130 Ohjelmistoprosessi

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

OT-s200: Prosessimallit

2. Ohjelmistotuotantoprosessi

Oleelliset vaikeudet OT:ssa 1/2

TOIMINNALLINEN MÄÄRITTELY MS

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

1. Johdanto. Ohjelmistotuotannon ongelmia

Ylläpito. Ylläpidon lajeja

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Ohjelmiston toteutussuunnitelma

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIETOKANNAN SUUNNITTELU

Ohjelmistojen suunnittelu

Ohjelmistoprojektien hallinta Vaihejakomallit

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

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

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

Standardi IEC Ohjelmisto

Software engineering

Ketterä vaatimustenhallinta

Ohjelmistojen mallintaminen kertausta Harri Laine 1

ITK130 Ohjelmistojen luonne

Projektin suunnittelu

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

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Kurssin aihepiiri: ohjelmistotuotannon alkeita

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

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

Mylab Projektitoiminnan kehittäminen. PM Club Tampere

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

Liiketoimintajärjestelmien integrointi

Tietojärjestelmätieteen ohjelmat

Ohjelmistotekniikan menetelmät, kevät 2008

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

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Projektityö

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistojen mallintaminen, kesä 2009

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

Ylläpitodokumentti Mooan

Ohjelmistotekniikan menetelmät, kesä 2008

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Liiketoimintajärjestelmien integrointi

Kontrollipolkujen määrä

Elinar Oy Ltd IBM Arkistointiratkaisut

Ohjelmistojen mallintaminen. Matti Luukkainen

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

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

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot

Turva-automaation suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2010

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

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

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

Mitä on ohjelmistotuotanto?

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

AutoCAD-natiiviobjektin toteutus

VALDA-tietojärjestelmän j versio 1

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

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

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

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

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

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

NESTE ENGINEERING SOLUTIONS

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Projektisuunnitelma Nero-ryhmä

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Ohjelmoinnin perusteet Y Python

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Transkriptio:

jen mallinnus, s2008 jen mallinnus (OMa) - Johdatus ohjelmistotuotantoon 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 28.10.2008 Harri Laine 1 28.10.2008 Harri Laine 2 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 Toimintaympäristö (Environment) Organisaatio Tietojärjestelmä (information system) 28.10.2008 Harri Laine 3 28.10.2008 Harri Laine 4 ja 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-timesystems) valvonta- ja ohjausjärjestelmät, puhelinkeskusohjelmistot t ovat monimutkaisia kokonaisuuksia tarvitsevat toimiakseen usein muita ohjelmistoja, jolloin muodostuu riippuvuuksia ohjelmistojen välille ovat harvoin staattisia, muutokset tuovat tarpeen hallita ohjelmistojen versioita 28.10.2008 Harri Laine 5 28.10.2008 Harri Laine 6 Harri Laine 1

jen mallinnus, s2008 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 t ovat siis tietokoneille tarkoitettuja toimintaohjeita ja laativat vielä nykyään enimmäkseen ihmiset. jen laatimiseen liittyvää työtä kutsutaan ohjelmistotuotannoksi (software production) tai ohjelmistojen kehittämiseksi (software development). tekniikka (software engineering) on tietojenkäsittelytieteen osa-alue, joka käsittelee (laajojen ja monimutkaisten) ohjelmistojen tuottamista 28.10.2008 Harri Laine 7 28.10.2008 Harri Laine 8 prosessi tai ohjelmistoprosessi (software process) on systemaattinen tapa tuottaa ohjelmistoja Koska ohjelmat ovat varsin erilaisia, ei kaikkien tuotantoonkaan sovi samanlainen prosessi n elinkaarella (life cycle) tarkoitetaan vaiheita, joiden kautta ohjelmisto etenee alkuperäisestä kehittämisideasta hautaansa 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 28.10.2008 Harri Laine 9 28.10.2008 Harri Laine 10 idea määrittely ylläpito loppu käyttöönotto suunnittelu toteutus 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 28.10.2008 Harri Laine 11 28.10.2008 Harri Laine 12 Harri Laine 2

jen mallinnus, s2008 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') Suunnittelu (system design): Miten ohjelmisto toteutetaan. suunnitelmassa 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 28.10.2008 Harri Laine 13 28.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 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? 28.10.2008 Harri Laine 15 28.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 Toteutus (implementation) Ohjelmointi Testaus Virheenjäljitys Dokumentointi 28.10.2008 Harri Laine 17 28.10.2008 Harri Laine 18 Harri Laine 3

jen mallinnus, s2008 Käyttöönotto (integration and deployment) n koostaminen osista Yhdistäminen olemassa olevaan järjestelmään Konversiot Sovitus Asennus Hyväksymistestit Käyttökoulutus ja -ohjeet Dokumentaatio Käyttö ja ylläpito (Operation and maintenance) 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) 28.10.2008 Harri Laine 19 28.10.2008 Harri Laine 20 Määrittely 8 % idea Suunnittelu 7 % määrittely suunnittelu Koodaus 6 % Moduulitestaus 7 % ylläpito käyttöönotto toteutus Integrointi 6 % loppu Ylläpito 67 % 28.10.2008 Harri Laine 21 28.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 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 28.10.2008 Harri Laine 23 28.10.2008 Harri Laine 24 Harri Laine 4

jen mallinnus, s2008 Tässä mallissa käyttäjä on mukana vain määrittelyvaiheessa ja tuotteen valmistuminen saattaa tapahtua pitkän ajan kuluttua. 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. 28.10.2008 Harri Laine 25 28.10.2008 Harri Laine 26 Spiraalimalli on geneerinen yleismalli iteratiivisille ohjelmistoprosesseille. Malliin on otettu mukaan kustannusanalyysia ja riskien arviointia. 28.10.2008 Harri Laine 27 28.10.2008 Harri Laine 28 28.10.2008 Harri Laine 29 Harri Laine 5