582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon



Samankaltaiset tiedostot
Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Tietojärjestelmän osat

Ohjelmistojen suunnittelu

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Projektityö

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Työkalut ohjelmistokehityksen tukena

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

1. Johdanto. Ohjelmistotuotannon ongelmia

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikan menetelmät, kesä 2008

TIETOTEKNIIKAN KOULUTUSOHJELMA

Ohjelmistotekniikan menetelmät, kevät 2008

13/20: Kierrätys kannattaa koodaamisessakin

Uudelleenkäytön jako kahteen

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

Ohjelmistojen mallintaminen, kesä 2010

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Mylab Projektitoiminnan kehittäminen. PM Club Tampere

Suunnitteluvaihe prosessissa

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikka - Luento 2

Ohjelmiston toteutussuunnitelma

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

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

ITK130 Ohjelmistojen luonne

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Avoimen ja yhteisen rajapinnan hallintamalli

Kontrollipolkujen määrä

Software product lines

Ohjelmistojen mallintaminen. Luento 11, 7.12.

2. Ohjelmistotuotantoprosessi

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

Onnistunut Vaatimuspohjainen Testaus

TOIMINNALLINEN MÄÄRITTELY MS

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

Johdantoluento. Ohjelmien ylläpito

TkK-tutkielmat

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

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

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

Organisaatio- a ja yhteiskuntaosaaminen. - ja vuorovaikutusosaaminen istoiminnan osaaminen toimintaosaaminen. Kansainvälisyysosaaminenn

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ohjelmistojen mallintaminen

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

OHJ-1010 Tietotekniikan perusteet 4 op Syksy Luento 9: Ohjelmistotuotanto, peruskäsitteitä

Onnistunut SAP-projekti laadunvarmistuksen keinoin

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

Projektin suunnittelu

Hieman lisää malleista ja niiden hyödyntämisestä

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

OTM-HANKKEEN SIDOSRYHMÄSEMINAARI

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit, syksy

Sulava. Markku Suominen. Puhelin: Käyttöönotto Käyttö

Turvakriittisen projektin menetelmät ja työkalut

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

Integrointi. Ohjelmistotekniikka kevät 2003

Käyttövarmuuden peruspilarit

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

sovellussuunnitteluun

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

Suomen avoimien tietojärjestelmien keskus COSS ry

Ohjelmistojen mallintaminen, kertausta

UCOT-Sovellusprojekti. Testausraportti

Convergence of messaging

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Integrointialgoritmit molekyylidynamiikassa

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Ketterä vaatimustenhallinta

PLA Mobiiliohjelmointi. Mika Saari

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

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

TESTIPISTE - Aikuisten maahanmuuttajien kielitaidon arviointikeskus

PlanMan Project projektihallintaohjelmisto

Software engineering

Kuntasektorin kokonaisarkkitehtuuri

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Transkriptio:

582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 1

Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta Ohjelmistojen elinkaari, elinkaarimallit 2

Ohjelmistotuotannon viisikulmio 3

Ohjelmistotuotannon ongelma Ohjelmistotuotanto on se tietojenkäsittelytieteen osa-alue, joka käsittelee laajuudeltaan ja monimutkaisuudeltaan sellaisten ohjelmistojen tuottamista, jossa kehitystyöhön tarvitaan ryhmä [Ghezzi et al.] Vuonna 1994, vain 16% ohjelmistoprojekteista valmistui ajallaan ja budjetissa [The Standish Group s Chaos Report, 1994] Vuonna 2003 vastaavasti jo 34% [The Standish Group, 2003] 4

Ohjelmistotuotannon alan käsitteitä Ohjelmistoprojekti Ohjelmistotuotteen tai -palvelun tuottamishanke Ohjelmiston elinkaari Vaiheet alkuvaiheen ideoinnista ( syntymästä ) aina lopulliseen töpselin nykäisemiseen seinästä Ohjelmistojen kehitystyölle ominaista iterointi: elinkaaren keskimmäisiä vaiheita toistetaan vaatimusten ja ympäristön muuttuessa inkrementaalisuus: tuotetta rakennetaan pienissä osasissa 5

Erilaisia ohjelmistojen sovelluskohteita Ohjelmistot ohjaavat mitä moninaisimpien asioiden toimintaa Erilaisia ohjelmistoja, esimerkiksi Liiketoimintajärjestelmät (enterprise applications) Sulautetut järjestelmät (embedded software) Tosiaikajärjestelmät (real-time software) Varusohjelmistot (systems software) Ohjelmistotuotantoa katsotaan monesti (ehkäpä liiaksikin!) liiketoimintajärjestelmien kehittämisen näkökulmasta Esimerkiksi avoimen lähdekoodin järjestelmät - mitä kategoriaa? 6

Tietojärjestelmä, ohjelmisto, ohjelma Tietojärjestelmä on hallinnollinen kokonaisuus Laitteet, palvelut, tietosisällöt, ohjelmistot Ohjelmisto taas koostuu yhdestä tai useammasta ohjelmasta, jotka toimivat jollakin laitteisto- ja ohjelmistoalustalla Ohjelmistot ja tietojärjestelmät ovat monimutkaisia kokonaisuuksia.. jotka kutoutuvat toimintaympäristönsä yhteyteen 7

Tietojärjestelmä tarjoaa palveluita koko toimintaympäristöönsä 8

Liiketoimintasovelluksille ominaisia piirteitä Ohjelmisto on osa tietojärjestelmää Ohjelmistoprosessi on osa liiketoimintaprosessia Ohjelmistojen tuottaminen on muutakin kuin ohjelmointia Menestyksekäs liiketoimintasovellusten tuottaminen on monesti ensisijaisesti liiketoiminnan prosessien automatisoimista Joten.. ohjelmistotuotanto on oikeastaan liiketoiminnan mallintamista 9

Esimerkkejä ohjelmistoista Facebook Word GCC DX200 Eclipse Doom 3 WebOODI HKL maksukorttilukija Firefox Excel ssh Google Symbian S60 Apache TKTL:n ILMO Skype emacs HelMet Max Payne PowerPoint MySQL Kauppakeskuksen oven avaaja 10

Ohjelmistotuotanto eroaa teollisesta tuotannosta Ohjelmat eivät ole konkreettisia muokkaaminen onnistuu loputtomiin Ohjelmat ovat keskenään hyvin erilaisia sovellusalueet, toimintaympäristöt, laite- ja ohjelmistoympäristöt 11

Ohjelmistotuotanto eroaa teollisesta tuotannosta Ohjelmistoja ei juurikaan suunnitella sarjatyönä Standardointityö monilla sovellusalueilla vasta lapsenkengissään Ohjelmistojen toiminta sovitetaan kuhunkin ympäristöön sopivaksi Ohjelmistot vaativat ylläpitoa Toisaalta, tiettyä ohjelmistoa voidaan monistaa nollakustannuksin Ohjelmistotuoteliiketoiminta perustuu tähän Entäpä massaräätälöitävät ohjelmistot? 12

Ohjelmistotuotanto on muutakin kuin ohjelmointia Ohjelmistotuotannossa ratkotaan ihmisten ja organisaatioiden monimutkaisia ongelmia Tyypilliset ohjelmointikielen (esim. Javan) käsitteet ovat monesti aivan liian matalalla abstraktion tasolla Monimutkaiset järjestelmät on suunniteltava ennen toteutusta (ohjelmointia) Ennen suunnittelua on ymmärrettävä ongelman asettamat vaatimukset Vaatimukset taas on suhteutettava ympäristöönsä ja käytettävissä oleviin toteutusvoimiin. 13

Ohjelmistotuotanto on erityisesti mallintamista Malli abstrahoi, jäsentää ja kuvaa todellisuutta Mikä on todellisuus? Liiketoimintaympäristö? Tietokoneen käskykanta? Java-kielen myöhäisen sidonnan säännöstö? Projektin budjetti ja henkilöstö? 14

Mallinnusvälineitä [Eriksson & Penker 1998] 15

Ohjelmakoodin sovittaminen malliin Ohjelmistoa mallinnettaessa teemme sillan ohjelmakoodin ja ulkoisen ympäristön välille Lähestymistapoja mallintamiseen Proseduraalinen mallintaminen: järjestelmä jaetaan moduuleihin toiminnallisella osituksella Oliomallintaminen: ositus perustuu luokkien muodostamiin komponentteihin ja niiden suhteisiin Ohjelmointikielten luokittelussa käytetään samankaltaisia termejä - olioparadigma, proseduraalinen ohjelmointi, funktionaalinen ohjelmointi... 16

Ohjelmiston elinkaari Määrittely - millainen ohjelmisto? Suunnittelu - miten ohjelmisto toteutetaan? Toteutus - ohjelmointi, testaus Käyttöönotto Ylläpito Mikä vaiheista vie eniten aikaa? 17

Suhteellisia työmääriä, ohjelmistoprojektit vuosina 1976-1981 Määrittely 8 % 24 % Suunnittelu 7 % 20 % Ohjelmointi 6 % 18 % Moduulitestaus 7% 20 % Integrointi 6 % 18 % Ylläpito 67 % Määrittely Suunnittelu Ohjelmointi Moduulitestaus Integrointi Ylläpito [Schach 1993] 18

Suhteellisia työmääriä, ohjelmistoprojektit 1992-1998 Kehitys 25% Ylläpito 75% [Schach 2005] 19

Vaatimusmäärittely Vaatimukset kuvaavat luonnollisella kielellä ja kaavioilla järjestelmältä edellytettäviä palveluja ja sen toiminnalle asetettuja rajoitteita. [Sommerville] Ulkoinen näkökulma järjestelmään Osa-alueina Vaatimusten kerääminen käyttäjiltä ja muilta sidosryhmiltä Vaatimusmäärittely käyttötapauksina ja tekstinä Menetelmät ja työkalut Haastattelut, vanhat järjestelmät, läpikäynnit CASE-välineet 20

Suunnittelu Ohjelmistosuunnitelmassa kuvataan tulevan ohjelmiston rakenne, rakenneosien väliset rajapinnat ja tietosisältö sekä jossain tapauksissa algoritmit. [Sommerville] Suunnitteluvaiheessa näkökulma on ohjelmiston sisäinen Arkkitehtuurisuunnittelu - kokonaisrakenne Oliosuunnittelu - osien tarkempi suunnittelu Ero vaatimusmäärittelyvaiheeseen nähden Heijastaako ohjelmistosuunnitelma vaatimuksia, vai tehtiinkö mitä osattiin? 21

Toteutus Ohjelmointi Testaus Virheenjäljitys Koodikatselmukset Edellisten vaiheiden ollessa kunnossa, tämä vaihe on suoraviivaista 22

Integrointi ja käyttöönotto Integrointi Ohjelmiston koostaminen erikseen toteutetuista ja testatuista komponenteista Nuoren järjestelmän kohdalla vaikea erottaa toteutuksesta ja testauksesta Iäkkäämmässä järjestelmässä erilliset testi- ja tuotantoympäristöt Käyttöönotto Järjestelmän toimittaminen asiakkaille tuotantokäyttöön Järjestelmä- ja hyväksymistestaukset Käyttökoulutus, käyttöohjeet, dokumentaatio 23

Käyttö ja ylläpito Ohjelmistotuote asennettu ja otettu osaksi käyttäjän normaalia toimintaa Aiempi järjestelmä poistettu käytöstä 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) 24

Elinkaari vaihtelee projekteittain Kullakin sovelluksella on yksilöllinen elinkaarensa Ohjelmistot heijastavat käyttävän organisaation elinkaarta 25