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

Samankaltaiset tiedostot
Johdatusta ohjelmistotekniikkaan

Oleelliset vaikeudet OT:ssa 1/2

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Tietojärjestelmän osat

Mitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Software engineering

Johdantoluento. Ohjelmien ylläpito

ITK130 Ohjelmistojen luonne

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Sudenkuoppia, yllätyksiä, pään vaivaa

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Testausoppeja toimialavaihdoksesta

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

OHJ-4301 Sulautettu Ohjelmointi

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Ohjelmiston testaus ja laatu. Testaus käytettävyys

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

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

Avoimen ohjelmistotuotteen hallinta julkisella sektorilla. Jukka Kääriäinen VTT Oy , Oskari-verkostopäivä

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

Tutkittua tietoa. Tutkittua tietoa 1

Uudelleenkäytön jako kahteen

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

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

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Työkalut ohjelmistokehityksen tukena

@Tampereen Testauspäivät ( )

Katselmoinnin määritelmä. Katselmoinnit osa 1. ja vielä ajatuksia katselmoinneista. Katselmointi. Katselmointi, katselmus (review) IEEE Std

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

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

VÄLI- JA LOPPURAPORTOINTI

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

Totuus IdM-projekteista

Suunnitteluvaihe prosessissa

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

UCOT-Sovellusprojekti. Testausraportti

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Avoimet ohjelmistot julkisessa hallinnossa. Oskari verkostopäivä Tommi Karttaavi

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

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Onnistunut ohjelmistoprojekti

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

Tietoyhteiskunnan perustaidot. Kesäkuu 2014

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

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Standardi IEC Ohjelmisto

1. Johdanto. Ohjelmistotuotannon ongelmia

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

Käyttäjäkeskeinen suunnittelu

Tinkimätöntä tietoturvaa kaikkiin virtuaaliympäristöihin

Ohjelmistojen mallintaminen, mallintaminen ja UML

2. Ohjelmistotuotantoprosessi

Canon Essential Business Builder Program. Avain yrityksesi menestykseen

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA

SYSTEEMITYÖ. Tärkeitä sanoja

Ikivihreä kirjasto loppuraportti määrittelyprojektille

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Meriteollisuudelle sopivat aiheet 2016 hauissa. Elina Holmberg, Tekes EU:n Horisontti rahoitusmahdollisuudet meriteollisuudelle 21.8.

EBSOLUT OY Metsistä energiaa yrittämällä seminaari. Energiaa metsistä yrittämällä - seminaari

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

TIETOKANNAN SUUNNITTELU

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

Standardit osana käyttäjäkeskeistä suunnittelua

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

Mistä on kyse ja mitä hyötyä ne tuovat?

PS-vaiheen edistymisraportti Kuopio

Globalisaatio ja asiantuntijapalvelut

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Ketterä vaatimustenhallinta

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

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

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

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

Miten asiakas tekee valintansa?

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Järjestö 2.0 -työryhmäpäivä Antti Pelto-Huikko, erityisasiantuntija

Mikä on paras hinta? Hinnoittele oikein. Tommi Tervanen, Kotipizza Group

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Ylläpito. Ylläpidon lajeja

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

Menetelmäraportti Ohjelmakoodin tarkastaminen

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Integrointialgoritmit molekyylidynamiikassa

Projektinhallinta TARJA NISKANEN LÄHTEENÄ MM. KEHITTÄJÄN KARTTAKIRJA

Kokonais-IS-arkkitehtuuri korkeakouluissa Tietohallinnon näkökulma

Lokalisointitestaus. Matti Vuori, 1(17)

Transkriptio:

$$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin (kilpailu vaikuttaa) Tekniset valinnat -> voidaan valita haluttua huonompi ratkaisu, koska hiukan parempi maksaa moninkertaisesti Toiminnan kehittäminen -> Täytyy pystyä perustelemaan kannattavuus taloudellisesti säästönä, kilpailuetuna ym. Taloudellinen arviointi erilaista projektitoiminnassa kuin ohjelmistotuotteita tuotettaessa $$$ Raha ratkaisee Esimerkkipohdintaa webbipalvelua rakennettaessa: Saadaanko palvelulla karsittua kustannuksia asiakaspalvelussa? Saadaanko lisää asiakkaita niistä, jotka toimivat vain netin kautta? Väheneekö asiakkaat kilpailutilanteessa, jos ei toteuteta palvelua? Minkälainen palvelu oikeasti tukee liiketoimintaa? Jos ei ole varaa hyödylliseen palveluun, kannattaako rakentaa huonoa? 1 2 Ohjelmistotuote Muutakin kuin pelkkä ohjelma: Toimiva ohjelma Dokumentaatio (Lähdekoodi) Koulutus Ylläpito Laitteisto (esim. Sovelluspalvelimet) Tuki Ohjelmistotekniikan määritelmä Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista ja käyttämistä siten, että voidaan tuottaa taloudellisesti ohjelmisto, joka on luotettavaa ja toimii tehokkaasti todellisissa koneissa. 3 4 1

Mitä ohjelmistotekniikka on? Ohjelmistotuotantoprosessi Ei ainoastaan teknologioiden hyödyntämistä Menetelmät, joilla pyritään parantamaan ohjelmistojen tuotantoprosessin tuottavuutta, taloudellisuutta tai laatua SYÖTE PROSESSIN KEHITYS, KOULUTUS ANALYYSI SUUNNITTELU PROJEKTIN HALLINTA TUOTOS TOTEUTUS OMISTAJA Ohjelmistotuotantoyritys ASIAKAS LAADUN HALLINTA TESTAUS YLLÄPITO 5 6 OT tänään (vrt. 60-luku) Krooniset ongelmat jatkuvat Nyrkkisääntö (1994): Jopa hyvin suunnitellut ohjelmistohankkeet ylittävät budjettinsa keskimäärin 25 % ja aikataulunsa 50 % OT ei ole vieläkään yhtä kehittynyt kuin monet muut insinööritieteet CMM:n tilastoissa 65 % viimeisen viiden vuoden aikana luokitelluista yrityksistä on jäänyt alle tason kolme (tasot 1-5) Ohjelmistotekniikan erityispiirteitä 1/2 Ohjelmistot ovat abstrakteja, eivät fyysisiä -> joustavuus, monimutkaisia Ohjelmistojen käyttäytyminen on epäjatkuvaa -> ei voida tehdä oletuksia, sillä pienikin virhe voi kaataa koko järjestelmän OT ei skaalaudu projektin koon mukana pieniin projekteihin tarvitaan erilaiset menetelmät kuin suuriin Ohjelmisto kehitetään, sitä ei koota peruskomponenteista 7 8 2

Ohjelmistotekniikan erityispiirteitä 2/2 ohjelmistotehdas tuotekehitysosasto Menetelmiä on vaikea siirtää sellaisenaan organisaatiosta toiseen Ohjelmistojen monistaminen on halpaa Ei varastotavaraa ohjelmistot räätälöidään asiakaskohtaisesti Ohjelmat eivät kulu, mutta ylläpito voi johtaa ränsistymiseen. Varaosia ei ole, kuten fyysisissä tuotteissa. 9 Ongelmien lähteitä Ohjelmistotekniikalta odotetaan liikaa: Tekniikka on kehittynyt nopeammin kuin ohjelmistotuotannon tehokkuus Kompleksisuus on samalla kasvanut sovellusten monimuotoisuus Laatuvaatimukset Tietoturva Kompleksisuus Integrointi PC:n suorituskyky Mobiilipäätelaitteet Internet 10 Ongelmien lähteitä Teknologiasiirron hitaus Ala on nuori ja uudet menetelmät siirtyvät käytännön ohjelmistotyöhön jopa 10-20 vuoden viiveellä Idea -> menetelmän kuvaus -> testataan toimivuus käytännössä -> kehitetään ideaa -> testataan taas -> opitaan soveltamaan -> käyttö yleistyy Liian suuret laatuvaatimukset Täysin virheetöntä ohjelmaa on vaikea tehdä Kuka välittää mm:n kokoisesta värivirheestä auton bensatankin korkissa? - vastaava virhe ohjelmassa voi kaataa koko ohjelman Vaikeudet OT:ssa (Brooks 1987) Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet Turvallisuuriskit Yhteensopivuus, mukautuvuus Suhteellisen yksinkertainen tehdä muutoksia -> Muutoksia myös vaaditaan usein Periaatteessa ohjelmistoja voidaan koota olemassa olevista komponenteista käytännössä joudutaan mukauttamaan 11 12 3

Vaikeudet OT:ssa (Brooks 1987) Muuttuvuus Ohjelmistotuotteeseen tehdään jatkuvasti muutoksia -> Luotettavuuden säilyminen haastavaa Muutoksen kustannuksia ei ymmärretä kuten fyysisissä tuotteissa Näkymättömyys Ohjelma on abstrakti, siitä ei voi tehdä kolmiulotteista mallia -> Ohjelman kokonaisuutta on vaikea hahmottaa -> Haittaa myös kommunikointia -> Projektin eteneminen ei ole konkreettisesti näkyvissä Monimuotoisuus on haaste! Ohjelmistotyyppejä: Systeemiohjelmisto Reaaliaikaohjelmistot Tieteellinen ohjelmisto Hallinnollinen ohjelmisto Sulautettu ohjelmisto Henkilökohtainen ohjelmisto Tekoälyjärjestelmät Sovellusalueet: Pankit Vakuutusyhtiöt Elektroniikkateollisuus Vapaa-aika Sotateknologia Yms. Vaaditaan erityisosaamista ohjelmistotyypistä ja sovellusalueesta! 13 14 Monimuotoisuudesta Erilaisten ohjelmistojen tuottaminen on erilaista, on vaikea löytää yleistettäviä tehokkuutta kasvattavia menetelmiä esim. hallinnollisissa ohjelmissa komponenttipohjainen kehitys toimii, mutta sulautetuissa vaaditaan tehokkuutta Laatuvaatimukset vaihtelevat erilaisissa sovelluksissa -> sairaalakoneet tai peli Keskeiset ongelma-alueet Vaatimusmäärittely Vaatimusten oikeellisuus on tärkeää lopputuotteen tehokkuuden ja laadun kannalta. Kompleksisuus Integraation tarve Standardit Projektitoiminnan tarve (Windows 95 200 työntekijää) Muutostarpeet tekniikka ja ympäristö kehittyy Tuotteen hallinta Ylläpito 15 16 4

Weinbergin teesit 1/2 1. Parhaiten menestyvät ne, jotka eivät luota liikaa uusiin poppakonsteihin, mutta ovat valmiita kokeilemaan uusia ideoita. 2. Mikään ei korvaa ratkaistavan ongelman perusteellista ymmärtämistä 3. Mikään ratkaisutapa ei sovi kaikkiin tehtäviin. Jossain tapauksessa paras ratkaisu voi olla toisessa tapauksessa huonoin 4. On monia hyödyllisiä lähestymistapoja, jotka ovat toimineet useammassa kuin yhdessä tilanteessa, joten kannattaa tutustua sellaiseen, mikä on toiminut aikaisemmin Weinbergin teesit 2/2 5. Ongelman ratkaisun niksi ei ole pelkästään miten menetelmiä sovelletaan (know-how), vaan mieluummin milloin niitä sovelletaan (know-when) 6. Riippumatta siitä, kuinka hyvin taitaa edellisen kohdan miten ja milloin, on olemassa ongelmia, jotka ovat nykytietämyksellä mahdottomia ratkaista tai joiden perimmäisistä syistä kukaan ei ymmärrä riittävästi. 17 18 Ohjelmistotekniikan myyttejä (johto) Meillä on dokumentoidut toimintatavat. Eivätkö työntekijät näe siitä kaiken tarpeellisen? Työntekijöillä on uusimmat kehitysvälineet miksi ei synny parempaa tulosta? Jos jäämme aikataulusta jälkeen, voimme korjata sen lisäämällä ohjelmoijia. Ohjelmistotekniikan myyttejä (asiakas) Yleinen tavoitteiden määrittely riittää, jotta ohjelmien kirjoittaminen voidaan aloittaa yksityiskohdat voidaan täydentää myöhemmin. Projektin vaatimukset muuttuvat jatkuvasti, mutta muutokset voidaan toteuttaa helposti, koska ohjelmisto on joustavaa (vrt. laitteistot). 19 20 5

Virheen suhteellinen kustannus (Boehm 1981) Ohjelmistotekniikan myyttejä (työntekijä) Virheen korjaamisen suhteellinen kustannus 1 3-6X 10X 15-40X 30-70X 40-1000X (82X IBM keskiarvo) Työ on tehty, kun olemme kirjoittaneet ohjelman, joka toimii. Ennen kuin saan ohjelman pyörimään en voi mitenkään arvioida sen laatua Onnistuneen projektin ainoa toimitettava tuotos on toimiva ohjelma Vaatimus- Suunnittelu Koodaus Kehitys- Hyväksymis- Käyttöönotto, määrittely Testaus Testaus Ylläpito 21 22 6