Esimerkki ohjemasuoritusmallien käytöstä

Koko: px
Aloita esitys sivulta:

Download "Esimerkki ohjemasuoritusmallien käytöstä"

Transkriptio

1 Esimerkki ohjemasuoritusmallien käytöstä Luento Ohjelmistojen suorituskyky 1 SEKVENSSIKAAVIOISTA SUORITUSVERKKOIHIN Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

2 Sekvenssit suoritusverkoiksi Tarkoituksena on muuntaa jokaisen performanssiskenaarion sekvenssikaaviot kvantitatiivisesti (=numeroina) ratkaistavaksi ohjelmasuoritusmalliksi Itsenäisiä suoritussäikeitä ja hajautettuja objekteja sisältävien sekvenssien muuntaminen vaatii hieman enemmän vaivaa kuin yhdessä säikeessä tapahtuvan sekvenssin Prosessi on kuitenkin periaatteessa samanlainen molemmissa tapauksissa Ohjelmistojen suorituskyky 3 Sekvenssit suoritusverkoiksi Sekvenssikaavioissa viestin vastaanottaminen liipaisee vastaanottajassa toiminnon, joka voi olla jokin operaatio tai tilamuutos Suoraviivainen tapa muuntaa sekvenssi suoritusverkoksi on seurata viestinuolia ja tehdä jokaisesta liipaistusta toiminnosta oma persussolmunsa Monessa tapauksessa yksittäiset toiminnot eivät niinkään ole mielenkiintoisia suorituskyvyn kannalta, vaan peräkkäisiä toimintoja voidaan yhdistää samaan perussolmuun Myös solmulaajennoksia voi käyttää hyväksi jakamalla yhteenkuuluvia toimintoja aliverkkoihin tarkempaa analyysiä varten Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

3 Sekvenssit suoritusverkoiksi Toisto- ja valintarakenteet on helppo muuttaa vastaaviksi suoritusverkkorakenteiksi Jos esim. valintarakenteita ei ole käytetty sekvensseissä, pitää tarkastella saman skenaarion vaihtoehtoisia suorituksia kuvaavia sekvenssejä ja tunnistaa niistä vaihtoehtoiset toiminnot Sekvenssien muuntaminen verkoiksi vaatii luonnollisesti harjaantumista mallinnusmenetelmien käytössä sekä ymmärrystä suorituskykyyn vaikuttavista yleisistä tekijöistä sekä tiettyjen teknologioiden ominaisista tekijöistä Toistot, eri suorituspolut frekvensseineen, ohjelmistoresurssien käytön intensiivisyys, viestinnän ja toiminnan synkronoinnin aiheuttamat viiveet jne. Keskittyminen oleellisiin asioihin ja turhien yksityiskohtien karsiminen Ohjelmistojen suorituskyky 5 ICAD CASE STUDY Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

4 ICAD Seuraavassa läpikäytävä esimerkkitapaus perustuu CAD sovellukseen, jota suunnittelu-insinöörit käyttävät erilaisten fyysisten rakenteiden piirtämiseen ja evaluointiin (eli suunnitteluun) Sovellus tallettaa suunnitelmat tietokantaan ja tarjoaa rakenne-editorin suunnitelmien interaktiiviseen katselmointiin ja arviointiin Esimerkkitapauksessa käydään läpi erilaisia arkkitehtuurivaihtoehtoja ja näytetään, miten niiden suorituskykykä voidaan arvioida ohjelmasuoritusmalleilla Ohjelmistojen suorituskyky 7 ICAD -piirrokset ICAD rakennepiirros koostuu elementeistä ja kulmapisteistä (nodes) Elementit voivat ovat palkkeja, kolmioita tai levyjä, jotka yhdistävät vastaavasti kahta, kolmea ja neljää tai useampaa kulmapistettä Elementteihin liittyy dataa, joka on merkityksellistä suunniteltavan rakenteen fysikaalisten ja muiden ominaisuuksien kannalta Kulmapisteellä on paikka kolmiulotteisessa avaruudessa sekä muita rakennemallien evaluoinnin kannalta tarpeellisia attribuutteja Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

5 ICAD käyttötapaukset Sovelluksella on lukuisia käyttötapauksia, mutta tässä esimerkissä keskitytään Piirrä käyttötapaukseen ja sen yhteen skenaarioon nimeltä PiirräMalli, jossa sovellus piirtää tietokannasta ladattavan mallin näytölle Tyypillinen malli koostuu vain palkeista ja kulmapisteistä ja siinä on 2000 palkkia Vaatimuksena on piirtää tyypillinen malli 10 sekunnissa tai nopeammin Ohjelmistojen suorituskyky 9 PiirräMalli -skenaario Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

6 ICAD ARKKITEHTUURI Ohjelmistojen suorituskyky 11 Arkkitehtuuri 1 ICAD-rakenteen esitys olioina Kaikilla objekteilla on myös oma tunniste (id -numero) Koostesuhde esitetään tietokannassa käyttäen tunnistetta viitteenä Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

7 Arkkitehtuuri 1 PiirräMalli -skenaarion tarkennus Ohjelmistojen suorituskyky 13 Arkkitehtuuri 1 Ajonaikaiset näkymät Prosessit Sijoittelu Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

8 Arkkitehtuuri 1 Suoritusverkot initialize retrievebeam findbeams createbeam createmodel sortbeams each beam drawmod findnodes each node opendb drawbeam setupnode retrieve + create close drawnodes (a) Draw Model (b) initialize (c) drawbeam Ohjelmistojen suorituskyky 15 Ohjelmistoresurssit EDMS kutsujen määrä tietokantaprosessiin CPU suoritettavien konekäskyjen määrä I/O levyhakujen määrä tietokantahakua kohti Get/Free muistinhallintaoperaatioiden määrä (muistin varaus/vapautus) Screen montako kertaa grafiikkaoperaatiot piirtävät näytölle Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

9 PiirräMalli -verkon resurssikulutus (paras tapaus) Askel EDMS CPU I/O Get/Free Screen createmodel drawmod opendb findbeams sortbeams close retrievebeam createbeam findnodes setupnode drawnodes Ohjelmistojen suorituskyky 17 Prosessointikustannukset Devices CPU Disk Display Quantity Service Units K instr. Phys. I/O Units EDMS CPU 1 I/O Get/Free 0.1 Screen Service Time Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

10 Ohjelmasuoritusmallin ratkaisu Lasketaan parhaan tapauksen suoritusaika: initialize 0.27s findbeams 0.21s s / iteraatio sortbeams drawbeam 1.27s each beam s Yhteensä sek. Ei täytä 10 sekunnin tavoiteaikaa mallin (2000 palkkia) piirtämiselle! close 0.06s Ohjelmistojen suorituskyky 19 ICAD ARKKITEHTUURI Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

11 Uusi idea Arkkitehtuuri 1 on hyvin kaukana tavoitesuorituskyvystä Voisiko ongelma aiheutua siitä, että skenaariossa luodaan suuri joukko olioita? Jokaista palkkia ja kulmapistettä kohden luodaan oma olio, jolle pitää varata muistialue ja tehdä erilaisia alustustoimia (konstruointi) Muokataan oliorakennetta käyttäen Flyweight patternia Ohjelmistojen suorituskyky 21 Arkkitehtuuri 2 Luodaan vain yksi ilmentymä elementtityypistä ja kulmapisteestä; ilmentymän sisäinen tila on sama kaikille piirroksen elementeille Palkin piirto-operaatio saa parametrina tietueen, joka sisältää kunkin piirroksen palkin muuttuvan tilan (kulmapisteitä kuvaavan datan yms.) Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

12 Muutokset suoritusverkkoon Ohjelmasuoritusmallin muutokset ovat pieniä Olioiden create luontioperaatiot drawbeam osaverkosta siirtyvät osaksi initialize osaverkkoa Vastaava resurssikulutus siis poistuu 2000 kertaa suoritettavasta silmukasta mutta muokatun ohjelmasuoritusmallin ratkaisu ei näytä tilanteen juuri parantuneen: Suoritusaika pienee vain 60 ms sekuntiin! Ohjelmistojen suorituskyky 23 Johtopäätös Olioiden konstruktorien kutsut eivät siis aiheuta merkittävää lisäystä suoritusaikaan Huomaa kuitenkin, että toisenlaisessa suoritusympäristössä ja syviä perintähierarkioita sisältävässä ohjelmistossa tulos olisi voinut olla toinenkin Muita huomioita Ohjelmasuoritusmallin muuttaminen vaihtoehtojen vertailemiseksi on melko helppoa On tärkeää pyrkiä kvantifioimaan eri ratkaisuvaihtoehtojen ominaisuudet eikä vain seurata erilaisia ohjenuoria, jotka eivät sovikaan tilanteeseen Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

13 Tulosten analyysi Ratkaistua ohjelmasuoritusmallia voidaan käyttää myös havaitun ongelman tarkempaan syyniin Kun tarkastellaan verkon solmujen suoritusajoiksi muutettuja resurssikäyttöä, huomataan levyliikenteen aiheuttavan ylivoimaisesti suurimman osan suoritusajasta Ohjelmistojen suorituskyky 25 initialize Ratkaistut suoritusverkot ja niiden resurssien käyttö CPU 0.00 Disk 0.27 Display 0.00 retrievebeam CPU Disk Display findbeams CPU 0.00 Disk 0.21 Display 0.00 createbeam CPU Disk Display sortbeams each beam CPU 0.00 Disk 1.27 Display 0.00 findnodes each node CPU Disk Display drawbeam CPU 0.20 Disk Display 2.00 setupnode CPU Disk Display CPU 0.00 CPU close Disk 0.06 drawnodes Disk Display 0.00 Display Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13

14 Analyysi Levyn käyttö näyttää johtuvan tietokantahauista Levyn käyttö jakautuu drawbeam verkon solmujen retrievebeam ja setupnode solmujen kesken, joissa molemmissa haetaan tietokannasta dataa Flyweight patternin käyttö ei vaikuta tietokannan käyttöön, joten se ei auta tähän ongelmaan On siis kehitettävä uusi ratkaisu, jossa pyritään vähentämään tietokannan käytöstä seuraavan levyliikenteen aiheuttamia viiveitä Ohjelmistojen suorituskyky 27 ICAD ARKKITEHTUURI Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktl 14

15 3. Kerta toden sanoo? Päätämme kuitenkin säilyttää Flyweight patternin osana uuttakin ratkaisua, koska se todennäköisesti parantaa ratkaisun skaalautuvuutta huomattavasti suurempien rakennepiirrosten käsittelyssä 3. arkkitehtuurin ytimessä on nyt oivallus, että haemme kerralla tietokannasta suuren määrän dataa (piirrosobjekteja vastaavia tietueita) sen sijaan, että tekisimme haun joka objektille erikseen Ohjelmistojen suorituskyky 29 retrieveblock Lisätään tietokantaliittymäämme operaatio retrieveblock Hakee yhdellä kertaa 20Kt dataa (64 palkkia ja 170 kulmapistettä) ja tallettaa datan Model-objektiin Kaikkien palkkien haku vaatii nyt 33 tietokantapyyntöä ja kulmapisteiden haku vaatii vain yhdeksän pyyntöä Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktl 15

16 Uusi sekvenssikaavio 33 kertaa 9 kertaa Etsii palkin kulmapisteet omista kokoelmistaan Ohjelmistojen suorituskyky 31 Uusi ratkaistu suoritusverkko initialize getdata each beam matchanddraw close Kokonaisaika: Ohjelmistojen suorituskyky 32 Helsingin Yliopisto / Tktl 16

17 Huomioita ICAD Esimerkki demonstroi ohjelmasuoritusmallien muodostamista arkkitehtuurisuunnitelmista ja eri vaihtoehtojen kvantitatiivista evaluointia mallien avulla Alustavien mallien luonti on melko helppoa ja niiden muuttaminen on suoraviivaista Yksinkertaisetkin mallit riittävät isoimpien ongelmien havaitsemiseen Ohjelmistojen suorituskyky 33 Huomioita Monimutkaisempia mallejakin tarvitaan myöhemmin, kun halutaan analysoida työkuormien ja resurssikilpailun vaikutuksia systeemitasolla Näitä analyysejä varten tarvitaan arvioita kehitettävien uusien ohjelmien eri toimintojen suoritusajoista Ohjelmasuoritusmallit tuottavat näitä arvioita Ohjelmistojen suorituskyky 34 Helsingin Yliopisto / Tktl 17

18 Mallinnusvinkkejä 1. Suorituskykymalliin ei tarvitse sisällyttää kaikkia ohjelmiston suorituksen kulun yksityiskohtia Malli on kehitettävän ohjelmiston abstraktio Pyri ottamaan mukaan vain detaljit, joilla arvioit olevan oleellista vaikutusta suorituskykyyn 2. Tee malleista hierarkisia Käytä laajennettuja solmuja pitämään yksityiskohtien määrä hallittavalla tasolla kussakin verkossa Ohjelmistojen suorituskyky 35 Mallinnusvinkkejä 3. Ratkaise pahimman ja parhaimman tapauksen mallit epävarmuuden kompensoimiseksi Jos parhaimman tapauksen mallin evaluointi osoittaa ongelmia olevan, etsi parempi arkkitehtuuriratkaisu Jos pahimman tapauksen malli näyttää hyvää tulosta, kehitystyötä voidaan jatkaa tältä pohjalta Jos mallien evaluointien tulokset ovat jotain siltä väliltä, keskity eniten resursseja vaativiin prosessointiaskeleisiin ja pyri saamaan niille tarkemmat resurssikulutusarviot lisäanalyysejä varten Ohjelmistojen suorituskyky 36 Helsingin Yliopisto / Tktl 18

19 Mallinnusvinkkejä 4. Tutki suorituskykyarvioiden (=mallien ratkaisujen) herkkyyttä käytetyille syötearvoille Jos pieni muutos jonkin askeleen resurssitarpeessa aiheuttaa suuren muutoksen koko skenaarion suoritusaikaan, ohjelmistosi on herkkä näille piirteille Olet löytänyt ohjelmiston toiminnan kannalta kriittisen resurssin Ohjelmistojen suorituskyky 37 Mallinnusvinkkejä Herkkyyksien tyypillisiä syitä Laitteet, jotka toimivat korkealla käyttöasteella (utilization) pieni lisäys kuormassa voi aiheuttaa suuren lisäyksen vastausaikoihin (kts. Skaalautuvuus 1. luennolla) Pieni lisäys suoritusajoissa silmukan sisällä kertautuu silmukan suorituskertojen lukumäärällä koko skenaarion suoritusajassa Suorituspolkujen synkronoinnista ja resurssien jakamisesta aiheutuvat viiveet rinnakkain eteneville prosesseille Ohjelmistojen suorituskyky 38 Helsingin Yliopisto / Tktl 19

Ohjelmasuoritusmalli ja sen käyttö

Ohjelmasuoritusmalli ja sen käyttö Ohjelmasuoritusmalli ja sen käyttö Luento 3 58153003 Ohjelmistojen suorituskyky 1 Skenaarioiden suorituksen kuvaaminen OHJELMASUORITUSMALLI SOFTWARE EXECUTION MODEL 58153003 Ohjelmistojen suorituskyky

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

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Suorituskyky ja ohjelmistokehitys Suorituskykymallit Suorituskyky ja ohjelmistokehitys Suorituskykymallit Luento 2 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKYISTEN OHJELMISTOJEN KEHITTÄMINEN 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto

Lisätiedot

Järjestelmätason mallit III

Järjestelmätason mallit III Järjestelmätason mallit III Luento 8 58153003 Ohjelmistojen suorituskyky 1 KEHITYSPROJEKTIN ALKUVAIHEEN MALLIT 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Alkuvaiheen arviot Järjestelmän

Lisätiedot

Suorituskykydatan kerääminen

Suorituskykydatan kerääminen Suorituskykydatan kerääminen Luento 9 58153003 Ohjelmistojen suorituskyky 1 Mistä data suorituskykymalleihin? Tähän asti olemme olettaneet, että suorituskykymallien vaatima lähtödata on jo olemassa ja

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Suorituskykypatterneja

Suorituskykypatterneja Suorituskykypatterneja Luento 12 58153003 Ohjelmistojen suorituskyky 1 Patterni Patterni (eli ratkaisumalli, pattern) kuvaa ohjelmistoratkaisun ytimen johonkin toistuvaan ongelmaan, joka esiintyy tietyssä

Lisätiedot

Rinnakkaistietokoneet luento S

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

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja

Lisätiedot

Viestinvälitysarkkitehtuurit Lähtökohta:

Viestinvälitysarkkitehtuurit Lähtökohta: Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti

Lisätiedot

Verkkosovellusten mallintaminen

Verkkosovellusten mallintaminen Verkkosovellusten mallintaminen Luento 5 58153003 Ohjelmistojen suorituskyky 1 VERKKOSOVELLUKSET 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Taustaa Monet nykyiset kuluttajasovellukset

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 1.0 19.10.2007 Suanto 0.3 18.10.2007 Matti Eerola 0.2 17.10.2007

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

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

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

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

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

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

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

CQRS, -ES, PACS, DICOM, WTF?

CQRS, -ES, PACS, DICOM, WTF? CQRS, -ES, PACS, DICOM, WTF? 27.2.2014 Ajankohtaisuuksia harjoitustyöhön liittyen http://www.hs.fi/terveys/tutkimus+veri+paljastaa+riskin+kuolla+seur aavan+viiden+vuoden+aikana/a1393301682104 Vähän vanhempia

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue

Lisätiedot

Ohjelmiston suorituskyvyn mittaaminen

Ohjelmiston suorituskyvyn mittaaminen Ohjelmiston suorituskyvyn mittaaminen Luento 10 58153003 Ohjelmistojen suorituskyky 1 Suorituskyvyn mittaaminen Mittaaminen on SPE:n keskeinen osa Mittauksilla Tuotetaan mallien tarvitsemaa lähtödataa

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia Ohjelmistojen mallintaminen, kurssikoe 15.12. esimerkkivastauksia Tehtävä 1 a: Ohjelmistotuotantoprosessi sisältää yleensä aina seuraavat vaiheet: määrittely, suunnittelu, toteutus, testaus ja ylläpito.

Lisätiedot

Olioiden yhteistyön mallintaminen

Olioiden yhteistyön mallintaminen Olioiden yhteistyön mallintaminen Luokkakaaviosta käy hyvin esille ohjelman rakenne minkälaisia luokkia on olemassa miten luokat liittyvät toisiinsa Entä ohjelman toiminta? Luokkakaaviossa voi olla metodien

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

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Vaatimusmäärittely Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Versio Päiväys Tekijä Kuvaus 0.1 12.10.01 Pekka Koskinen Ensimmäinen luonnos 0.2 17.10.01 Pekka Koskinen Lisätty vaatimuksia

Lisätiedot

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat

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

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

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Ohjelmistojen suorituskyky, Kurssin tavoitteet

Ohjelmistojen suorituskyky, Kurssin tavoitteet Ohjelmistojen suorituskyky, Kurssin tavoitteet Luento 1 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKY 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1 Suorituskyky 58153003 Ohjelmistojen

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

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Toiminnallinen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Versio Päiväys Tekijä Kuvaus 0.01 7.11.01 Pekka Koskinen Alustava sisällysluettelo 0.1 12.11.01 Pekka

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

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

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Versiohistoria: Versio: Pvm: Laatijat: Muutokset: 0.1 2006-11-25 Janne Mäkelä Alustava 1.0 2006-12-10 Janne Mäkelä Valmis 1.

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

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

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

Lisätiedot

Paikantavan turvapuhelimen käyttöohje

Paikantavan turvapuhelimen käyttöohje Paikantavan turvapuhelimen käyttöohje Stella Turvapuhelin ja Hoiva Oy Tämä ohje kertoo miten paikantavaa turvapuhelinta käytetään Stella Turvapuhelin ja Hoiva Oy Mannerheimintie 164 00300 Helsinki Sisällysluettelo

Lisätiedot

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä Tietokoneen rakenne Luento 1 Tietokonejärjestelmä Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista John von Neumann ja EDVAC, 1949 Luento 1-1 Sisältöä Tietokonejärjestelmä KJ:n näkökulma laitteistoon

Lisätiedot

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949. Tietokoneen rakenne Luento 1 Tietokonejärjestelmä Ch 1 - Ch 8 [Sta06] Valikoituja paloja John von Neumann ja EDVAC, 1949 TITO-kurssista Luento 1-1 Sisältöä Tietokonejärjestelmä KJ:n näkökulma laitteistoon

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Kyselykielet, s 2006, Harjoitus 5 (7.12.2006) Tietokannassa on tietoa tavaroista ja niiden toimittajista: Supplier(sid,sname,city,address,phone,etc);

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 14 Ke Timo Männikkö Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan

Lisätiedot

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen, sekvenssikaaviot 582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Kehittyneet ominaisuudet

Kehittyneet ominaisuudet Kehittyneet ominaisuudet Piirtoarkkitehtuurit Leikkaa, kopioi ja liitä Peru, jaetut sovellukset ja makrot Petri Vuorimaa 1 12. Piirtoarkkitehtuuri Petri Vuorimaa 2 12.1 Peruspiirtoliittymä Luo uusi kappale

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

Helsinki Testbedin säätuotteet tänään ja tulevaisuudessa

Helsinki Testbedin säätuotteet tänään ja tulevaisuudessa Helsinki Testbedin säätuotteet tänään ja tulevaisuudessa Helsinki Testbed Workshop 6.4.2006 Pekka Keränen 06.04.06 Johdanto Projektin www-sivusto http://testbed.fmi.fi Säätuotteet julkisiksi MM-kisoihin,

Lisätiedot

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.

Lisätiedot

Mukautuvat järjestämisalgoritmit

Mukautuvat järjestämisalgoritmit 1 Mukautuvat järjestämisalgoritmit Riku Saikkonen TIK-päivä, 17. 1. 2013 2 Mukautuva järjestäminen minkä tahansa vertailuihin perustuvan järjestämisalgoritmin täytyy tehdä pahimmassa tapauksessa vähintään

Lisätiedot

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät Ohjelmistoarkkitehtuurit Kevät 20-202 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti

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

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1 Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä

Lisätiedot

Nelli Tiedonhakuportaali Kemi-Tornion ammattikorkeakoulun elektronisiin aineistoihin. Onnistuneita hetkiä Nellin parissa!

Nelli Tiedonhakuportaali Kemi-Tornion ammattikorkeakoulun elektronisiin aineistoihin. Onnistuneita hetkiä Nellin parissa! Nelli Tiedonhakuportaali Kemi-Tornion ammattikorkeakoulun elektronisiin aineistoihin. Onnistuneita hetkiä Nellin parissa! Nelli elektroniset aineistot yhdessä paikassa Nellissä voit silmäillä mitä elektronisia

Lisätiedot

FMC-Outlook-työkalu: HiPath-FMC-toimintojen käyttö matkapuhelimien kautta

FMC-Outlook-työkalu: HiPath-FMC-toimintojen käyttö matkapuhelimien kautta FMC-Outlook-työkalu: HiPath-FMC-toimintojen käyttö matkapuhelimien kautta Henkilöille, jotka käyttävät MS-Outlook-sovellusta matkapuhelimiensa yhteystietojen synkronointiin Toiminta: FMC-Outlook-työkalu

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

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

Luokka- ja oliokaaviot

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

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

Lisätiedot

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hajautusrakenteet R&G Chapter 11 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hajautukseen perustuvat tiedostorakenteet Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys

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

2. Olio-ohjelmoinnin perusteita 2.1

2. Olio-ohjelmoinnin perusteita 2.1 2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Esitellään peruskäsitteitä yleisellä tasolla: Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. Olioperustainen

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi 17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

HappyOrNot Service Canvas. Kuinka voit hyödyntää HappyOrNot-palvelua parhaiten

HappyOrNot Service Canvas. Kuinka voit hyödyntää HappyOrNot-palvelua parhaiten HappyOrNot Service Canvas Kuinka voit hyödyntää HappyOrNot-palvelua parhaiten Mikä on HappyOrNot Service Canvas? HappyOrNot Service Canvas -työkalulla luot helposti suunnitelman siitä, kuinka seurata ja

Lisätiedot

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

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

Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0. Ilkka Myllylä

Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0. Ilkka Myllylä Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0 Ilkka Myllylä Sisältö! Johdanto! Pullonkaulat ja suorituskyvyn optimointi! Case esimerkkejä 2 Johdanto v 1.0 Onko skaalautuvuus webissä ongelma?

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet R&G Chapter 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. kuten levykäsittelyn

Lisätiedot

JulkICT portaalin käyttöohje

JulkICT portaalin käyttöohje LUONNOS 30.4.2013 2 (12) Sisällys 1 Johdanto... 3 2 QPR Portaali... 3 2.1 Kirjautuminen palveluun... 3 2.2 Portaalin Prosessit-välilehden toimintakuvaus... 5 2.3 Mallin valitseminen mallilistasta... 7

Lisätiedot