Harjoitustyö Ohjaaja: Outi Räihä TE213

Koko: px
Aloita esitys sivulta:

Download "Harjoitustyö Ohjaaja: Outi Räihä TE213"

Transkriptio

1 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 Johdanto Skenaarioiden määrittely Käyttöliittymä Skenaarioiden tulkinta Fitness-arvon laskeminen Output Arvioitu työjakauma Dokumentti Arvostelu Palautus 1

2 Yleisesittely 3 Toteutetaan Darwin-työkalun laajennus Darwin tuottaa automaattisesti ohjelmistoarkkitehtuurisuunnitelmia Darwin 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 mahdollistetaan tehokkuusskenaarioiden määrittely ja tulkinta Työssä oletetaan tuntemusta Eclipse-rajapinnoista ja Javaohjelmointikielestä Geneettiset algoritmit 4 Geneettiset algoritmit kuuluvat meta-heuristisiin etsintäalgoritmeihin 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 niillä on tuottaa laadukkaita jälkeläisiä Luonnonvalinta korjaa huonot yksilöt pois, jotta populaation koko pysyy hallinnassa 2

3 Geneettiset algoritmit - peruskäsitteitä 5 Geneettiset algoritmit nojautuvat biologisiin käsitteisiin. Populaatio = ratkaisujoukko tietyllä ajanhetkellä Sukupolvi = ajanhetki, n. sukupolvi ilmaisee, että on tehty n iteraatiota, puhutaan n. sukupolven populaatio == n. populaatio Yksilö = ratkaisu Kromosomi = ratkaisun mallinnos Geeni = kromosomin (ratkaisun) muunneltava osa Alleeli = geenin saama arvo, osan eri variaatiot 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 Geneettiset algoritmit - prosessi 6 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 9 Geneettiset algoritmit esimerkki 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 bititovat 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. 10 Geneettiset algoritmit - esimerkki Mutaatio muuttaa ratkaisua. Mutaatio kohdistuu yleensä yhteen geeniin, mutta voi kohdistua myös koko 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 puoliskat 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 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 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 Darwinissa 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 Ohjelmistoarkkitehtuurit - arviointi 24 Arkkitehtuurille ei voida antaa yksikäsitteistä laatuarvosanaa Yksi tunnetuimpia arkkitehtuurien arviointimekanismeja on ATAM. Eri sidosryhmät esittävät laatuvaatimuksia omasta näkökannastaan Vaatimukset ovat usein ristiriitaisia Laatuvaatimukset esitetään ATAM-arvioinnissa skenaarioiden avulla Skenaario kuvaa todennäköistä tilannetta jonkin tietyn laatuattribuutin suhteen Skenaarioille annetaan prioriteetti ja muutosskenaarioiden kohdalla arvioitu todennäköisyys 12

13 Darwin 25 Tarjoaa käyttöliittymän työkalun taustalla olevalle GA-moottorille. GA-moottori toteuttaa geneettisen algoritmin ja kehittää arkkitehtuurin. Darwinissa puolestaan on toteutettu rajapinnat GA-moottoriin sekä käyttöliittymä. Darwin on toteutettu Java-ohjelmointikielellä, joten Javan osaaminen on oleellista. Darwin on Eclipse plug-in, joten Eclipse API:n tunteminen on suureksi hyödyksi harjoitustyössä. Eri kaavioiden tuottamiseen käytetään Papyrus -plug-iniä, ja fitness-käyrän kuvaamiseen on käytetty JFreeChart -plug-iniä. Darwin 26 Generation 1..* 1..* Architecture FitnessValue Evolution Period Scenario MutationProbabilities 1..* Weights * Settings MODEL CONTROLLER VIEW Scenarios View Weights View Settings View Mutations View Generation View Evolution Controls Evolution Explorer 13

14 27 Darwin Use case diagram Evolution controls Class diagram Family tree Settings view Evolution explorer Menu group Mutations view Scenarios view Weights view Generation view 28 Darwin GA -moottori 14

15 Tehtävänanto - johdanto 29 Darwin-työkalua laajennetaan siten, että tehokkuutta voidaan arvioida skenaarioiden kautta Tehokkuusskenaarioina käytetään käyttötapauksia. Skenaarion katsotaan toteutuvan sitä paremmin, mitä nopeammin käyttötapauksesta suoriudutaan Jokaisesta käyttötapauksesta suoriudutaan tehokkaimmin nollaarkkitehtuurivaiheessa. Kun arkkitehtuuria parannellaan muunneltavuuden suhteen, sen tehokkuus laskee Tehokkuusskenaarioiden avulla arkkitehtuurisuunnittelua voidaan ohjailla arvottamalla tehokkuuskriittiset käyttötapaukset muita korkeammiksi Jotta tehokkuusskenaarioita voidaan käyttää, tulee toteuttaa niiden määrittely, tarvittavat muutokset käyttöliittymään, skenaarioiden tulkinta, skenaariofitness-arvon laskeminen ja fitness-arvon näyttäminen käyttäjälle Tehtävänanto skenaarion määrittely 30 Yksi käyttötapaus määrittelee yhden skenaarion. Käyttötapaus voi olla yksi (nolla-)arkkitehtuurin määrittelevistä käyttötapauksista, määrittelevän käyttötapauksen osa tai täysin uusi käyttötapaus. Käyttäjä määrittelee skenaariot antamalla tarvittavat sekvenssikaaviot, joissa yksi sekvenssikaavio kuvaa yhden käyttötapauksen eli skenaarion. Käyttötapaus on käytännössä sarja operaatioiden välisiä kutsuja, esim. keitäkahvia laitakahvikonepäälle mittaavesi mittaakahvi avaavesi lämmitäkahvi päivitänäyttö. Sekvenssikaavioon mahdollisesti tulevat toimintaok -tyyliset paluukutsut eivät kuulu skenaarioon. 15

16 Tehtävänanto skenaarioiden määrittely 31 HUOM! Uusia operaatioita tai operaatioiden välisiä riippuvuuksia ei voida määritellä skenaarioita määritellessä! Käytännössä siis uusi käyttötapaus tulee rakentaa olemassa olevien käyttötapausten pohjalta käyttämällä samoja kutsusekvenssejä tai niiden osia. Tehtävänanto - käyttöliittymä 32 Skenaariot syötetään erillisinä sekvenssikaavioina. Annetut skenaariot tulee voida tallentaa (esim. XML-muodossa tai sekvenssikaaviomuodossa) ja jälleen ladata Scenarios-näkymää tulee laajentaa siten, että nykyisten muunneltavuusskenaarioiden lisäksi se listaa myös tuotetut/annetut tehokkuusskenaariot ja mahdollistaa tehokkuusskenaarioiden lataamisen ja rangaistuskertoimien antamisen Listassa jokaiselle skenaariolle tulee olla nimi sekä sekvenssikaavion kutsujen määrä Weights-näkymään tulee lisätä kohta tehokkuusskenaarioille, ts. tehokkuusskenaariolle tulee voida antaa oma painonsa 16

17 Tehtävänanto skenaarion tulkinta 33 Kun skenaariot on annettu sekvenssikaavioina, ne tulee koodata muotoon, jonka GA ymmärtää GA:n käsittelemää koodattua muotoa käytetään tehokkuuslaskennassa Olemassa olevaa koodausta ja tulkintaa muunneltavuusskenaarioille voi käyttää pohjana, mutta on huomioitava, että tehokkuusskenaariot ovat luonteeltaan hyvin erilaisia Valitun koodaus/tulkintatavan tulisi olla joustava ja ottaa huomioon, että vastaisuudessa voidaan haluta lisätä erityyppisiä tehokkuusskenaarioita. Tehtävänanto fitness-arvon laskeminen 34 Fitness-funktioon lisätään uusi osafitness-funktio tehokkuusskenaarioiden fitness-arvon laskemiseen. Skenaariofitness-arvon käyttöönottoa säädellään painolla; mikäli paino on 0, osafunktiota ei luonnollisesti tule laskea mukaan. Muissa tapauksissa (paino > 0) tehokkuusskenaariofitness käyttäytyy kuten muutkin osafitness-funktiot, eli se lasketaan osaksi kokonaisfitness-arvoa. Tehokkuusseknaariofitness-arvot tulee rekisteröidä erikseen, jotta arvon kehitystä voidaan tarkastella ajon jälkeen. 17

18 Tehtävänanto fitness-arvon laskeminen 35 Tehokkuutta heikentäviä ratkaisuja rankaistaan seuraavasti: Jokaisesta luokkien välisestä kutsusta tulee rankaisu -1 Jokaisesta serverikutsusta lisärankaisu -s Jokaisesta viestinvälittäjän (dispatcher) käytöstä lisärankaisu -d Serveri- ja viestinvälittäjärankaisut tulee voida asettaa niin, että niitä voidaan joustavasti vaihtaa! Lähtökohtaisesti s ja d > 1. Huomaa, että kutsu luokasta rajapintaan katsotaan yhtäläiseksi suoran kutsun (luokasta luokkaan) kanssa. Ts. jos a b, ja b on eri luokassa kuin a, on skenaarion kannalta yhdentekevää, toteuttaako b jonkin rajapinnan vai ei. Tehtävänanto fitness-arvon laskeminen 36 Esimerkki: Asetetaan s = 2 ja d = 2. Oletetaan, että käyttötapauksessa on kutsu keitäkahvia laitakahvikonepäälle ts. keitäkahvia(){.. laitakahvikonepäälle(); }. Tapaus 1: keitäkahvia ja laitakahvikonepäälle ovat samassa luokassa: tehokkuusrankaisu 0 18

19 Tehtävänanto fitness-arvon laskeminen 37 Tapaus 2: keitäkahvia ja laitakahvikonepäälle ovat luokissa A ja B, luokkien välillä on suora kutsu tai keitäkahvia kutsuu B-luokan rajapintaa (jonka laitakahvikonepäälle toteuttaa): tehokkuusrankaisu -1 Tehtävänanto fitness-arvon laskeminen 38 Tapaus 3: keitäkahvia ja laitakahvikonepäälle ovat eri luokissa, ja luokkien välissä on ylimääräinen komponentti, esim. Adapteri: tehokkuusrankaisu: -1-1 = -2 (Kuva 15) Huom! Frankensteinin koodissa Adapteri-patterni esiintyy nimellä Proxy. 19

20 Tehtävänanto fitness-arvon laskeminen 39 Tapaus 4: keitäkahvia ja laitakahvikonepäälle ovat eri luokissa, ja laitakahvikonepäälle luokka on merkattu serveriksi: tehokkuusrankaisu: -1-2 = -3 Tehtävänanto fitness-arvon laskeminen 40 Tapaus 5: keitäkahvia ja laitakahvikonepäälle ovat eri luokissa ja käyttävät viestinvälittäjää kommunikointiin: tehokkuusrankaisu: = -4 20

21 Tehtävänanto fitness-arvon laskeminen 41 Tapaus 6: keitäkahvia ja laitakahvikonepäälle ovat eri luokissa, ja laitakahvikonepäälle luokka on merkattu serveriksi. Lisäksi laitakahvikonepäälle-operaatiota tulisi käyttää Adapterin kautta: tehokkuusrankaisu = -4 Tehtävänanto fitness-arvon laskeminen 42 Tapaus 7: keitäkahvia ja laitakahvikonepäälle ovat eri luokissa, ja kommunikoivat viestinvälittäjän kautta. Lisäksi laitakahvikonepäälleoperaatiota tulisi käyttää Adapterin kautta: tehokkuusrankaisu = -5 21

22 Tehtävänanto fitness-arvon laskeminen 43 Käyttötapauksen lopullinen fitness-arvo on summa kaikista tehokkuusrangaistuksista, jotka lasketaan aina kahden operaation välisestä yhteydestä. Esim. Jos skenaario on yllämainittu keitäkahvia laitakahvikonepäälle mittaavesi mittaakahvi avaavesi lämmitäkahvi päivitänäyttö, saadaan tästä 6 eri operaatioiden välistä yhteyttä, joille jokaiselle lasketaan tehokkuusrankaisu esitetyllä tavalla, ja kokonaisrankaisu on näiden summa Ratkaisun (arkkitehtuurin) tehokkuusskenaariofitness-arvo on luonnollisesti kaikkien yksittäisten käyttötapaustehokkuuksien summa. Tehtävänanto - output 44 Työkalu näyttää reaaliajassa, miten arkkitehtuurien (yhteis)fitness-arvojen keskiarvo kehittyy Lisäksi on mahdollista erotella eri osafitness-funktioiden fitnesskäyrät, kun tulos on valmistunut Tehokkuusskenaarioiden erillistä fitness-käyrää tulee voida tarkastella vastaavasti kuin muitakin osafitness-funktioiden käyriä nykyisessä toteutuksessa Tehokkuusskenaariofitness tulee olla mukana yhteisfitnessin laskennassa 22

23 Tehtävänanto arvioitu työjakauma 45 Darwin: Syötteen antamisen toteutus, n. 20h Sekvenssikaaviot (antaminen, tallentaminen, lataaminen) Skenaario- ja painonäkymät Syötteen koodaus Frankenstein: Skenaariototeutus GA:lle n. 30h Koodaus ja sen tulkinta Fitness-funktion toteutus Koodin ymmärtäminen (Cromosome-tietorakenne) Darwin: Tulosteen antaminen n. 10h Fitness-käyrä Tehtävänanto - dokumentti 46 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 uudet komponentit (erityisesti skenaarioiden (syötteen) koodaus ja tulkinta) on toteutettu Käytännössä tulee käydä läpi edellä olevat kohdat skenaarioiden määrittelystä 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> *<lyhyt esittely koodin/muutoksen tarkoituksesta> */ 23

24 Arvostelu - minimivaatimukset 47 Hyväksytystä harjoitustyöstä saa 3p. Hyväksytyn harjoitustyön kriteerit ovat (pakolliset vaatimukset): Tehokkuusskenaariot (käyttötapaukset) pystyy syöttämään jotenkin Ei siis vaadita välttämättä sekvenssikaavioita, vaan riittää esim. teksti- tai XML-tiedosto. Skenaariot voi ladata työkaluun. Käyttöliittymässä Skenaarionäkymä on päivitetty niin, että syötetyt skenaariot voidaan nähdä listana. Serveri- ja viestinvälittäjäkertoimet voidaan antaa Skenaarionäkymässä. Skenaarioiden koodaus ja tulkinta on toteutettu toimivasti Arvostelu - minimivaatimukset 48 Skenaariofitnessin laskenta on toteutettu toimivasti Fitness-käyrään päivittyy myös tehokkuusskenaarioarvo ja tehokkuusskenaario-fitnessin saa tarvittaessa näkymään omana käyränään Weights-näkymä on päivitetty (tehokkuusskenaarioille oma kenttä) 24

25 Arvostelu - täydellisesti toteutettu tehtävänanto 49 Harjoitustyöstä voi saada maksimissaan 6 pistettä. Pakollisen osuuden lisäksi voi toteuttaa valinnaisia osuuksia, joilla voi nostaa pistemäärää. Tehokkuusskenaarioiden antaminen tehtävänannon mukaisesti sekvenssikaavioilla, ja skenaariot pystytään tallentamaan ja jälleen lataamaan (2 p) Käyttöliittymässä Skenaarionäkymä on päivitetty niin, että syötetyt skenaariot voidaan nähdä listana (1p) HUOM! Skenaarionäkymän listatoteutus on PAKOLLINEN, jos skenaarioiden syöttö muuten kuin sekvenssikaavioilla. Listatoteutus VALINNAINEN (saa lisäpisteen), jos syöttö sekvenssikaavioilla. Arvostelu lisäpisteet/kompensoinnit 50 Lisätehtäviä, joilla voi korvata valinnaisia toteutuksia tai kompensoida puutteita. (HUOM! Pisteitä voi saada MAX 6p, eli lisätehtävillä EI VOI nostaa kokonaispistemäärää yli 6 pisteen.): Skenaarioiden priorisoinnin toteuttaminen (priorisointi käyttöliittymän kautta, loogisinta käyttää Skenaario-näkymää) ja priorisoinnin ottaminen huomioon fitness-funktiossa(1p) Frankensteinia (eli GA-moottoria) voi käyttää myös komentorivin kautta. Tällöin loppuratkaisu eli luokkakaavio piirretään Frankensteinin UMLGenerator luokassa. Luokan koodi on kamalaa. Lisätehtävä: UML-kaavioluokan (UMLGenerator) siistiminen (1.5p) 25

26 Palautus 51 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. Paketin voi ladata joko verkkoon tai sen voi tuoda USB-tikulla ohjaajan työhuoneeseen TE213 arkisin klo välisenä aikana. 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.

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ätiedot

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

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte outi.sievi-korte@tut.fi TE213 Päivystys ti klo 14-16 OHJ-3100 Ohjelmien ylläpito ja evoluutio 1 Harjoitustyö Ohjaaja: Outi Sievi-Korte outi.sievi-korte@tut.fi TE213 Päivystys ti klo 14-16 2 Yleiskatsaus Yleisesittely Geneettiset algoritmit Ohjelmistoarkkitehtuurit

Lisätiedot

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

OHJ-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ätiedot

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

Arkkitehtuurien 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ätiedot

Darwin: Tutkimusprojektin esittely

Darwin: 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ätiedot

Geneettiset algoritmit

Geneettiset 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ätiedot

Harjoitustehtävät viikolle 42

Harjoitustehtä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ätiedot

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2010 582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman 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ätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kesä 2008 582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2009 582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2008 Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen

Lisätiedot

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

AS 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ätiedot

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistotekniikan menetelmät, kevät 2008 582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

Lisätiedot

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

TIES592 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ätiedot

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet

Lisätiedot

Avainsanojen poimiminen Eeva Ahonen

Avainsanojen 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ätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen 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ätiedot

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Syksy 2010 Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

GA & 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ätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,

Lisätiedot

S Laskennallinen systeemibiologia

S 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ätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen 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ätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen 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ätiedot

9. Muunneltavuuden hallinta

9. 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ätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.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ätiedot

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6 op

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6 op OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6 op Syksy 2007, periodit 1-2 Harjoitustyö Yleistä Harjoitustyö tehdään 2 hengen ryhmissä. Yhden hengen ryhmistä tulee sopia kurssiassistentin kanssa erikseen

Lisätiedot

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen 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ätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 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ätiedot

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit Kevät käytäntöjä Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto

Lisätiedot

Visual Case 2. Miika Kasnio (C9767) 23.4.2008

Visual Case 2. Miika Kasnio (C9767) 23.4.2008 Visual Case 2 Miika Kasnio (C9767) 23.4.2008 Työn tarkasti: Jouni Huotari 24.4.2008 1 SISÄLTÖ 1. TYÖN LÄHTÖKOHDAT... 2 2. PERUSTIEDOT... 2 3. ASENTAMINEN... 2 4. OMINAISUUDET... 3 4.1. UML-kaaviot... 4

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + 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ätiedot

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 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ätiedot

Perinnöllinen informaatio ja geneettinen koodi.

Perinnöllinen informaatio ja geneettinen koodi. Tehtävä A1 Kirjoita essee aiheesta: Perinnöllinen informaatio ja geneettinen koodi. Vastaa esseemuotoisesti, älä käytä ranskalaisia viivoja. Piirroksia voi käyttää. Vastauksessa luetaan ansioksi selkeä

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

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

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Kirjanpidon ALV-muutos

Kirjanpidon ALV-muutos 9.9.2010 1(10) Kirjanpidon ALV-muutos Tämä dokumentti sisältää ohjeen sille miten uudet ALVkoodit (ALV-prosentit) otetaan käyttöön. Vaihtoehto yksi(1) vaihda olemassaolevat ALV-koodit yhdestä prosentista

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtä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ätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla LineBreaker-ohjelma tekstirivin sovittamiseen tekstialueelle riviä katkomalla. Lausekielinen ohjelmointi II -kurssin pakollinen

Lisätiedot

Ohjelmistoarkkitehtuurit harjoitustyö RobotWarGame RobotFW SimulationFW SimulationGUIFW SWT/Java Kuva 1: Esimerkki arkkitehtuurin kerroskuvasta

Ohjelmistoarkkitehtuurit harjoitustyö RobotWarGame RobotFW SimulationFW SimulationGUIFW SWT/Java Kuva 1: Esimerkki arkkitehtuurin kerroskuvasta Ohjelmistoarkkitehtuurit harjoitustyö 2006 1 Johdanto Harjoitustyönä on toteuttaa kerroksittainen sovelluskehys erilaisten simulaatioon perustuvien pelien tekemiseen. Kehyksestä lisäksi erikoistetaan keskenään

Lisätiedot

OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö

OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö Juha-Matti Vanhatupa 2008 Yleistä Tehdään 2 hengen ryhmissä Harjoitustyöhön ilmoittaudutaan lomakkeella www.cs.tut.fi/~grako/ilmo.html Ympäristö:.NET

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Pelaajan ja kilpailun järjestäjän ohjekirja

Pelaajan ja kilpailun järjestäjän ohjekirja 1(16) Tennisliitto Ässä-kilpailujärjestelmä Pelaajan ja kilpailun järjestäjän ohjekirja 1 Tennisliitto Ässä-kisajärjestelmä 2 2 Päävalikko 2 3 Kilpailun hakeminen 3 4 Kilpailun luonti 3 4.1 Kilpailun luokkien

Lisätiedot

Analyysi on tulkkaamista

Analyysi on tulkkaamista Analyysi on tulkkaamista Petri: Pitää osata menetelmiä, arkkitehtuureja, suunnittelumalleja, eli miten [ohjelmistoja] ylipäänsä kehitetään. Pitää olla viestintätaitoja. Perttu: Pitää ymmärtää miten projekti

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: 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ätiedot

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistoarkkitehtuurit. 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ätiedot

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

käyttötapaukset mod. testaus

käyttötapaukset mod. testaus käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)

Lisätiedot

CAD-kuvat, käyttöohjeet ja muut dokumentit helposti netistä

CAD-kuvat, käyttöohjeet ja muut dokumentit helposti netistä 1 (6) CAD-kuvat, käyttöohjeet ja muut dokumentit helposti netistä Kun tarvitaan CAD-kuvia, käyttöohjeita tai muuta dokumentaatiota Siemensin automaatio tai käyttötekniikan tuotteista, löytyy internetistä

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään

Lisätiedot

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T 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ätiedot

10. Muunneltavuuden hallinta: variaatiopisteet

10. 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ätiedot

Evoluutio. BI Elämä ja evoluutio Leena Kangas-Järviluoma

Evoluutio. 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ätiedot

Palveluperustaiset arkkitehtuurityylit

Palveluperustaiset arkkitehtuurityylit Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit

Lisätiedot

10. Muunneltavuuden hallinta: variaatiopisteet

10. 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ätiedot

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-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ätiedot

6. laskuharjoitusten vastaukset (viikot 10 11)

6. laskuharjoitusten vastaukset (viikot 10 11) 6. laskuharjoitusten vastaukset (viikot 10 11) 1. a) Sivun 102 hypergeometrisen jakauman määritelmästä saadaan µ µ 13 39 13! 13 12 11 10 9 µ 0! 8! 1! 2 2! 2 1 0 49 48! 47!! 14440 120 31187200 120 1287

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 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ätiedot

Lomalista-sovelluksen määrittely

Lomalista-sovelluksen määrittely Thomas Gustafsson, Henrik Heikkilä Lomalista-sovelluksen määrittely Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Dokumentti 14.10.2013 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika Thomas

Lisätiedot

TOIMINNALLINEN MÄÄRITTELY MS

TOIMINNALLINEN MÄÄRITTELY MS TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso 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ätiedot

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuuri Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016)

805324A (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ätiedot

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group 1.10.2010 1(15) Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group Graanintie 7 Tel. + 358 15 338 800 FIN-50190 MIKKELI Fax + 358 15 338 810 VERSIOHISTORIA Versio Pvm Tekijä Selite 1.0

Lisätiedot

HUOMAUTUS! Älä kytke Cometia USB-kaapelilla tietokoneeseesi, kun lataat satunnaiskoodeilla.

HUOMAUTUS! Älä kytke Cometia USB-kaapelilla tietokoneeseesi, kun lataat satunnaiskoodeilla. RAHAN LATAAMINEN COMET-MAKSULAITTEESEEN SATUNNAISKOODEJA KÄYTTÄMÄLLÄ HUOMAUTUS! Älä kytke Cometia USB-kaapelilla tietokoneeseesi, kun lataat satunnaiskoodeilla. Voit käyttää Comet maksulaitteen lataamista

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1 Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1 Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen

Lisätiedot

Yhteistoimintakaavio (Esimerkki)

Yhteistoimintakaavio (Esimerkki) Yhteistoimintakaavio (Esimerkki) Käyttötapaus: Vuokraa ajoneuvo Yleiskuvaus: Käyttäjä vuokraa ajoneuvon määräajaksi. Esiehdot: Käyttäjä on hakenut vuokrausaikana vapaat ajoneuvot näytölle. Aktori: Asiakas

Lisätiedot

DNA-testit. sukututkimuksessa Keravan kirjasto Paula Päivinen

DNA-testit. sukututkimuksessa Keravan kirjasto Paula Päivinen DNA-testit sukututkimuksessa 28.11.2017 Keravan kirjasto Paula Päivinen Solu tuma kromosomit 23 paria DNA Tumassa olevat kromosomit periytyvät jälkeläisille puoliksi isältä ja äidiltä Y-kromosomi periytyy

Lisätiedot

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

eshop lisenssiopas Ohjelmistolisenssiopas 2013

eshop lisenssiopas Ohjelmistolisenssiopas 2013 Atean eshop on markkinoiden edistynein hankintajärjestelmä, joka tukee ja nopeuttaa yritysten it-hankintaprosessia. Lisenssiasiakkaille eshop tarjoaa ohjelmisto-omaisuuden hallintatyökalut. eshop lisenssiopas

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

SEPA - Design Patterns

SEPA - Design Patterns SEPA - Design Patterns Kimmo Karlsson, 51066R & Antti Pirinen, 51406N 15. maaliskuuta 2005 1 Sisältö 1. Sisältö 2. Johdanto 3. Käyttöönotto 4. Käyttökokemukset 2 Johdanto Valitsemamme ohjelmistonkehityskäytäntö

Lisätiedot

T SEPA - päiväkirja: Design Patterns. ETL työkalu

T 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ätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 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ätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa 2017 Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen 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ätiedot

1. Palaute viikkoharjoituksesta, Taustatutkimus

1. Palaute viikkoharjoituksesta, Taustatutkimus 1. Palaute viikkoharjoituksesta, Taustatutkimus KJR-C2005 Syksy 2016 Palaute - Muistakaa oikea palautusmuoto (.pdf) - Harjoitustöiden ohjeissa annettu raportin maksimipituus on pääosin tekstille. Jos raportissanne

Lisätiedot

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

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) 1 UUDEN KILPAILUTIEDOSTON AVAUS Avaa Wcondes ohjelma tuplaklikkaamalla wcondes.lnk ikonia. Ohjelma avaa automaattisesti viimeksi tallennetun kilpailutiedoston.

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet 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ätiedot

TIES592 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 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ätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet 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ätiedot

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

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa

Lisätiedot

Asiointipalvelun ohje

Asiointipalvelun ohje Asiointipalvelun ohje Yleistä 1. Kirjautuminen 2. Yhteystiedot 3. Vastaustavan valinta 1. Yleistä 2. Palkkatietojen lataaminen tiedostosta 4. Lomake 1. Yleistä 2. Linkit ja vastaajan tiedot 3. Lomakekäsittely

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) 1 UUDEN KILPAILUTIEDOSTON AVAUS Avaa Wcondes ohjelma tuplaklikkaamalla wcondes.lnk ikonia. Ohjelma avaa automaattisesti viimeksi tallennetun kilpailutiedoston.

Lisätiedot

Harjoitustyö Case - HelpDesk

Harjoitustyö Case - HelpDesk Harjoitustyö Case - HelpDesk Harjoitustyön Case: HelpDesk -sovellus Tietotekniikkatoimittaja AB ja asiakas X ovat viime vuonna sopineet mikrotukiyksikön ulkoistamisesta X:ltä AB:n liikkeenjohdon vastuulle.

Lisätiedot

1. Tarkastellaan seuraavaa kaaviota

1. Tarkastellaan seuraavaa kaaviota HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS JOHDATUS SOVELLUSSUUNNITTELUUN (JSS) 19.12.2001 (H.Laine) 1. Tarkastellaan seuraavaa kaaviota Mitkä seuraavista väitteistä ovat kaavion mukaisia t.s.

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot