Oleelliset vaikeudet OT:ssa 1/2

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Tietojärjestelmän osat

2. Ohjelmistotuotantoprosessi

ITK130 Ohjelmistoprosessi

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Suunnitteluvaihe prosessissa

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

OT-s200: Prosessimallit

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Projektin suunnittelu

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Ohjelmistojen mallintaminen, mallintaminen ja UML

ITK130 Ohjelmistojen luonne

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

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

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

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Työkalujen merkitys mittaamisessa

Projektityö

Uudelleenkäytön jako kahteen

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

Ohjelmointi 1 / syksy /20: IDE

Ohjelmistoprojektien hallinta Vaihejakomallit

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

Itsearviointi suunnannäyttäjänä

Johdantoluento. Ohjelmien ylläpito

Integrointi. Ohjelmistotekniikka kevät 2003

TIETOTEKNIIKAN KOULUTUSOHJELMA

Ohjelmiston testaus ja laatu. Testaustasot

Kontrollipolkujen määrä

812341A Olio-ohjelmointi, I Johdanto

AS Automaatio- ja systeemitekniikan projektityöt

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

Software engineering

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

BIM Suunnittelun ja rakentamisen uusiutuvat toimintatavat Teppo Rauhala

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

Johdatusta ohjelmistotekniikkaan

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Toteutusvaihe T2 Edistymisraportti

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

käyttötapaukset mod. testaus

Analyysi on tulkkaamista

Ylläpito. Ylläpidon lajeja

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

Käyttäjäkeskeinen suunnittelu

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tapahtuipa Testaajalle...

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

LIITE 1 HANKITTAVAT KOULUTUKSET POHJOIS-POHJANMAAN ELY-KESKUS Koulutuksen nimi ja koulutuskuvauksen numero Paikkakunta

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

Kurssin hallinta -työväline

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmistojen mallintaminen kertausta Harri Laine 1

13/20: Kierrätys kannattaa koodaamisessakin

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

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

MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy

Ostavat organisaatiot konsultin silmin

Matematiikan ohjelmointi. Joakim von Wright

Opiskeluympäristöjen sisältömateriaalituotannon ja ohjelmistokehityksen mahdollisuuksia ja rajoitteita.

Matematiikan oppifoorumi Projektisuunnitelma

Dokumentointi ketterissä menetelmissä

Projektin suunnittelu A71A00300

Ohjelmoinnin perusteet Y Python

Määrittelyvaihe. Projektinhallinta

Toteutusvaihe T3 Digi-tv: Edistymisraportti

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

Ohjelmistoprosessit ja ohjelmistojen laatu kevät Suunnitelmakeskeiset prosessit (lukuisia lähteitä)

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Tuotemallipohjaisen toimintaprosessin mallintaminen

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Työkalut ohjelmistokehityksen tukena

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

Transkriptio:

Oleelliset vaikeudet OT:ssa 1/2 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

Oleelliset vaikeudet OT:ssa 2/2 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

Edistysaskeleet 1/5 Korkean tason kielet Jo C-kielestä odotettiin läpimurtoa, kehitys vieläkin vähittäistä Tavoitteena sekä työn, että oppimisen tehostaminen Täytyy tietää mitä tekee > nopeuttaa työntekoa, mutta ei välttämättä oppimista Automaattinen ohjelmointi = Vielä korkeamman tason ohjelmointikieliä (Parnas) Täytyy esittää ratkaisumenetelmä jollain tasolla Joillekin erityisalueille on mahdollista toteuttaa toimiva ohjelmistokehitin

Edistysaskeleet 2/5 Olio-ohjelmointi Helpottaa reaalimaailman mallintamista On helpottanut komponenttipohjaista ohjelmointia Ei kuitenkaan suurta vaikutusta tehokkuuteen Tekoäly ja asiantuntijajärjestelmät Ohjelmistotuotannossa voidaan yhdistää kehitystyökaluihin, jolloin järjestelmä ehdottaa erilaisia toimenpiteitä Vaikea ja työläs rakentaa Mistä saadaan asiantuntijat tiedon ja päättelysääntöjen luomiseksi

Edistysaskeleet 3/5 Graafinen ohjelmointi = koodin generointi suunnittelukaavioista - Vaatii todella tarkkaa suunnittelua ja monimutkaisia kaavioita - Voi toimia osittain Formaali todentaminen Perustuu oikeellisuuden matemaattiseen todentamiseen Edellyttää formaalia spesifikaatiota Määrittely voi olla virheellinen

Edistysaskeleet 4/5 Ohjelmointiympäristöt Editorit, debuggerit, graafiset kehittimet Integrointi yhteinen tietokanta Oleellisten tehtävien tukeen keskittyminen Keskitytään tehostamaan tehtäviä, jotka vaativat eniten aikaa ja toistokertoja Oma tieto vs. vanhat tutkimukset Vaatimusten tarkentaminen nopealla protoilulla Asiakas ei aluksi tunne tarkasti vaatimuksia Nykyiset graafiset ohjelmistokehittimet

Edistysaskeleet 5/5 Ostaminen ja ulkoistaminen Valmisohjelmat jatkuvasti yleistyneet Moduulien myynti on yleistynyt hitaasti Edullista, välitön saatavuus, hyvä dokumentointi, ylläpito Vähittäinen kehittäminen Toteutetaan ensin ohjelman ydin Toteutetaan toiminnot yksi kerrallaan Gurujen kouluttaminen Tiedostetaan, että yksilöiden väliset erot tuotannon laadussa ja tehokkuudessa ovat suuria Panostetaan hyviin tyyppeihin

Prosessimallit On useita malleja, jotka vaiheistavat ohjelmistotuotantoprosessia: Sisältää ohjelmistotuotantoprosessin keskeiset osa-alueet Kuvaa osaprosessien suoritusjärjestyksen Malli tuottaa dokumentaation Malli on yleinen -> sovellettavissa kaikkialle, mutta mukautettava organisaation tarpeisiin Malli sisältää ainakin seuraavat osat: Määrittely Kehittäminen Ylläpito

Ylläpidon suuri osuus on elinkaarimallien ongelma 1 2 3 4 5 6 7 Vaihe Vaatimukset Määrittely Suunnittelu Koodaus Moduulitestaus Integrointi Ylläpito Kustannusosuus 3 % 5 % 7 % 6 % 7 % 6 % 67 % Elinkaarikustannusten jakautuminen (Schach 1990)

Vesiputousmalli Järjestelmän hahmottaminen Analyysi Suunnittelu Toteutus Testaus Ylläpito

Vesiputousmallin ongelmia Peruutus on vikeaa ja työlästä Malli ei välttämättä vastaa projektin todellista kulkua Vaiheen siirtyminen toiseen aiheuttaa viiveitä, jos seuraavan vaiheen syötteeksi vaaditaan edellisen vaiheen verifioitu lopputuotos Tuote nähdään ensimmäisen kerran vasta loppuvaiheessa, jolloin vaatimusten muuttaminen on kallista ja aikaa vievää

Prototyyppimalli Asiakas ei tiedä mitä haluaa, mutta hän tietää kyllä mitä ei halua heti kun näkee sen Tarkoitus siis vaatimusten todellinen selvittäminen Prototyyppi konkretisoi muuten abstraktia ohjelmiston kehitystä sekä asiakkaalle että kehitystiimille Nykyiset graafiset sovelluskehittimet helpottavat silloin kuin niitä voidaan hyödyntää

Protoilun vaiheet 1. Vaatimusten ja määrittelyjen kerääminen ja tarkentaminen 2. Ulospäin näkyvien toimintojen suunnittelu ja tarkentaminen 3. Prototyypin rakentaminen 4. Asiakkaan suorittama prototyypin kokeilu ja arviointi 5. Prorotyypin parantelu

Protoilun ongelmia Jarjestelmän (proto-osan) rakentaminen moneen kertaan aiheuttaa lisätyötä Protyypissä tehtyjen ohjelmanosien siirtäminen lopputuotteeseen saattaa tuottaa laatuongelmia Kaikki ongelmat eivät tule näkyviin protovaiheessa, esim. tehokkuus, laajennettavuus Maltetaanko suunnitella kunnolla? Luotetaanko liikaa siihen mitä näkyy? Jääkö abstraktimpien asioiden suunnittelu vähemmälle? Asiakkaan mielestä prototyyppi voi olla melkein valmis ohjelma

Inkrementaalinen malli Rakennetaan aluksi vain ohjelman runko ja tärkeimmät toiminnot Toimintoja lisätään vaihe kerrallaan Aiempia kokemuksia voidaan hyödyntää uusien osien määrittelyssä Saadaan toimiva (vaikkakin suppea) järjestelmä lyhyessä ajassa Asettaa kovat vaatimukset suunnittelulle, jos ei suunnitella koko sovellusta kerralla

Spiraalimalli Keskittyy tuotantoprosessin alkuvaiheisiin Toteutuksessa voidaan soveltaa mitä mallia tahansa Korostaa tuotantoprosessin iteratiivisuutta ja riskien huomioimista Jokaisella kierroksella neljä vaihetta: 1. Tavoitteiden, vaihtoehtojen ja rajoitteiden määrittely 2. Vaihtoehtojen arviointi, riskien tunnistus 3. Kehitys ja varmistus 4. Seuraavan kierroksen suunnittelu Vaatii paljon aikaa ja asiakkaan osallistumista