Uudelleenkäytön jako kahteen



Samankaltaiset tiedostot
Suunnitteluvaihe prosessissa

Software product lines

Ohjelmiston toteutussuunnitelma

JulkICTLab Eteneminen Mikael Vakkari, VM

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

Ohjelmistojen suunnittelu

Kuntasektorin kokonaisarkkitehtuuri

Yhteenveto tuotteenhallinnan tiimoilta kertyneistä opeista. Jukka Kääriäinen

Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M ) 10fea, 9c2f, 4760, 9095, f4f9295f4b19

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Käytettävyyslaatumallin rakentaminen verkkosivustolle

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmiston testaus ja laatu. Testaustasot

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

12. Kehysarkkitehtuurit

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

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Osaamisperustaisuuden arviointia tentillä

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Tietojärjestelmän osat

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Kohti Kohaa avoimen lähdekoodin kirjastojärjestelmän käyttöönotto

Oleelliset vaikeudet OT:ssa 1/2

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

CASE Varma Testauksen haasteet moniuloitteisessa testiympäristössä Tuukka Vähäpassi

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

ITK130 Ohjelmistojen luonne

TOIMINNALLINEN MÄÄRITTELY MS

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

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Oliosuunnittelu. Oliosuunnittelu

Turvakriittisen projektin menetelmät ja työkalut

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

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

TIE Ohjelmistojen suunnittelu

Integrointi. Ohjelmistotekniikka kevät 2003

Hankintariskit haltuun virtualisoinnilla

Menetelmäraportti - Konfiguraationhallinta

Suvi Remes Miika Alonen Petri Mustajoki Totti Tuhkanen

Ohjelmistokehykset (software frameworks)

Mallintarkistus ja sen

Tietorakenteet ja algoritmit

ohjelman arkkitehtuurista.

Televerkon verkkotietojärjestelm

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Tekniset tiedot. Toimintakaavio. Ohjelmisto ja sovellukset yhdellä silmäyksellä. Tyyp. mittaustarkkuus Alue

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

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

TIE Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

Ohjelmiston testaus ja laatu. Testaus käytettävyys

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

Perinteiset asennuspaketit

Joustavaa koneenhallintaa

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TkK-tutkielmat

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Viisaat hankinnat JIT2015 sopimusehdot

Ohjausryhmän six-pack

UML:n yleiskatsaus. UML:n osat:

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Harjoitustehtävät ja ratkaisut viikolle 48

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

Mitä prosessissa kehitetään. Prosessin kehittäminen. Kehittämisen tavoitteita. Perusasioita kehittämisessä. Pohjana esim. CMM

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

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

Merlin Systems Oy. Kommunikaatiokartoitus päätöksenteon pohjaksi. Riku Pyrrö, Merlin Systems Oy

Ohjelmistojen mallintaminen, mallintaminen ja UML

ELM GROUP 04. Teemu Laakso Henrik Talarmo

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

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

Ohjelmistoarkkitehtuurit, syksy

Käytettävyys ja sen merkitys

3. Komponentit ja rajapinnat

Osallisuus ja tarinat kehitysyhteistyön arvioinnissa. Laura Lager 5/6/2013

lindab yksinkertaistamme rakentamista

Linked Events. Helsingin tapahtumarajapinta. Aleksi Salonen

UCOT-Sovellusprojekti. Testausraportti

CUDA. Moniydinohjelmointi Mikko Honkonen

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Infra 2010 loppuseminaari, Helsinki Siltojen tuotemallintamisen ja rakentamisautomaation

Apuvälinemessut

Yhteistoiminnallinen kokous Satu Kurvinen

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Lopullinen versio, syyskuu 2010 Paikallisen ja alueellisen tason kestävää kehitystä koskeva integroitu johtamisjärjestelmä

Muusta kuin vesisioista

Tiedostojen jakaminen turvallisesti

ZigBee-ohjaus kuorma-autolle

815338A Ohjelmointikielten periaatteet

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

11. Kehysarkkitehtuurit

Testaaminen ohjelmiston kehitysprosessin aikana

LAADUNVALVONTAJÄRJESTELMÄ- JA TOIMEKSIANTOLOMAKE

Transkriptio:

Uudelleenkäyttö

Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta on tehty aiemmin, tästä merkittävä osa samassa organisaatiossa Onnistunut uudelleenkäyttö on yksi tehokkaimmista tavoista parantaa tuottavuutta.

Uudelleenkäytön jako kahteen Kehitinpohjainen uudelleenkäyttö Sovelluskehittimet Vain harvoille sovellusalueille Komponenttien uudelleenkäyttö Koko sovellus (Uudet versiot) Osajärjestelmä Sovelluskehykset Moduuli tai olio Funktio Suunnitelmat Testidata

Komponenttien luokittelu Yleiskäyttöiset komponentit Tietorakenteet, käyttöliittymäkomponentit Sovellualuekohtaiset Esim. Televerkon hallinta Sovelluskohtaiset komponentit Käytetään samassa sovelluksessa useaan kertaan. Yleiset luokat

Edellytykset uudelleenkäytölle Sopivia komponentteja täytyy voida löytää järkevässä ajassa Komponenteista täytyy olla riittävästi informaatiota Tarkoitus, toiminnan kuvaus yms. dokumentaatio Havaitut ongelmat Täytyy pystyä omaksumaan edellisestä riittävä informaatio kohtuullisessa ajassa Täytyy pystyä luottamaan dokumentaation oikeellisuuteen

Uudelleenkäytön ongelmat 1/2 Uudelleenkäytettävien komponenttien tuottaminen vaatii lisäresursseja Täytyy yleistää, luetteloida, testata ja dokumentoida Tarvittavaa komponenttia on usein vaikea löytää kohtuullisessa ajassa Dokumentoinnin puutteellisuus Asenneongelmat Haluttomuus käyttää toiseten tekemiä komponentteja Haluttomuus luottaa toisten työhön Komponentit liian yleiskäyttöisiä (tehokkuus, asenne)

Uudelleenkäytön ongelmat 2/2 Komponentit liian monimutkaisia Käytettävyys, ymmärrettävyys Opittavuus Tuotteenhallinnan ongelmat Komponentti ei usein kelpaa sellaisenaan Merkittävän hyödyn saamiseksi uudelleenkäyttö pitäisi toteuttaa prosessin alkuvaiheessa

Uudelleenkäytön tukemisen keinot Uudelleenkäyttösuunnitelman laatiminen organisaatiossa Edellisen yhdistäminen henkilöstökoulutukseen Uudelleenkäyttöä tukevien välineiden hankkiminen Uudelleenkäyttöä tukevien menetelmien ja työkalujen tukeminen organisaatiossa Mittaustieto, metriikat vaikutuksen mittaaminen Johdon sitoutuminen

Uudelleen käytettävän komponentin kehittäminen Suunnittelu usein hankalaa ja työlästä tehdä komponentista riittävän yleiskäyttöinen Olio-ohjelmointi (perintä) parantanut mahdollisuuksia uudelleenkäyttöön Vähentää myös versio-ongelmia. Peritään luokka kokonaan, eikä muuteta alkuperäistä. Tyypillisesti luodaan yleiskäyttöinen ylemmän tason luokka ja peritään siitä oikeasti käytettävä luokka. > Ylemmän tason luokka helposti uudelleenkäytettävissä Esim. Windows-komponentit

Uudelleenkäytön etuja Suunnittelu- ja tuotantokustannusten vähentyminen (huom! ei mikään automaatio) Luotettavuuden parantuminen. Komponentit ovat jo oikeassakin käytössä testattuja. Kokonaisriskin pienentyminen. Ei epävarmuutta aiheutuvista kustannuksista. Erikoistietämystä koteloidaan komponentteihin (esim. matemaattiset kirjastot) Sisäisiä standardeja voidaan toteuttaa komponentteina Kehitysaikaa voidaan lyhentää (vrt. kustannukset)

Tavallinen etenemistapa 1. Määritellään vaatimukset 2. Suunnitellaan järjestelmän arkkitehtuuri 3. Määritellään tarvittavat komponentit 4. Etsitään komponentteja omista kirjastoista ja markkinoilta 5. Mahdollisesti sovitetaan vaatimukset mahdollisuuksiin käyttää tietyn tyyppisiä komponentteja (Kuinka onnistuu?) 6. Muokataan komponentit ja liitetään ne ohjelmaan

Komponenttien siirrettävyys Lähdekoodin siirrettävyys Mahdollisuus siirtyä käyttöjärjestelmästä toiseen rajallinen Kuitenkin mahdollista Java,.NET, Delphi/Kylix Suoritettavan ohjelman siirrettävyys Onnistuu käyttöjärjestelmästä toiseen välikieltä käyttämällä Ei saa käyttää käyttöjärjestelmäriippuvaisia toimintoja

Kaksi lähestymistapaa komponenttien uudelleenkäyttöön 1. Muuntava uudelleenkäyttö Peritään komponentti Perittyä käyttäytymistä voidaan haluttaessa muuttaa 2. Kokoava uudelleenkäyttö Valmiin komponentin käyttö sellaisenaan Yhteyksien rakentaminen

Suunnittelumallit Suunnittelumalli on dokumentoitu tapa suunnitella ohjelmiston osa usein esiintyvän ongelman ratkaisemiseksi. Dokumentaatiossa seuraavat asiat: Mallin tarkoitus Mahdolliset sovelluskohteet Rakenne (esim. luokkakaavio) Edut ja haitat (miksi ratkaisu on jotain toista parempi) Toteutukseen liittyviä seikkoja Toteutusesimerkkejä

Sovelluskehykset Kiinteästi toisiinsa liittyviä luokkia, joista sopivasti täydentämällä ja kokoamalla saadaan valmis sovellus. Rakennetaan tietylle sovellusalueelle Voidaan kehittää sovelluskehitin toteutusta varten Esim. Integraattori Toiminnanohjausjärjestelmä WWW-kauppa Windows-sovelluskehittimet