Ratkaisumallien hyväksikäyttö ohjelmistotyökaluissa
|
|
- Tyyne Jääskeläinen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ratkaisumallien hyväksikäyttö ohjelmistotyökaluissa Jaakko Vuolasto Helsinki Seminaariesitelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 Sisällys 1 Johdanto Ratkaisumallin olemus UML ja ratkaisumallit Ohjelmistotyökalujen tuki ratkaisumalleille Sirpalemalli Lähdekoodin generointi ratkaisumalleista FRED Pattern Lint Loppusanat...9 Lähteet...10
3 1 Johdanto Ratkaisumalli (Design Pattern) on käytännössä hyväksi todettu tapa ratkaista jokin tietty ongelma. Käsite on peräisin arkkitehtuurin alalta, sen esitteli arkkitehti Christopher Alexander 1970-luvun lopulla. Ohjelmistotuotantoon se löysi tiensä 1990-luvulla [BMR96]. Tämän esityksen tavoitteena on kuvata, mitä ratkaisumalli tarkoittaa ja miten niitä voidaan kuvata UMLtekniikoilla sekä esitellä lyhyesti muutamia välineitä, jotka joko tukevat mallien käyttöä tai ovat nimenomaan kehitetty ratkaisumalleja silmällä pitäen. Termiä malli käytetään tässä esityksessä ratkaisumallin synonyyminä. 2 Ratkaisumallin olemus Ratkaisumalli muodostuu asiayhteydestä, ongelmasta ja ratkaisusta [BMR96]: Jokainen ratkaisumalli liittyy aina johonkin tiettyyn asiayhteyteen. Asiayhteydellä tarkoitetaan käytännössä tilannetta ja ympäristöä, jossa ongelma esiintyy. Ratkaisumallin esittämä ongelma esiintyy toistuvasti. Ongelma voidaan määritellä joukkona jännitteitä (forces). Ratkaisu kuvaa suunnitteluun kuuluvat elementit ja niiden väliset suhteet, eri elementtien vastuut sekä yhteistoiminnan. Ratkaisu on kokoonpano, joka tasapainottaa jännitteet. Niin sanottu Gang of Four ryhmä (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) painottaa teoksessaan [GHJ95] yllä mainittujen ominaisuuksien lisäksi ratkaisumallin nimeä ja seurauksia: Ratkaisumallin nimi toimii tunnisteena ja viestinnän välineenä; se kasvattaa ohjelmistokehittäjien yhteistä sanastoa. Ratkaisumallin soveltamisella on aina tiettyjä seurauksia. Mallissa on etuja ja haittoja, ja niitä on syytä punnita kun mallia käytetään. Uusia ratkaisumalleja ei keksitä, vaan ne löydetään olemassa olevista ohjelmistoista. Silti malli ei ole yhtä kuin valmis koodinpätkä, jonka voi leikata ja liimata lähdekooditiedostosta toiseen. Toki ratkaisumalliin voi liittyä esimerkkitoteutus jollakin ohjelmointikielellä. Ytimeltään ratkaisumalli on kuitenkin aina abstrakti kysymyksessä on uudelleenkäyttö suunnittelun, ei toteutuksen tasolla. 1
4 3 UML ja ratkaisumallit Unified Modeling Language, UML, on saavuttanut melko vankan aseman ohjelmistojen suunnittelun ja dokumentoinnin välineenä. Näin ollen UML:n ja ratkaisumallien suhdetta kannattaa tarkastella hiukan, sillä ihanteellinen CASE-työkalu tukee sekä UML:n että ratkaisumallien käyttöä. Vaikka osa tässä artikkelissa esiteltävistä työkaluista onkin peräisin UML:ää edeltävältä aikakaudelta, se ei kuitenkaan tee niistä kelvottomia. Jos työkalun teoreettinen perusta on riittävän vankka, UML-tuen mahdollinen lisääminen tuskin aiheuttaa ylitsepääsemättömiä ongelmia. UML-käyttäjän oppaassa [BRC99] käytetään termiä mekanismi (mechanism) ratkaisumallin synonyyminä. Lisäksi puhutaan kehyksistä (framework), jotka vastaavat jokseenkin arkkitehtuuria kuvaavia ratkaisumalleja. Mekanismit voidaan kuvata yhteistyökaavioiden (collaboration) avulla. Yhteistyökaavion rakenne kuvataan luokkakaaviolla, ja sen käyttäytyminen kuvataan sekvenssikaavion avulla. Tämän kuvaustekniikan ongelmana on, että yksittäistä ratkaisumallia ei oikeastaan esitetä atomisena yksikkönä, vaan kokoelmana UML:n peruselementtejä. Ratkaisumalli joudutaan aina rakentamaan uudestaan. Kehysten eli arkkitehtuurimallien kuvaamiseksi esitetään pakkausta, jolla on tietty stereotyyppi (stereotyped package). Tämäkään ratkaisu ei kuitenkaan ole ongelmaton: miten kuvata tilanne, jossa luokka on osallisena useammassa kuin yhdessä ratkaisumallissa [Lai00]. UML sallii yksittäisen luokan kuulumisen useampaan eri pakkaukseen, mutta tällöin pakkausten on oltava aidosti sisäkkäisiä. Laine esittääkin, että ratkaisumallit voisi kuvata stereotyyppien avulla. Määritellään ratkaisumallin rakennekuvaus stereotyyppinä PatternTemplate, ja sille edelleen luokkakohtaiset liittymät olioiden luomista varten. Tämän tekniikan hyödyntäminen käytännössä tietenkin vaatisi työkalun, joka tukee ratkaisua. 4 Ohjelmistotyökalujen tuki ratkaisumalleille Artikkelissa [Vil97] listataan toivottavia ominaisuuksia ratkaisumalleja tukevalle CASEvälineelle: luettelo ratkaisumalleista, mahdollisuus valita ja hakea malleja 2
5 mallien lisääminen suunnitelmaan ja mallin roolien jakaminen eri luokille mallien oikeellisuuden tarkistaminen, mahdollisten ristiriitojen ratkaisu mallien visualisointi järjestelmän esittäminen eri abstraktiotasoilla: arkkitehtuurista yksittäisiin luokkiin automaattinen mallien tunnistus koodista mahdollisuus muokata malleja ja luoda kokonaan uusia ryhmätyöominaisuudet Seuraavien kappaleiden esimerkit ovat keskenään hyvinkin erilaisia ja sijoittuvat ohjelmistoprosessin eri vaiheisiin. Ne kuitenkin sisältävät ainakin joitakin yllä mainituista ominaisuuksista. Kustakin työkalusta esitellään lyhyesti sekä sen teoreettista taustaa että käytännön toteutusta. 4.1 Sirpalemalli Gert Florijn, Marco Meijers ja Pieter van Winsen esittelevät artikkelissaan [FMW97] ohjelmistotyökalun, joka tukee ratkaisumallin elementtien (luokat, hierarkiat) luomista, olemassa olevien elementtien kytkemistä jonkin ratkaisumallin rooleihin ja edelleen tuloksen validointia, siis että luokat ja niiden roolit täyttävät ratkaisumallin asettamat ehdot. Tavoitteena on ollut, että ratkaisumalleja voidaan käyttää ohjelman suunnittelun peruspalasina. Työkalun pohjana ovat sirpalemalli (fragment model) ja sitä vastaava sirpaletietokanta (fragment database). Yksi sirpale kuvaa yhtä elementtiä esimerkiksi luokkaa, metodia, yhteyttä tai ratkaisumallia. Sirpaleella on rooleja, joihin voi sisältyä viittauksia toisiin sirpaleisiin. Työn alla oleva ohjelmisto esitetään eri tyyppisten sirpaleitten verkkona. Sirpaleeseen voi liittyä myös jokin tietty käyttäytyminen, vaikkapa ratkaisumalliin liittyvän operaation toteutus. Järjestelmä koostuu ratkaisumallivarastosta ja kahdesta työkalusta sirpaleitten käsittelyä varten. Ratkaisumallivarasto on toteutettu joukkona erilaisia sirpaleitten kokoonpanoja. Ratkaisumalli otetaan käyttöön kloonaamalla haluttu kokoonpano varastosta työn alla olevaan ohjelmistoon. Sirpaleiden tutkimista ja valintaa varten on oma selaimensa (fragment browser). Selain tarjoaa globaalin näkymän työn alla olevaan sirpalerakenteeseen, luettelon niistä ratkaisumalleista, jotka löytyvät varastosta, sekä operaatiot sirpalerakenteen manipulointiin eli ratkaisumallien 3
6 käsittelyyn. Yksittäisen sirpaleen ja sen ominaisuuksien tutkimista varten on oma välineensä (fragment inspector). Näiden kolmen jossain mielessä alemman tason osan ohella järjestelmä sisältää OMTtekniikkaan pohjautuvan mallinnustyökalun, jonka tavoitteena on olla helppokäyttöisempi kuin sirpaletietokantaa suoraan käsittelevät työkalut. Kokonaisuuteen kuuluu myös import- ja exporttoiminnot Smalltalkilla kirjoitetuille ohjelmille. OMT-työkalu Selain (browser & inspector) Smalltalk import Sirpaletietokanta Ratkaisumallien prototyyppejä Ohjelman sirpaleita Sirpalemalli Kuva 1. Sirpalemalliin pohjautuvan järjestelmän arkkitehtuuri Järjestelmä on toteutettu Visualworks Smalltalk ohjelmointikielellä, ja sitä on kirjoittajien mukaan käytetty Smalltalkilla toteutetun WWW-selaimen kehitystyössä. Työkalu on prototyyppiasteella. Yhtenä jatkotavoitteena mainitaan kieliriippumattomuus, sillä nykyinen toteutus on ilmeisen voimakkaasti sidottu Smalltalkiin. 4.2 Lähdekoodin generointi ratkaisumalleista Artikkelissa [BFV96] kuvataan WWW-ympäristössä toimiva ohjelmistotyökalu, joka tuottaa ratkaisumallin toteuttavan lähdekoodin automaattisesti, kun käyttäjä on ensin määritellyt riittävät parametrit. Toteutus sisältää myös hypertekstiversion kirjasta [GHJ95] John Vlissides on yksi artikkelin kirjoittajista ja mukana kehitystyössä. 4
7 Tavoitteena on ollut luoda väline, jota on helppo kehittää edelleen ja toisaalta helppo käyttää. WWW-ympäristö valittiin työkalun alustaksi, koska haluttiin hyödyntää mahdollisimman paljon olemassa olevia sovelluksia ja teknologiaa (selaimet ja palvelimet), ja toisaalta koska WWW mahdollistaa hajautetun toteutuksen. Esittäjä Sovittaja Koodigeneraattori Ulkonäön kuvaukset (HTML) Sovittajan kuvaukset (Perl) COGENT Kuva 2. Koodigenerointityökalun arkkitehtuuri Työkalu koostuu kolmesta osasta: esittäjä (presenter), sovittaja (mapper) ja koodigeneraattori (code generator). Esittäjä toteuttaa käyttöliittymän, joka on siis selainpohjainen. Koodigeneraattori tuottaa ratkaisumallia vastaavan lähdekoodin ja sovittaja määrittelee, kuinka koodigeneraattorin ja esittäjän yhteistyö tapahtuu. Koodigeneraattori on COGENT-tulkki (COde GENeration Template). COGENT on kirjoittajien kehittämä kieli lähdekoodin generoimista varten. Se ei ole sidottu tuottamaan mitään tiettyä ohjelmointikieltä. Suunnittelun lähtökohtana on ollut yksinkertaisuus, joten kieli sisältää vain viisi perusrakennetta: makrojen korvaaminen, ehdollinen sisällytys (COGENT-koodin katkelma otetaan mukaan jonkin ehdon perusteella), toistuva sisällytys (COGENT-koodin katkelma otetaan mukaan monta kertaa), eräänlainen aliohjelmamekanismi ja arvojen sijoittaminen 5
8 makroille. Kirjoittajien mukaan näillä ominaisuuksilla saadaan riittävän ilmaisuvoimainen kieli tähän tehtävään. Sovittaja on Perl-tulkki, ja sovittajan kuvaukset (Kuva 2) ovat siis Perl-skriptejä. Sovittajan tehtävänä on liittää käyttöliittymän elementit vastaaviin COGENT-parametreihin ja toisaalta vastata käyttäjän pyyntöihin eli näyttää uusi HTML-sivu tai suorittaa COGENT-skripti. Tiedonkulku käyttöliittymästä Perl-skriptille perustuu CGI-mekanismiin. Käyttäjä asettaa käyttöliittymässä (HTML-lomake) haluttuun ratkaisumalliin liittyvät parametrit ja lähettää pyynnön eteenpäin. Sovittaja kutsuu COGENT-tulkkia, joka tuottaa ratkaisumallia vastaavan lähdekoodin. Lähdekoodi palautuu käyttäjälle uutena WWW-sivuna, joten se täytyy leikata ja liimata varsinaiseen kehitysympäristöön. Tämä ei tietysti ole ohjelmoijan kannalta paras mahdollinen tapa. Ongelmia tulee myös, kun generoitua koodia muokataan, ja sitten generoidaan uudestaan miten säilyttää käsin tehdyt muutokset? Kirjoittajat esittävät ratkaisuksi kahden luokan generoimista: luokka ja sille aliluokka. Kaikki muutokset tehdään aliluokkaan. Näin muutokset eivät katoa, jos varsinaisen luokan koodi täytyy generoida uudestaan. WWW-tekniikkaan pohjautuva CASE-työkalu, joka tukee ratkaisumallien käyttöä, on ajatuksena kiinnostava. Kirjoittajat listaavat jatkotutkimuksen aiheina esimerkiksi saman toimintaajatuksen soveltamisen vaatimusten määrittelyyn, dokumentointiin tai virheenjäljitykseen. 4.3 FRED FRED on Helsingin ja Tampereen yliopistojen tietojenkäsittelytieteiden laitosten yhteinen projekti, jonka tuotteena on syntynyt samanniminen ohjelmistotyökalu sovelluskehysten kehittämistä varten [HHT98]. FRED on toteutettu Javalla ja se on tarkoitettu Java-sovellusten ja -sovelluskehysten luomiseen. Kirjoittajien mukaan FREDin takana oleva ajatusmalli ei kuitenkaan ole sidottu mihinkään tiettyyn ohjelmointikieleen. Sekä yksittäiset sovellukset että sovelluskehykset ovat arkkitehtuureja (architectures). Arkkitehtuuri muodostuu elementeistä kuten ratkaisumallit, luokat ja rajapinnat. Näitä elementtejä kutsutaan yhteisellä nimellä rakenne (structure). Rakenteet voidaan luokitella yhdistettyihin (composite) ja lehtiin (leaf). Arkkitehtuurin rakenteet muodostavat suunnatun 6
9 verkon, ja koska tietotyyppi kuten luokka voi kuulua useampaan eri ratkaisumalliin, kysymyksessä on nimenomaan verkko eikä puu. Jokainen rakenne on joko toteutus (implementation) tai kaava 1 (template). Toteutus on sovelluksessa olemassa oleva rakenne ja kaava puolestaan määrittelee joukon mahdollisia toteutuksia. Kaikki rakenteet perustuvat vastaaviin metarakenteisiin (meta structure). Uusia rakenteita saadaan luomalla mallin ilmentymiä. FRED esittää ratkaisumallit nimenomaan kaavoina. Työkalun käyttöliittymä on kolmiosainen (Kuva 3): vasemmalla olevien puurakenteiden avulla voidaan selailla ja manipuloida arkkitehtuuria ja sen eri näkökohtia. Rakenteita muokataan oikean puolen Desktop-ikkunassa, ja Notes-ikkunassa näkyy käsiteltävän rakenteen dokumentaatio. 1 Suomennos on hieman hankala, termin template voisi kääntää myös malliksi, mutta tällöin törmätään ratkaisumallin käsitteeseen. 7
10 Kuva 3. FREDin käyttöliittymä Kirjoittajien mukaan FREDin ansiona on se, ettei ratkaisumallien tuki rajoitu vain lähdekoodin generoimiseen, vaan mallit ovat eksplisiittisesti mukana koko ajan, suunnittelusta toteutukseen. Näin vältetään koodin uudelleen generoimiseen liittyvät ongelmat. 4.4 Pattern Lint Pattern Lint on ohjelmistotyökalu, jonka tarkoitus on auttaa kehittäjiä varmistamaan, ettei toteutusvaiheessa ajauduta liian kauas suunnitelmasta [SSC96]. Se analysoi sekä ohjelman staattista että dynaamista rakennetta, ja varmistaa eri tasoilla, että ohjelma noudattaa suunnitelmia. Näitä eri tasoja ovat konkreettiset säännöt kuten ohjelmointityyli, erilaiset heuristiikat kuten koheesio ja kytkentä sekä tämän esityksen kannalta kiinnostavimpana näkökohtana arkkitehtuuriin liittyvät säännöt, esimerkiksi ratkaisumallit. Ratkaisumallit (ja arkkitehtuurisäännöt yleensä) määritellään Prolog-lauseina. Lauseita on kahdentyyppisiä: sellaisia, jotka pyrkivät löytämään tukea sille, että toteutus noudattaa suunnitelmaa ja toisaalta sellaisia, jotka pyrkivät löytämään suunnitelman ja toteutuksen välisiä ristiriitoja. Kirjoittajien mukaan näiden sääntötyyppien käyttö yhdessä auttaa vähentämään vääriä hälytyksiä. Käyttöliittymässä voidaan valita ratkaisumalli ja tutkia, kuinka lähdekoodi noudattaa haluttua mallia. Pattern Lintin ensimmäisinä komponentteina ovat jäsennin, joka lukee analysoitavan lähdekoodin, ja tietokantageneraattori, joka luo tietokannan koodissa esiintyvistä relaatioista. Prologilla toteutettu päättelyrutiini vertaa sitten näitä koodissa olevia relaatioita mallin määrittelemiin relaatioihin, ja kertoo, onko toteutus mallin mukainen vai ei. Staattinen korrelaattori (static correlator) tuottaa vertailun lopputulosta vastaavan graafisen datan. Tässä vaiheessa käyttäjä voi niin halutessaan tuottaa analyysin ohjelman dynaamisesta rakenteesta instrumentointityökalun avulla. Lopuksi erillinen näyttökomponentti luo visuaalisen esityksen sekä staattisesta että dynaamisesta analyysista. Työkalua on käytetty Choices-käyttöjärjestelmän kehittämisessä, erityisesti laitehallinnan toteutuksessa. Kirjoittajat mainitsevat lähdekoodin generoinnin yhtenä mahdollisena parannuksena nykyiseen versioon. 8
11 5 Loppusanat Tässä artikkelissa on kuvailtu ratkaisumallin käsite, sekä käsitelty lyhyesti UML:n ja ratkaisumallien suhdetta, erityisesti ratkaisumallien kuvaamisen problematiikkaa. Artikkelissa on esitelty kuinka muutamat ohjelmistotyökalut tukevat ratkaisumallien käyttöä. Tavoitteena ei ole ollut minkään yksittäisen työkalun perinpohjainen läpikäynti, vaan pikemminkin yleiskatsaus. Painopiste on ollut akateemisissa eikä kaupallisissa välineissä. Aiheesta tuntuu olevan melko runsaasti tutkimusta, joten yhden seminaariesitelmän puitteissa ei välttämättä päästä vielä kovin syvälle. 9
12 Lähteet BFV96 Budinsky F., Finnie M., Vlissides J., Yu P., Automatic Code Generation from Design Patterns. IBM Systems Journal 35, 2, 1996, BMR96 Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M., A System of Patterns Pattern-Oriented Software Architecture. John Wiley & Sons, BRC99 Booch R., Rumbaugh J., Jacobson I., The Unified Modeling Language User Guide. Addison-Wesley, FMW97 Florijn G., Meijers M., van Winsen P., Tool support for object-oriented patterns. <URL: GHJ95 Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley, HHT98 Hakala M., Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J: Pattern - Oriented Framework Engineering Using FRED. <URL: Lai00 Laine H., Ohjelmistoarkkitehtuurit. Luentomoniste, Helsingin yliopiston tietojenkäsittelytieteen laitos, SSC96 Sefika M., Sane A., Campbell R.H., Monitoring Compliance of a Software System With Its High-Level Design Models. Proc. of ICSE 96, Berlin 1996, IEEE Computer Society Press Vil97 Viljamaa J., Tools Supporting the Use of Design Patterns in Frameworks. Report C , University of Helsinki, Department of Computer Science, <URL: 10
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ätiedotRatkaisumallien historia
Ratkaisumallien historia Jaakko Vuolasto Helsinki 25.1.2001 Seminaariesitelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisällys 1 Johdanto... 1 2 Ratkaisumallin käsite ohjelmistotuotannossa...
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
LisätiedotOhjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
Lisätiedothttp://www.enteract.com/~bradapp/docs/patterns-intro.html http://www.hillside.net/patterns/
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki: Rekursiokooste Antisuunnittelumallit Suunnittelumallit ja UML Mallikielet Suunnittelumallit
LisätiedotOhjelmistojen 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ätiedotMalliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki
Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,
LisätiedotOhjelmistotekniikan 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ätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
LisätiedotOhjelmistoarkkitehtuurit kevät
Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki:
LisätiedotOhjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
Lisätiedot5. Suunnittelumallit. TTY Ohjelmistotekniikka
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Antisuunnittelumallit Esimerkki: Rekursiokooste Suunnittelumallit ja kehykset Suunnittelumallit ja
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State
2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä
Lisätiedot812347A 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ätiedotOlio-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ätiedotOhjelmistoarkkitehtuurit Kevät käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto
LisätiedotWWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa
WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,
LisätiedotOliosuunnittelu. Oliosuunnittelu
Oliosuunnittelu Perinnän ja dynaamisen sidonnan hyödyntäminen Tarkastellaan ohjelmaa, jonka tehtävänä on tuottaa erilaisista kuvioista muodostuva kuvaesitys Ratkaisu 1: perinteinen malli - ei perintää
LisätiedotOhjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista
582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)
LisätiedotUML - unified modeling language
UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet:
LisätiedotHarjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
LisätiedotYlläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito
Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa
LisätiedotHirviö. 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ätiedotHieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
LisätiedotUnified Modeling Language
Unified Modeling Language Confuse 25.11.2001 Tila Versio: 1.0 Vaihe: T1 Jakelu: Julkinen Luontipäivä: 15.11.2001 Antti Haapakoski Muutettu viimeksi: 25.11.2001 Antti Haapakoski Sisältö 1 Yleistä 1 2 Mallinnuksesta
LisätiedotAnalyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio
Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:
LisätiedotOhjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
LisätiedotOhjelmistojen mallintaminen kertausta Harri Laine 1
kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit
LisätiedotMuusta kuin vesisioista
Muusta kuin vesisioista Janne Käki 8.12.2006 Metodin kuormittaminen (overloading) Samannimisestä metodista on määritelty samassa luokassa (tai samassa yli- ja aliluokkien jatkumossa) useita versioita,
LisätiedotOhjelmistotekniikan 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ätiedotOhjelmistoarkkitehtuurit. Syksy 2008
Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen
LisätiedotOhjelmistojen mallintaminen Unified Modeling Language (UML)
582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..
Lisätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
LisätiedotUML: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ätiedotDigi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
LisätiedotOhjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys
LisätiedotYlläpito. Ylläpidon lajeja
Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective)
LisätiedotAction Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
LisätiedotKäyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
LisätiedotJohdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)
DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän
LisätiedotJohdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys
DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
LisätiedotT SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
LisätiedotKertaus: yleistys-erikoistus ja perintä
Kertaus: yleistys-erikoistus ja perintä Nauta, Lehmä ja Kuttu ovat Kotieläimiä, Kotieläimet Eläimiä Kotieläimillä (siis myös Naudoilla, Lehmillä ja Kutuilla) on Omistaja Kuttu ja Lehmä toteuttavat rajapinnan
LisätiedotVisual 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ätiedotUML-kielen formalisointi Object-Z:lla
UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,
LisätiedotTenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotTestidatan generointi
Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI
LisätiedotOhjelmistotekniikan menetelmät, suunnittelumalleja
582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Seuraavaksi tarjolla: Otekn-asiaa vähän pintaa syvemmältä Virtuaalifunktiot ja erikoistaminen, olioiden kopiointi ja elinaika
LisätiedotOlioperustaisuus (object oriented)
DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotMenetelmäraportti - Konfiguraationhallinta
Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1
LisätiedotLuokka- ja oliokaaviot
Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
Lisätiedot5. Suunnittelumallit. TTY Ohjelmistotekniikka
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Antisuunnittelumallit Esimerkki: Rekursiokooste Suunnittelumallit ja kehykset Suunnittelumallit ja
LisätiedotOhjelmistojen mallintaminen, sekvenssikaaviot
582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden
LisätiedotMoniulotteisten ohjelmistojen hallinta
Moniulotteisten ohjelmistojen hallinta Kai Koskimies Tampereen teknillinen yliopisto http://www.cs.tut.fi/~kk http://practise.cs.tut.fi 1 Ohjelmistokehityksen kehitys Vaatimukset Ohjelmointikieli Programming-in-the-small
LisätiedotKurssin hallinta -työväline
Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,
LisätiedotT-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot
T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi
Lisätiedot582203 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ätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotObject Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen
Object Framework - One OF-1 is a high-productive Multi-UI OpenEdge data driven development framework Veli-Matti Korhonen Aiheet OF-1 esittely Mitä ominaisuuksia saa ilman ohjelmointia Miten ohjelmoidaan
LisätiedotSEPA - 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ätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotDXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/
DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.
LisätiedotLoppuraportti. 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ätiedotHakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
LisätiedotOhjelmistojen mallintaminen Luokkakaaviot Harri Laine 1
Ohjelmistojen mallintaminen Luokkakaaviot 5.12.2008 Harri Laine 1 Olioiden palvelut Palvelun kuvauksessa annettavat tiedot näkyvyys (kuten attribuuttien kohdalla) nimi (ainoa välttämätön osa) parametrit
LisätiedotVisual Basic -sovelluskehitin Juha Vitikka
Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen
LisätiedotAlustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v. 2015 alusta Luonnonvarakeskus / Luke)
Alustavia käyttökokemuksia SAS Studiosta Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v. 2015 alusta Luonnonvarakeskus / Luke) 19.9.2014 Lyhyesti SAS-koodareille suunnattu uusi käyttöliittymä
LisätiedotTaustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
LisätiedotMäärittely- ja suunnittelumenetelmät
Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka
LisätiedotPaikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto
Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen Lassi Lehto INSPIRE-seminaari 23.08.2012 Sisältö Tietotuoteselosteen rakenne (ISO 19131) Unified Modeling Language (UML) Luokkakaaviotekniikan perusteet
LisätiedotOhjelmistoarkkitehtuurin suunnittelu
Ohjelmistoarkkitehtuurin suunnittelu Luento 3 10.9.2014 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritietämyksen lähteet Yleisiä suunnitteluperiaatteita Kaunis arkkitehtuuri 10.9.2014
LisätiedotMatematiikan oppifoorumi Projektisuunnitelma
Matematiikan oppifoorumi Projektisuunnitelma Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Asiakas Mikko Mäkelä Ohjelmistotuotantoprojekti 29.10.1999
LisätiedotTentissä 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ätiedotOhjelmistoarkkitehtuurit. Syksy 2007
Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien
LisätiedotTenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotOhjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotConcurrency - 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ätiedotSuunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
LisätiedotCopyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa
Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa Platform Tuotekehityksen haasteita ja ratkaisuja Haaste: Massiivisten tietomäärien hallinta Ratkaisu: Pilvipalvelun skaalautuvuus Haaste:
LisätiedotOhjelmistokehykset (software frameworks)
Ohjelmistoarkkitehtuurit 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen osia
LisätiedotOhjelmistojen mallintaminen luokkamallin lisäpiirteitä
582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotTä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ätiedotkansainvälistäminen ja paikallistaminen Zopessa Plonen käännöstyö Asko Soukka, Jyväskylän yliopisto asko.soukka@jyu.fi
kansainvälistäminen ja paikallistaminen Zopessa Plonen käännöstyö Asko Soukka, Jyväskylän yliopisto asko.soukka@jyu.fi Kääntämisvaihtoehdot Plonessa Localizer ja Translation Service käytön myötä kumuloituva
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotHaaga-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ätiedotXPages 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ätiedotKieliversiointityökalu Java-ohjelmistoon. Ohje
Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5
Lisätiedot