SIMOn kehitys 2007-2010. SIMO seminaari 23. maaliskuuta 2011 Antti Mäkinen Simosol Oy



Samankaltaiset tiedostot
SIMO-seminaari Helsinki

OPERAATIOTUTKIMUS METSÄTALOUDESSA

SIMO tutkimuskäytössä. SIMO seminaari 23. maaliskuuta 2011 Antti Mäkinen Simosol Oy

SIMO käytössä. UPM-Kymmene Oyj Janne Uuttera

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Projektinhallintaa paikkatiedon avulla

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

ONKI-projekti JUHTA KANSALLISKIRJASTO - Kirjastoverkkopalvelut

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

13/20: Kierrätys kannattaa koodaamisessakin

SIMO-pilotointi Metsähallituksessa. SIMO-seminaari

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

Edustajiston kokous Lahdessa MR Kuva Jorma Tenovuo. Uusi ohjelmistokehittäjä aloittaa marraskuu 2008

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

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

MELA käyttäjäsovelluksia ja -kokemuksia

AS Automaatio ja systeemitekniikan projektityöt A13 10 Radio ohjattavan pienoismallin ohjausjärjestelmän ja käyttöliittymän kehittäminen

Koodistoeditorin tavoitteet ja tilannekatsaus

Ohjelmointi 1 / syksy /20: IDE

Työkalujen merkitys mittaamisessa

ELM GROUP 04. Teemu Laakso Henrik Talarmo

KITT2, uusi tieteellisten kirjastojen yhteistilastotietokanta

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

WINE API ja Virtualisointiohjelmistot

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

KDK: Finna ja pitkäaikaissäilytys

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

C++ Ohjelmoijan käsikirja. Johdanto

VHDL/Verilog/SystemC. Jukka Jokelainen

AVOIN LÄHDEKOODI JA SEN MERKITYS LIIKETOIMINNASSA

METSÄTIEDOT KOHTI 2020-LUKUA Janne Uuttera UPM

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Tutkittua tietoa. Tutkittua tietoa 1

Ikivihreä kirjasto loppuraportti määrittelyprojektille

Juuli-julkaisutietoportaali

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Laskelma Jyväskylän kaupungin metsien kehityksestä

KuntaGML rajapinnat Kuopiosta: Neljä prosessia - neljä rajapintaa

Juuli-julkaisutietoportaali: tilannekatsaus

Alkupiiri (5 min) Lämmittely (10 min) Liikkuvuus/Venyttely (5-10min) Kts. Kuntotekijät, liikkuvuus

Ilkka-hanke: Eri maankäyttömuotojen vaikutus kaupunkien hiilitaseeseen

Korkeakoulujen kansallinen julkaisuportaali. OKM:n bibliometriikkaseminaari, Jyrki Ilva

Ylläpito. Ylläpidon lajeja

2009 Mat Operaatiotutkimuksen Projektityöseminaari L

T Loppukatselmus

Juulin kehittäminen: tilannekatsaus

Toteutusvaihe T2 Edistymisraportti

Tomi Huttunen Kuava Oy Kuopio

- Jarjestelmaasiantuntija Markku Jaatinen

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

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

Open Journal Systems digitoitujen aineistojen tallennusalustana ANTTI-JUSSI NYGÅRD SUUNNITTELIJA, TIETEELLISTEN SEURAIN VALTUUSKUNTA

ehoks: tietomalli ja rajapinta

Parempaa äänenvaimennusta simuloinnilla ja optimoinnilla

Kaukokartoitusaineistojen hyödyntäminen toiminnanohjausjärjestelmässä

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

Muistitko soittaa asiakkaallesi?

Project group Tete Work-time Attendance Software

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

Tekoälykokeiluprojekti. Henkilökohtaisen kalenterin optimointi tekoälyllä Skycode Oy (ent. Suomen Mediatoimisto Oy)

Menetelmäraportti - Konfiguraationhallinta

Tiedostonhallinta. Yleistä

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi

UKJ ja avoimen lähdekoodin järjestelmät

UKJ ja Kuali Open Library Environment (OLE)

Suomen avoimien tietojärjestelmien keskus COSS ry

Hajautettu versionhallinta Gitillä

Johdatus rakenteisiin dokumentteihin

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Potilastiedon arkiston tilannekatsaus

T Projektikatselmus

Ohjelmiston testaus ja laatu. Testaustasot

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Kuvioton metsäsuunnittelu Paikkatietomarkkinat, Helsinki Tero Heinonen

T Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

Finton jatko vuosina

Valtion uudet yhteentoimivuuspalvelut: dataportaali, palvelutietovaranto ja yhteentoimivuus.fi v.2

Finna-kehitystyön painopisteet vuonna 2014

Simulointi. Varianssinhallintaa Esimerkki

SOSIAALIHUOLLON ASIAKASTIETOMALLI. Erja Ailio Kehittämispäällikkö

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

Kymenlaakson Ammattikorkeakoulu

ONKI-PROJEKTIN ESITTELY. Matias Frosterus ja Osma Suominen JHKA sanastotyöpaja

T Harjoitustyöluento

Kokemuksia ja näkemyksiä teollisuusmatematiikan koulutuksen kehittämisestä

Saavutettavuus tietojärjestelmien hankinnoissa

Rajapintapalvelujen INSPIRE-yhteensopivuus

WebOodin käyttöliittymän kehitys

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Avoimen lähdekoodin karttapalvelu Oskarin hyödyntäminen HSY:ssä. Henna-Kaisa Räsänen HSY paikkatietoseminaari Finlandia-talo

Tietojärjestelmän osat

Älykkään vesihuollon järjestelmät

Paikkatiedon hyödyntäminen vesiensuojeluyhdistyksissä

Graafiset käyttöliittymät Sivunparantelu

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

Julkaisuarkistopalveluiden tilannekatsaus

Transkriptio:

SIMOn kehitys 2007-2010 SIMO seminaari 23. maaliskuuta 2011 Antti Mäkinen Simosol Oy SIMO seminaari 23. maaliskuuta 2011 - Antti Mäkinen - SIMOn kehitys 2007-2010

Lähtötilanne, marraskuu 2007 Alkuperäinen SIMO-hanke oli päättymässä vuoden 2007 lopussa ja ensimmäinen julkinen SIMO versio (0.3.0) julkaistiin lokakuussa 2007 SIMOssa toimivat datan tuonti-, simulointi-, optimointi- ja raportointimodulit sekä komentorivikäyttöliittymä SIMO-seminaarissa 2. marraskuuta 2007 esitettyjä kehityssuuntia: graafiset käyttöliittymät XML dokumenttien muokkaamiseen, paikkatieto kiinteäksi osaksi laskentaa, simuloinnin tehostaminen laskennan rinnakkaistamisella, lisää optimointialgoritmeja, lisää malleja SIMOn mallikirjastoihin, ohjelmiston dokumentaatio ajan tasalle Lisäksi kehittäjillä pitkä lista eri kokoisia korjauksia ja uusia toiminnallisuuksia

SIMO2 projekti Jotta SIMOn jatkokehitys ja uusien toiminnallisuuksien lisääminen saatiin heti hyvään vauhtiin, pistettiin pystyyn uusi Tekes-hanke: SIMO2 Hankkeen vetäjänä nyt Simosol Oy Helsingin Yliopiston sijaan ja rahoittajina lähes kaikki alkuperäistä SIMO-projektia rahoittaneet organisaatiot Samalla SIMOn hallinta ja kehitysvastuu siirtyi yliopistolta Simosoliin Hankkeen tavoitteina SIMOn jatkokehitys sekä 2007 lopussa tiedossa olleet SIMOn kehitystarpeet Kehitystyöstä vastasi tuttu kolmikko: Jussi, Jouni ja Antti, tällä kertaa Riihimäeltä käsin

Ensimmäiset askeleet SIMO2 hankkeen alkuvaiheessa painopiste SIMOn ytimen korjailuissa ja uusien, pienempien ja suurempien, toiminnallisuuksien kehittämisessä SIMOn sisäinen data- ja tietokantarakenteen todettiin tarvitsevan päivittämistä: käytössä oleva tietokanta ei ollut standardi, sisäinen datarakenne teki simulaattorista hitaan ja kömpelön Testailtiin erilaisia (sekä hyviä että huonoja) tallennusvaihtoehtoja SIMOn sisäiseen datan tallentamiseen SIMOn sisäinen datarakenne muutettiin käyttämään matriiseita (työkaluna Numpy, eli Numerical Python) laskennan nopeuttamiseksi ja pullonkauloja ohjelmoitiin uudelleen käyttäen C-kieltä

Alun hankaluudet SIMOn kehitystyön ohella Simosol alkoi myymään asiakasprojekteja, mikä vei huomattavan paljon aikaa SIMOn kehitystyöstä Asiakasprojektien myötä löytyi (ja löytyy) edelleen paljon erilaisia kehitystarpeita, sekä luonnollisesti bugeja, lisäksi SIMOn aktiivinen käyttö tutkimushankkeissa aiheutti ohjelmistolle omanlaisiansa kehitystarpeita Moninaisten toiminnallisuuksien mukaan saaminen lisäsi huomattavasti myös ohjelmiston monimutkaisuutta ja koodipohja kasvoi vauhdilla, joskaan ei aina kovin suunnitelmallisesti Kehitystyön saaminen hyvään vauhtiin vaati siis paljon priorisointia, tulevan ennakointia, erilaisten työkalujen testaamista ja toisaalta myös kompromissien tekemistä

Suuri uudelleenkirjoitus Vuoden 2008 aikana SIMOsta saatiin korjattua suuri määrä bugeja, ohjelmistoon lisättiin paljon puuttuvia toiminnallisuuksia ja visio tulevasta kehityssuunnasta alkoi kirkastua Ohjelmiston historiasta johtuen (koodipohjan orgaaninen kasvaminen) SIMOn rakenne alkoi olla haastava jo kehittäjillekin ja uusien toiminnallisuuksien lisääminen ei ollut kovinkaan helppoa Todettiin, että tässä vaiheessa olisi hyvä miettiä millainen ohjelmiston rakenteen tulisi olla, jotta jatkokehitys olisi sujuvaa Tehtiin paljon suunnittelutyötä ohjelmiston rakenteen ja tulevien toiminnallisuuksien osalta ja päätettiin aloittaa ohjelmiston täydellinen uudelleenkirjoitus

Suuri uudelleenkirjoitus (jatk) SIMOn uudelleenkirjoitus aloitettiin loppuvuodesta 2008, muun työn ohessa SIMOn koodipohja suunniteltiin nyt modulaarisemmaksi, paremmin olioohjelmoinnin periaatteita noudattavaksi ja otettiin käyttöön uudet dokumentaatio- ja testaustyökalut Käytännössä koko SIMO kirjoitettiin uudelleen kevään 2009 aikana, vaikka ohjelmiston käyttäjälle näkyvä osa ei suuria muutoksia kokenutkaan Uudelleenkirjoituksen etuja: selkeämpi ja helpommin laajennettava koodipohja, parempi dokumentaatio, koodin testauskäytäntöjen selkeytyminen, parempi suorituskyky, helpompi integroitavuus, paljon uusia sisäänrakennettuja ominaisuuksia, yksinkertaistettu XML syntaksi

Suuri uudelleenkirjoitus (jatk) Samalla SIMOn dokumentaatiota parannettiin kertaheitolla: manuaali käännettiin englanniksi ja päivitettiin ajan tasalle Koodin dokumentointiin (ja samalla testaukseen) muovattiin yhtenäinen käytäntö, jonka avulla myös SIMOn APIn generointi automaattisesti koodin ja testien dokumentaatiosta SIMOn sisäinen tiedon tallentaminen SQL standardien mukaiseen SQLite tietokantaan, mikä helpotti tulostietokantojen käsittelyä huomattavasti Uusien avoimen lähdekoodin kirjastojen hyödyntäminen osana SIMOa nopeutti kehitystyötä

Mallikirjaston laajentaminen Eräs koko SIMOn historian ajan jatkunut prosessi on ollut SIMOn mallikirjastojen päivittäminen, laajentaminen sekä olemassaolevien simulaattorien kehitys ja ylläpito Kantavana tavoitteena on ollut pysyä Suomessa tapahtuvan metsien mallinnuksen kehityksen mukana, eli SIMOn mallikirjastoihin pyritään lisäämään tuoreimmat julkaistut mallit Tärkeimpiä 2007-2010 jaksolla tapahtuneita mallikirjastoon liittyviä lisäyksiä ovat olleet uusimmat biomassamallit, SYKE:n Yasso07 maaperän hiilenkiertomalli, sekä erilaisten puutuotteiden elinkaarimallit Lisäksi paljon pienempiä lisäyksiä, päivityksiä sekä kirjastoissa jo olevien mallien virheiden korjauksia

Toimenpidekirjastot Vuoden 2007 loppuvaiheessa SIMOssa mukana kattava joukko erilaisia malleja hakkuu- ja metsänhoitotoimenpiteille Vuosien 2007-2010 aikana lisättiin uusia toimenpidemalleja, jotka mm. huomioivat bioenergiakorjuun ja metsäbiomassan hinnat Lisäksi iso joukko parannuksia ja uusia toiminnallisuuksia olemassaoleviin malleihin Perinteisten hintamatriisien ohella mahdollisuus käyttää hintamalleja, joiden avulla voidaan simuloida erilaisia hintaskenaarioita ja tarkastella hintojen satunnaisen vaihtelun vaikutuksia taloudelliseen kannattavuuteen

SIMO tutkimustyökaluna SIMOn uudelleenkirjoituksen yhtenä osana ohjelmistoon sisällytettiin mahdollisuus Monte Carlo simulointeihin - mahdollisuus tarkastella erilaisia satunnaisilmiöitä, kuten inventointitiedon tai kasvumallien virheitä Ajavana voimana lähinnä SIMOn aktiivinen käyttö tutkimustyökaluna Mahdollisuus käyttää SIMOa erilaisiin herkkyysanalyyseihin myös käytännön sovellutuksissa Tutkimushankkeiden jäljiltä SIMOn mallikirjastossa joukko erilaisia malleja eri inventointimenetelmille tyypillisten virheiden simulointiin, kasvumallien virheiden simulointiin, sekä puutavaralajeittaisten hintojen satunnaisvaihteluiden simulointiin

Rinnakkaislaskenta Metsäsuunnittelun tietolähteiden muuttuessa myös laskennan tietosisältö muuttuu - laskentayksiköiden määrä todennäköisemmin kasvaa kuin pienenee Suurempi laskentayksiköiden määrä vaatii suurempaa laskentakapasiteettia Ratkaisuna tähän SIMOon mahdollisuus rinnakkaistaa laskentaa useammalle prosessorille automaattisesti Tähän mennessä testattu Amazonin EC2 palvelua, jossa laskentaa tehdään pilvipalvelussa - laskentakapasiteetin helppo skaalaaminen laskentatarpeiden mukaan

SIMOn integroitavuus SIMOn pääasialliseksi käyttötavaksi muodostunut toimiminen joustavasti muokattavana laskentakomponenttina joka integroidaan osaksi laajempaa tietojärjestelmää Integrointi useimmiten siten että SIMOsta rakennetaan laskentapalvelin joka pyörii käyttäjän määrittelemässä ympäristössä Tiedon välitykseen tietojärjestelmän ja SIMOn välillä suuri määrä vaihtoehtoisia, erilaisia standardeja noudattavia rajapintoja SIMOn sisäinen tietokanta voidaan vaihtaa lennosta kolmen eri SQL kannan välillä, vaihtoehtoina SQLite, Postgres ja Oracle - käyttäjä voi valita käytettävän tietokannan

Optimointityökalut Optimointimoduli sisälsi vuoden 2007 lopussa pari heuristista algoritmia (HERO, Tabu Search) sekä rajapinnan J lineaarisen ohjelmoinnin kirjastoon Suurimmat optimointimodulin muutokset liittyvät optimoijan sisäisiin tietorakennemuutoksiin, sekä optimoinnin XML syntaksin yksinkertaistamiseen Lisäksi muutamia uusia yksinkertaisia heuristisia algoritmeja (Genetic Algorithm, Simulated Annealing, Threshold Accepting) sekä lisää toiminnallisuuksia SIMO/J rajapintaan (mm. tavoiteoptimointi) Selkeä suuntaus optimointimodulin hyödyntämisessä on ollut J:n käytön painottuminen, erityisesti jos optimointitehtävä on yhtään suurempi (heurististen menetelmien heikkoutena tehottomuus)

2007-2010 tiivistettynä 2007 lokakuu, versio 0.3.0: ensimmäinen virallinen SIMO julkaisu 2008 tammikuu, versio 0.4.0: pakotetut toimenpiteet, mallien kirjoittaminen mahdollista C:llä ja Pythonilla 2008 kesäkuu, versio 0.4.1: simulaattorin kielen valinta (en, fi), sijaintiin perustuvat mallit (DEM, lämpösumma...), simulointilogiikan (malliketjut) tiivistäminen 2009 lokakuu, versio 0.5.0: SIMOn uudelleenkirjoitus 2010 lokakuu, versio 0.6.0: hiilenkiertomallit, inventoinnin virhemallit, puutavaran hintojen stokastiset mallit, poimintahakkuumallit, heurististen optimointimenetelmien 10x nopeutuminen 2010 marraskuu, versio 0.6.1: korjauksia ja päivityksiä edelliseen versioon

2007-2010 tiivistettynä (jatk) Versionhallintamme mukaan tällä hetkellä mennään muutoksessa n:o 2319 Kaikki muutokset SIMOn historiassa tarkasteltavissa täällä: http://trac.simoproject.org/timeline Uusin versio SIMOsta aina saatavilla täältä: http://www.simo-project.org/ releases/latest/ SIMOn uusimmat kuulumiset löytyy täältä: http://blog.simo-project.org

Paikkatietomoottori Eräs SIMOn jatkokehityksen tärkeimmistä osista oli paikkatiedon- ja paikkatieto-operaatioiden tuominen mukaan simulointiin ja optimointiin Tätä oltiin jo aloiteltu alkuperäisen SIMO-hankkeen aikana Timo Pekkosen toimesta; tässä vaiheessa valmiina C-kirjasto, jossa joukko paikkatietooperaatioita vektoridatalle Suurimpana hidasteena paikkatiedon hyödyntämiselle simuloinnissa on ollut paikkatietoa käyttävien mallien puute Nyttemmin paikkatieto sisäänrakennettuna SIMOn sisäisiin tietokantoihin (Spatialite, PostGIS tai Oracle Spatial)

Käyttöliittymät Yksi SIMO2 projektin päätavoitteista on ollut käyttöliittymien kehittäminen SIMOn XML dokumenttien muokkaamiseen Kehitys hyvässä vauhdissa, tästä enemmän Jussin esityksessä...

Kehitysprosessi kehittyy SIMOon tehtyjen muutosten ja uusien toiminnallisuuksien lisäksi eteenpäin ollaan menty myös ohjelmistokehityksessä SIMOn kehityksen alkuvaiheessa puuttui kokemusta ja näkemystä siitä minkälaista on hyvä ja tehokas ohjelmistokehitys Vuosien saatossa virheistä on opittu ja Simosolille on valikoitunut joukko hyväksihavaittuja ohjelmistokehityksen menetelmiä Näistä tärkeimpinä aktiivinen versionhallinta, koodin dokumentointi- ja testausstandardit, uuden koodin ja muutosten vertaisarvionti sekä jatkuvasti pyörivä ja koodiin tehtyjä muutoksia läpikäyvä testipalvelin

Uutta verta Vuosien 2007-2010 aikana Simosolin henkilökunnan määrä on kasvanut kolmesta tämänhetkiseen seitsemään Varsinainen SIMOn kehitys aluksi Jussin, Jounin ja Antin vastuulla, mutta 2009 alkaen mukana vahvasti Joni Kivinen Käyttöliittymien kehitystyöstä vastaavat pääasiassa Simosolin muut uudet työntekijät: Petteri Tuovila, Ossi Rönnberg ja Henry Efor Uusien ohjelmoijien lisäksi SIMOn kehitystyötä on tehostanut huomattavasti kokemuksen ja osaamisen karttuminen sekä ohjelmistokehitysprosessin hioutuminen

Kiitos! Kysymyksiä, kommentteja? SIMO seminaari 23. maaliskuuta 2011 - Antti Mäkinen - SIMOn kehitys 2007-2010