Tietojärjestelmätyön perusteet

Slides:



Advertisements
Samankaltaiset esitykset
1. Missä vietät joulun useimmiten?. 2. Missä viettäisit joulun mieluiten?
Advertisements

Juha Kauppinen Consulting oy Työntekijäkysely Tietoja
Osaamisen ja sivistyksen parhaaksi Ammatillisen peruskoulutuksen valtionavustushankkeet Tuija Laukkanen
Pääkaupunkiseudun 8. luokkien palvelukyky Espoo, Tapiolan koulu Joulukuu 2013.
Testaus ja testausympäristöt
Esiopetuksen huoltajat 2014 Generated on :41.
Tämä on SUUNTA-työkalun käyttöön opastava diaesitys
Yhteistyössä Tietohallinto liikunnassa ja urheilussa
Laatujärjestelmä marjatiloilla/jatkojalostajalla
Joensuun seudun Equal: Valtamuuntaja -osahanke LUODAAN KEHITTÄMISTÄ TUKEVA RAKENNE •prosessi etenee tavoitteellisena • sitoutuminen yhteisiin.
KÄSIKIRJOITTAMINEN 2 ov. Sisältö 1 Johdanto 2 Projektityö 3 Projektin osa-alueista 3.1 Dokumentointi 3.2 Aikataulu 3.3 Sopimukset 3.4 Laitteistot ja tilat.
Suunnitelma ohjelmiston testaukseen
4. Vaatimusten hallinta Ohjelmistotuotantoprosessin tavoitteena
Tietokannan suunnittelu
Tekninen suunnit-telu
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Valvoja: Prof. Riku Jäntti Ohjaaja: FM, MBA Tapio Heinäaro
Perusopetuksen huoltajat 2014 Generated on :04.
Tietojärjestelmän suunnittelu
AS Automaation käyttöliittymät – Harjoitustyö 2009 ‹#› AS Automaation käyttöliittymät Harjoitustyö 2009  Harjoitustyö tehdään 3-4 hengen.
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
T Projektikatselmus Ampel 3. Toteutusvaihe
Kuukasjärvi Leena Nieminen Hanna-Mari Vänttilä Marika.
Mikko Arasmaa / Tietohallinto
Juha Kauppinen Consulting oy Rakenneselvitykseen liittyviä tutkimuksia Tiedotustilaisuus Karjasillan kirkolla Juha Kauppinen.
S Sosiaalitekniikka 1999 S Sosiaalitekniikka.
TULOSOHJAUKSEN JA TILIVELVOLLISUUDEN TILA Ylijohtaja Marjatta Kimmonen VTV
TPO-oppilaitoskysely keväällä 2010 Toimintaympäristö ja talous Oppilaat Henkilöstö Opetustarjonta.
Tutkimuksen taustaa  Aula Research Oy toteutti poliittisten vaikuttajien parissa tutkimuksen julkisista palveluista Suomessa ja Euroopassa – Tutkimuksen.
T Personal SE assignment Project progress tracking and control.
3. Spesifikaatioiden laatiminen
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Finnan kehittämisideoiden hallinta LUONNOS Heli Kautonen ja Aki Lassila Konsortioryhmän kokous
Tietohallinnon ja tietojärjestelmien kehittämisen perusteet
1 Raha-asioiden suunnitteleminen ja nykyinen rahatilanne Senioritutkimus 2011.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
− työkalu toiminnan suunnittelun ja suunnitelman arvioinnin tueksi
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Kommunikointi kommunikoinnin ongelmia aiheuttaa
Ohjelmistotekniikka ja projektinhallinta, 4 op
Projekti käsitteenä Projekti on selkeästi asetettuihin tavoitteisiin pyrkivä ja ajallisesti rajattu kertaluonteinen tehtäväkokonaisuus, jonka toteuttamisesta.
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Esitutkimus (tarvekartoitus)
Viestintäsuunnitelma
T Loppudemo Kaffetauko eAuction
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestaus – Miksi ja miten?
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Vaatimustenhallinta.
LAATUJOHTAMINEN TENTTI 1. Määrittele seuraavat käsitteet:
Liiketoimintaprosessit ja MS Visio 2010
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Ohjelmistotekniikka ja projektinhallinta, 4 op
Ohjelmistotekniikka Vaatimustenhallinta Kevät 2002 Päivi Ovaska LTKK/Tite.
Projektityöskentely Projekti käsitteenä Projektin vaiheet Projektin asettaminen Projektin suunnittelu Projektin käynnistäminen ja toteuttaminen Projektin.
jew1 Systeemityön eteneminen opintojaksolla Ohjelmiston suunnittelutaito Opintojakson eteneminen.ppt.
Sosiaalinen markkinointi Monikulttuurinen ehkäisevä päihdekasvatus Ohjausryhmän suunnittelupäivä
Liiketoimintaprosessit ja MS Visio 2013
Tietojärjestelmät KEHITTÄMINEN JOHTO KIRJANPITO TILAUSTEN KÄSITTELY
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
Ristiinopiskelun kehittäminen -hanke
Esityksen transkriptio:

Tietojärjestelmätyön perusteet 402T11A 3 op. Tuija Kuisma

Opintojakson sisältö pääpiirteittäin Tietojärjestelmä käsitteenä Tietojärjestelmien kehittämisen vaiheet Tietojärjestelmätyön tavoitteet ja sisältö Tietojärjestelmien kehittämismallit Järjestelmätyön työvälineet ja –tekniikat Ohjelmistojen kehittämisen erityisvaatimuksia Kuvausmenetelmät tietojärjestelmätyössä MS-Visio

Opintojakson suorittaminen ja arviointi Kurssin läpäistäkseen on Hyväksyttävästi tehtävä ja palautettava annetut ryhmätyöt ja Läpäistävä opintojakson lopussa oleva tentti

Kurssimateriaali Lähiopetuksen materiaali (pääosin ka.ramk.fi –palvelimelle) Kirjana R.Pohjosen ‘Tietojärjestelmien kehittäminen’ (koulun kirjastossa muutamia kappaleita + e-kirjana)

Tietojärjestelmä on Atk-sanakirjan mukaan… Ihmisistä, tietojenkäsittelylaitteista, tiedonsiirtolaitteista ja ohjelmista koostuva järjestelmä, jonka tarkoitus on tietoja käsittelemällä tehostaa tai helpottaa jotakin toimintaa tai tehdä toiminta mahdolliseksi (Käsitteenä laajempi ja monitahoisempi ilmiö kuin tietokoneohjelma tai -ohjelmisto, joiden synonyyminä sitä usein käytetään). Abstrakti systeemi, jonka muodostavat tiedot ja niiden käsittelysäännöt.

Eräs määritelmä Tietokoneperustainen järjestelmä, joka tarjoaa tietylle käyttäjäryhmälle informaatiota heidän mielenkiinnon kohteistaan tietyssä organisatorisessa ympäristössä (Iivari & Hirschheim)

Tietojärjestelmät muodostuvat ihmisistä hardware- ja software-komponenteista proseduureista datasta informaatiosta

Tietojärjestelmistä… Tietojärjestelmiä on kaikissa organisaatioissa (toimintayksiköissä), mutta kaikki ne eivät ole automaattisia tai formaalisti määriteltyjä tai edes tiedostettuja. Toimintayksikön sisällä toiminnot voidaan jakaa perustoimintoihin ohjaustoimintoihin ja tukitoimintoihin

TOIMINTAYKSIKKÖ YHTEISKUNTA KILPAILIJAT ASIAKKAAT OHJAUSTOIMINNOT RAAKA-AINEET TUOTTEET PERUSTOIMINNOT TUKITOIMINNOT VALTIOVALTA SUORITTAVA TOIMINTA OMISTAJAT ALIHANKKIJAT

Toimintayksikön toiminnot Perustoiminnot ovat toimintayksikön primaaritoimintoja, eli toimintoja, jotka mahdollistavat yksikön olemassaolon. Esim. jotakin tuotetta valmistavan toimintayksikön perustoimintoja ovat kaikki tuotteen valmistamiseen liittyvät toiminnot. Ohjaustoiminnot ovat yksikön toiminnan suunnitteluun, toimeenpanoon ja valvontaan liittyvät toiminnot. Tukitoimintoihin kuuluu henkilöstöhallinto, taloushallinto, tietohallinto, tuotekehitys ja huolto.

Systeemien tarkastelunäkökulmat Prosessinäkemys tarkastelee systeemin tuotosten määrittelyä ja tuotosten tekemiseen tarvittavia raaka-aineita ja loogisen tason toimintasääntöjä. Rakennenäkemys tarkastelee systeemiin kuuluvia komponentteja, niiden rakenteita ja suhteita. Vuorovaikutusnäkemys tarkastelee systeemin ja sen ympäristön välisiä suhteita (mihin, miten ja milloin systeemi on vuorovaikutuksessa ympäristöönsä)

Tietojärjestelmien asema toimintayksiköissä Syyt, miksi tietojärjestelmiä käytetään, voidaan karkealla tasolla ryhmitellä kolmeen luokkaan: perus-, liike- ja operatiivisten toimintojen tukeminen johdon päätöksenteon tukeminen strategisen kilpailuedun saavuttaminen

Tietojärjestelmien roolit toimintayksiköissä Päätöstukijärjestelmät Toimistoautomaatio-järjestelmät TOIMINTAYKSIKKÖ PERUSTOIMINNOT TUKITOIMINNOT OHJAUSTOIMINNOT SUORITTAVA TOIMINTA Tuotannonohjaus-järjestelmät Prosessinohjaus-järjestelmät Sulautetut järjestelmät Taloushallinnon ja henkilöstöhallinnon järjestelmät Toimistoautomaatio-järjestelmät

Käsitteitä Toimistoautomaatiojärjestelmä (office automation systems) apuvälineohjelmisto/työkaluohjelmisto, jota käytetään dokumenttien hallintaan ja pienehköjen töiden automatisointiin Tapahtumankäsittelyjärjestelmä (transaction processing systems, on-line systems) käsittelee erilaisia organisaation tapahtumia ja transaktioita, yleensä monenkäyttäjän sovelluksia Suorakäsittely (online processing)Eräkäsittely (batch p.) suorakäsittelyssä käyttäjät ovat tosiaikaisessa yhteydessä tietokantaan, esim. paikkavarausjärjestelmät eräkäsittelyssä tapahtumat ensin kerätään ja suoritetaan myöhemmin, vaikkapa yöaikaan, esim. laskutusajot Reaaliaikajärjestelmä (real-time systems) kontrolloivat jotakin ympäristöä ja keräävät tietoa sen toiminnasta, käsittelevät keräämänsä tiedon ja palauttavat tulokset takaisin ko. ympäristöön, joka sitten tarvittaessa muuttaa niiden perusteella toimintaansa esim. prosessinohjausjärjestelmät

Käsitteitä Päätöstukijärjestelmä (DSS=decision-support systems) tuottavat informaatiota päätöksen teon tueksi analysoimalla organisaatiota koskevaa tietoa Johdon tietojärjestelmä (MIS=management information systems, ESS=executive support systems) päätöstukijärjestelmiä, jotka auttavat johtoa esim. organisaation toiminnanohjauksessa tai strategisessa suunnittelussa Asiantuntija- ja tietämyspohjaiset järjestelmät (expert systems, knowledge-based systems) rajatun erikoisalueen tietoa sisältävä järjestelmä, joka pyrkii simuloimaan asiantuntijan (henkilön) toimintaa päätöksentekotilanteessa esim. lääkärien käytössä oleva järjestelmä, jonne tiedot syötetään ja järjestelmä antaa arvion mahdollisesta sairaudesta ja siihen sopivasta lääkityksestä Tietotyön tukijärjestelmät (KWS=knowledge work support) tietojärjestelmiä jotka auttavat tietotyötä tekeviä luomaan ja integroimaan uutta tietoa

Mitä tietojärjestelmien kehittämisellä tarkoitetaan Atk-sanakirjan mukaan: Tietojärjestelmien kehittäminen (information systems development, ISD) on uusien tietojärjestelmien laatimista tai nykyisten oleellista muuttamista. Systeemityö on tietojärjestelmien suunnittelua, ohjelmointia ja ylläpitoa. Oppikirjamme mukainen määritelmä: Tietojärjestelmien kehittäminen on kehitysryhmän tietyssä ympäristöissä kohdejärjestelmälle suorittama muutosprosessi, joka tapahtuu kohdejärjestelmälle asetettujen tavoitteiden mukaisesti.

Miksi tietojärjestelmiä kehitetään? Osana organisaation oman toiminnan kehittämistä Auttaa tavoitteiden saavuttamisessa Auttaa vaativimpien tavoitteiden asettamisessa Mahdollistaa uudet toiminnot Tehostaa olemassa olevia toimintoja

Mitä kehittämisellä tarkoitetaan? Uusien järjestelmien kehittämistä tai Olemassaolevien järjestelmien muuttamista Muutosprosessi Havainnointi (nykytila) Tavoitteiden asettaminen (pyrkimys) Suoritus (työ) Ohjaus (kontrolli/arviointi) Muutos (muuttunut kohde)

Tietojärjestelmien kehittäminen KEHITYSRYHMÄ ASETTAA TAVOITTEET SUORITTAA OHJAA OVAT OMINAISUUKSIA HAVAINNOI KOHDE- JÄRJESTELMÄ KOHDE- JÄRJESTELMÄ MUUTOSPROSESSI YMPÄRISTÖ

Näkemyksiä tietojärjestelmätyön tavoitteista Toimintokeskeinen 1960 – siirrettiin tietokoneella tehtäväksi aikaisempia käsin suoritettuja toimintoja, kuten kirjanpito, laskutus, palkanlaskenta Tietokeskeinen 1975 – suuret, keskitetyt tietovarastot otettiin käyttöön, tarkoituksena palvella monia toimintoja ja käyttäjiä Käyttäjäkeskeinen 1980 – käyttäjät mukaan suunnitteluun, kiinnitettiin huomiota käyttöliittymien ominaisuuksiin Asiakaskeskeinen 1985 – asiakkaan mukaan suunnitteluun Prosessikeskeinen 1990 – järjestelmän toimintaa pyrittiin tehostamaan, kehitettiin tiedonsiirtoyhteyksiä Viestintäkeskeinen 1995 – tietosisältöjen kehittäminen, sähköinen tiedotus otettiin laajemmin käyttöön Muutoskeskeinen 2000 – jatkuva muutosprosessi käynnissä, stabiilitilaa ei edes tavoitella

Tietojärjestelmien kehittämisen ongelmia 1. Epäonnistuneet kehittämishankkeet ja –projektit projekti ei koskaan valmistu projektin ylittää resurssit (taloudelliset, aika- ja henkilöresurssit) Syitä: tekniset syyt puutteellinen projektinhallinta ryhmätyö organisointi ja hallinta projektien sisäinen ja ulkoinen kommunikaatio

Tietojärjestelmien kehittämisen ongelmia Systeemityön tuottavuus ja kustannukset tietojärjestelmät yhä suurempia, monimutkaisempia, vaativampia tietojärjestelmien rakentamiskustannukset kasvaneet tietojärjestelmien tuottamiselle asetetut vaatimukset kiristyneet systeemityössä tarvitaan työvoimaa jatkuvasti lisää  kustannukset nousevat

Tietojärjestelmien kehittämisen ongelmia Tietojärjestelmien kehittämisen laadulliset ongelmat virheet ja puutteet järjestelmän toiminnassa järjestelmä ei vastaa asiakkaan vaatimuksia järjestelmää ei jostain syystä voida ottaa käyttöön Järjestelmän ylläpitoon liittyvät ongelmat mitä tärkeämpi järjestelmä on, sitä kauemmin se elää ja sitä enemmän resursseja kuluu sen ylläpitoon (vain 1/3 tietojärjestelmien kehittämistyöstä on uusien järjestelmien kehittämistä, loput vanhojen järjestelmien ylläpitotyötä)

Ohjelmistotuotannon erityispiirteitä Monimutkaisuus Näkymättömyys tuotteen valmiusasteen määrittäminen hankalaa Muunnettavuus ohjelmistoille asetettuja vaatimuksia tarkennetaan ja muunnetaan, toimintaympäristöt muuttuvat Ainutkertaisuus Skaalautumattomuus aiemmin hyväksi todetut menetelmät eivät välttämättä toimi suuremmissa projekteissa Epäjatkuvuus pienikin vika ohjelmistossa saattaa lamaannuttaa koko järjestelmän

Ongelmia aiheuttavat myös… ihmisten epärealistinen usko omiin kykyihinsä ja teknologian tarjoamiin mahdollisuuksiin nopeasti muuttuva teknologia järjestelmien integrointi erilaiset toimintaympäristöt käyttäjäkohtaisesti räätälöidyt järjestelmäversiot tietojärjestelmiä on vaikea hahmottaa kokonaisuutena, joten eri sidosryhmillä voi olla erilaisia näkemyksiä ja odotuksia järjestelmän suhteen

Hallittu ohjelmistoprosessi

Ohjelmistoprosessi (software process) on kokonaisuus, jolla ohjataan tietojärjestelmän kehittämistä järjestelmän idean syntymisestä aina järjestelmästä luopumiseen saakka kattaa järjestelmän koko elinkaaren mitä tarkemmin määritelty, noudatettu, toistettavissa oleva, optimoitu ja hyväksytty ohjelmistoprosessi on, sitä korkeammalla kypsyystasolla organisaatio on

Systeemin elinkaari (information system life-cycle) Systeemin elinkaari alkaa tietojärjestelmän kehittämisajatuksen esittämisestä ja päättyy tietojärjestelmästä luopumiseen. Se pitää sisällään tietojärjestelmän ylläpitotoimia ja kehittämisaktiviteetteja. Projektin elinkaari tarkoittaa samaan hankkeeseen liittyvien työvaiheiden ja tehtävien joukkoa, jonka tuloksena uusi tietosysteemi saadaan aikaan. Elinkaaren vaihejaolla pyritään määrittämään eri tehtävät, niiden ajoitus ja riippuvuudet toisistaan. Systeemin elinkaari on yleensä pidempi kuin projektin elinkaari. Vaikka elinkaaren eri toiminnot kuvataan peräkkäisinä, ovat ne käytännössä usein päällekkäisiä.

Tietojärjestelmien rakentaminen kohteen määrittely ja rajaus mikä on tavoite mitkä ovat tuloksen laadun mittarit vastuuhenkilöt, työryhmä, resurssit rakenteen suunnittelu ja kuvaaminen sovituilla malleilla mallin toteutus valitulla työvälineellä ratkaisun testaus tuloksen vertailu tavoitteisiin laadun mittaaminen ratkaisun testaus vaihtoehtoisilla tekijöillä mallin käyttö ja kehittäminen

Systeemin kehittämismalleista Yleisimpiä kehittämismalleja ovat: klassinen systeemin kehittämismalli puolirakenteellinen systeemin kehittämismalli rakenteellinen systeemin kehittämismalli ja prototyyppiperusteinen tietosysteemin kehittämismalli. Tietojärjestelmien suunnittelussa käytetään usein ns. top-down –läheistymistapaa eli toiminnallista osittamista.

Systeemin kehittämismalleista Kehittämismallin tehtävänä on: Määritellä tarkasti ne toiminnot, joita systeemin suunnittelun yhteydessä on käytävä läpi. Määritellä osaprojektien väliset säännöt. Määritellä projektin ohjauksen kannalta tarkoituksenmukainen ohjausaikajänne, joka sisältää ajalliset tarkastuspisteet hankkeen jatkamispäätöksen tekemiseksi.

Klassinen systeemin kehittämismalli Sen osat ovat: systeemianalyysi, systeemisuunnittelu ja toteutusvaihe Bottom-up –periaate (mallin heikkous), vesiputousmalli Lineaarinen, toinen toistaan seuraava toteutusjärjestys

Tietojärjestelmän kehittämisen vesiputousmalli Esitutkimus Määrittely / Analyysi Suunnittelu (design) Toteutus Testaus Käyttöön- otto Ylläpito

Klassinen systeemin kehittämismalli Vesiputousmallin lähtökohtana lienee teollisuuden kokoonpanolinjojen töiden suunnittelumalli. Periaate, että mitään ei valmistu ennen kuin hankkeen kaikki vaiheet on kokonaisuudessaan käyty läpi, ei toimi tietojärjestelmien kehittämisen yhteydessä. Mallin mukaan edellisen vaiheen tulee olla valmis, ennen kuin seuraavaan vaiheeseen voidaan siirtyä. Testaus vasta loppuvaiheessa ei myöskään sovi tietojärjestelmien kehittämiseen. Lineaarinen suorittamisjärjestys ontuu myös, sillä usein hankkeen edetessä huomataan asioita, joita ei suunnittelun alkuvaiheessa olla osattu ottaa huomioon. Em. puutteista huolimatta edelleen yleisessä käytössä.

Puolirakenteinen systeemin kehittämismalli Eroaa vesiputousmallista 2 eri kohdassa: bottom-up –periaatteen mukainen koodin tuottaminen, moduulien testaus ja systeemin testaus on korvattu top-down –toteutuksella, missä korkeamman tason moduulit koodataan ja testataan ensin (rakenteellista ohjelmointia) klassinen suunnittelu on korvattu rakenteellisella suunnittelulla Top-down –lähestymistapa mahdollistaa systeemin osien erillisen kehittämisen sekä ohjelmiston koodaamisen ja systeemin testauksen rinnakkaisesti.

Rakenteellinen systeemin kehittämismalli Malli koostuu kahdeksasta eri aktiviteetista: Esitutkimus Vaatimusmäärittely Systeemianalyysi Suunnittelu Toteutus Testaus Käyttöönotto Ylläpito

Esitutkimus (feasibility study) tarkoituksena selvittää, onko tietojärjestelmän rakentaminen mahdollista ja mielekästä (tuotetaan tietoa päättäjille) ja jos on, niin kehitettävän systeemin vastuullisten käyttäjien tunnistaminen ja systeemin kokonaiskuvan tuottaminen (pääsyötteet ja -suoritteet) nykysysteemin puutteiden tunnistaminen mihin ongelmiin järjestelmä toisi ratkaisun luodaan alustava suunnitelma kehittämishankkeen läpiviemiseksi

Vaatimusmäärittely (requirement specification) Dokumentti, johon on koottu kehitettävän järjestelmän toiminnalliset ja ei-toiminnalliset vaatimukset. Vaatimukset määrittelevät eri sidosryhmien tarpeet (user requirements) järjestelmän suhteen, mutta eivät ota kantaa siihen, millainen teknisen toteutuksen tulisi olla. Toiminnalliset vaatimukset määrittävät sen, mitä järjestelmän odotetaan tekevän; miten se kommunikoi ympäristönsä kanssa ja miten eri sidosryhmät sitä käyttävät. Ei-toiminnalliset vaatimukset määrittävät, millaisten reunaehtojen vallitessa järjestelmä täyttää toiminnalliset vaatimuksensa, esim. vastausajat, kapasiteetti ja käytettävyys. Joskus järjestelmän toiminnallisille vaatimuksille asetetaan myös rajoitteita (constraints).

Vaatimusmäärittely Asiakasvaatimusten keräämiseen käytetään haastatteluja aivoriihiä ja ideointipalavereja markkinatutkimuksia ym. Ongelmia vaatimusten keskeneräisyys, ristiriitaisuus ja epämääräisyys (esim. ’järjestelmän tulee tehostaa kirjaston toimintaa’) vaatimusten todellisen tarkoituksen selvittäminen

Systeemianalyysi (System analysis) tarkoituksena selvittää, mitä kehitettävän järjestelmän tulee tehdä analysoimalla vaatimusmäärittelyä pyritään johtamaan järjestelmän toiminnallinen määrittely (functional specification), joka on toteutusriippumaton luodaan loogisen tason kuvaus järjestelmän toiminnoista, sen käsittelemästä tiedosta, yhteyksistä ympäristöön jne. em. asiat tehdään/dokumentoidaan mallintamalla käyttäjän toimintaympäristö tietovirtakaavioina, kohdemalleina, tilamuutoskaavioina jne. tuottamalla ympäristömalli ja systeemin käyttäytymismalli tuottamalla tietojen ja tietokantojen kuvaukset määrittelemällä järjestelmän suorituskyky, käytettävyys, virhetilanteista toipuminen ja turvallisuus tuottamalla tarkat hyöty-/kustannuslaskelmat hankkeen budjetin muodostamiseksi jne.

Suunnittelu (Design) tässä vaiheessa suunnitellaan, miten järjestelmä toteutetaan analyysissä tuotettu järjestelmän toiminnallinen määrittely muunnetaan tekniseksi määrittelyksi (technical specification) suunnittelu jakautuu yleensä arkkitehtuuri- ja moduulisuunnitteluun arkkitehtuurisuunnittelussa järjestelmän yleinen rakenne määritetään ja jaetaan järjestelmä (mahdollisimman itsenäisiin) moduuleihin, jotta toteutustyö voidaan jakaa tiimeille tai yksittäisille työntekijöille moduulien väliset kytkennät ovat kriittisiä, sillä mitä enemmän niitä on, sitä monimutkaisempi ja vaikeammin ylläpidettävä järjestelmä on moduulisuunnittelussa suunnitellaan jokaisen moduulin sisäinen rakenne

Toteutus (Implementation) ohjelma koodataan ja ohjelmamoduulit sekä mahdollinen tietokanta integroidaan tietojärjestelmäsovellukseksi toteutuksessa käytetään jotakin ohjelmointikieltä tai sovelluskehitintä toteutusvälineen valintaan vaikuttavat: sovellusalue (matemaattinen, relaatiotietokanta-pohjainen jne.) käytetyt menetelmät ja mallit (esim. oliokuvaus-menetelmien kanssa olio-ohjelmointikielet) tehokkuusvaatimukset (toiset kielet tehokkaampia) toteutus- ja käyttöympäristö (Windows, UNIX tms.) huom! siirrettävyys, ylläpidettävyys, dokumentointi

Testaus (testing) testauksen tarkoitus on löytää ohjelmistosta virheitä testaus jaetaan yleensä: moduulitestaukseen sisäinen testaus (testaa sisäisiä algoritmeja) ulkoinen testaus (testaa ohjelmistokomponenttien tulosarvojen oikeellisuutta) integrointitestaukseen etsitään vikoja moduulien yhteistoiminnasta järjestelmätestaukseen etsitään virheitä koko järjestelmän toiminnoista hyväksymistestien määrittely (acceptance test generation) laadunvarmistuksen välineenä käytetään hyväksymistestejä muodostetaan laatukriteerit

Käyttöönotto (installation) järjestelmän asennus toteutettu ja testattu järjestelmä otetaan käyttöön mahdollinen tietokantakonversio olemassa olevan tietokannan muunnos uuteen järjestelmään sopivaan muotoon käyttäjien ja ylläpitohenkilökunnan koulutus

Ylläpito (maintenance) ohjelmiston elinkaaren pisin vaihe, vie n. 70% kaikista resursseista, joita järjestelmään käytetään sen elinkaaren aikana korjaava ylläpito tarkoittaa järjestelmän käyttöönoton jälkeen havaittujen virheiden korjaamista sopeuttava ylläpito tarkoittaa järjestelmän siirtämistä uusiin käyttöympäristöihin täydentävä ylläpito tarkoittaa uusien ominaisuuksien lisäämistä järjestelmään ennakoiva ylläpito tarkoittaa järjestelmän tai sen dokumentaation tason parantamista tulevia ylläpitotilanteita varten

Kehittämisen vaiheista tietojärjestelmien kehittäminen ei useinkaan kulje lineaarisesti em. vaiheesta toiseen, vaan paljon esiintyy myös samanaikaisuutta ja limittäisyyttä takaisinkytkentöjä poikkeustapauksia prosessin keskeytyksiä jne. tietojärjestelmän kehittäminen sisältää myös koko sen elinkaaren läpi jatkuvia toimintoja, kuten vaatimustenhallinta laadunvarmistus dokumentaatio riskien hallinta

Prototyyppiperusteinen tietojärjestelmän kehittämismalli kehitettävä systeemi mallinnetaan toimivalla tietojärjestelmämallilla (epätäydellinen demo), eikä paperilla tehtävillä kuvauksilla järjestelmän toiminnot pyritään havainnollistamaan tietokoneella apuna käytetään mm. näyttögeneraattoria, raporttigeneraattoria, kyselykieltä jne. vaarana, että protoilu tulee liian kalliiksi ja suurimittaiseksi prosessiksi tai että prototyyppi jää systeemin viimeiseksi versioksi

Prototyyppiperusteinen tietojärjestelmän kehittämismalli soveltuu hyvin projekteihin, joissa: käyttäjällä ei ole halua tai valmiuksia abstraktien sanallisten suunnitelmien tarkasteluun käyttäjä ei kykene ilmaisemaan tarpeitaan riittävän yksityiskohtaisesti, mutta pystyy tekemään valintoja nähdessään esimerkkejä suunniteltava järjestelmä on on-line –järjestelmä, jossa käyttäjä työskentelee päätteellä paljon systeemin ohjelmiston algoritminen rakenne on yksinkertainen (ei tarvita yksityiskohtaista spesifiointia)

Prototyyppilähestymistapa Tavoitteet Määritä vaatimukset Vaatimukset Rakenna prototyyppi Korjauksia Käyttäjän arviointi Suorituskyky Demoa prototyyppiä OK Arkkitehtuuri ja toimintoja Toteuta järjestelmä Järjestelmä Uusia tavoitteita Hyötykäyttö

Spiraalimalli (spiral model) iteratiivinen, uusi elinkaarimalli prosessiin liittyvien riskien jatkuva analysointi ja toiminnan muutos riskianalyysin perusteella seuraavaa neljää vaihetta toistetaan jatkuvasti, kunnes järjestelmä on valmis: suunnittelu (tavoitteiden, vaihtoehtojen ja rajoitusten määrittely) riskianalyysi (eri vaihtoehtojen ongelmien arviointi) tuotanto (seuraavan vaiheen valmistus) asiakkaan suorittama arviointi (tarkastuspiste ennen seuraavaa kierrosta) järjestelmä tarkentuu sitä mukaa, kun edetään kohti spiraalin ulompia kehiä prosessi keskeytetään, jos riskit liian suuria tarkoitus kuitenkin pienentää riskejä joka iteraatiolla

Systeemianalyysi sen tekee yleensä organisaation useista sidosryhmistä koostuva ryhmä työskentely on projektiluonteista, aikakriittistä ja tulossidonnaista analyysissä on kiinnitettävä huomiota tuloksena syntyvän tietojärjestelmän tuottavuuteen, laatuun ja ylläpidettävyyteen jne.

Systeemianalyysissä mallit muodostavat yleisen kuvauksen: systeemin suhteesta ympäristöön sen tietosisällöstä ja tietojen käsittelyprosesseista sekä systeemin toteutusteknologiasta. mallien tulee olla toiminnallisia ohjeita muulle työlle mallit ovat abstrakteja, usein vain paperilla olevia kuvauksia systeemistä

Tietojärjestelmien yhteydessä malleja käytetään: järjestelmän suunnitteluun vaihtoehtojen arviointiin kohteen analysointiin

Systeemianalyysissä informaatiojärjestelmiä kuvataan: Tietovirtakaavioilla (Data Flow Diagrams) Kohdemalleilla (Entity-Relationship Diagrams) Tilanmuutoskaavioilla (State Transition Diagrams) Rakennekaavioilla Tapahtumalistoilla Tietohakemistoilla Prosessikuvauksilla ym. menetelmillä / malleilla valitusta systeemianalyysimetodologian riippuu, mitä malleja käytetään

Malleista… mallit eivät ole ainoastaan tietojärjestelmien suunnitteluun soveltuvia, vaan niitä voidaan käyttää myös esim. biologisten taloudellisten ja teollisuuden prosessien kuvaamiseen sekä myös poliittisten järjestelmien ja materiaalivirtojen kuvaamiseen.

Systeemityön tekijät Aikoinaan tietojärjestelmien kehittämisessä olivat mukana vain atk-ammattilaiset, sillä kehitettiin lähinnä laskennallisia sovelluksia tai automatisoitiin aikaisemmin manuaalisesti suoritettuja rutiineja. Järjestelmän tulevat käyttäjät olivat usein samoja atk-ammattilaisia. Nykyään tietotekniikka levinnyt lähes kaikkiin työtehtäviin ja kehittäjien ja käyttäjien roolit ovat eriytyneet. Järjestelmät ovat monimutkaisia organisatorisia ja sosiaalisia kokonaisuuksia, joilla laaja vaikutus ympäristöönsä  käyttäjät/asiakkaat mukaan kehittämistyöhön

Systeemityön tekijät Tietojärjestelmän kehittäjät määrittelijät (system analysts), jotka tekevät esitutkimuksen, vaatimusmäärittelyn ja järjestelmäanalyysin suunnittelijat (system designers), jotka luovat toteutussuunnitelmat ja ohjelmoijat (programmers), jotka toteuttavat järjestelmän määrittelyjen ja suunnitelman mukaan

Systeemityön tekijät Tietojärjestelmän käyttäjät yleensä kohdeorganisaation työntekijöitä tuntevat järjestelmän kohdealueen hyvin ja ovat siksi korvaamattomia tietolähteitä vaatimusmäärittelyssä ja analyyseissä käyttäjät voivat osallistua kehittämishankkeisiin vastaamalla kyselyihin tai antamalla haastatteluja toimimalla asiantuntijoina projektiryhmässä joissain tapauksissa osallistua myös määrittely- ja suunnittelutyöhön käyttäjät voidaan jaotella operationaalisiin käyttäjiin, esimies-käyttäjiin ja johtotason käyttäjiin tai amatööreihin, noviiseihin ja ammattilaisiin

Systeemityön tekijät Johto operationaalinen johto vastaa järjestelmän toimialueen töiden ja työntekijöiden valvonnasta tietohallinnon johto osallistuu työnsä puolesta hankkeiden päätöksentekoon yleisjohto on kiinnostunut siitä, miten kehitettävä järjestelmä edesauttaa organisaation strategisten tavoitteiden saavuttamista.

Ongelmia kehitystyössä erilaiset odotukset ja tavoitteet kehitettävän järjestelmän suhteen yhteisen ’kielen’ puuttuminen käyttäjillä ja kehittäjillä käyttäjien vastarinta käyttäjäryhmien väliset eturistiriidat kehittämishankkeesta voi tulla ’politikoinnin ja valtataistelun väline eri työntekijäryhmien välillä

Laatu ja laadunvarmistus Laadulla tietojärjestelmien yhteydessä tarkoitetaan yleensä järjestelmän kykyä täyttää käyttäjän kohtuulliset toiveet ja odotukset. Näin laatu on subjektiivinen, käyttäjästä ja käyttöympäristöstä riippuva käsite. Samalla tarkastellaan myös tietojärjestelmäprosessin laatua eli toiminnallista laatua.

Laatu ja laadunvarmistus Nykyisen laatuajattelun mukaan tuotteen laatuun vaikutetaan parhaiten toiminnan laadun kautta. Tuotteen tekemisessä käytettävää toimintatapaa kutsutaan yrityksen laatujärjestelmäksi, joka kuvataan laatukäsikirjassa. Laatujärjestelmän tarkoituksena on taata, että tuotantoprosessissa syntyy tiettyä laatutasoa olevia tuotteita sovitussa aikataulu- ja budjettikehyksessä. Laatujärjestelmiin liittyy toiminnan todistettavuus ja jäljitettävyys, eli organisaation ulkopuolisen tahon on kyettävä toteamaan, että organisaatio toimii laatujärjestelmän mukaisesti. Tämä voidaan yleensä todentaa tutkimalla tarkastuspöytäkirjoja, muistioita, virheraportteja yms.

Laatu ja laadunvarmistus Toiminnan laatua voidaan valvoa esim. auditoinneilla, joissa tarkistetaan, että toiminta on laatujärjestelmän mukaista. Tuotteen laadunvarmistuksella on 2 tarkoitusta: pyritään estämään virheiden pääseminen tuotteeseen pyritään löytämään tehdyt virheet mahdollisimman aikaisessa vaiheessa Tuotteen laadunvarmistuksessa puhutaan usein verifioinnista eli että tuote vastaa määrityksiään (building the product right) validoinnista eli että tuote sopii käyttötarkoitukseensa (building the right product).

Dokumentaatio Tietojärjestelmien kehittämisprojekteissa dokumentaatiolla tarkoitetaan järjestelmää kuvaavien dokumenttien tuottamisesta. Kehitysprojektin koosta ja monimutkaisuudesta riippuu, kuinka laajamittaista dokumentaatiota tarvitaan. Tietty perusdokumentaatio tulee kuitenkin jokaisella rakennettavalla järjestelmällä olla. Usein kiireen vaivatessa määrittely- ja suunnitteluvaiheiden dokumentointi voi jäädä pintapuoliseksi. Dokumenttien ylläpito voi myös unohtua. Joskus tilanne voi olla päinvastainenkin, eli dokumentoinnista nousee koko järjestelmäkehityksen tärkein vaihe ja se vie kaiken ajan ja resurssit.

Dokumentaatio Ohjelmistoprosessiin liittyvä dokumentaatio voidaan jakaa kolmeen ryhmään, joita ovat: tuotteen dokumentaatio (tekninen dokumentaatio, käyttöohjeet ja koulutusmateriaalit) projektinhallinnan dokumentit (projektisopimus, projektisuunnitelma, projektin loppuraportti yms.) laatujärjestelmän dokumentit (laatukäsikirja, dokumenttimallit, laatujärjestelmän raportit yms.). Yleensä organisaatiossa määritellään kaikille dokumenteille mallit (perusrunko), jotta kehittämishankkeiden dokumentaatio olisi yhdenmukaista. Nämä mallit liitetään osaksi laatujärjestelmää.

Riskienhallinta Tietojärjestelmien kehittämisessä riskiksi määritellään tilanne tai asia, joka saattaa haitata järjestelmälle tai sen kehittämiselle asetettuja tavoitteita. Menestyksekäs riskienhallinta on osa onnistunutta tietojärjestelmähanketta.

Riskienhallinta Eräs riskienhallinnan lähestymistapa: Tunnista ja arvioi riskit tunnista riskit ja analysoi niiden vaikutukset priorisoi riskit niiden vaikutusten ja esiintymistodennäköisyyksien mukaan laadi riskien top 10 -lista Tee päätökset riskien ratkaisemiseksi aloita suurimmista riskeistä Toteuta riskien ratkaisemiseksi tehdyt päätökset lisää päätösten edellyttämät muutokset projektisuunnitelmaan laadi riskienhallintasuunnitelma vakavimmille riskeille

Vaatimustenhallinta (requirements management) Vaatimustenhallinnan tehtävänä on varmistaa, että valmis järjestelmä on asiakkaan toiveiden mukainen. Järjestelmälle asetetut vaatimukset muuttuvat tai lisääntyvät usein kehitystyön aikana ja kehittäjien on kyettävä reagoimaan muuttuneeseen tilanteeseen  ratkaisuna koko elinkaaren kattava vaatimustenhallinta. Esim: Asiakas ilmoittaa haluavansa järjestelmään uuden ominaisuuden. Uusi vaatimus lisätään tarkemmin analysoimatta hankkeen tavoitteisiin  seuraa aikataulun ja budjetin ylityksiä.

Vaatimustenhallinta Jokaisessa projektissa tulisi olla määritelty muutospyyntö-käytäntö (change request) uusien vaatimusten käsittelyä varten. Seuraavista asioista tulisi huolehtia: tiedotus (kaikille osapuolille uuden vaatimuksen vaikutuksesta) päätös (uuden vaatimuksen aiheuttamista toimenpiteistä) vastuunotto (se taho, joka päätöksen tekee, kantaa vastuun sen seurauksista, kuten esim. budjetin ylityksestä) Vaatimusten tulee olla jäljitettäviä, eli ohjelmistoprosessin aikana pitää tallentaa myös informaatiota vaatimusten muutoksista ja niiden perusteella tehdyistä ratkaisuista.

Uudelleenkäytettävyys Uudelleenkäytettävyys tarkoittaa ohjelmistotuotannossa aikaisemmin rakennetun ohjelmiston osan uudelleen käyttöä. Uudelleenkäyttö edellyttää tavallista enemmän paneutumista määrittelyyn, suunnitteluun ja toteutukseen ja vaatii näin enemmän resursseja ensimmäisessä projektissa. Varsinainen hyöty saadaan vasta seuraavissa projekteissa. Uudelleenkäyttö voi olla: hyväksi havaittujen ideoiden kopioimista ja kierrätystä yleiskäyttöisten aliohjelmien kokoaminen kirjastoksi kokonaisen sovelluksen toimintalogiikan uusiokäyttämistä (järjestelmä vain räätälöidään haluttuun käyttöön sopivaksi) Komponentti (component): riippumaton, täydellisellä toiminnallisuudella varustettu kokonaisuus, jonka julkinen palvelurajapinta määrittää sen, miten komponentti on liitettävissä muihin komponentteihin (vrt. moduuli).