SEPA päiväkirja. Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen Ryhmä: Neptune T Ohjelmistoprojekti I

Koko: px
Aloita esitys sivulta:

Download "SEPA päiväkirja. Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen Ryhmä: Neptune T Ohjelmistoprojekti I"

Transkriptio

1 SEPA päiväkirja Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen Ryhmä: Neptune T Ohjelmistoprojekti I

2 1. Johdanto Menetelmän käyttö Kokemukset ja muutokset Yhteenveto...9

3 1. Johdanto SEPAn aiheenamme meillä on suunnittelumallit (design patterns). Lähtökohdaksi otimme Craig Larmanin kirjasta "Applying UML and Patterns" löytyvät Gang-of- Four suunnittelumallit adapter, factory, singleton, strategy, composite, facade, abstract factory, observer/publish-subscribe ja proxy. Kyseinen kirja oli kurssimateriaalina kurssilla Ohjelmistojen määrittely- ja suunnittelumenetelmät, joten mallien kuvaukset löytyvät myös kurssin prujuista. Tämä on hyödyksi, koska ryhmästämme osa on kyseisen kurssin suorittanut, joten heillekin nämä mallit ovat ainakin nimeltä tuttuja. Aiheen valitsimme yksinkertaisesti siitä syystä, että se sopii meille ja projektiin hyvin. Suunnittelumalleja olisi joka tapauksessa jouduttu käyttämään ja on luontevinta, että pääarkkitehti on mukana suunnittelumalleista tehtävässä SEPAssa. Suunnittelumallien lähteet: Larman, Craig. Applying UML and patterns: an introduction to objectoriented analysis and design and iterative development, 3rd ed., 2005

4 2. Menetelmän käyttö Suunnittelumallien käyttö painottuu pääosin järjestelmän arkkitehtuurin sekä matalamman tason suunnitteluun että toteutusteknologioiden valintaan. Myös koodikatselmoinnit ja refaktorointi voivat tuoda esiin tarvetta suunnittelumallien soveltamiselle. Pääarkkitehdilla on suurin vastuu suunnittelumallien soveltamisessa, joten hänellä on vahvin kokemus ja tieto kyseisestä menetelmästä. Tätä varten olemme koonneet muutaman referenssiteoksen aiheesta. Pääarkkitehti sekä myös muut suunnitteluun osallistuvat kehittäjät tutustuvat järjestelmän kannalta merkittäviin suunnittelumalleihin sekä hyviksi havaittuihin menetelmiin ja tilanteisiin joissa malleja kannattaa käyttää. Suunnittelun edetessä ja kun tarvittavat teknologiat on saatu päätettyä, välitetään kehittäjille tietoa tehdyistä valinnoista ja miksi niihin päädytty. Kehittäjät pystyvät aloittamaan tutustumisen teknologioihin ja sen sisältämiin suunnittelumalleihin, joita pyrimme tuomaan esiin mm. wikissä. Järjestelmästä laaditut suunnitelmat ja UML-kaaviot dokumentoivat kehittäjille suunnittelumallien käyttöä. Lisäksi toteutusteknologiat sisältävät usein monia suunnittelumalleja ja ajavat automaattisesti käyttämään niitä. Teknologioiden oikeaoppinen käyttö on siis tärkeää, joten Wikiin kootaan materiaalia, vinkkejä ja ratkotaan ongelmia niille varatuilla sivuilla. Suunnittelumallien käyttöä pyritään kontrolloimaan pääarkkitehdin aktiivisella osallistumisella kehittäjien kohtaamien ongelmien ratkomiseen sekä koodikatselmoineilla. Suunniteltaessa järjestelmää huomioitavaa on ainakin mallien ylisoveltamisen välttäminen. Käytetään niitä vain kun voidaan saavuttaa merkittävää hyötyä jatkossa modulaarisuuden tms. osalla ja tällä on kyseisessä järjestelmän osassa jotain merkitystä.

5 3. Kokemukset ja muutokset 3.1 Iteraatio Kehittäjille suunnattu kysely suunnittelumalleista Iteraatio 1:n lopuksi kehittäjille lähetettiin sähköpostitse seuraava kysely: 1. Käytitkö design patterneja suunnitellessasi ohjelmaa? 2. Missä ja mitä design patterneja käytit? 3. Miten design patternin tarve tuli esiin? 4. Kuinka kauan käytit aikaa sopivan design patternin etsimiseen? 5. Mitä laatuatribuutteja (testattavuus yms.) design patternin avulla parannettiin? 6. Koitko että design patternien käytöstä oli hyötyä suunnittelussa ja/tai ohjelmoinnissa? 7. Olisitko käyttänyt design patterneja ilman että käytäntö oli "pakollinen"? Kehittäjistä kaikki mainitsivat käyttäneensä suunnittelumalleja. Simulaattorin kehittäjät kertoivat käyttäneensä luokkarakenteen suunnittelussa Facadea ja Strategyä. TetraConnection-paketin kehittäjä Markku Huttunen kertoi suunnittelumallien käytöstä seuraavasti: "Luokka MessageTransferer toimii eräänlaisena Julkisivuna eli Facadena. Se kokoaa ja piilottaa osan alijärjestelmän tarjoamista toiminnallisuuksista ja pyrkii näin tarjoamaan yksinkertaisemman rajapinnan corelle. Tavallaan luokan MessageHandler voitaisiin ajatella toimivan eräänlaisena Sovittimena eli Adapterina. Se kääntää EPA:n ymmärtämiä viestejä Valppaan ymmärtämään muotoon ja päinvastoin. Luokat MessageHandler ja MessageTransferer tekevät myös tarkkailua siinä määrin, että MessageHandler luokassa hoidetaan istunnon uudelleen loggaaminen ja MessageTransferer luokassa luodaan uusi istunto jos vanha on jo ehtinyt vanheta. Toisaalta koska tämä tarkkailu tapahtuu vain viestejä lähetettäessä/vastaanotettaessa, joka tapahtuu coresta käsin, on vähän kyseenalaista voidaanko sanoa Tarkkailija(Observer) design patternia käytettäneen." Kehittäjien mielestä suunnittelumallien käyttö oli itsestään selvää ja suurin tarve malleille oli rajapinnoissa. Kukaan kehittäjistä ei raportoinut käyttäneensä sopivan suunnittelumallin etsimiseen juurikaan aikaa. Malleja sovellettiin joko "siinä sivussa" tai tajuttiin vasta myöhemmin että mallia oli käytetty, joten kehittäjät kokivat vaikeaksi erotella nimenomaan suunnittelumallien etsimiseen käytettyä aikaa. Laatuattribuuteista kehittäjät kokivat parantaneensa käytettävyyttä, ylläpidettävyyttä, siirrettävyyttä, tehokkuutta ja testattavuutta.

6 Kaikki kehittäjät kokivat suunnittelumallien käytön hyödylliseksi ja olisivat käyttäneet suunnittelumalleja myös ilman SEPAa Suunnittelumallien käytön analyysi Valpas Valppaan toteuttamiseen valittiin avoimen lähdekoodin komponentit Spring, Hibernate ja Quartz. Komponentit toivat mukanaan omat mallinsa, jotka tiedettiin suunnittelumallien kannalta toimiviksi. Spring mahdollistaa olioiden kytkemisen toisiinsa koskematta lähdekoodiin ja se tarjoaa olioiden instantiointiin singleton ja tehdastyyppiset tavat. Tähän mennessä tarvitsimme tosin vain singletoneja. Laitteidenvalvontapalvelin Laitteidenvalvontapalvelimen arkkitehtuurissa otettiin huomioon mahdolliset vaihtoehtoiset käyttöliittymät tarjoten palvelimen toimintoihin RMI-rajapinnat. Käytimme näiden toteuttamiseen Springin tarjoamia proxy-tehtaita, jolloin ainoaksi työksi jäi irrottaa erilleen RMI:n yli käytettävistä palveluista niiden rajapinnat. Rajapinnat muodostettiin ConfigurationFacadeBeanista sekä DeviceFacadeBeanista, jotka tarjoavat selkeät palvelut Valppaan ohjaamiseen. Proxy-suunnittelumallia käytimme lisäksi transaktioiden hallintaan käyttäen Springin TransactionInterceptoria, joka toimii näkymättömänä proxynä varsinaisen tietokantaa käyttävän objektin välissä. Transaktiot on määritelty deklaratiivisesti ja niiden käyttö ei näy itse koodissa. Tietokannan saanti on toteutettiin käyttäen Hibernatea sekä Springin tarjoamia luokkia sen käyttöön. Luokat abstrahoivat kannan käytön muulta sovellukselta tietokannan aksessointiolioilla (DAO suunnittelumalli). Tällä saavutetaan joustavuutta, jos kantaa joudutaan vaihtamaan tai Hibernaten käyttö ei enää ole soveliasta. Lisäksi laitteiden valvonnassa on käytetty tarkkailija-suunnittelumallia, joka helpottaa tulevassa iteraatiossa vikatilanteista ilmoittavien komponenttien toteutuksessa. Lisäksi TETRA-verkossa EPA:n avulla viestiminen on abstrahoitu viestintää suorittavan julkisivun (Facade) taakse. Tällä saadaan koottua mm. Apache Axis:sta ja EPA:sta riippuvat osat yhteen paikkaan ja muulle sovellukselle tarjotaan laitteiden valvonnan kannalta riittävä, mutta yksinkertainen rajapinta. Valppaan komentorivikäyttöliittymä Komentorivikäyttöliittymä on pyritty toteuttamaan helposti laajennettavaksi. Tämä on saavutettu käyttämällä tehdassuunnittelumallia komentoparserien luontiin, jolloin varsinaisen parserin ei tarvitse tietää mitkä komennot ovat mahdollisia. Lisäksi parsitusta datasta luodaan komentoja, jotka välitetään niitä suorittavalle luokalle käyttäen viestin tai tässä tapauksessa komennon edelleen lähettämistä (Double Dispatch). Ratkaisu on hieman kömpelö, sillä komentoja suorittavan luokan rajapintaa joudutaan laajentamaan lisättäessä komentoja ja lisäksi se sen koko paisuu tarpeettoman suureksi. Jatkossa olisi syytä siirtää suoritus itse komentoihin ja käyttää

7 niiden luomiseen vaikka tehdasta, joka yhdistää tarvittavat Valppaan komponentit niihin Simulaattori Simulaattorissa puhelimen ohjaus käyttämällä sarjaporttia abstrahoitiin omaan julkisivuunsa. Tällä päästiin simulaattorin muissa osissa eroon turhista yksityiskohdista ja viestintä sarjaportin välityksellä on mahdollisimman yksinkertaista. Simulaattorin toteutuksessa tuli vastaan ongelmia käyttöjärjestelmien kanssa ja jouduttiin käyttämään eri kirjastoja eri käyttöjärjestelmissä. Julkisivu helpotti kirjaston vaihtamista Analysaattori Analysaattorissa suunnittelumallien käyttö rajoittui käyttöliittymään, joka toteutettiin Swingillä. Swing perustuu MVC-suunnittelumalliin, jonka ideana on erottaa käyttöliittymäkomponenttien malli, näkymä ja ohjauslogiikka toisistaan. Lisäksi toteutuksessa käytettiin tarkkailijoita kuuntelemaan komponenttien tapahtumia. MVC:n ja Swingin hyödyt Analysaattorissa rajoittuivat suurimmaksi osaksi käyttöliittymän rakentamisen helppouteen ja nopeuteen. Analysaattoria ei ole tarkoitus jatkokehittää, joten MVC:n kehittyneemmät edut tuskin tulevat ilmi. 3.2 Iteraatio Suunnittelumallien käytön analyysi Valpas Web-käyttöliittymä Toisen iteraation ainut suunnittelumallien kannalta merkittävä tehtävä oli webkäyttöliittymän kehittäminen. Alkuperäisessä arkkitehtuurissa päätimme käyttää liittymän suunnittelemiseen jotain MVC-pohjaista frameworkiä. Koska valitsimme Springin tukemaan Valppaan toteutusta ja käytimme sitä siinä erittäin tehokkaasti ottaen huomioon kehittäjien kokemuksen aiheesta, päätimme jatkaa samoilla linjoilla myös web-käyttöliittymän kanssa. Lisäksi käytimme Struts-tilesiä käyttöliittymän erillisten komponenttien rakentamiseen. Springin MVC osoittautui sopivan kevyeksi ja antoi paljon liikkumavapautta toteutukseen. Spring ei ota kantaa käytettävään view-teknologiaan, mutta päätimme käyttää JSP-sivuja ja JSTL:ää. Pyrimme mahdollisimman puhtaasti erottamaan datan näyttämisen sen käsittelystä, joten JSP-sivuissa on pyritty käyttämään mahdollisimman vähän logiikkaa. Mallina käytimme suoraan Valppaan transferobjekteja ja logiikka on sisällytetty kontrollerien toteutuksiin. Lisäksi määritimme, että käyttöliittymässä kaikki tilaa muuttavat operaatiot tehdään POST-metodilla ja muut GET-metodilla. Tähän ei kuitenkaan aivan päästy sillä konsepti ei ollut kaikissa kohtaa täysin selvä kehittäjille. Lisäksi käytimme ns. redirect after post - suunnittelumallia lomakkeiden kanssa estämään ylimääräiset lähetykset ja näistä johtuvat väärät tilamuutokset.

8 Laitteidenvalvontapalvelin Ensimmäisessä iteraatiossa laitteiden valvonnassa käytetty tarkkailija-suunnittelumalli ei osoittautunut hyödylliseksi sillä asiakkaan haluamia vaatimuksia muutettiin realistisemmiksi ja vähemmän merkittäviä toimintoja karsittiin. Tosin GSMmuistutusten toteutus oli pöydällä vielä loppumetreille ja se oltaisiin voitu toteuttaa käyttäen suunniteltua rajapintaa. Muu laitteidenvalvontapalvelimen kehitys painottui lähinnä refaktorointiin ja bugien korjaukseen Analysaattori Analysaattoriin toteutettiin I2:ssa joitakin käyttäjän elämää helpottavia lisätoiminnallisuuksia. Koska kyseessä olivat käyttöliittymäkomponentit, jotka toteutettiin Swingillä, käytettiin edelleenkin MVC-mallia ja tarkkailijoita, eivätkä kokemukset muuttuneet iteraatio 1:stä Simulaattori Simulaattorin osalta iteraatio 2:ssa keskityttiin lähinnä bugikorjauksiin. Pieniä lisäominaisuuksia myös toteutettiin, mutta suunnittelumallien osalta uusia kokemuksia ei tullut.

9 4 Yhteenveto Yhteenvetona voidaan todeta, että SEPAn aihe oli hyödyllinen, mutta SEPAn teko aiheesta osoittautui kohtuullisen hankalaksi. Tämä siitä syystä että projektin aikana oli hyvin vaikea erottaa milloin teki SEPAa, milloin "normaalia" suunnittelua, joka teki kokemusten keräämisen hieman hankalaksi. Lisäksi aihe oli sen verran tuttu kaikille, että varsinaista hyötyä SEPAsta ei ollut, koska suurin osa tiesi jo etukäteen mitä suunnittelumallit ovat ja miten niitä käytetään, ja todennäköisesti olisivat käyttäneet suunnittelumalleja muutenkin. SEPAn ansiosta myös tuli kiinnitettyä huomiota siihen, millaisia suunnittelumalleja valmiissa komponenteissa, kuten Springissä ja Swingissä, on käytetty. Tästä ei kuitenkaan projektille suoraa lisäarvoa tullut, koska näitä komponentteja olisi käytetty myös ilman SEPAa. SEPAn hyödyksi voi lukea, että kaikki kuitenkin varmasti kiinnittivät huomiota suunnittelumallien käyttöön. Ehkä ilman SEPAa suunnittelumalleja ei olisi käytetty yhtä paljon ja yhtä hyödyllisesti, joka taas olisi saattanut aiheuttaa vaikeuksia projektin etenemiselle varsinkin toisessa iteraatiossa, kun "vanhan" koodin päälle piti rakentaa uusia ominaisuuksia. Suunnittelumallien käyttö selkeytti luokkatason arkkitehtuuria, kun luokan nimestä pystyi päättelemään, mitä mallia luokassa oli käytetty (esimerkiksi luokka DeviceFacade oli julkisivu).

SEPA päiväkirja. Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen

SEPA päiväkirja. Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen SEPA päiväkirja Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen 1. Johdanto...3 2. Menetelmän käyttö...4 3. Kokemukset ja muutokset...5 1. Johdanto SEPAn aiheenamme meillä on suunnittelumallit

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

T Ohjelmistokehitysprojekti I Tekninen Määrittely

T Ohjelmistokehitysprojekti I Tekninen Määrittely T-76.4115 Ohjelmistokehitysprojekti I Tekninen Määrittely Versio Päiväys Muokkaaja Kuvaus 0.9 30.11.2005 Tuukka Laakso Kommentoitava versio 1.0 4.12.2005 Tuukka Laakso Palautettava versio 2.0 Tuukka Laakso

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

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

T-76.4115 Ohjelmistokehitysprojekti I Tekninen Määrittely

T-76.4115 Ohjelmistokehitysprojekti I Tekninen Määrittely T-76.4110 Ohjelmistoprojekti I T-76.4115 Ohjelmistokehitysprojekti I Tekninen Määrittely Versio Päiväys Muokkaaja Kuvaus 0.9 30.11.2005 Tuukka Laakso Kommentoitava versio 1.0 4.12.2005 Tuukka Laakso Palautettava

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

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

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

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

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

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

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

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

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

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

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

Ohjelmistotuotanto. Luento 9 23.4.2012

Ohjelmistotuotanto. Luento 9 23.4.2012 Ohjelmistotuotanto Luento 9 23.4.2012 Lisää suunnittelumalleja Olion rikastaminen dekoraattorilla Joskus eteen tulee tarve lisätä olioon jotain ekstraominaisuuksia, pitäen kuitenkin olio sellaisena että

Lisätiedot

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I SEPA päiväkirja Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T-76.4110 Ohjelmistoprojekti I Sisällysluettelo Sisällysluettelo...2 1. Johdanto...3 2.

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

T Henkilökohtainen harjoitus: FASTAXON

T Henkilökohtainen harjoitus: FASTAXON T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä

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

Graafinen käyttöliittymä, osa 1

Graafinen käyttöliittymä, osa 1 Graafinen käyttöliittymä, osa 1 Idea, MVC-malli ja ensimmäinen ohjelma Graafinen käyttöliittymä Ensimmäisen kerran tavoitteena on oppia graafisen ohjelman perusidea sekä oppia laatimaan esimerkin mukaan

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

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

T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät

T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Software design and specification methods Kurssin henkilökunta ja sponsori Luennoitsija DI Antti Karanta, Napa Oy www.napa.fi Assistentti TkL

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

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

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Suunnittelumalleja, MVC. Juha Järvensivu 2008 Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden

Lisätiedot

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Graafisen käyttöliittymän ohjelmointi Syksy 2013 TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on

Lisätiedot

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen

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

T Ohjelmistokehitysprojekti I - Iteraatiosuunnitelma (I2)

T Ohjelmistokehitysprojekti I - Iteraatiosuunnitelma (I2) T-76.4110 Ohjelmistoprojekti I 25.2.2006 T-76.4115 Ohjelmistokehitysprojekti I - Iteraatiosuunnitelma (I2) Versio Päiväys Muokkaaja Kuvaus 2.0 25.2.2006 Markus Kattilamäki Päivämäärien tarkennus, viimeistely

Lisätiedot

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

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä. 25.1.2010 Palaverin kysymyksien selvittelymuistio Mitä ominaisuuksia halutaan? Sopivat ajat sprinttien jälkeisiin demoihin/palavereihin. - mitkä ajat sopivat? Pekka : pe 12-16 Tommi : pe 8-16 Onko ohjelmointikielen

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 15. maaliskuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

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

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

T 76.115 Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi Hirviö Projektikatselmointi Mikä Hirviö on? Hajautettu muistikirja Professoreille Muistiinpanoja keskusteluista opiskelijan kanssa Diplomitöiden ja jatko opintojen seuranta Raportointi Opetushenkilökunnalle

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa J2EE web-ohjelmointi Teoria ja ohjelmointitehtävät J2EE web-ohjelmointi 3 JOHDATUS OPISKELUUN...7 Opiskelu kurssilla... 7 Kurssin sisältö... 7 Aikataulu...

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

Tik-76.612 Ohjelmistoprojektien Hallinta

Tik-76.612 Ohjelmistoprojektien Hallinta Tik-76.612 Ohjelmistoprojektien Hallinta Tervetuloa kurssille! 2 Kurssin yleisinfo Kurssin tausta Katsaus luentoihin Aloitusluennon agenda Luennoitsijoiden esittely Harjoitustyön läpikäynti Muut käytännön

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

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen

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

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7 Pauli Kettunen Esityksen rakenne 1. Taustaa 2. Push web-ohjelmoinnissa Comet Interaktiomallit 3. Push älypuhelinalustoilla Deacon pilvipalveluna

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

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

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

T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Arkkitehtuuri- ja suunnittelumalli

T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Arkkitehtuuri- ja suunnittelumalli T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Arkkitehtuuri- ja suunnittelumalli Lasse Lindqvist Lasse Lopperi llindqvi@cc.hut.fi lmlopper@cc.hut.fi

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

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Tik Harjoitustyö

Tik Harjoitustyö Tik-76.612 Harjoitustyö Harjoitustyön uusi aikataulu Ti 12.3 Kurssin aloitus Harjoitustyön läpikäynti To 14.3 Ti 19.3 Projektin synty Projektisuunnitelma Ryhmien muodostuminen To 21.3 Ti 26.3 To 4.4 Ti

Lisätiedot

Liiketoimintasovellusten modernisointi - Anna sovelluksillesi uusi elämä. Sofor varmistaa investointiesi tehokkaan hyödyntämisen

Liiketoimintasovellusten modernisointi - Anna sovelluksillesi uusi elämä. Sofor varmistaa investointiesi tehokkaan hyödyntämisen Liiketoimintasovellusten modernisointi - Anna sovelluksillesi uusi elämä Sofor varmistaa investointiesi tehokkaan hyödyntämisen 1 Syitä liiketoimintasovellusten modernisointiin Sovellusten käyttötarkoitus

Lisätiedot

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja.

Lisätiedot

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä

Olio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä Olio-ohjelmointi Johdanto suunnittelumalleihin Hyvin toimivan olio-ohjelmointiparadigmaa noudattavan ohjelman suunnitteleminen ei ole helppo tehtävä. On löydettävä sopiva luokkarakenne kuvaamaan ratkaistavaa

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

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

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum

Lisätiedot

Tik-76.612 Harjoitustyö

Tik-76.612 Harjoitustyö Tik-76.612 Harjoitustyö Harjoitustyö Tehdään 2-3 hengen ryhmissä Koostuu etapeista joiden aikana simuloidaan ohjelmistoprojektin läpivientiä On nivottu osaksi kurssin luentoja On pakollinen 2 Harjoitustyön

Lisätiedot

Ohjelmistotekniikan menetelmät, suunnittelumalleja

Ohjelmistotekniikan menetelmät, suunnittelumalleja 582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman

Lisätiedot

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

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Matkailutoimialan aamu. 1.4.2009 Design Hill, Halikko Riikka Niemelä

Matkailutoimialan aamu. 1.4.2009 Design Hill, Halikko Riikka Niemelä Matkailutoimialan aamu 1.4.2009 Design Hill, Halikko Riikka Niemelä Asiakaskäyttäytyminen internetissä asiakkaan tietotarpeet ja ostopäätökseen vaikuttavat tekijät Internet on noussut vallitsevaksi viestintävälineeksi.

Lisätiedot

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen Projektityö: Mobiiliajopäiväkirja Mikko Suomalainen 1. Määritelmä Mobiiliajopäiväkirja on kännyköille suunnattu ajopäiväkirja-sovellus. Sovelluksen pääperiaate on toimia automaattisena ajopäiväkirjana.

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet Järjestelmäarkkitehtuuri (TK081702) Integraation tavoitteita Lähtökohta Web-palvelut Asiakasrekisteri ERP, Tuotannon ohjaus Tuotanto Myynti Intranet Extranet? CRM Johdon tuki Henkilöstö Kirjanpito Palkanlaskenta

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

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

Lisätiedot

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

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön

Lisätiedot

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio 1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006 2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus...

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit

Lisätiedot

1 Sisällysluettelo 2 Johdanto 3 Menetelmän käyttö

1 Sisällysluettelo 2 Johdanto 3 Menetelmän käyttö SEPA-päiväkirja Aihe: Refaktorointi Tekijät: Markku Huttunen, Antti Poikela 1 Sisällysluettelo 1. Sisällysluettelo 2. Johdanto 3. Menetelmän käyttö 4. Kokemukset ja muutokset 5. Lähdeluettelo 2 Johdanto

Lisätiedot

T harjoitustyö, kevät 2012

T harjoitustyö, kevät 2012 T-110.4100 harjoitustyö, kevät 2012 Kurssiassistentit T-110.4100@tkk.fi Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto 31.1.2012 Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä,

Lisätiedot

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

Tekoälykokeiluprojekti. Henkilökohtaisen kalenterin optimointi tekoälyllä Skycode Oy (ent. Suomen Mediatoimisto Oy) Tekoälykokeiluprojekti Henkilökohtaisen kalenterin optimointi tekoälyllä Skycode Oy (ent. Suomen Mediatoimisto Oy) 9.11.2018 Alkuperäinen idea Järjestelmän ideana on toimia yhdessä oman kalenterisi kanssa

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

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1. Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001

Lisätiedot

Logistiikkapalvelu. uusia työkaluja markkinointiin

Logistiikkapalvelu. uusia työkaluja markkinointiin Logistiikkapalvelu uusia työkaluja markkinointiin Mistä on kyse? I-printin logistiikkapalvelu tarjoaa käyttöösi seuraavat ratkaisut: Markkinointimateriaalien varastointi Pakkaus- ja postitustyöt Graafisten

Lisätiedot

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

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Aikuisopiskelijan viikko - Viitekehys alueellisten verkostojen yhteistyöhön

Aikuisopiskelijan viikko - Viitekehys alueellisten verkostojen yhteistyöhön Aikuisopiskelijan viikko - Viitekehys alueellisten verkostojen yhteistyöhön Aikuisopiskelijan viikko tarjoaa mainion tilaisuuden toteuttaa tapahtumia yhteistyössä oman alueen eri organisaatioiden kanssa.

Lisätiedot

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009 Antitammirobotti Antti Meriläinen Martin Pärtel 29. toukokuuta 2009 Helsingin yliopisto Tietojenkäsittelytieteen laitos Robottiohjelmoinnin harjoitustyö

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja. RUUTU DYNAAMINEN SPOTTI TEKNISET OHJEET Versio 1.0 Yleistä Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja. Dynaamiset spotit ovat flash mainoksia, jotka mahdollistavat

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite 2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto

Lisätiedot

Raportti Tapahtumia kaikille! -oppaasta tehdystä kyselystä

Raportti Tapahtumia kaikille! -oppaasta tehdystä kyselystä Raportti Tapahtumia kaikille! -oppaasta tehdystä kyselystä Kulttuuria kaikille -palvelu 4.1.2017 2 / 6 Johdanto Tapahtumia kaikille! Opas saavutettavan kulttuurifestivaalin järjestämiseen on Kulttuuria

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö 0349955 Pekka Hyvärinen 0342194 Joonas Heikelä 0327708 Miro Temonen 0350122 Sami Tuominen Yleistä Seminaarityö osa kurssia Käyttöjärjestelmät

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

S11-09 Control System for an. Autonomous Household Robot Platform

S11-09 Control System for an. Autonomous Household Robot Platform S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on

Lisätiedot

T Refaktorointi

T Refaktorointi T-76.115 SEPA päiväkirja Refaktorointi Jani Heikkinen Kim Nylund 15. maaliskuuta 2005 1 Sisältö 1 Esittely 3 2 Menetelmä projektikäytössä 3 3 Kokemukset ja muutokset suunnitelmaan 4 3.1 Suunnitteluvaihe...........................

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

Lisätiedot

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli Lasse Lindqvist Lasse Lopperi llindqvi@cc.hut.fi lmlopper@cc.hut.fi Andrey Rusanovich

Lisätiedot

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Projektisuunnitelma (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Ville Toiviainen Tomi Tuovinen Lauri af Heurlin Tavoite Projektin tarkoituksena

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot