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



Samankaltaiset tiedostot
Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Projektityö

Oleelliset vaikeudet OT:ssa 1/2

Johdantoluento. Ohjelmien ylläpito

Uudelleenkäytön jako kahteen

Ohjelmistojen suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Ohjelmistotekniikka - Luento 2

Ylläpito. Ylläpidon lajeja

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

17/20: Keittokirja IV

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

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

Käyttäjäkeskeinen suunnittelu

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

ITK130 Ohjelmistojen luonne

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot

Tietojärjestelmän osat

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

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

A4.1 Projektityö, 5 ov.

PSOP-SADe kansallinen Johanna Mätäsaho. yhteensopivuus

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Tutkittua tietoa. Tutkittua tietoa 1

OTM-HANKKEEN SIDOSRYHMÄSEMINAARI

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

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Laadunvarmistus julkishallinnon ohjelmistoprojekteissa Antti Sinisalo

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

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

IT2015 EKT-ehtojen käyttö

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

@Tampereen Testauspäivät ( )

Projektinhallinta SFS-ISO mukaan

Yhteisön kehitystyöhön osallistumisen mahdollisuudet ja mallit

Järjestelmän alasajon suunnittelu. Kullström Satu

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Suomen avoimien tietojärjestelmien keskus COSS ry

Avoimen ja yhteisen rajapinnan hallintamalli

Projekti, projektinhallinta ja projektiliiketoiminta. Projektin ympäristö, päämäärä, tavoitteet, elinkaari, laajuus ja työn ositus

OHJ-4301 Sulautettu Ohjelmointi

Harjoitustyö Case - HelpDesk

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Ohjelmistotekniikan menetelmät, kesä 2008

Elinkaaren huomioiva hankintaprosessi ja elinkaarenaikainen kustannus-hyöty analyysi. Jyri Hanski, VTT Turvallisuus messut 5.9.

Käyttövarmuuden peruspilarit

Software engineering

ISO 9001:2015 JÄRJESTELMÄ- JA PROSESSIAUDITOIN- NIN KYSYMYKSIÄ

ohjelman arkkitehtuurista.

2. Ohjelmistotuotantoprosessi

ZigBee-ohjaus kuorma-autolle

Kontrollipolkujen määrä

Tietojärjestelmien hankinta ja ICT-projektit

1 YLEISKUVAUS Palvelun rajoitukset Valvonta Ylläpito Edellytykset PALVELUKOMPONENTIT...

Ohjelmistojen mallintaminen, mallintaminen ja UML

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Työkalut ohjelmistokehityksen tukena

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

1 YLEISKUVAUS Palvelun rajoitukset Valvonta Ylläpito Edellytykset PALVELUKOMPONENTIT...

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

S Portaalinosturi AS Projektisuunnitelma Oleg Kovalev

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

Tietohallinto Projektipäällikkö Matti Sairanen. Fujitsu Myyntijohtaja Markku Örn

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

Convergence of messaging

Tietohallinto on palvelu

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

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

InfraTM-ryhmän puheenvuoro: Ryhmän odotukset pilotoinneista

Palonilmaisu sekä sammutuslaitteistojen toimintaan vaikuttavista tekijöistä tehdyt huomiot tarkastuksilla

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Avoin lähdekoodi hankinnoissa Juha Yrjölä

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Transkriptio:

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

Luentoaikataulu ke 12.9. Ohjelmistotuotanto ma 17.9. Mikroprosessori, konekieli, ohjelmointi ke 19.9. Käyttöjärjestelmät ma 24.9. Unix ke 26.9. Tietoverkot ma 1.10. Tietoturva, ohjelmistotuotannon sattumuksia ke 3.10. Vierailuluento ma 8.10. Vierailuluento ke 10.10. Kertaus, tentti, vanhoja tenttitehtäviä

Harkkaryhmän yksittäinen salimuutos Ensi maanantaina 17.9.2012 klo 10 12 harjoitusryhmä on Tietotalon 2. kerroksessa, salissa TB205 Rappuset ylös, sali näkyy heti aulassa ( akvaario ) Aiheesta pistetään vielä tiedote Moodlen kautta... Seuraavasta viikosta alkaen sali on taas PC201A, eli muutos koskee vain yhtä harjoituskertaa!

Luennon aiheet Ohjelmistotuotannon ja -prosessin käsitteet Ohjelmistoprosessin vaiheet Ohjelmistotuotannon haasteita Mitäs siellä teollisuudessa oikeastaan puuhataan?

Keskeisiä käsitteitä ohjelmistotuotannossa Ohjelmistotyö: ohjelman toteuttamiseksi tehty työ Ohjelmistotuotannon voi vapaasti tulkiten katsoa tarkoittavan ohjelmistotyötä, jonka tuloksena syntyvät järjestelmät Täyttävät käyttäjiensä kohtuulliset toiveet ja odotukset Valmistuvat laadittujen aikataulujen puitteissa Eivät ylitä kustannusarvioita Termejä ohjelmisto ja järjestelmä käytetään synonyymeinä ohjelmalle tai kokoelmalle ohjelmia, jotka muodostavat loogisen kokonaisuuden Ohjelmistoprosessi on hanke, jonka tarkoituksena on tuottaa tietty ohjelmisto Tyypillisesti määritellyssä ajassa

Miksi käsittelemme ohjelmistotuotantoa? Ohjelmistoja tarvitaan käytännössä joka alalla Tekniikan alan työ on erittäin ohjelmistokeskeistä sovelluskohteesta riippumatta Ohjelmistojen tekemisessä eivät ole tärkeitä vain ohjelmistoja toteuttavat ihmiset: myös käyttäjällä on merkitystä! Suuri osa diplomi-insinööreistä joutuu työelämässä tilanteeseen, jossa pitäisi osata kertoa millaisen ohjelmiston tarvitsee

Miksi käsittelemme ohjelmistotuotantoa? Ohjelmistojen kehittämiseen ja tilaamiseen liittyy riskejä, jotka on hyvä tunnistaa Käsitys ohjelmistoprosessista sekä tyypillisistä ongelmista auttaa ohjelman tilaajia (= asiakas, käyttäjät) ja kehittäjiä ymmärtämään toisiaan Ohjelmistoa toteuttava taho ei välttämättä ole asiakkaan kukkaron puolella... Ohjelmistotuotannon ongelmien tunnistaminen auttaa myös ymmärtämään ohjelmien puutteita sekä olemaan terveen kriittinen niitä kohtaan

Ohjelmistoalan erityispiirteitä 1/4 Alan tuoreus Perinteisten insinöörialojen kaltaisia koeteltuja käytäntöjä ei ole Vrt. siltojen rakentaminen vs. ohjelmistotuotanto Jokainen ohjelma on erilainen, ei voida ottaa suoraan mallia edellisistä Jatkuvasti kasvanut ohjelmistojen koko ja kompleksisuus Uudet sovellusalueet Ohjelmien osien uudelleenkäyttöä harrastetaan, mutta se ei ole ongelmatonta

Ohjelmistoalan erityispiirteitä 2/4 Ohjelmistojen kompleksisuus on kasvanut koko ajan Nykyiset käyttöjärjestelmät ja isommat ohjelmat ovat vaatineet tuhansia miestyövuosia Suurimpia aineettomia kokonaisuuksia, joita ihmiskunta on koskaan rakentanut Ohjelmistot toteutetaan usein aiemman ohjelmiston päälle rakentamalla Helpottaa kehitystyötä siinä vaiheessa, kun perusta on kunnossa Voi myös johtaa ongelmiin: tuotelinja täytyy katkaista jossakin vaiheessa kuluttajat eivät aina ole tyytyväisiä yhteensopivuuden katkaisemiseen

Ohjelmistoalan erityispiirteitä 3/4 Ymmärrys ohjelmistotuotannosta on vaillinaista Kukaan ei kuvittele rakennuttavansa ja valvovansa taloprojektia ymmärtämättä rakentamisesta, mutta ohjelmistopuolella näin valitettavasti voidaan toimia (ja myös toimitaan) Vaadittavat luotettavuusominaisuudet Pienikin virhe voi vaikuttaa dramaattisesti Ohjelman oikeellisuudesta on lähes mahdotonta varmistua Käymme läpi muutamia esimerkkejä ma 1.10.2012...

Ohjelmistoalan erityispiirteitä 4/4 Ohjelmistot ovat abstrakteja kokonaisuuksia, joten on vaikeaa sanoa paljonko työtä johonkin asiaan vaaditaan On myös vaikeaa todeta kuinka paljon ohjelmistosta on valmiina On vaikea sanoa paljonko työvoimaa tarvitaan Riippuvaisuudet muutos yhdessä kohtaa saattaa aiheuttaa yllättäviä sivuvaikutuksia ja yllättävän määrän lisätyötä Pelkistäen ohjelmistotuotannon rajoituksissa on kyse ihmismielen, tuottavuuden hallinnan ja kommunikaation rajoituksista

Ohjelmistotuotannon tavoitteita Ohjelmistotuotannon tavoitteena on kehittää ratkaisuja ja käytäntöjä ohjelmistoalan ongelmien kanssa selviämiseksi Pyritään siis parantamaan ohjelmistojen tuotantoprosesseja Työmäärien ja kustannusten arviointi Ohjelmistoprojektien hallinta

Ohjelmistotuotannon tavoitteita Suunnittelu- ja toteutusmenetelmien valinta Toteutuksen laatu ja sen varmistaminen Vastaako ohjelmisto asiakkaan tarpeita Ohjelmiston luotettavuus Ohjelmiston käytettävyys Ohjelmiston testaamismenetelmät

Hello World -ohjelmiston tilaaminen + toteutus Tarpeesta tilaukseen: mitä tehdään? Selvitetään käyttäjiltä tarpeet: mitä ohjelmiston pitäisi tehdä tai mitä sillä pitäisi voida tehdä? Omalle laitteistolle vs. ostopalveluna Neuvottelua toteuttavien yritysten kanssa Tarjouspyynnöt Tehdään softan tilaus Sovitaan hinnoittelu ja aikataulu Sovitaan mitä kaikkea toimitukseen kuuluu Korjaukset, ylläpito...

Hello World -ohjelmiston tilaaminen + toteutus Suunnitteluvaihe eli miten tehdään? Tietokone- ja ohjelmistoarkkitehtuuri Yrityksellä saattaa olla jokin valmis arkkitehtuuri Yhteensopivuus olemassaolevien järjestelmien kanssa Reunaehtojen selvittäminen Fyysisiä, lainsäädännöllisiä, suorituskykyyn liittyviä, standardeja, jne... Ohjelmiston rakenteen suunnittelu Toimintojen toteutusjärjestys - riippuvuudet

Hello World ohjelmiston tilaaminen + toteutus Tarve tilaus Mitä tehdään? Suunnittelu Miten tehdään? Toteutus Tehdään! Kirjoitetaan oikeasti koodia ja testataan sitä Yleensä suunnitelman mukaisesti moduuleittain Toteutustapa vaihtelee yrityksen valitsemien tuotekehitysmenetelmien mukaan Esimerkiksi koko ohjelmisto vs. julkaisu palanen kerrallaan

Hello World -ohjelmiston tilaaminen + toteutus Tarve tilaus Mitä tehdään? Suunnittelu Miten tehdään? Toteutus Tehdään! Testaus Tarkistetaan mitä tuli tehtyä... Testataan moduuli kerrallaan Testataan moduulien rajapinnat Testataan kokonaista ohjelmaa Käyttäjätestaus?

Hello World -ohjelmiston tilaaminen + toteutus Tarve tilaus Mitä tehdään? Suunnittelu Miten tehdään? Toteutus Tehdään! Testaus Tarkistetaan mitä tuli tehtyä... Ohjelmiston toimitus asiakkaalle Asiakas tekee vastaanottotarkastuksen Tarkastuksessa löytyneet ongelmat käsitellään sovitulla tavalla Käyttäjäkoulutus

Hello World -ohjelmiston tilaaminen + toteutus Tarve tilaus Mitä tehdään? Suunnittelu Miten tehdään? Toteutus Tehdään! Testaus Tarkistetaan mitä tuli tehtyä... Ohjelmiston toimitus asiakkaalle Uudet tarpeet Mitäs sitten tehdään? Virheiden korjausta (johonkin rajaan asti) Sovitaan erikseen lisätoiminnoista Alkuperäisen sopimuksen mukaisesti!

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Asiakkaan tarpeiden ja vaatimusten analysointi ja määrittely Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Asiakkaan tarpeiden ja vaatimusten analysointi ja määrittely Ratkaisun suunnittelu: miten asiakkaan vaatimukset muunnetaan ohjelmaksi? Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Asiakkaan tarpeiden ja vaatimusten analysointi ja määrittely Ratkaisun suunnittelu: miten asiakkaan vaatimukset muunnetaan ohjelmaksi? Toteutus: ratkaisun ohjelmointi Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Asiakkaan tarpeiden ja vaatimusten analysointi ja määrittely Ratkaisun suunnittelu: miten asiakkaan vaatimukset muunnetaan ohjelmaksi? Toteutus: ratkaisun ohjelmointi Testaus: varmistuminen ohjelman oikeellisuudesta ja luotettavuudesta Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Ohjelmiston kehittämisvaiheet Kuvassa nk. vesiputousmalli Käytännössä homma EI IKINÄ mene näin siististi! Asiakkaan tarpeiden ja vaatimusten analysointi ja määrittely Ratkaisun suunnittelu: miten asiakkaan vaatimukset muunnetaan ohjelmaksi? Toteutus: ratkaisun ohjelmointi Testaus: varmistuminen ohjelman oikeellisuudesta ja luotettavuudesta Ylläpito: ohjelman virheiden korjaaminen ja tarpeellisten muutosten tekeminen Lähde: http://en.wikipedia.org/wiki/waterfall_model (3.9.2007)

Mahdollisia ongelmia: määrittely ja suunnittelu Asiakas ja ohjelmistofirman edustaja eivät ymmärrä toisiaan oikein Asiakas on oman alansa asiantuntija, eikä osaa kertoa kaikkia tarpeellisia vaatimuksia tarpeeksi yksityiskohtaisesti Ohjelmoija miettii asioita toteutusnäkökulmasta, ei asiakkaan käyttötilanteen kannalta Jotain olennaista jää puuttumaan työn määrittelystä! Projektin laajuutta ja työmäärää ei osata arvioida oikein

Mahdollisia ongelmia: määrittely ja suunnittelu Työn toteutuksen suunnittelussa voidaan tehdä virheitä Ratkaisusuunnitelma ei vastaa kaikkia määriteltyjä toiminnallisia vaatimuksia Ei varauduta tarpeeksi ongelmiin Töppäykset paljastuvat aivan liian myöhään Alan ongelmana usein liiallinen positiivisuus sekä työmäärä- että aika-arvioissa Pätee muuhunkin projektityöhön: törmäämme jälleen ihmismielen rajoituksiin (vrt. opiskelijan arki...)

Mahdollisia ongelmia: määrittely ja suunnittelu Joskus asioiden teossa oikaistaan tai taustatyö on puutteellista Syy voi olla asiakkaan puutteellinen ymmärrys ohjelmistoprojekteista tai asiakasta edustaa väärä henkilö Ohjelmistotoimittaja voi esimerkiksi olettaa, että ellei asiakas kommentoi jotain toimintoa, niin se on OK Ohjelmistofirma ei vain muista muistuttaa asiakasta ko. toiminnosta, eikä varsinkaan esittele sitä asiakkaalle

Mahdollisia ongelmia: määrittely ja suunnittelu Mitä aikaisemmassa vaiheessa virheitä tehdään, sitä vaikeampaa ja kalliimpaa niiden korjaaminen on Virhe määrittelyvaiheessa vaikuttaa kaikkiin sitä seuraavien vaiheiden työskentelyyn! Vrt. virhe talon piirustuksissa on johtaa kalliiseen remppaan, jos virhe halutaan oikaista talon valmistuttua Kustannukset tulevat tyypillisesti asiakkaalle (määrittelyvaiheella on siis merkitystä!)

Mahdollisia ongelmia: toteutus ja testaus Ohjelmaan jää testauksesta huolimatta virheitä Suunnittelussa tehtyjä virheitä ei huomata Ohjelmointivaiheessa tehdään uusia virheitä Aikataulu venyy Uutisissakin näkyy usein uuden järjestelmän myöhästymisen syynä ohjelmistotoimittajan vaikeudet Henkilöiden lisääminen ohjelmistoprojektiin kesken kaiken ei helpota tilannetta

Mahdollisia ongelmia: toteutus ja testaus Työtä ei dokumentoida riittävästi Vaikuttaa erityisesti mahdollisuuteen myöhemmin parantaa ohjelmistoa Vaikeuttaa ohjelmistoon perehtymistä henkilöstön vaihtuessa Entä yritykset, joiden tuotteissa on mukana ohjelmakoodia kymmenien vuosien takaa? Dokumentointi ja tiedonhallinta on kasvava ongelma alan kehitystahdin takia

Mahdollisia ongelmia: käyttöönotto ja ylläpito Huomataan toteutuksen loppuvaiheilla tai sen jälkeen ettei järjestelmä vastaa alkuperäisiä tarpeita Projekti on epäonnistunut ja asiakas kärsii kulut nahoissaan Huono tarvekartoitus, määrittely epäonnistunut Muutosten ja/tai laajennosten tekeminen ohjelmistoon hankalaa Toteutus on dokumentoitu huonosti Asiaa ei ole sovittu toimittajan kanssa Ohjelmiston rakenne ei tue laajennettavuutta Tuotteen toimittaja lopettaa toimintansa Käyttäjäkoulutuksesta ei ole sovittu Asiakkaan tarpeet muuttuvat

Iteratiivinen ohjelmistokehitys Hieman realistisempi lähestymistapa Myönnetään heti alkuun että vaiheita ei voida tehdä peräkkäin Tarkennetaan määrittelyä ja suunnittelua tarpeen mukaan Hinta-arvion teko hankalaa

Agile, SCRUM, protoilu yms. Vaihtoehtoisia kevyempiä menetelmiä vesiputousmallille Agile-mallissa on tarkoituksena iteroimalla prosessia saada malli tarkennettua vähitellen (ks. ed. kalvo) Valmistumisaikataulu? Hinta-arvio? SCRUMissa ideana on kehittää tuotetta palanen kerrallaan ja julkaista ne kiintein väliajoin Projektiryhmä kommunikoi etenemisestä jatkuvasti Projektiryhmä voi ohjata tekojärjestystä Protoilussa toteutetaan aluksi käyttöliittymäkuori ilman sisältöä Asiakas saa nopeasti tuntuman ohjelmistoon Voidaan tehdä monta koetoteutusta http://www.scrumalliance.org http://www.agilealliance.org

Ohjelmiston elinkaari Ohjelmiston elinkaarella tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta ohjelmiston poistamiseen käytöstä Asiakassuhde ohjelmistotoimittajaan ei yleensä lopu silloin, kun ohjelmisto on valmis Asiakassuhde muuttuu ylläpito- ja tukitoiminnaksi Ohjelmiston kehitys Ohjelmiston käyttö Ohjelmiston ylläpito ja jatkokehitys Ohjelmiston käytöstä poisto

Ohjelmiston ylläpito ja käyttö Ylläpitotyön osuus koko elinkaaressa on yleensä huomattavan suuri Noin 40% - 50% koko työmäärästä Jos ohjelman suunnittelussa panostetaan ylläpitotyön helpottamiseen se maksaa ylimääräistä Ei hyödytä käyttöönottovaiheessa vielä juuri mitään Ylläpidon helpottamiseen ei yleensä panosteta, vaikka se olisikin järkevää Esimerkiksi kunnollinen dokumentaatio auttaa löytämään virheitä tai muuten vain paranneltavia kohtia ohjelmistossa Vrt. putkiremontti talossa Talon putket valettu seinien sisään -> hankala remontti Talon putkille on tehty seiniin avattavat kotelot -> helpompi remppa

Ohjelmiston ylläpito ja käyttö Ohjelmaa pitää tyypillisesti muokata kehitysvaiheen jälkeenkin Ohjelmointi- ja suunnitteluvirheiden korjausta Uusien ominaisuuksien lisäämistä, eli ohjelmiston laajentamista Ominaisuuksien päivittämistä asiakkaan tarpeiden mukaan