Avoimen lähdekoodin ohjelmien ylläpito ja evoluutio



Samankaltaiset tiedostot
Avoimen lähdekoodin kehitysmallit

Johdantoluento. Ohjelmien ylläpito

Avoimia liiketoimintamahdollisuuksia? Liiketoiminta ja avoin paikkatieto -talviseminaari Torstaina

Sisäinen auditointi osa Oamkin ympäristöohjelmatyötä

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI, ESA SALMIKANGAS

Sisällys. Lukijalle Mitä on digitaalinen taloushallinto? Järjestelmät Ostolaskut... 52

Veto-visualisointityökalu

Luotettavuuden mittaamisesta. Ilkka Norros ja Urho Pulkkinen

Kriittisen polun hallinta CRIPMAN (CRItical Path MANagement) Pekka Maijala & Jaakko Paasi

Tech Conference Windows 10 viimeinen Windowsversio? Sami Laiho Senior Technical Fellow, MVP. #TechConfFI

Ohjelmistotuotteen hallinnasta

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Terveydenhuollon laitteet ja tarvikkeet omavalvonnan osana myös sosiaalihuollon palveluissa

AVOIN KOODI YRITTÄJYYDEN LÄHTÖKOHTANA

360 asteen kuvan tekeminen

1. Lomakkeet löytyvät asiointiportaalista osoitteesta

Antti Ylä-Jarkko. Miten oppijan palveluita rakennetaan

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Yhteiset konseptit ja periaatteet julkishallinnon palvelukehittämisen edistäjinä Kuntien avoin data hyötykäyttöön seminaari 27.1.

Ohjelmiston testaus ja laatu. Testaus yleistä

Jussi Eerikäinen, 2014

T Käyttäjäkeskeisen tuotekehityksen harjoitustyöt. Tehtävä 2: Essee käyttäjäkeskeisen tuotekehityksen prosessimalleista

Open Source -ohjelmien perusteet

Käyttöjärjestelmät: Virtuaalimuisti

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita


Palvelusetelin uudet. Lääkäripalveluyritykset ry Ismo Partanen

Tekstinkäsittelystä. H4: Tekstinkäsittelyn perusharjoitus. Toimisto ohjelmista

Learning cafen yhteenveto. Helsinki

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

X-Robot-sovellus ja ITK222 XML-laboratoriotyö -kurssi

Biopolttoaineet ovat biomassoista saatavia polttoaineita Biomassat ovat fotosynteesin kautta syntyneitä eloperäisiä kasvismassoja

Arkkitehtuuriperustainen. Tuoterunkoihin perustuva ohjelmistotuotanto. Tuoterunkoarkkitehtuurien hyödyntäminen uudistamisessa

Projektisuunnitelma Viulu


ERITTELY VARAUKSISTA, ARVONMUUTOKSISTA JA KULUVAN KÄYTTÖOMAISUUDEN POISTOISTA (62) TIETUEKUVAUS 2015 SISÄLTÖ

Läpinäkyvyyttä tiketteihin tavoitteena tehokas palveluhallinta

Liikenteen digitalisaatio mahdollisuutena tiedon merkitys

Empatiaosamäärä. Nimi: ********************************************************************************

Raportointi hankkeen tulosten kuvaajana ja toteutuksen tukena

Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio

Tilaajien yhteiset tavoitteet ja kehittämisen tiekartta

Valtorin strategia. Päivitetty

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Toimialan ja yritysten uudistuminen

Kansalaisen taidot 2 (OPH 2011) Opettajan peruskysymykset

Matematiikan tukikurssi

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat

Helsingin urbaani luovuus käyttöön: Open311 kaupunkilaisten palautekanavana. Hanna Niemi-Hugaerts

A B C LAATUKÄSIKIRJA. Yrityksen laatupolitiikka

Pohjoismainen työturvallisuusilmapiirikyselylomake

QuarkXPress ohjelman uudet ominaisuudet

Luottamus ja yrittäjän etiikka

L U PA T E H D Ä F I K S U M M I N. #Työ2.0

Antavatko Kelan standardit mahdollisuuden toteuttaa hyvää kuntoutusta työssä uupuneille ja mielenterveysongelmaisille?

Tarkoitus. Edellytykset. Kirjautuminen HAKA-tunnistautumisen kautta

Ylläpidettävät ohjelmat. Evoluutiolait (Lehman) Lakien keskinäiset suhteet. Muutostarpeita (evoluution syitä) Ohjelmien luokittelu (Lehman)

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö


Virheraportoijien virhemäärien jakaumat virhetietokannassa

Web-sisällönhallintajärjestelmät. Sisältö. Mitä on web-sisällönhallinta?

Web-sisällönhallintajärjestelmät

L models. Käyttöohje. Ryhmä Rajoitteiset

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Avoin lähdekoodi ja hankinnat. JHS-SEMINAARI Avoimet teknologiat haaste ja mahdollisuus

Uuden vieritestin käyttöönotto avoterveydenhuollossa

Sote- integraatio. pj. Nimi: Jarmo Ruohonen siht. Nimi: Pilvi Moberg

sivu 1 (7) Sähköinen lääkemääräys vaatimusmäärittely versio 2.8

P A R T. Professional Assault Response Training Seppo Salminen Auroran koulu. Valtakunnalliset sairaalaopetuksen koulutuspäivät

Innovaatiivinen hallinta Saimaan ja Atlantin rannalla. Case: I-SSHP & Walter Reed Army Medical Center

Vaikuttavuuden mittaus lastensuojelussa ja työvoimapalveluissa

Finnan trendiraportti 2015 Yhteenvedot

Ulkoiset mediakortit Käyttöopas

Ndoromo Owen Suomen Punainen Risti Vaasan suomalainen osasto. Miten kotoutua maahanmuuttajasta kuntalaiseksi?

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

Maahanmuuttajien osaamisen tunnistamisen tulevaisuudennäkymiä. Turku, Nanna Wilhelmsson, KL 1

Voodoo Dragon. Voodoo Dragon. Käyttäjän opas. Versio 1.0

SKYPE-RYHMÄN LUOMINEN

Terveydenhuollon ATK-päivät

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Ohjelmistojen virheistä

SUOMALAISET PK-YRITYKSET EIVÄT LUOTA PILVIPALVELUIHIN

Ohjelmiston testaus ja laatu. Testaus käytettävyys

ABT 2000kg Haarukkavaunun käyttöohje

OSKARI. Yhteistyöllä eteenpäin Jani Kylmäaho Oskari-verkoston koordinaattori

Massaeditorikoulutus KANSALLISKIRJASTO - Kirjastoverkkopalvelut

TILASTOLLINEN LAADUNVALVONTA

Valtakunnalliset kuvaarkistopäivät. Tutkija Maria Virtanen

SEURAKÄYTTÄJÄN OHJEITA PELIPAIKASSA

TimeEdit henkilökunnan ohje

Kesäkuu Synkka Tuote Pakkaushierarkia yksittäin ja monipakkauksissa myytäville tuotteille

Mikrobilääkkeiden käytön ohjaus infektiokonsultin näkökulmasta mahdollisuudet ja vaikeudet

ITSM. Olli Saranen Senior Consultant Avoset Oy Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan

-versiot) Mozilla Firefox Safari Chrome. selaimista. Windows. Windows. Vista. Windows

EUROOPAN PARLAMENTTI

JHS XXX ICT-palvelujen kehittäminen: Laadunvarmistus Liite 2: Tarkistuslistoja

Transkriptio:

Avoimen lähdekoodin ohjelmien ylläpito ja evoluutio Terminologiaa Avoimen lähdekoodin yhteisöt Projektimalleja Puutteiden käsittely (muutospyynnöt) Projektityypit ja projektien evoluutio Evoluutiomallit ja Lehmanin lait Arkkitehtuurin rooli 1 Terminologiaa Avoin lähdekoodi (open source) lähdekoodi käyttäjän saatavilla Vapaa ohjelmisto (free software) vapaus ajaa ohjelmaa vapaus tutkia ja mukauttaa ohjelmaa vapaus levittää ohjelmaa vapaus parantaa ohjelmaa Vapaa ei välttämättä tarkoita ilmaista 2

Avoimen lähdekoodin yhteisö Projektin johtaja Ydinjäsenet Aktiiviset kehittäjät Satunnaiset kehittäjät Virhekorjaajat j Virheraportoijat Lukijat Passiiviset käyttäjät 3 Yhteisömalleja Verkostorakenne Hierarkkinen rakenne Johtaja 4

Kehitysmalleja Katedraalimalli kehittäjät toteuttavat järjestelmiä johtajan suunnitelman pohjalta muistuttaa tavanomaista ohjelmistokehitystä Basaarimalli kehittäminen ja suunnittelu vapaata, ja jokainen voi osallistua muutosten suunnitteluun järjestelmät eivät perustu tarkkoihin suunnitelmiin 5 Prosessin toteuttaminen Ylläpitoprosessi (ISO/IEC) Ongelman ja muutoksen analysointi Muutoksen tarkistaminen/ hyväksyntä Muutoksen toteuttaminen Korvaaminen Siirtyminen 6

OSS-ylläpitoprosessi Käyttäjä 1. Raportoi 2. Noutaa Analysoi 3. Noutaa Muuttaa 5. Päivittää 4. Päivittää 6. Näkee Noutaa DMS Defect management system Version management system VMS 7 OSS-ylläpitoprosessi 1. Käyttäjä raportoi virheestä puutetietokantaan 2. noutaa virheilmoituksen, varmistaa virheen olemassa olon ja analysoi sitä 3. Toteutusvaihe: käyttäjä noutaa lähdekoodin, korjaa virheen ja lisää muutoksen versionhallintajärjestelmään 4. Muutos tarkistetaan ennen kuin se hyväksytään ja lähdekoodi laitetaan versionhallintajärjestelmään 5. Tilanne päivitetään puutetietokantaan 6. Uusi versio on saatavilla versionhallintajärjestelmästä tai webistä 8

Muutosten jaottelu Standardin mukainen jaottelu ehkäisevä korjaava täydellistävä mukauttava OSS-jaottelu korjaukset lisäykset puutteet (bugit, virheet, ym.) lisäykset 9 Puutteiden luokittelu Muutospyyntö Puuteraportti Ilmoitus Raportointi Vaatii muutosta Koodin muuttaminen Ei vaadi muutosta Analysointi Toteutus/ Ratkaisu Korjattu puute Kaksoispuute Epäkelpo puute Muu puute Tarkistus Suljettu 10

Puutteiden luokittelu Tyyppi Alityyppi Selitys Lisäys Uuden ominaisuuden pyytäminen Puute Estävä Estää uuden julkistuksen Kriittinen Estää käytön Suuri Estää joidenkin oleellisten toimintojen käytön Normaali Oleellisimmat toiminnot käytettävissä Pieni Ei estä käyttöä Ti Triviaalii Kosmeettinen tai muu käyttöliittymän ä ongelma Tukipyyntö Help desk tyyppinen pyyntö Korjaustiedosto (patch) Käyttäjät voivat lähettää parannuksia puutetietokannan kautta 11 Puuteraportin tiedot Tieto Tunniste (id) Ympäristö Status Ratkaisu Vastuuhenkilö Vakavuus Raportoija Yhteenveto Luokittelu Toimintaloki Kuvaus Tunnistenumero Ohjelmisto ja sen ympäristö, jossa puute ilmenee (esim. tuote, komponentti, versio, alusta) Puutteen nykyinen tilanne (esim. korjattu, uusi) Miten puute on ratkaistu, vaatiko korjausta vai ei? Kuka hoitaa korjaamisen? Kuinka vakava puute on? Kuka raportoi virheestä? Puutteen kuvaus Vika, lisäys, jne. Mitä muutoksia puuteraporttiin on tehty? 12

OSS-evoluutio Hakemisto F1 Hakemisto F2 Vertikaalinen kasvu F1 F2 F3 Hakemisto F1 F2 F3 Horisontaalinen kasvu 13 GNU Wingnut korjaustiedosto korjaustiedosto Evoluutiomalleja palaute palaute PostgreSQL Jun Linux liitetään julkaistut versiot korjaustiedosto testiversiot korjaustiedosto liitetään 14

Projektityypit ja evoluutio Tutkimus Hyöty Palvelu Tavoite Innovaatioiden ja tietämyksen Yksilöllisen tarpeen Vakaiden palveluiden jakaminen tyydyttäminen tuottaminen Kontrolli Katedraali Basaari Neuvosto Evoluutiomalli Yksihaarainen; yhteisön palaute Useita versioita; paras voittaa Yksihaarainen; korjaustiedostojen yhdistäminen Yhteisön rakenne Projektin johtaja Paljon lukijoita Paljon satunnaisia Ydinjäsenet Paljon passiivisia kehittäjiä käyttäjiä Suurimmat ongelmat Esimerkkejä Jakaantumisvaara GNU-järjestelmät Jun, Perl Oikean ohjelman valitseminen Linux kerneliä lukuunottamatta Innovaatioiden puute PostgreSQL Apache 15 Projektien evoluutio Tutkimus Olemassa olevat järjestelmät Siemen Uusi idea Tutkimus Kypsyminen Palvelu Kypsyminen Palvelu Höt Hyöty Uudet tarpeet Höt Hyöty Nopea evoluutio Hidas evoluutio Nopea evoluutio Hidas evoluutio 16

Lehmanin lait OSSevoluutiossa Lehmanin lait on alun perin kehitetty suljetun lähdekoodin ohjelmille Miten lait pätevät avoimen lähdekoodin ohjelmille? riippuu tarkasteltavista ohjelmista Seuraavilla kalvoilla esitettyjä tuloksia ei pidä yleistää 17 Lehmanin lait (I-IV) 1. Jatkuva muutos laki pitää paikkansa, erityisesti kypsyneeseen tilaan päässeillä projekteilla 2. Lisääntyvä monimutkaisuus vaikea tunnistaa niitä muutoksia, joiden on tarkoitus vähentää monimutkaisuutta tulokset ristiriitaisia 3. Itseohjautuvuus / suurten järjestelmien evoluutio ei selvyyttä paikkansa pitävyydestä 4. Organisaation vakaus työtahdille vaikea löytää mittareita kehittäjien määrä kasvaa järjestelmän elinajan kasvaessa ei tarpeeksi dataa, jotta voitaisiin päätellä lain paikkansa pitävyyttä 18

Lehmanin lait (V-VIII) 5. Julkistusversioiden vakaus moduulien kasvaminen sattumanvaraista laki ei pidä paikkaansa 6. Jatkuva kasvu laki pitää paikkansa 7. Heikkenevä laatu vaikea mitata, koska ei tarkat määrittelydokumentit puuttuvat 8. Vuorovaikutteisuus/palaute vakaa kasvunopeus, ei vaihtele palautteen mukaan palaute luonteeltaan erilaista kuin suljetun lähdekoodin ohjelmissa 19 Arkkitehtuurin rooli Joukko sääntöjä, jotka ohjaavat muutosten tekemistä koodiin Abstraktio, joka helpottaa järjestelmän ymmärtämistä Arkkitehtuurin laadun analysointi tapahtuu keskustelujen kautta, ei eksplisiittisiä menetelmiä Modulaarisuus tärkein laatuvaatimus muita: muutettavuus, laajennettavuus, integroitavuus Arkkitehtuuri dokumentoidaan aluksi, mutta myöhemmin dokumentit eivät yleensä ajan tasalla 20

Miksi OSS-arkkitehtuuri on hyvä? Vertaistarkistukset tarkistuksissa tarkistetaan myös, että koodi noudattaa arkkitehtuuria Vertaistuki riittävän suuri määrä kehittäjiä -> todennäköisesti ainakin joku osaa ratkaista ongelman Demokratia suuren asiantuntijajoukon keskimääräinen mielipide on luotettavampi kuin yksittäisen asiantuntijan mielipide Taitavat ja motivoituneet kehittäjät 21 Miksi OSS-arkkitehtuuri on huono? Osallistumisen ja/tai demokratian puute ei tarpeeksi osallistujia Dokumenttien puute voi haitata arkkitehtuurin päätösten ja perusteluiden ymmärtämistä 22