Darwin: Tutkimusprojektin esittely

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

Harjoitustyö Ohjaaja: Outi Räihä TE213

Harjoitustyö Ohjaaja: Outi Räihä TE213. OHJ-3100 Ohjelmien ylläpito ja evoluutio. Yleiskatsaus.

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö 2011

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Katkonnanohjaus evoluutiolaskennan keinoin

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Esiopetuksen arvot. Arvokysely tammikuu 2015

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

Mat Systeemien identifiointi

12. Kehysarkkitehtuurit

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI, ESA SALMIKANGAS

Harjoitustehtävät ja ratkaisut viikolle 48

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

Sähköstaattisen potentiaalin laskeminen

Ohjelmoinnin perusteet Y Python

Geneettiset algoritmit

Kummi 2- tarkkaavaisuushäiriöinen oppilas koululuokassa

Tarkka kohdentaminen potentiaalisiin asiakkaisiin oli avain menestykseen CASE Fresh Fitness

Algoritmit 1. Luento 13 Ti Timo Männikkö

Harjoitustehtävät viikolle 42

Toimialan ja yritysten uudistuminen

Aluksi Kahden muuttujan lineaarinen epäyhtälö

AHOT korkeakouluissa hanke: Työelämässä hankitun osaamisen tunnustaminen Itä- Suomen korkeakouluissa hanke:

Rovaniemi.fi. Verkkopalvelun kehitysprosessi

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 1:2011

Rohkeus uudistua ja kasvaa. Uskallus uudistua, rohkeus rikkoja rajoja SMTS Helmiseminaari

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 3:2011

Hyvä vesihuoltohanke, suunnittelijan näkökulma


Lentotiedustelutietoon perustuva tykistön tulenkäytön optimointi (valmiin työn esittely)

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 2:2012

etunimi, sukunimi ja opiskelijanumero ja näillä

Suonenjoki. Asukasluku

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Algoritmit 2. Luento 2 To Timo Männikkö

30 + x ,5x = 2,5 + x 0,5x = 12,5 x = ,5a + 27,5b = 1,00 55 = 55. 2,5a + (30 2,5)b (27,5a + 27,5b) =

Stokesin lause LUKU 5

Terveydenhuollon järjestämissuunnitelma

Asteen verran paremmin

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 1:2012

Algoritmit 2. Luento 12 To Timo Männikkö

IIZP2010 Järjestelmäprojekti 5 op

TILASTOLLINEN LAADUNVALVONTA

Määrätty integraali. Markus Helén. Mäntän lukio

MYEERIKKILÄ OHJEET PELAAJALLE

Osa 15 Talouskasvu ja tuottavuus

isomeerejä yhteensä yhdeksän kappaletta.

Datalähtöinen IT-palveluprosessien kehittäminen, analysointi ja suorituskyvyn mittaaminen Prosessipäivät 2016 Matti Erkheikki QPR Software

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

KÄYTTÖOHJE FLSNIF KÄYTTÖÖNOTTO V2.2 ( ) 1 (5)

UML- mallinnus: Tilakaavio

Matematiikan tukikurssi

Avainsanojen poimiminen Eeva Ahonen

Drop out-ilmiö SPL:n Turun piirin juniorijalkapallossa

Tutkimuksen lähtökohtana toimintaympäristön muutos o o o o o Ammattikorkeakoulut käyvät läpi rakenteellista muutosta -> strategisen ja tavoitteellisem

Sähkömarkkinoiden simulointiohjelman hyödyntäminen sähkötehon riittävyyden analysoinnissa

MAA10 HARJOITUSTEHTÄVIÄ

Potilastietojärjestelmän laatu Mittaa ja paranna potilastietojärjestelmän laatua

Strategia, johtaminen ja KA. Virpi Einola-Pekkinen

Talousmatematiikan perusteet: Luento 11. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Ajankohtaista FinELibkonsortiossa

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

Laakerin kestoikälaskenta ISO-281, ISO-281Add1 ja ISO16281 mukaan

Tutkimusmenetelmät-kurssi, s-2004

Energiatehokkuus ja lämmitystavat. Keski-Suomen Energiatoimisto

Algoritmit 2. Luento 2 Ke Timo Männikkö

DNA sukututkimuksen tukena

Trichoderma reesein geenisäätelyverkoston ennustaminen Oskari Vinko

YKSILÖLLINEN ELÄMÄNSUUNNITTELU

j n j a b a c a d b c c d m j b a c a d a c b d c c j

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Liikkujaryhmien segmentointi liikkumisen ohjauksen taustana. Tytti Viinikainen

Pääkaupunkiseudun Reittiopas PALVELUN ESITTELY

Matematiikan tukikurssi 3.4.

Ravintovartti, teemana lautasmalli

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Dialogisuus vanhempien osallisuuden välineenä

POHJOIS-POHJANMAAN SAIRAANHOITOPIIRI. Laatutyö - laadukas toiminta terveydenhuollossa

MTTTP5, luento Otossuureita ja niiden jakaumia (jatkuu)

Vanhemmuus ja kotoutuminen, verkostojen ja vertaisuuden merkitys

Ohjelmistoarkkitehtuurit. Kevät

1(5) Julkisyhteisöjen rahoitusasema ja perusjäämä

ẋ(t) = s x (t) + f x y(t) u x x(t) ẏ(t) = s y (t) + f y x(t) u y y(t),

Verkkokurssien ulkopuolinen arviointi. Tie Vie - asiantuntijakoulutus Turku, Aino-Maija Hiltunen HY, HILMA-verkosto

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on

Perusopetuksen aamu- ja iltapäivätoiminnan laadun arviointi 2016 Västankvarns skola/ Tukiyhdistys Almus ry.

10. Painotetut graafit

Maisema-arkkitehtuurin perusteet 1A, syksy 2015 Pinnanmuodot-tehtävään ArcMap-ohjeet

Lisää segmenttipuusta

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

T Luonnollisten kielten tilastollinen käsittely

MISSÄ MENNÄÄN TIETOMALLINNUKSESSA?

KURSSIVALINNAT & YLIOPPILASKIRJOITUKSET

S Laskennallinen Neurotiede

Mikä luo nuorelle turvallisuuden tunnetta kodin ja viranomaisten välissä

Biomassaterminaali selvitys. Uusituvan energian toimialaraportin julkistustilaisuus, Astrumkeskus,

Transkriptio:

1 Darwin: Tutkimusprojektin esittely Tutkimusongelma: voidaanko ohjelmistoarkkitehtuuri generoida automaattisesti? Suomen Akatemian rahoittama tutkimusprojekti 2009-2011 TTY & TaY yhteistyö Ks. http://practise.cs.tut.fi/project.php?project=darwin

Lähtökohtia 2 Oletetaan, että on annettu nolla-arkkitehtuuri, järjestelmän toiminnallisuuden osittaminen huomioimatta laatuvaatimuksia on olemassa (suuri) joukko standardiratkaisuja, joilla voidaan vaikuttaa järjestelmän laatuominaisuuksiin (patternit, tyylit ym.) arkkitehtuurin suunnittelu tarkoittaa näiden ratkaisujen soveltamista nollaarkkitehtuuriin on olemassa tapa mitata miten hyvä arkkitehtuuri on suhteessa tiettyihin laatuvaatimuksiin (esm. muunneltavuus, tehokkuus, yksinkertaisuus). Ohjelmistoarkkitehtuurin suunnittelu voidaan ymmärtää etsintäongelmana: hae standardiratkaisujen kombinaatio, joka optimoi arkkitehtuurin hyvyyden Suuri hakuavaruus => heuristinen hakumenetelmä. Tässä projektissa valittu geneettinen algoritmi (GA)

3 Geneettiset algoritmit risteytyminen eliitti sukupolvi i luonnon valinta: sukupolvi i+1 fitness-arvon laskeminen mutaatio

Lopputulos 4 Tulos: Viimeisen sukupolven paras yksilö Sukupolvi 0 Sukupolvi 1 Sukupolvi n

Soveltaminen arkkitehtuureihin 5 Yksilö: Luokkakaaviona esitetty arkkitehtuuri Alkupopulaatio (sukupolvi 0): Nolla-arkkitehtuurista satunnaisesti mutatoituja arkkitehtuuriyksilöitä Mutaatiot: Viestinvälittäjä, Viestipohjainen kommunikointi, Asiakas-palvelin tyyli, Edustaja, Sovitin, Fasaadi, Välittäjä, Strategia, Operaatiorunko Mutaatio: ratkaisun lisääminen tai poistaminen Risteytyminen: Lapset saavat osan arkkitehtuurista isältä, osan äidiltä Satunnaisristeytyminen: vanhemmat ja jakokohta valittu satunnaisesti Valikoiva risteytyminen: vanhemmat valittu toisiaan täydentävinä, jakokohta valittu niin että kummankin hyvä osa tulee lapsiin

Fitness 6 sf1 positiivinen muunneltavuus sf2 negatiivinen muunneltavuus sf3 positiivinen tehokkuus sf4 negatiivinen tehokkuus sf5 kompleksisuus Painoja wi säätämällä voidaan ilmaista laatuominaisuuksien suhteellista tärkeyttä Lisäksi fitness-funktioon voidaan ottaa mukaan nk. muunneltavuusskenaarioita: tarkempia tietoja joidenkin toimintojen muutosherkyyksistä ja muutosten todennäköisyyksistä Projektissa tarkasteltu myös nk. Pareto-optimaalisuutta: ei yhtä painotettua fitness-funktiota, vaan kullekin laatuominaisuudelle oma fitness funktio, tuotetaan monta ratkaisua, joissa eri asiat ovat hyviä (nk. Pareto rintama)

7 Geneettinen arkkitehtuurin syntetisointi

Toiminnalliset vaatimukset sekvenssikaavioina 8

Sekvenssikaavioista voidaan johtaa nollaarkkitehtuuri 9 Osa nollaarkkitehtuurista:

10 Fitnessin kehittyminen Tool workshop 22.4.2009

Tulos: nolla-arkkitehtuuri + ratkaisut 11

Työkalu 12 Use case diagram Evolution controls Class diagram Family tree Settings view Evolution explorer Menu group Mutations view Scenarios view Weights view Generation view

Koe: kuinka hyviä arkkitehtuureja näin saadaan? 13 Mitä tarkoittaa hyvä arkkitehtuuri? 10 opiskelijalle annettiin arkkitehtuurin suunnittelutehtävä (valittu satunnaisesti 38:sta) Samoilla lähtötiedoilla tuotettiin geneettisesti 10 ratkaisua Ratkaisut paritettiin satunnaisesti (opiskelijan ratkaisu, GA ratkaisu) Parit annettiin koetehtävävastauksina neljän asiantuntijan arvioitavaksi (pisteet 0, 3, 5)

14 Tulokset e1,, e4: asiantuntijat ai: automaattisesti tuotettu ratkaisu mi: opiskelijan tuottama ratkaisu Parittainen vertailu:

15 Yhteenvetoa Kohtuullinen ohjelmistoarkkitehtuuri on mahdollista tuottaa automaattisesti tietyin edellytyksin: 1) Nolla-arkkitehtuuri (tai tarkennetut käyttötapaukset) voidaan antaa lähtötietona 2) Kattava kokoelma potentiaalisia standardiratkaisuja on käytettävissä 3) Arkkitehtuuria tarkastellaan sellaisten laatuominaisuuksien kannalta, jotka ovat mitattavissa arkkitehtuurin esityksestä