OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16
|
|
- Eija Kinnunen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 OHJ-3100 Ohjelmien ylläpito ja evoluutio 1 Harjoitustyö Ohjaaja: Outi Sievi-Korte outi.sievi-korte@tut.fi TE213 Päivystys ti klo Yleiskatsaus Yleisesittely Geneettiset algoritmit Ohjelmistoarkkitehtuurit Frankenstein Tehtävänanto Johdanto Käyttöliittymä Metriikoiden määrittely Fitness-arvon laskeminen Luonnonvalinnan suorittaminen Output Dokumentti Arvostelu Palautus 1
2 Yleisesittely 3 Toteutetaan Frankenstein-työkalun laajennus Frankenstein tuottaa automaattisesti ohjelmistoarkkitehtuurisuunnitelmia Frankenstein lähtee nolla-arkkitehtuurista ja kehittää arkkitehtuuria käyttämällä suunnittelutyylejä ja malleja Arkkitehtuurin laatua arvioidaan muunneltavuuden, tehokkuuden ja ymmärrettävyyden suhteen Laadukasta arkkitehtuuria etsitään geneettisellä algoritmilla Laajennuksessa toteutetaan t t t QMOOD-metriikoita it arkkitehtuurien i laadun mittaamiseen Työssä oletetaan tuntemusta Java-ohjelmointikielestä Javan erot C++:aan? Geneettiset algoritmit 4 Geneettiset algoritmit kuuluvat meta-heuristisiin etsintäalgoritmeihin i ihi Etsintä on epädeterminististä Käytetään, kun ratkaisujoukko on suuri, ja determinististä algoritmia ei voida toteuttaa Geneettiset algoritmit pohjautuvat darwinistiseen teoriaan evoluutiosta Yksilöt katsotaan sitä laadukkaammiksi, mitä paremmin ne ovat sopeutuneet ympäristöönsä, ä ja mitä paremmat mahdollisuudet d niillä on tuottaa laadukkaita jälkeläisiä Luonnonvalinta korjaa huonot yksilöt pois, jotta populaation koko pysyy hallinnassa 2
3 5 Geneettiset algoritmit peruskäsitteitä Geneettiset algoritmit nojautuvat biologisiin käsitteisiin. Populaatio = ratkaisujoukko tietyllä ajanhetkellä Sukupolvi = ajanhetki, n. sukupolvi ilmaisee, että on tehty n iteraatiota, puhutaan n. sukupolven populaatiosta == n. populaatio Yksilö = ratkaisu Kromosomi = ratkaisun mallinnos Geeni = kromosomin (ratkaisun) muunneltava osa Alleeli li = geenin saama arvo, osan eri variaatiot t Mutaatio = geeniin (ratkaisun osaan) kohdistuva muutos Risteytys = kahden yksilön (ratkaisun) eri ominaisuuksien yhdistäminen Fitness-funktio = hyvyysfunktio = laatufunktio, laskee yksilön hyvyyden. Mitä parempi hyvyysarvo, sitä todennäköisemmin yksilö selviää luonnonvalinnasta ja osallistuu risteytyksiin 6 Geneettiset algoritmit prosessi Input: ratkaisun formalisointi kromosomimuodossa Luo populaatio Mutatoi kromosomeja Risteytä kromosomeja Laske hyvyysarvo yksilöille Suorita luonnonvalinta 3
4 7 Geneettiset algoritmit esimerkki Esimerkki: repuntäyttöongelma. Reppuun mahtuu 9 tilavuusyksikön verran tavaraa. Tarkoitus on saada reppu mahdollisimman täyteen niin, että reppu painaa mahdollisimman paljon, mutta tilavuus ei ylitä repun tilavuutta. 8 Geneettiset algoritmit esimerkki Reppuun yritetään saada mahtumaan seuraavat esineet: Tiili Cokis Kirja Läppäri Kengät Paino Tilavuus
5 Geneettiset algoritmit esimerkki 9 Mallinnus: Validi ratkaisu on joukko esineitä, jotka eivät yhteensä ylitä repun tilavuutta. Ratkaisu voidaan mallintaa bittivektorilla, jossa 0 tarkoittaa, että kyseisen indeksin määrittämää esinettä ei pakata reppuun ja 1 tarkoittaa, että kyseinen esine pakataan. Nyt vektori on kromosomi, vektorin kentät ovat geenejä ja bitit ovat alleeleja. Esimerkki: Oletetaan, että esineet mallinnetaan samassa järjestyksessä kuin edelle, eli: Tiili cokis kirja läppäri kengät Tässä ratkaisussa vain cokis on otettu reppuun mukaan, ja näin ollen reppu painaa 1 yksikön ja sen tilavuudesta on käytetty 2 yksikköä. Ratkaisu on validi, sillä tilavuusrajoite ei ylity, mutta ratkaisu ei varmasti ole optimaalinen. Geneettiset algoritmit esimerkki 10 Mutaatio muuttaa ratkaisua. Mutaatio kohdistuu yleensä yhteen geeniin, mutta voi kohdistua myös koko k kromosomiin. Mutaatio riippuu aina valitusta mallinnuksesta, sillä se vaihtaa geenin alleelin toiseen. Bittivektorin tapauksessa mutaatio on selkeä: 0 vaihtuu 1:ksi tai toisinpäin. Esimerkki: mutaatio Nyt reppuun on pakattu cokiksen lisäksi kirja, ja reppu painaa 4 yksikköä. Tilavuudesta viedään 5 yksikköä, joten ratkaisu on validi. 5
6 Geneettiset algoritmit esimerkki 11 isä Risteytys yhdistää eri ratkaisuja. Yksinkertaisimmillaan risteytyskohta arvotaan, ja ratkaisun puoliskot yhdistetään, jolloin tuloksena on kaksi uutta ratkaisua. Risteytykseen osallistuvia ratkaisuja sanotaan vanhemmiksi, ja tuotettuja ratkaisuja jälkeläisiksi. Esimerkki: äiti lapsi 1 lapsi Geneettiset algoritmit esimerkki 12 Fitness-arvolla mitataan ratkaisun hyvyyttä. Reppuesimerkissä fitness-arvo on suoraviivaisesti i i laskettavissa: mikäli tilavuutta ei ole ylitetty, ratkaisu on sitä parempi mitä painavampi se on. Yleensä fitness-arvon laskeminen ei ole yhtä suoraviivaista, eikä arvojen perusteella voida tehdä vertailua, ts. jos ratkaisu A saa fitness-arvon 1 ja ratkaisu B arvon 10, todennäköisesti B ei kuitenkaan ole 10 kertaa parempi kuin A. Fitness-arvoilla voidaan kuitenkin järjestää ratkaisut. Edellisen kalvon ratkaisuille voidaan laskea hyvyysarvot: Isä-ratkaisu sisältää cokiksen ja kirjan = 4 Äiti-ratkaisu sisältää tiilen ja kengät = 7 Lapsi 1 sisältää cokiksen ja kengät = 3 Lapsi 2 sisältää tiilen ja kirjan = 8 yksikköä 6
7 Geneettiset algoritmit esimerkki 13 Luonnonvalinta toteutetaan karsimalla huonot yksilöt pois. Helpoimmillaan pidetään vain populaation parhaat yksilöt, eliitti, ja karsitaan suoraan huonoimmat pois. Tällöin kuitenkin ki on riski, että algoritmi konvergoituu liian nopeasti. Jotta populaatiossa olisi riittävästi hajontaa, toteutetaan valinta todennäköisyyksiin perustuvalla valinnalla. Yleensä tähän yhdistetään elitismi. Esimerkki: Tarkistetaan, ovatko ratkaisut valideja: Isä-ratkaisu sisältää cokiksen ja kirjan = 5 Äiti-ratkaisu sisältää tiilen ja kengät = 6 Lapsi 1 sisältää cokiksen ja kengät = 7 Lapsi 2 sisältää tiilen ja kirjan = 4 Kaikki tilavuudet ovat alle sallitun (9). Lapsi 2 on paras yksilö (fitness-arvo 8); valitaan se eliittinä suoraan seuraavalle kierrokselle. Lopuille (isä, äiti, lapsi1) määrätään todennäköisyydet niiden fitness-arvojen perusteella. Ohjelmistoarkkitehtuurit 14 Ohjelmistoarkkitehtuuri on ikään kuin ohjelmiston luuranko ISO standardi määrittelee arkkitehtuurin käsittävän järjestelmän peruskäsitteet tai ominaisuudet omassa ympäristössään, kuvattuna elementteinä, niiden välisinä suhteina ja suunnittelua ohjaavina periaatteina Arkkitehtuurin voidaan katsoa olevan ikään kuin laki, joka ohjaa järjestelmän toteutusta Arkkitehtuuria suunnitellessa sovitaan esim. tiettyjen teknologioiden käytöstä, tietorakenteiden käytöstä ja suunnittelumallien käytöstä 7
8 Ohjelmistoarkkitehtuurit 15 Ohjelmistoarkkitehtuurin pääasiallinen tarkoitus on vastata laatuvaatimuksiin Järjestelmä voidaan yleensä toteuttaa toiminnallisuuden puolesta hyvin monella eri tavalla, mutta nämä eri toteutustavat voivat olla laadultaan hyvin erilaisia Laatua arvioidaan eri ominaisuuksien perusteella, esim. muunneltavuus, tehokkuus, luotettavuus ja käytettävyys Arkkitehtuuri pyritään suunnittelemaan niin, että mahdollisimman moni laatuvaatimus täyttyy Ohjelmistoarkkitehtuurit 16 Arkkitehtuurityylit ja suunnittelumallit ovat hyväksi havaittuja ratkaisuja tiettyihin ongelmiin Arkkitehtuurityylejä käytetään yleensä ratkaistaessa korkean tason ongelmia, jotka käsittävät koko arkkitehtuurin, kun taas suunnittelumalleja käytetään paikallisempiin, muutaman komponentin käsittäviin ongelmiin Frankensteinissa on käytössä kaksi arkkitehtuurityyliä (viestinvälittäjä ja asiakas-palvelin) sekä viisi suunnittelumallia (Mediator, Façade, Strategy, Adapter, Template Method) 8
9 Ohjelmistoarkkitehtuurit tyylit ja mallit 17 Viestinvälittäjä Ohjelmistoarkkitehtuurit tyylit ja mallit 18 Asiakas-palvelin (Client-server) 9
10 Ohjelmistoarkkitehtuurit tyylit ja mallit 19 Façade Ohjelmistoarkkitehtuurit tyylit ja mallit 20 Mediaattori 10
11 Ohjelmistoarkkitehtuurit tyylit ja mallit 21 Strategia Ohjelmistoarkkitehtuurit tyylit ja mallit 22 Adapteri 11
12 Ohjelmistoarkkitehtuurit tyylit ja mallit 23 Template Method Frankenstein 24 Toteuttaa geneettisen algoritmin ja kehittää arkkitehtuurin. Komentoriviperustainen (GUI toteutettu Eclipse plug-ininä, jätetty harjoitustyöstä pois). Input: nolla-arkkitehtuuri sekä GA:n parametrit tekstitiedostoina Output: arkkitehtuuri luokkakaaviona 12
13 Frankenstein 25 Frankenstein 26 Syöte: nolla-arkkitehtuuri == toiminnalliset vaatimukset perustuen järjestelmän j ä ns. vastuisiin ii ja domain-tuntemukseen Vastuut muutetaan luokkakaaviossa yksiselitteisesti metodeiksi ja attribuuteiksi. Jokainen arkkitehtuuri (eli ratkaisu) on yksi kromosomi. Jokainen operaatio(== metodi/attribuutti == vastuu) arkkitehtuurissa mallinnetaan yhdellä supergeenillä (SuperGene). Supergeenissä on oma kenttä jokaiselle operaation ominaisuudelle. Kromosomi/geenikoodaus on operaatio- eikä luokkalähtöinen! Kromosomissa EI ole mallinnettu luokkakaaviota! 13
14 Frankenstein työkalun käyttö 27 Työkalua käytetään komentoriviltä input file / output data file / scenarios / select_parents / select_co_point / output_graph_file / weights / probabilities / generations / population/ initialvariation / pareto / alterprobs / algorithm Syötetiedostot: input file = nolla-arkkitehtuuritiedosto, weights = painot (fitness funktiolle), probabilities = todennäköisyydet (mutaatioille) GA-parametrit: generations = sukupolvien lukumäärä, population = populaation koko, algorithm = valittu algoritmi, työssä ga Output-tiedostot: tiedostot: output data file = logitiedosto, output graph file = luokkakaaviotiedosto Muut: boolean-arvoja, harjoitustyössä käytä kaikissa arvoa false alykoti_dom.txt ehome_test.txt false false false ehome_test weights_ehome.txt probabilities.txt false false false ga Frankenstein työkalun käyttö 28 Output: Tuloksena saadaan.dot-tyyppinen tiedosto Tuottaakseen.dot-tiedoston, Frankenstein tarvitsee UMLGraph.jar-paketin, joka täytyy olla ladattuna samaan paikkaan, mistä Frankensteinia suoritetaan. UMLGraph.jar käyttää tools.jar:ia, jonka täytyy niinikään sijaita samassa paikassa..dot-tiedosto täytyy muuntaa kuvaksi GraphViz-ohjelmalla, käytetään komentoriviltä: dot Tgif ofilename.gif filename.dot 14
15 Tehtävänanto johdanto 29 Tehtävänä on laajentaa Frankenstein-työkalua siten, että voidaan vertailla omilla metriikoilla saatuja laatuarvoja ar QMOOD-metriikoihin perustuviin laatuarvioihin Harjoitustyössä toteutetaan QMOOD-metriikkakokoelmasta uudelleenkäytettävyys (reusability) ja funktionaalisuus (functionality) laatukriteereihin tarvittavat metriikat soveltuvin osin. Vertailua varten työkalua muokataan siten, että käyttäjä voi kertoa, millä metriikoilla haluaa arkkitehtuureja arvioitavan ts. käytetäänkö luonnonvalintaa suoritettaessa omia vai QMOOD-metriikoita Toteutetaan metodit, jotka laskevat QMOOD-metriikat Myös QMOOD-metriikka-arvot tallennetaan logitiedostoon Tehtävänanto käyttöliittymä 30 Käyttäjän pitää voida määritellä, mitä metriikoita käytetään vanhoja Frankenstein-metriikoita, jotka laskevat muunneltavuutta, tehokkuutta ja kompleksisuutta, vai uusia QMOOD-metriikoita Vastaavasti kuin nyt annetaan painot olemassaoleville laatukriteereille, myös QMOOD-laaduille pitää voida antaa painot. Toteutus on vapaa nykyistä yy painotiedostoa voi laajentaa tai QMOOD-painot voi antaa omassa tiedostossaan tai jollain muulla tavoin. 15
16 Tehtävänanto metriikoiden määrittely 31 Suunnitelman koko (DSC) Suunnitelman koko on yhtä kuin arkkitehtuurista löytyvien luokkien määrä. Huomaa, että normaalien luokkien lisäksi myös patterneilla on ns. teknisiä luokkia, jotka tulee laskea mukaan. DSC = design size in classes Tehtävänanto metriikoiden määrittely 32 Luokkien väliset riippuvuudet (DCC) Lasketaan, kuinka monta riippuvuutta on eri luokkien välillä. Jos operaatio a riippuu operaatio b:stä, ts. a kutsuu b:tä (a b), ja a ja b ovat eri luokissa, silloin näiden luokkien välillä on riippuvuus. Riippuvuudet yhteen suuntaan lasketaan vain kertaalleen! Esim: a b, a d, d c, e d, b f. DCC = 4. a c b d e f DCC = Direct class coupling 16
17 Tehtävänanto metriikoiden määrittely Koheesio (cohesion, CAM) QMOOD-määritelmän mukaan metodien välistä koheesiota saadaan laskettua sen mukaan, miten samanalaisia parametreja niillä on. Frankensteinissa ei oteta kantaa parametreihin, vaan metodi = operaatio = vastuu (eli suurempi kokonaisuus) metriikkaa sovelletaan hieman. Lasketaan, kuinka monta operaatiota kutsuu samaa operaatiota luokan sisällä. Koko arkkitehtuurin koheesioarvo on luonnollisesti kaikkien luokkien koheesioarvojen summa. Huom! Ei laskettavissa suoraan kuvasta, luokan sisäiset yhteydet piirretään vain kertaalleen. CAM = Cohesion among methods of class Tehtävänanto metriikoiden määrittely 34 CAM - esimerkki a b c d e f g h i j k l m n a f b f k f j f g j m j b d CAM = = 6 17
18 Tehtävänanto metriikoiden määrittely Julkisuus(CIS) Julkisuus lasketaan sen mukaan, miten moni operaatio on tarjolla rajapinnan kautta. Huomaa, että rajapinta voi olla normaali tai patternin kautta tuleva rajapinta (esim. Strategiassa). CIS = kaikkien rajapinnoista i löytyvien operaatioiden id summa CIS = Class interface size Tehtävänanto metriikoiden määrittely Hierarkiat (NOH) Hierarkioita laskettaessa summataan arkkitehtuurista löytyvien hierarkioiden määrä. Käytännössä siis summataan periytymisketjuja. Frankenstein ei (tässä vaiheessa) mahdollista sattumanvaraista periyttämistä, ja aliluokkia käytetään vain Template Method patternin tapauksessa. Täten siis hierarkioiden määrä (NOH) on yhtä kuin Template Method-patternien määrä. NOH = Number of hierarchies 18
19 Tehtävänanto fitness-arvon laskeminen 37 Fitness-funktioon lisätään uusi metodi jokaista uutta metriikkaa varten Fitness-funktiossa tulee laskea metriikoiden avulla arvot laatuarvoille Uudelleenkäytettävyys = 0.25*CAM 0.25*DCC + 0.5*CIS + 0.5*DSC Funktionaalisuus = 0.19*CAM *CIS *DSC *NOH Tehtävänanto fitness-arvon laskeminen 38 QMOOD-laatuarvojen merkitystä säädellään painolla Syötteenä annettua painoa käytetään laatuarvon kertoimena, samaan tapaan kuin Frankenstein-laatuarvoilla Mikäli paino on 0, laatuarvoja ei lasketa lainkaan Jokaisen QMOOD-metriikan arvo talletetaan omaa muuttujaansa Samoin laatuarvot talletetaan omiin muuttujiinsa 19
20 Tehtävänanto luonnonvalinta 39 Geneettinen algoritmi tekee luonnonvalinnan fitness-arvojen perusteella. Kun arkkitehtuurit ovat käyneet läpi mutaation ja fitness-arvioinnin, ne laitetaan järjestykseen fitness-arvojen perusteella. Järjestyksen pohjalta suoritetaan ns. rulettipyörävalinta (kts. tehtävänanto). Nykyisessä toteutuksessa fitness-järjestys ja sitä seuraava rulettipyörävalinta perustuu Frankenstein-metriikoihin. Harjoitustyössä tulee toteuttaa vaihtoehtoinen QMOODlaatuarvoihin perustuva fitness-järjestely (ja sitä seuraava valinta). Geneettinen algoritmi suorittaa järjestelyn ja valinnan sitten sen mukaan, mitä käyttäjä on valinnut. Tehtävänanto output 40 Output on tässä tapauksessa yhtä kuin logitiedosto, vrt. nykyinen output-tiedosto. Tiedostoon tulee jokaisen yksilön kohdalle tallentaa sille lasketut raa at metriikka-arvot. Lisäksi tiedoston loppuun tulee kerätä yhteenveto, eli jokaisen sukupolven 10 parhaan yksilön keskiarvot laatuarvoista (vrt. nykyinen output). Toteutus on vapaa, mutta tulee tehdä siten, että QMOOD-laatuarvojen ja Frankenstein-metriikoiden vertailu on mahdollisimman helppoa! 20
21 Tehtävänanto dokumentti 41 Dokumenttipohja on vapaamuotoinen. Dokumentista tulee ilmetä, mitä lisäyksiä/muutoksia koodiin on tehty kussakin eri vaiheessa, minne ko. muutokset/lisäykset on tehty (luokan nimi), ja miten mahdolliset uudet komponentit on toteutettu Käytännössä tulee käydä läpi edellä olevat kohdat käyttöliittymästä tulosteeseen. Lisäksi koodiin tulee kommentoida tehdyt muutokset SELKEÄSTI. Muutetut/lisätyt kohdat tulee jokainen kommentoida alla olevaan tyyliin /** * * <Ryhmän jäsenten nimet> *<lyhyesti, mitä on lisätty/muutettu> */ Tehtävänanto dokumentti 42 Dokumentissa tulee antaa ohje QMOOD-laajennoksen käyttöön Tarvittavat syötteet, tuloksien tulkinta Esimerkkiajo, sis. annetut syötteet (komentoriviparameterit sekä tiedostot), viimeisen sukupolven parhaan yksilön fitness-arvot sekä Frankenstein- että QMOOD-metriikoilla, keskiarvo-fitnessit molemmilla metriikoilla koko ajosta tuotettu arkkitehtuuri kuvana (luonnollisesti kuvatun arkkitehtuurin tulee olla samasta ajosta kuin annetut fitness-arvot, eli viimeisen sukupolven parhaan yksilön fitness-arvot ovat kyseisestä arkkitehtuurista). PALAUTE 21
22 Arvostelu minimivaatimukset 43 Minimivaatimuksin (pakolliset vaatimukset) tehdystä harjoitustyöstä saa 1-4 pistettä. Työn tulee muodostaa testattava kokonaisuus! 1-3 pistettä saa, mikäli työstä löytyy kaikki vaaditut osiot, mutta esim. metriikoiden lasku ei tapahdu oikein, syötteiden annossa tai output-tiedostossa on jotain vikaa tai output on toteutettu vaikeaselkoisesti. 4 pistettä saa, mikäli kaikki vaatimukset toteutuvat, metriikat lasketaan oikein, ja syötteet ja output on toteutettu laadukkaasti. Arvostelu minimivaatimukset 44 Käyttäjä voi valita, haluaako käyttää Frankenstein- vai QMOODmetriikoita arkkitehtuureita järjestettäessä Käyttäjä voi antaa painot uusille QMOOD-laatukriteereille GA suorittaa arkkitehtuurien valinnan käyttäjän valinnan mukaan (QMOOD tai Frankenstein-laatuarvot) Fitness-funktioon on toteutettu metriikat DSC, DCC, CAM Fitness-arvoina tallennetaan metriikoihin perustuvat QMOODlaatuarvot Uudelleenkäytettävyys ja Funktionaalisuus (siltä osin kuin toteutetut metriikat ne määrittelevät). 22
23 Arvostelu - minimivaatimukset 45 Output-tiedostoon saadaan talteen jokaisen yksilön QMOOD- laatuarvot eriteltyinä i metriikoittain i i Output-tiedostoon kerätään jokaisen sukupolven 10 parhaan yksilön keskiarvot myös QMOOD-metriikoista laatuarvoittain (vrt. nykyinen output) Dokumentointi (sekä itse dokumentti että kommentit) on tehty ohjeiden mukaisesti Arvostelu täydellisesti toteutettu tehtävänanto 46 Harjoitustyöstä voi saada maksimissaan 6 pistettä. Pakollisen osuuden lisäksi i voi toteuttaa valinnaisia i i osuuksia, joilla voi nostaa pistemäärää. Toteutettu metriikka CIS, ja päivitetty laatuarvot siten, että kyseinen metriikka on myös otettu huomioon (1p) Toteutettu metriikka NOH, ja päivitetty laatuarvot siten, että kyseinen metriikka on myös otettu huomioon (1p) Ohjelma tuottaa UML-luokkakaavion tarvitsemat tiedot.javatiedostoihin, joiden perusteella UMLGraph tuottaa javadocia hyväksikäyttäen.dot-tyyppisen graafitiedoston. Muokkaa ohjelmaa siten, että.java-tiedostot poistetaan automaattisesti, kun graafitiedosto on tuotettu. (1p). 23
24 Palautus 47 Harjoitustyö tulee palauttaa vastaavanlaisena pakettina kuin se on tällä hetkellä ladattavissa. Ts. ryhmien tulee toteuttaa muutoksensa koodiin, tallentaa paketti, ja palauttaa se harjoitustyön ohjaajalle. Zip-paketti tulee nimetä ryhmän mukaan esim: Virtanen_Nieminen_Koskinen.zip Dokumentti tulee olla mukana zip-paketissa. Palautus ohjaajan sähköpostiin tai verkkoon (lähetä ohjaajalle linkki, josta paketin voi ladata). Harjoitustyö on palautettava viimeistään
19.10.2011. Harjoitustyö Ohjaaja: Outi Räihä outi.raiha@tut.fi TE213. OHJ-3100 Ohjelmien ylläpito ja evoluutio. Yleiskatsaus.
OHJ-3100 Ohjelmien ylläpito ja evoluutio 1 Yleiskatsaus 2 Harjoitustyö Ohjaaja: Outi Räihä outi.raiha@tut.fi TE213 Yleisesittely Geneettiset algoritmit Ohjelmistoarkkitehtuurit Darwin-työkalu Tehtävänanto
LisätiedotArkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto
OHJ-3200 Ohjelmistoarkkitehtuurit 1 Arkkitehtuurien tutkimus Outi Räihä 2 Darwin-projekti Darwin-projekti: Akatemian rahoitus 2009-2011 Arkkitehtuurisuunnittelu etsintäongelmana Geneettiset algoritmit
LisätiedotHarjoitustyö Ohjaaja: Outi Räihä TE213
OHJ-3100 Ohjelmien ylläpito ja evoluutio 1 Harjoitustyö Ohjaaja: Outi Räihä outi.raiha@tut.fi TE213 2 Yleiskatsaus Yleisesittely Geneettiset algoritmit Ohjelmistoarkkitehtuurit Darwin-työkalu Tehtävänanto
LisätiedotOHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö 2011
OHJ-3100 Ohjelmien ylläpito ja evoluutio Harjoitustyö 2011 Sisällys 1. Johdanto... 2 1.1 Yleisesittely... 2 1.2 Geneettiset algoritmit... 2 1.3 Ohjelmistoarkkitehtuurit... 3 1.3.1 Perusasioita... 3 1.3.2
LisätiedotDarwin: Tutkimusprojektin esittely
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
LisätiedotTIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010
TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Evoluutiopohjainen monitavoiteoptimointi MCDM ja EMO Monitavoiteoptimointi kuuluu
LisätiedotGA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit
GA & robot path planning Janne Haapsaari AUTO3070 - Geneettiset algoritmit GA robotiikassa Sovelluksia liikkeen optimoinnissa: * eri vapausasteisten robottien liikeratojen optimointi * autonomisten robottien
LisätiedotTyö tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti
Lisätiedot9. Muunneltavuuden hallinta
9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden
Lisätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
LisätiedotGeneettiset algoritmit
Geneettiset algoritmit Evoluution piirteitä laskennassa Optimoinnin perusteet - Kevät 2002 / 1 Sisältö Geneettisten algoritmien sovelluskenttä Peruskäsitteitä Esimerkkejä funktion ääriarvon etsintä vangin
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotAS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.
AS-84.161 Automaation signaalinkäsittelymenetelmät Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy. Tämän jälkeen täytyy: 1. Lisätä uusi sisääntulo edit->add input 2. nimetä
LisätiedotHarjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann
Lisätiedotohjelman arkkitehtuurista.
1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotAineistokoko ja voima-analyysi
TUTKIMUSOPAS Aineistokoko ja voima-analyysi Johdanto Aineisto- eli otoskoon arviointi ja tutkimuksen voima-analyysi ovat tilastollisen tutkimuksen suunnittelussa keskeisimpiä asioita. Otoskoon arvioinnilla
LisätiedotTietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
Lisätiedotetunimi, sukunimi ja opiskelijanumero ja näillä
Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi
LisätiedotKatkonnanohjaus evoluutiolaskennan keinoin
Katkonnanohjaus evoluutiolaskennan keinoin Askel kohti optimaalista tavaralajijakoa Veli-Pekka Kivinen HY, Metsävarojen käytön laitos Katkonnanohjauksen problematiikkaa Miten arvo-/tavoitematriisit tulisi
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
LisätiedotNopea kertolasku, Karatsuban algoritmi
Nopea kertolasku, Karatsuban algoritmi Mikko Männikkö 16.8.2004 Lähde: ((Gathen and Gerhard 1999) luku II.8) Esityksen kulku Algoritmien analysointia (1), (2), (3), (4) Klassinen kertolasku Parempi tapa
LisätiedotTIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010
TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 NSGA-II Non-dominated Sorting Genetic Algorithm (NSGA) Ehkä tunnetuin EMO-menetelmä
LisätiedotTOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!
TARJOUSPYYNTÖ / LIITE 1 1 (5) TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM! Tällä liitteellä yksilöidään hankinnan kohteen ominaisuuksia ja toiminnallisuuksia, jotka
LisätiedotAlgoritmit 2. Luento 12 To Timo Männikkö
Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
Lisätiedot805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016)
805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016) Tavoitteet (teoria): Hallita autokovarianssifunktion ominaisuuksien tarkastelu. Osata laskea autokovarianssifunktion spektriiheysfunktio. Tavoitteet
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
LisätiedotUutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3
Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2
LisätiedotHakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
LisätiedotNspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen
Nspire CAS - koulutus Ohjelmiston käytön alkeet 3.12.2014 Pekka Vienonen Ohjelman käynnistys ja käyttöympäristö Käynnistyksen yhteydessä Tervetuloa-ikkunassa on mahdollisuus valita suoraan uudessa asiakirjassa
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotToinen harjoitustyö. ASCII-grafiikkaa
Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita
LisätiedotKerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:
Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.
LisätiedotTeknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori
Testitapaukset - Koordinaattieditori Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Toiminnallisuuden testitapaukset...5 3.1 Uuden projektin avaaminen...5 3.2 vaa olemassaoleva projekti...6
LisätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
LisätiedotHarjoitustehtävät viikolle 42
Harjoitustehtävät viikolle 42 1. Suunnittele pieni työkaluohjelma, joka laskee keskiarvon lukujoukosta. Käyttöliittymä koostuu perusikkunan lisäksi yhdestä valikosta, jossa on kaksi komentoa: Start (aloita
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
LisätiedotIII Perinnöllisyystieteen perusteita
Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita 15. Populaatiogenetiikka ja evoluutio 1. Avainsanat 2. Evoluutio muuttaa geenipoolia 3. Mihin valinta kohdistuu? 4. Yksilön muuntelua
Lisätiedot1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi
LisätiedotAlgoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
LisätiedotOhjelmistojen mallintaminen luokkamallin lisäpiirteitä
582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia
LisätiedotUpdateIT 2010: Uutisten päivitys
UpdateIT 2010: Uutisten päivitys Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: gp@golfpiste.com 2 Sisällys Uutisen lisääminen... 1
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotDigi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
LisätiedotKORJAUSVELAN LASKENTAPERIAATTEIDEN MÄÄRITYSHANKE. Seminaariaineisto Janne Rantanen
KORJAUSVELAN LASKENTAPERIAATTEIDEN MÄÄRITYSHANKE Seminaariaineisto Janne Rantanen 8.4.2013 2 1 Hankkeen tavoitteet Korjausvelan periaatteiden määrittämishankkeelle asetettiin seuraavat tavoitteet: laskennan
LisätiedotAlgoritmit 2. Luento 12 Ke Timo Männikkö
Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
LisätiedotAlgoritmit 2. Luento 7 Ti Timo Männikkö
Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26
Lisätiedot4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
LisätiedotT SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
Lisätiedot10. Muunneltavuuden hallinta: variaatiopisteet
10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota.
LisätiedotAvainsanojen poimiminen Eeva Ahonen
Avainsanojen poimiminen 5.10.2004 Eeva Ahonen Sisältö Avainsanat Menetelmät C4.5 päätöspuut GenEx algoritmi Bayes malli Testit Tulokset Avainsanat Tiivistä tietoa dokumentin sisällöstä ihmislukijalle hakukoneelle
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
Lisätiedot10. Muunneltavuuden hallinta: variaatiopisteet
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat,
LisätiedotDynaamiset regressiomallit
MS-C2128 Ennustaminen ja Aikasarja-analyysi, Lauri Viitasaari Matematiikan ja systeemianalyysin laitos Perustieteiden korkeakoulu Aalto-yliopisto Syksy 2016 Tilastolliset aikasarjat voidaan jakaa kahteen
LisätiedotLUT Moodle -opiskelijan opas 2014
LUT Moodle -opiskelijan opas 2014 Sisällysluettelo 1. Moodle... 2 1.1 Aloitussivu... 3 1.2 Navigointi ja Asetukset... 4 1.2.1 Navigointi... 4 1.2.2 Asetukset... 6 1.2.3 Murupolku... 7 2. Kurssit... 7 2.1
LisätiedotEvoluutio. BI Elämä ja evoluutio Leena Kangas-Järviluoma
Evoluutio BI Elämä ja evoluutio Leena Kangas-Järviluoma 1 Evoluutio lajinkehitystä, jossa eliölajit muuttuvat ja niistä voi kehittyä uusia lajeja on jatkunut elämän synnystä saakka, sillä ei ole päämäärää
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOhjelmistoarkkitehtuurit harjoitustyö 2008
Ohjelmistoarkkitehtuurit harjoitustyö 2008 1 Johdanto Harjoitustyönä toteutetaan viestipohjaiseen kommunikointiin perustuva simulointi tuotantoketjusta tilauksen saapumisesta tuotteen valmistumiseen. Työn
LisätiedotT SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
LisätiedotTampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus
Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2008
Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen
LisätiedotLinkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa
LisätiedotLuokka- ja oliokaaviot
Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka
LisätiedotSokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen
LisätiedotS Laskennallinen systeemibiologia
S-114.2510 Laskennallinen systeemibiologia 3. Harjoitus 1. Koska tilanne on Hardy-Weinbergin tasapainossa luonnonvalintaa lukuunottamatta, saadaan alleeleista muodostuvien eri tsygoottien genotyyppifrekvenssit
LisätiedotKertaus: yleistys-erikoistus ja perintä
Kertaus: yleistys-erikoistus ja perintä Nauta, Lehmä ja Kuttu ovat Kotieläimiä, Kotieläimet Eläimiä Kotieläimillä (siis myös Naudoilla, Lehmillä ja Kutuilla) on Omistaja Kuttu ja Lehmä toteuttavat rajapinnan
LisätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
Lisätiedoteshop manuaali Atea Finland Oy 26.2.2015
2015 eshop manuaali Atea Finland Oy 26.2.2015 1 Sisältö 1.Yleistä... 2 2. Valikot... 2 2.1 Ylävalikko... 2 2.1.1. Omat sivut... 2 2.1.2. Asiakaspalvelu... 2 2.1.3. Lisenssit... 3 2.1.5. Ylläpito... 3 2.1.6.
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotOhje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE. Kirjautuminen Moodleen ja työtilan valitseminen
Ohje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE Kirjautuminen Moodleen ja työtilan valitseminen 1. Verkko-osoite: http://moodle.metropolia.fi 2. Kirjautuminen: omat verkkotunnukset 3. Oma Moodlessa näkyvät
LisätiedotTIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010
TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla
LisätiedotA-Tiilikate objektikirjasto
A-Tiilikate objektikirjasto 15.1.2014 A-Tiilikate-objektikirjasto toimii ArchiCAD 14, 15, 16 ja 17 -versioissa. Kirjaston käyttöön tarvitaan Graphisoftin Tarvikkeet-laajennus. Tarvikkeet-laajennuksen käyttöönotto
Lisätiedot1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot
Helsingin yliopisto, Itä-Suomen yliopisto, Jyväskylän yliopisto, Oulun yliopisto, Tampereen yliopisto ja Turun yliopisto Matematiikan valintakoe (Ratkaisut ja pisteytys) 500 Kustakin tehtävästä saa maksimissaan
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotKoodimalli Code Model
Koodimalli Code Model Luento 6 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu ja sen hallitseminen Arkkitehtuuria
LisätiedotEvolutiivisesti stabiilin strategian oppiminen
Evolutiivisesti stabiilin strategian oppiminen Janne Laitonen 8.10.2008 Maynard Smith: s. 54-60 Johdanto Käytös voi usein olla opittua perityn sijasta Tyypillistä käytöksen muuttuminen ja riippuvuus aikaisemmista
Lisätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotLausekielinen ohjelmointi II Ensimmäinen harjoitustyö
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla StringStats-ohjelma, joka laskee esikäsittelemästään merkkijonosta joitakin tunnuslukuja. Lausekielinen ohjelmointi II
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotHarjoitus 6 -- Ratkaisut
Harjoitus 6 -- Ratkaisut 1 Ei kommenttia. 2 Haetaan data tiedostosta. SetDirectory"homeofysjmattas" SetDirectory "c:documents and settingsmattasdesktopteachingatk2harjoitukseth06" netnfstuhome4ofysjmattas
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotHirviö Vertaistestausraportti
Hirviö Vertaistestausraportti Jani Heikkinen Anssi Kalliolahti Jukka Larja Kim Nylund Liia Sarjakoski Samuli Sorvakko Timo Toivanen 8. maaliskuuta 2005 1 Sisältö 1 Johdanto 3 2 Testauksen kattavuus 3 2.1
LisätiedotKirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
LisätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2007
Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien
LisätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotValitse ruudun yläosassa oleva painike Download Scilab.
Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download
Lisätiedot4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,
Lisätiedot