1. Johdanto. Ohjelmistotuotannon ongelmia

Samankaltaiset tiedostot
Software engineering

5. Järjestelmämallit. Mallinnus

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

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

6. Suunnittelu. Suunnittelun tulos

Oleelliset vaikeudet OT:ssa 1/2

Johdattelua, motivointia, eli missä ollaan ja kuinka siihen on tultu

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Tietojärjestelmän osat

Ohjelmistotuotanto

Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.

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

Ohjelmistojen suunnittelu

2. Ohjelmistotuotantoprosessi

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.

ITK130 Ohjelmistojen luonne

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

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

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

Uudelleenkäytön jako kahteen

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Suunnitteluvaihe prosessissa

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmistotekniikka - Luento 2

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistojen testaus

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

Ohjelmiston toteutussuunnitelma

TOIMINNALLINEN MÄÄRITTELY MS

Johdantoluento. Ohjelmien ylläpito

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Projektityö

Tietojärjestelmän kehittäminen syksy 2003

Ylläpito. Ylläpidon lajeja

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

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

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä

Standardi IEC Ohjelmisto

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

Projektin suunnittelu

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

1. Johdanto. Ohjelmistotuotannon piirteitä

Ohjelmistotuotanto

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

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

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

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

Studio ART Oy. Yritysesittely. Studio ART Oy. Kasöörintie Oulu p

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

1. Johdanto. Ohjelmistotuotannon piirteitä

Ketterä vaatimustenhallinta

Yksilöllistä, puhuroi, suorita - Mitä käyttöliittymien termien taakse kätkeytyy?

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

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

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Ohjelmistotuotanto, projektinhallinta Kevät 2005

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

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotuotteen hallinnasta

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

Johdatusta ohjelmistotekniikkaan

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan Ammattitaidon osoittamistavat

Järjestelmäintegraatio

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Yhteenveto. Menettelytavat

TIETOTEKNIIKAN KOULUTUSOHJELMA

Tietotekniikan Sovellusprojektit

1510 Ihminen ja tietoliikennetekniikka

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

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Onnistunut Vaatimuspohjainen Testaus

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

Projektityö

Sebicon Oy. Perustettu elokuussa 2010 Bentleyn ohjelmistojen jälleenmyyjä

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

Mitä prosessissa kehitetään. Prosessin kehittäminen. Kehittämisen tavoitteita. Perusasioita kehittämisessä. Pohjana esim. CMM

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

3. Projektinhallinta. Miksi ohjelmistoprojektin hallinta on erilaista?

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

Transkriptio:

1. Johdanto Mitä ohjelmistotuotanto on? ohjelmointi + ohjelmisto + tekniikat + insinööritaito + kurinalainen työskentely Määritelmä (60-luvun ohjelmistokriisi): The establishment and use of sound principles in order to obtain economically software that is reliable and works efficiently on real machines. (P. Naur, R.Randell (eds.): Software Engineering: A Report on a Conference Sponsored by the NATO Science Committee, 1968) Kevät 2005 Ohjelmistotuotanto / Taina 1 Ohjelmistotuotannon ongelmia Ohjelmistojen koko ja monimutkaisuus: jatkuva kasvu, kun yhä vaikeampia ongelmia ratkotaan tietotekniikan avulla isot ohjelmat (yli 10 miljoonaa koodiriviä) yleistyvät jatkuvasti Tuotantoprosessia on hankala määritellä ja mitata: prosessia on vaikea hallita, jos sitä ei voida mitata ohjelmistojen tekeminen on yhä liiaksi improvisointia liian vähän raakaa ja suoraviivaista työtä Kevät 2005 Ohjelmistotuotanto / Taina 2 Taina 1

Lisää ongelmia Tuotteen määrittely on ongelmallista: asiakas ei oikein tiedä mitä haluaa määrittelyyn ei tunneta tieteellisiä, tai edes käytännössä hyvin toimivia menetelmiä Tuotteen laadusta ei ole varmuutta: laadun formaali määrittely on vaikeaa ohjelmiston kattava testaus on käytännössä mahdotonta Kevät 2005 Ohjelmistotuotanto / Taina 3 Lisää ongelmia Ohjelmistoa on työlästä pitää kunnossa: ylläpito = kaikki mikä tapahtuu ohjelman ensimmäisen käyttöönoton jälkeen kustannukset ovat huomattavasti suuremmat kuin kehityskustannukset Projektin kulku on usein vaikeasti ennakoitavissa: projektin vaatiman työmäärän arviointi onnistuu harvoin teorian puuttuminen Kevät 2005 Ohjelmistotuotanto / Taina 4 Taina 2

Lisää ongelmia Ohjelmistotuotannon tieteellinen pohja puuttuu: perustuu enemmän hyväksi havaittuihin menetelmiin kuin eksaktiin tieteeseen käytännössä toimivien ratkaisujen yleistäminen vaatisi teoriatukea Tehtyä työtä käytetään paljon uudelleen mutta epäaattisesti: vain pieni osa (10-20%) kirjoitettavasta koodista on todella uutta, kaikki muu on peräisin jostain standardiosia ei ole tarjolla Kevät 2005 Ohjelmistotuotanto / Taina 5 Ongelmien ydin Tieteellisen tutkimuksen ja käytännön tuotantotyön välillä on kuilu: Tutkimus ei välttämättä ratkaise ongelmia. Tieteelliset tulokset sopivat usein tarkasti tiettyyn pienehköön ongelmaan. Yritykset eivät tunne tutkimustuloksia. Yritykset keskittyvät teknologiaan. Yritykset eivät ehdi/osaa/halua ratkoa ohjelmistotuotannon perusongelmia. Kevät 2005 Ohjelmistotuotanto / Taina 6 Taina 3

Mikä on ohjelmisto? Ohjelmistoon kuuluu yhteistyössä toimivia tietokoneohjelmia, ohjelmiin liittyviä syöte- ja tulostiedostoja, ohjelmiin liittyviä konfiguraatiotiedostoja ja käytössä ja ylläpidossa tarvittava dokumentaatio. Ohjelmistotuotannossa pyritään tekemään ohjelmistotuotteita, asiakkaille myytäviä ohjelmistoja. Kevät 2005 Ohjelmistotuotanto / Taina 7 Mitä vaaditaan hyvältä ohjelmistotuotteelta? ylläpidettävyys: tuotetta voidaan muokata vastaamaan muuttuviin vaatimuksiin. luotettavuus: tuote ei aiheuta fyysisiä eikä taloudellisia vahinkoja missään tilanteessa. tehokkuus: tuote ei tuhlaa resursseja. käytettävyys: tuote on looginen ja helppokäyttöinen. Kevät 2005 Ohjelmistotuotanto / Taina 8 Taina 4

Mitä on ohjelmistotuotanto? Kaikkiin ohjelmiston tuotannon osaalueisiin vaikuttavaa insinööritaitoa ja -toimintaa (Sommerville, vapaa käännös). Katso myös alkuperäistä määritelmää. Onko se tiedettä? Käytännössä hyviksi koettuja menetelmiä. Kurinalaista insinöörityötä. Tietojenkäsittelytieteen tulosten käyttöä. Kevät 2005 Ohjelmistotuotanto / Taina 9 Mikä on ohjelmistoprosessi? Ohjelmistoprosessi: Joukko toimintoja joiden tarkoituksena on ohjelmiston kehittäminen tai ylläpito. Kaikissa eräitä samoja perustoimintoja: määrittely, suunnittelu, toteutus, testaus. Ohjelmistoprosessimalli: yksinkertaistettu kuvaus prosessista. toimii pohjana prosessimallista johdetuille ohjelmistoprosessille. Kevät 2005 Ohjelmistotuotanto / Taina 10 Taina 5

Mikä tässä maksaa? kustannusten jakautuminen: elinkaarikustannukset: 25% kehitystyötä 75% ylläpitoa kehitystyökustannukset: 60% määrittelyä, suunnittelua ja toteutusta 40% testausta Valtaosa kustannuksista on henkilökustannuksia! Kevät 2005 Ohjelmistotuotanto / Taina 11 Entä menetelmät ja työkalut? Menetelmät: Systemaattiset työtavat joiden avulla pyritään sekä tehokkaaseen että korkealaatuiseen ohjelmistotuotantoon. Hyödyntävät usein graafista esitystä. CASE? Computer-Aided Software Engineering. Menetelmiä tukevia ohjelmatuotteita. Lisää kysymyksiä: Sommerville luku 1.1 Kevät 2005 Ohjelmistotuotanto / Taina 12 Taina 6

Ammatillinen vastuu Ohjelmistotuotteen tekeminen ei ole pelkästään tekninen suoritus. Mikä on tekijöiden vastuu jos ohjelmatuote ei toimi odotetulla tavalla? ohjelmatuotteen toiminta aiheuttaa ylimääräisiä kustannuksia? tiedon vuotamista? vaaratilanteita? Kevät 2005 Ohjelmistotuotanto / Taina 13 Järjestelmän laatiminen Järjestelmäsuunnittelu (Systems Engineering) käsittelee järjestelmää kokonaisuutena Järjestelmän määrittely, suunnittelu, toteutus, käyttöönotto ja käytettävyys. Järjestelmä on joukko toisiinsa liittyviä yhteistyössä toimivia komponentteja: laitteisto- ja ohjelmistokomponentteja käyttäjät ja käyttöympäristö Kevät 2005 Ohjelmistotuotanto / Taina 14 Taina 7

Tietokonepohjaiset järjestelmät Ohjelmisto on erottamaton osa järjestelmää OT-asiantuntijoiden täytyy ymmärtää koko järjestelmän toiminta voidakseen tuottaa laadukkaita ohjelmistoja Monet järjestelmät sisältävät varsin laajoja ohjelmistoja Ohjelmiston keskeisyys => OTasiantuntijat ovat usein samalla koko järjestelmän asiantuntijoita Kevät 2005 Ohjelmistotuotanto / Taina 15 Osajärjestelmät Yleensä järjestelmä koostuu useista osajärjestelmistä Kukin osa on itsenäinen kokonaisuus, joka toimii yhteistyössä muiden osien kanssa Ohjelmisto- ja laitteistokomponentit tekevät yhteistyötä toteuttaakseen osajärjestelmän tehtävät Käyttäjät käyttävät järjestelmää joidenkin osajärjestelmien kautta (käyttöliittymä) Kevät 2005 Ohjelmistotuotanto / Taina 16 Taina 8

Järjestelmän suunnitteluprosessi Työvaiheet: 1. vaatimusten määrittely 2. koko järjestelmän suunnittelu 3. osajärjestelmien kehitystyö 4. järjestelmän integrointi 5. järjestelmän asennus 6. järjestelmän ylläpito 7. järjestelmän alasajo Vastaavia työvaiheita tarvitaan myös ohjelmistoa laadittaessa. Kevät 2005 Ohjelmistotuotanto / Taina 17 Järjestelmän suunnitteluprosessi Eroja järjestelmän ja ohjelmiston suunnittelun välillä: eri insinöörialojen sanastot, periaatteet ja standardit: eri osajärjestelmien asiantuntijat eivät välttämättä ymmärrä toisiaan järjestelmän muutokset ovat kalliita: tehtyjä päätöksiä ei voida helposti muuttaa esim. jonkin (osa)järjestelmän prototyyppiä ei useinkaan voida laatia vain kokeiltavaksi Kevät 2005 Ohjelmistotuotanto / Taina 18 Taina 9

Järjestelmän laatimisen osa-alueita (Sommerville) Software Electronic Mechanical Structural ATC s User interface design Civil Electrical Architecture Kuva I. Sommerville 2004 Air Traffic Control Kevät 2005 Ohjelmistotuotanto / Taina 19 Järjestelmän laatimisessa käytettävät menetelmät Usein järjestelmän laatimiseen sopivat samat (tai samantapaiset) menetelmät kuin ohjelmiston laatimiseen Esimerkiksi koko järjestelmä on järkevää kuvata kaaviolla, joka sisältää osajärjestelmät ja niiden väliset yhteistyötavat Kevät 2005 Ohjelmistotuotanto / Taina 20 Taina 10

Esimerkkijärjestelmä (Sommerville) Radar Transponder Data comms. Aircraft comm s. Telep ho ne Position processor Backup position processor C o m m s. processor Backu p comms. processor Aircraft s imu lation Flight plan d at abas e Air Traffic Control architecture Weather map Acco un ting Controller info. Controller consoles Kuva I. Sommerville 2004 Activ ity log ging Kevät 2005 Ohjelmistotuotanto / Taina 21 Järjestelmän laatimisen ongelmia Ohjelmiston on sovittava järjestelmään Osajärjestelmien on sovittava yhteen Jos kokonaisuus ei toimi, missä on vika: ohjelmistoa pidetään usein syntipukkina syyt saattavat olla esim. kokonaisuuden huonossa suunnittelussa usein ohjelmistoa voidaan helpoimmin muuttaa Kevät 2005 Ohjelmistotuotanto / Taina 22 Taina 11

Järjestelmä ja ympäristö Järjestelmä toimii ja vaikuttaa aina jossain ympäristössä (organisaatiossa) Uuden järjestelmän käyttöönotto: uudet toimintatavat: tarvitaan koulutusta uudet työtehtävät: tarvitaan organisaation sisäisiä työtehtävien järjestelyä organisaatiomuutokset: uuden järjestelmän asiantuntijoista tulee organisaatiossa uusia tärkeitä vaikuttajia. Kevät 2005 Ohjelmistotuotanto / Taina 23 Mitä tästä opimme? Järjestelmää ja ohjelmistoa on laadittava yhteistyössä: Ohjelmistotuotantoa ei voi tehdä ilman tietoa ympäristöstä, johon ohjelmistoa ollaan tekemässä. Yhteistyö edellyttää ohjelmiston laatijoilta valmiutta kommunikoida sovellusalueen asiantuntijoiden kanssa. Kevät 2005 Ohjelmistotuotanto / Taina 24 Taina 12