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