UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Koko: px
Aloita esitys sivulta:

Download "UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos"

Transkriptio

1 Seminaariesitelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 Sisällys 1 Johdanto 1 2 UML:n perusteet Kaaviot Yleiskäsitteet ja käyttötapauskaavio Luokkakaavio Tilasiirtymäkaavio Vuorovaikutuskaaviot Toteutustason kaaviot Kattavuus 5 3 UML metamallina Arkkitehtuuri Miten metamalli määritellään? Esimerkki pakkauksen määritelmästä Miten metamallia voi hyödyntää? Stereotyypit eli lajit Metamallin ongelmat 11 4 Lähteet 13

3 1 Johdanto Unified Modeling Language (UML) on kuvauskieli, jota voidaan käyttää apuvälineenä erityisesti komponentti- ja olioperustaisen ohjelmistotuotannon eri vaiheissa. Sen kehittivät Grady Booch, Ivar Jacobson ja Jim Rumbaugh Rational Software -yhtiössä. Kehittäjien tavoitteena oli luoda helppokäyttöinen ja tehokas visuaalinen kuvauskieli, joka tukee erilaisten korkean tason ratkaisujen, kuten suunnittelumallien ja komponenttien käyttöä. Kielen haluttiin olevan myös laajennettavissa ja erikoistettavissa, mikäli se on tarpeen jonkin erikoisalan ratkaisujen kuvaamisessa. Kehityksen perustana käytettiin erityisesti erilaisia oliomenetelmiä (object oriented methods), mutta myös olioihin perustumattomilla menetelmillä (non-oo influences) ovat vaikuttaneet UML:ään. UML:ssä käytetään kaavioita suunnitteluongelmien esittämiseen ja ratkaisujen kuvaamiseen. Määrittelyvaiheessa selvitetään asiakkaan vaatimuksia ja esitellään suunnitelmia esimerkiksi käyttötapauskaavioiden avulla. Suunnittelu- ja toteutusvaiheessa ohjelmiston ja sen osien loogista rakennetta ja kontrollin kulkua kuvataan vaikkapa luokka- ja sekvenssikaavioilla. Järjestelmän dokumentaatiossa kaaviot auttavat kokonaiskuvan hahmottamisessa. Kaavioiden avulla luodaan myös erilaisia näkymiä järjestelmään 4+1"-mallin mukaisesti [Kru95]. 1

4 2 UML:n perusteet UML tarjoaa kuvaustekniikoita ohjelmistotuotteiden määrittelyyn (VSHFLI\LQJ), visualisointiin (YLVXDOL]LQJ), rakentamiseen (FRQVWUXFWLQJ) ja dokumentointiin (GRFXPHQWLQJ). Määrittelyn apuvälineenä kaaviot kertovat havainnollisesti, mitä järjestelmältä vaaditaan ja miten se pitäisi toteuttaa. Suunnitteluvaiheessa esitetään erilaisin kaavioin järjestelmän kokonaisrakenne ja tärkeät yksityiskohdat. Näin ratkaisut säilyvät tallessa ja niihin voidaan palata tai vedota myöhemmin suunnitteluvaiheessa. Määrittely-, suunnittelu- ja toteutusvaiheen ratkaisuja kuvaavat kaaviot on hyvä sisällyttää järjestelmän dokumentaatioon, siten saadaan jatkokehityksen ja ylläpidon kannalta arvokasta tietoa järjestelmän elinkaaresta [Sia98a]. 2.1 Kaaviot Perus-UML tarjoaa paljon kaaviotyyppejä eri tarkoituksiin [Rat00]. Järjestelmän käyttötapauksia kuvataan käyttötapauskaaviolla. Loogista rakennetta kuvataan luokkakaavioilla ja kontrollin kulun kuvaamiseen käytetään tilasiirtymä- ja sekvenssikaavioita. Komponenttijakoa ja laitteistosijoittelua kuvataan komponentti- ja laitteistotkaavioin. Yleiskatsauksen eri osapuolten välisestä yhteistyöstä saa yhteistyökaaviosta Yleiskäsitteet ja käyttötapauskaavio Yleiskäsitteitä (General purpose concepts) ovat pakkaus (package), ja riippuvuussuhteen selitys (dependency note). Niitä kuvaavia symboleja voidaan käyttää kaikissa kaavioissa. Käyttötapauskaavion (Use-case diagram, kuva 2.1) avulla esitetään ja tarkennetaan käyttäjien ja ohjelman välista vuorovaikutusta ohjelmistosuunnittelun alkuvaiheessa. Käyttötapauskaavioon liittyviä käsitteitä ovat toimija (actor), käyttötapaus (use case) ja yhteys (association). 2

5 2.1.2 Luokkakaavio Erityisesti suunnittelu- ja toteutusvaiheessa on hyötyä järjestelmän loogista rakennetta - luokkia ja niiden välisiä suhteita - kuvaavista luokkakaavioista (Class diagram, kuva 2.2). Luokkakaavioon liittyviä käsitteitä ovat mm. Luokka, Rajoitteet, Ominaisuudet tai Yleistys/Erikoistus Kuva 2-2 Luokkakaavio 3

6 2.1.3 Tilasiirtymäkaavio Tilasiirtymäkaavio (State transition diagram ) (kuva 2.3) perustuu David Harelin kehittämään kuvaustekniikkaan. Kaaviossa näkyvät järjestelmän mahdolliset tilat, tapahtumat jotka aiheuttavat siirtymisen tilasta toiseen ja tilasiirtymän seurauksena tapahtuvat tapahtumat. Kuva 2-3 Tilasiirtymäkaavio Vuorovaikutuskaaviot Sekvenssikaavio (Sequence diagram) ja yhteistyökaavio (Collaboratin diagram) havainnollistavat järjestelmän olioiden vuorovaikutusta (kuva 2.4). Kuva 2-4 Vuorovaikutuskaavio 4

7 2.1.5 Toteustutason kaaviot Toteutusta kuvaavat komponentti- ja laitekaaviot (component and deployment diagrams) (kuva 2.5). Komponenttikaavio kuvaa komponenttien välisiä riippuvuuksia ja deploymentkaavio kuvaa ajonaikaisten elementtien konfiguraatiota. Nämä kaaviot ovat erityisen hyödyllisiä ohjelmiston ylläpidettävyyden ja jatkokehityksen kannalta. Kuva 2-5 Toteutustason kaaviot 2.2 Kattavuus (Scope of UML) UML on työväline, jota käyttäen ohjelmistotuotteeseen liittyvää tietoa voidaan esittää kuvallisesti. Kuvallinen esitys on usein helpommin hahmotettavissa kuin pelkkään tekstiin perustuva, joten UML-kaavioita voidaan käyttää esimerkiksi tiedon välitykseen ohjelmiston tuottajalta asiakkaalle ja ohjelmoijalta toiselle, sekä apuna järjestelmän suunnittelussa ja ongelmien ratkaisemisessa. UML ei ole visuaalinen ohjelmointikieli vaan visuaalinen kuvauskieli. Vaikka sitä voidaan käyttää apuna suunnitteluongelmien ratkaisemisessa, se ei itsessään ole mikään ongelmanratkaisuväline [Sia98b]. 5

8 3 UML metamallina Koska UML on kieli, vaikkakin kuvallinen, sillä on semantiikka ja kielioppi (syntaksi) niinkuin kaikilla kielillä. UML:n semantiikka ja syntaksin kuvaillaan sen metamallissa. Siinä määritellään kaikki UML:n käsitteet ja kuvataan niiden väliset suhteet UML:n omalla luokkakaavionotaatiolla. UML on siis osaksi määritelty itsellään! Metamalli toimii perustana erilaisille UML:ää tukeville työkaluille. Työkalun on mahdollistettava tiettyjen standardielementtien käyttö, mutta siinä voi olla myös metamallia laajentamalla aikaansaatuja uusia elementtejä [Kos97]. 3.1 Arkkitehtuuri UML:n arkkitehtuuri perustuu neljän tason metamalliin (four-layer metamodel structure). Ylimmällä tasolla on meta-metamalli (meta-metamodel), seuraavalla metamalli (metamodel), sitten malli (model) ja alimpana, konkreettisimpana, käyttäjän objektit (user objects). Esimerkiksi metamallin Luokka on metametamallin MetaLuokan ilmentymä. UML-määritelmässä sanaa metamalli käytetään hieman häiritsevästi sekä koko neljän tason arkkitehtonisesta kokonaisuudesta, että yhdestä sen tasoista. Taulukko 3.1 Neljän tason metamallinnusarkkitehtuuri (metamodelling arch.) Taso Kuvaus Esimerkki PHWDPHWDPDOOL 0HWDPDOOL 0DOOL.l\WWlMlREMHNWLWXVHUGDWD 0HWDPDOOLUDNHQWHHQSHUXVWD.XYDDNLHOHQMROODPHWDPDOOL PllULWHOOllQ 0HWDPHWDPDOOLQLOPHQW\Pl.XYDDNLHOHQMROODPDOOL PllULWHOOllQ 0HWDPDOOLQLOPHQW\Pl.XYDD NLHOHQMROODVRYHOOXVDOD LQIRUPDWLRQGRPDLQ NXYDLOODDQ 0DOOLQLOPHQW\Pl.XYDD VRYHOOXVDOXHHQ 0HWD&ODVVV0HWD$WWULEXWH 0HWD2SHUDWLRQ &ODVVV$WWULEXWH2SHUDWLRQ &RPSRQHQW 6WRFN6KDUHDVN3ULFH 6HOO/LPLW2UGHU 6WRFN4XRWH6HUYHU $FPHB6:B6KDUHB! VHOOBOLPLWBRUGHU 6

9 Neljän tason metamalli kuvaa vain UML:n loogisen rakenteen. Olioparadigman mukaisesti metamalli määrittelee rajapinnan, jota toteutuksen pitää vastata. Fyysinen rakenne ja toteutus siis piilotetaan. Koska toteutuksesta ei anneta tarkkaa kuvausta, saattavat eri ohjelmistoyrittäjien UML-kaavionpiirto-ohjelmat olla suorituskyvyltään hyvinkin erilaisia. Myöskään symbolien ulkoasuun ei puututa metamallin määritelmässä vaan ne kuvataan erikseen UML:n määritelmässä (UML Notation Guide)[OMG99]. Myös metamallitaso on jaettu loogisiin kokonaisuuksiin. Pakkauksia on kolme: Foundation, Behavioral Elements ja Model Management (kuva 3.1), jotka vuorostaan on jaettu pakkauksiin tarpeen mukaan. Esimerkiksi Foundation sisältää Core-, Extension Mechanisms- ja Data Types -pakkaukset (kuva 3.2). Kuva 3-1 Metamallitason pakkaukset Kuva 3-2 Foundation-pakkauksen alipakkaukset 7

10 3.2 Miten metamalli määritellään? UML:n metamallin virallinen määritelmä löytyy Rational Softwaren WWWsivuilta. Kielioppi kuvataan UML-kaaviolla, muotosäännöt ja semantiikka luonnolisella tai formaalilla kielellä. Taulukko 3.2 Metamallin määritelmän osat Määritelmän osa Abstrakti kielioppi (Abstract Syntax) Muotosäännöt (Well-Formedness Rules) Semantiikka (Semantics) Vakioelementit (Standard Elements) Huomautukset (Notes) Tarkoitus UML-notaatiolla tehty luokkakaavio Sanallinen tai formaalikielinen (Object Constrant Language) kuvaus UMLmetaluokkien pysyvistä (static) ominaisuuksista. Sanallinen selitys rakenteiden merkityksestä. Aiemmin samassa osassa määriteltyjen metaluokkien stereotyyppien kuvaukset, mahdollisesti muotosääntöineen. Sanallinen selitys esimerkiksi metamallin ratkaisujen syistä tai käytännön neuvoja tai esimerkkejä Esimerkki pakkauksen määritelmästä Esimerkkinä metamallin määritelmästä esitetään alku Extension Mechanisms - pakkauksen määritelmästä. Määritelmä on otettu suoraan UMLspesifikaatiosta[OMG99]. $EVWUDFW6\QWD[ 8

11 &RQVWUDLQW 7KHFRQVWUDLQWFRQFHSWDOORZVQHZVHPDQWLFVWREHVSHFLILHGOLQJXLVWLFDOO\IRUD PRGHOHOHPHQW... $WWULEXWHV ERG\ $ERROHDQH[SUHVVLRQGHILQLQJWKHFRQVWUDLQW([SUHVVLRQVDUH ZULWWHQDVVWULQJVLQDGHVLJQDWHGODQJXDJH)RUWKHPRGHOWREH ZHOOIRUPHGWKHH[SUHVVLRQPXVWDOZD\V\LHOGDWUXHYDOXHZKHQ HYDOXDWHGIRULQVWDQFHVRIWKHFRQVWUDLQHGHOHPHQWVDWDQ\WLPH ZKHQWKHV\VWHPLVVWDEOHLHQRWGXULQJWKHH[HFXWLRQRIDQ DWRPLFRSHUDWLRQ $VVRFLDWLRQV FRQVWUDLQHG(OHPHQW$QRUGHUHGOLVWRIHOHPHQWVVXEMHFWWRWKHFRQVWUDLQW7KH FRQVWUDLQWDSSOLHVWRWKHLULQVWDQFHV,IWKHHOHPHQWLVDVWHUHRW\SH WKHQWKHFRQVWUDLQWDSSOLHVWRWKHHOHPHQWVFODVVLILHGXVLQJLW :HOO)RUPHGQHVV5XOHV 7KHIROORZLQJZHOOIRUPHGQHVVUXOHVDSSO\WRWKH([WHQVLRQ0HFKDQLVPV SDFNDJH &RQVWUDLQW... &RQVWUDLQWVRQDQ\LQKHULWHG6WHUHRW\SHRUDVVRFLDWHGZLWKWKH EDVH&ODVV -- cannot be specified with OCL FRQIOLFWZLWKDQ\FRQVWUDLQWVRQWKHDWWDFKHGFODVVLI\LQJ6WHUHRW\SH QRUZLWKWKH&ODVVWKH EDVH&ODVVRIWKH0RGHO(OHPHQW -- cannot be specified with OCL 0RGHO(OHPHQWVFODVVLILHGE\WKDW6WHUHRW\SHDQGPXVWQRWFRQIOLFWZLWK DQ\FRQVWUDLQWVRQWKHDWWDFKHGFODVVLI\LQJ6WHUHRW\SHQRUZLWKWKH &ODVVWKHEDVH&ODVVRIWKH0RGHO(OHPHQW -- cannot be specified with OCL 9

12 3.3 Miten metamallia voi hyödyntää? Vaikka UML:n peruskaaviot ovatkin hyvin ilmaisuvoimaisia ja yleiskäyttöisiä, toisinaan sovellusalan mukaiseksi räätälöity kaavio olisi tarpeen. Miten tämä onnistuisi? UML:ä voi laajentaa ja räätälöidä valmiiden laajennusmenetelmien (extension mechanisms) avulla. Laajennusmenetelmiä ovat stereotyyppien määrittely, metamallin elementin ominaisuuksien muuttaminen, rajoitteiden määrittely ja avainsana-arvo parien (tagged values) määrittely. Näillä keinoin saa lisättyä uudentyyppisiä elementtijä UML-kaavioon tai muutettua olemassa olevien elementtien ominaisuuksia paremmin sovellusalaa vastaaviksi. Laajennuksia tehdessä täytyy kuitenkin muistaa, etteivät ne enää ole yhtä laajalti tunnistettuja ja ymmärrettyjä kuin perus-uml Stereotyypit eli lajit Jokaiseen kaavion yksittäiseen elementtiin (model element) voidaan liittää sen laji (stereotype). Laji ilmoittaa elementin metaluokan, siis sen luokan, jonka ilmentymä kyseinen elementti on kaavion metamallissa (mallissa, joka kuvaa itse kaavion). Perusnotaatioon kuuluu kokoelma lajeja, mutta lajeja voidaan myös lisätä valmiita elementtityyppejä laajentamalla [Kos97]. Elementtejä voidaan jaotella (classify) niiden lajien perusteella. Yleisen luokan eri lajeje voisivat esimerkiksi olla interface, controller tai metaclass [Kos97]. Elementtiä voidaan laajentaa määrittelemällä sille uusia ominaisuuksia (properties), rajoitteita (constraints) tai avain-arvopareja (tagged values). Uudella elementtilajilla on henkilökohtaisten ominaisuuksiensa lisäksi myös lajityypilliset ominaisuudet. Niiden avulla UML-työkalu osaa käsitellä myös laajennettua elementtiä. Alkuperäinen laji näytetään kaksoiskulmasulkujen <<>> 10

13 sisällä luokkalaatikossa. Uudella lajilla saattaa olla myös oma kuvallinen esitysmuoto. Kuva 3-2 Luokan symboli Kehitystyön tavoitteena on ollut, että laajentaminen onnistuu ilman lisäyksiä tai muutoksia metamalliin. Toisaalta, laajennuksia voi tehdä myös metamallia muokkaamalla. Tällä hetkellä UML:ssä on kaksi valmista laajennosta, Objectory Process ja Business Engineering. 3.4 Metamallin ongelmat UML määrittelee seuraavat säännöt laajennusmekanismien käyttöön liittyen. Elementti (Model Element) on nimetty abstraktio mallinnuksen kohteena olevan järjestelmän osasta. Kattaa kaikki metaluokat. Luokittelija (Classifier) on elementti, joka kuvaa käyttäytymistä (behavioral) tai rakennetta (structural features). Luokittelija kattaa siis esimerkiksi mallitason luokat, tietotyypit ja rajapinnat. Ilmentymä (Instance) on elementti, jolla on tila ja tilan muuttamiseen käytettäviä operaatioita. Kaikki käyttäjän tason oliot ovat ilmentymiä ylemmän tason luokista. Elementti Lajisääntö: Elementti voidaan liittää korkeintaan yhteen Lajiin. Laji voidaan liittää nollaan tai useampaan elementtiin. Luokittelija - Ilmentymäsääntö: Ilmentymä saa liittyä yhteen tai useampaan luokittelijaan. Luokittelija voi liittyä nollaan tai useampaan ilmentymään. Luokittelija Ilmentymä Laji sääntö: Ilmentymällä täytyy olla sama Laji kuin sen luokittelijalla. Ilmentymän ei kuitenkaantarvitse visuaalisesti näyttää lajiaan. Luokittelijanotaatiosääntö: Luokittelija-käsitteen (luokan) ilmentymä 11

14 (objekti) kuvataan symbolina, jolla voi olla nimi (merkkijono), joka on alleviivattu. Luokittelijasuhteen (Classifier association) ilmentymä (link) kuvataan viivana, jolla voi olla nimi. Yhteys saattaa myös näyttää osapuolten nimet, jolloin ne pitää alleviivata. Lajin kuvaussääntö: (concept) Luokan tai olion laji kuvataan symbolilla, jossa käsitteen nimi on kaksoiskulmasulkujen sisällä << Nimi >>. Samoin suhteen laji nimi on kulmasulkeiden sisällä. Metamallissa on kuitenkin muutamia virheitä ja ristiriitoja, jotka ilmenevät edellä esiteltyjen laajennussääntöjen yhteydessä [Sia99]. Luokittelija Ilmentymä Lajisääntö on ongelmallinen, sillä säännön mukaisesti olioiden lajit eivät välttämättä näy kaavioista. Ongelma ratkeaisi sallimalla ilmentymien piirtää lajinsa näkyviin. Elementti Laji -sääntö ja Luokittelija Ilmentymäsääntö ovat ristiriitaiset. Jälkimmäinen sääntö sanoo, etttä Ilmentymä voi liittyä yhteen tai useampaan Luokittelijaan, joten Ilmentymällä voi sen takia olla nolla tai enemmän lajeja (yksi per Luokittelija). Toisaalta ensimmäinen sääntö sanoo, että elementtiin voi liittyä yksi tai ei-yhtään lajia. Kun kerran Ilmentymä on elementti, sillä ei saisi olla kuin korkeintaan yksi laji, mutta toisaalta sillä saa olla useampikin, koska se saa jälkimmäisen säännön mukaan liiittyä usempaan Luokittelijaan. Luokittelijanotaatio- ja lajinotaatiosäännöt ovat epäyhtenevät: Käsitteen (concept) laji ja suhteen laji kuvataan kulmasulkeilla täsmälleen samoin. Käsitteen luokittelu (classification) ja suhteen luokittelu (classification) kuvataan kuitenkin eri tavoin (mokkula ja viiva). Koska uusien lajien muodostaminen (stereotyping) ja luokittelu ovat kumpikin ilmentymänteon (instantiating) muotoja, ne pitäisi piirtää jollain yhtenäisemmällä tavalla. 12

15 4 Lähteet Kru95 Kruchten P.,B.: The 4+1 View Model of Architecture, IEEE Software, Nov 1995, pp Sia98a Si Allhir, S. What is the Unified Modelling language (UML)? Rat00 Rational Software Corporation, Quick Reference for Rational Rose KWWSZZZUDWLRQDOFRPXPOUHVRXUFHVTXLFNXPOBSRVWHUMVS Sia98b Si Alhir, S., Applying the Unified Modeling Language (UML), OMG99 OMG Unified Modeling Language Specification Kos97 Koskimies, K. Pieni oliokirja, Suomen atk-kustannus, Espoo, Suomi Sia99 Si Alhir, S. Extending the Unified Modeling Language (UML) 13

Ohjelmistotekniikan menetelmät, UML

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

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

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

Lisätiedot

UML-kielen formalisointi Object-Z:lla

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

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

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

UML - unified modeling language

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

Ohjelmistojen mallintaminen

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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

Unified Modeling Language

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

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit

Lisätiedot

Olioperustaisuus (object oriented)

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

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

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

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

2 Description of Software Architectures

2 Description of Software Architectures 2 Description of Software Architectures 2.1 Significance of architectural descriptions 2.2 Context of architectural descriptions 2.3 Levels of architectural descriptions 2.4 Viewpoints and types in architecture

Lisätiedot

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot Arkkitehtuuripankki Mallintamisen metamalli ja notaatiot 21.2.2018 Sisältö Kuvaustapa (notaatio) ja standardit Mallityypit Metamalli Muuta Kuvaustavat ja hyödynnetyt standardit JHS179 template ArchiMate

Lisätiedot

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

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

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

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

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2010

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

Lisätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

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

Lisätiedot

Hieman lisää malleista ja niiden hyödyntämisestä

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

Ohjelmistojen mallintaminen, kesä 2009

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

Lisätiedot

Ohjelmistotekniikan menetelmät, kevät 2008

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

Lisätiedot

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, mallintaminen ja UML 582101 - Ohjelmistotekniikan menetelmät, mallintaminen ja UML 1 Mallintaminen ja UML (Ch 2.) Ohjelmistojen mallintamisesta ja kuvaamisesta Strukturoitu mallinnus Tietovuo- ja ER-kaaviot Oliomallinnus ja

Lisätiedot

TIE = JOTU. VH5 - MagicDraw

TIE = JOTU. VH5 - MagicDraw TIE-02300 = JOTU VH5 - MagicDraw TIE-02300 2 VH5 kaavionpiirtelyharjoitus Tässä harjoituksessa opetellaan tunnistamaan ja piirtämään tavallisimpia ja käytetyimpiä ohjelmistotuotannon kaavioita: käyttötapauskaavio

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

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

UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ

UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ Juha Rautiainen UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ Tietotekniikan kandidaatintutkielma 20.3.2011 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Juha Rautiainen Yhteystiedot:

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.2 Arkkitehtuurikuvaukset eri tasoilla 2.3 Arkkitehtuurinäkökulmat ja kuvaustyypit 2.4 Arkkitehtuuriviipaleiden kuvaus

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

UML- mallinnus: Tilakaavio

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

Lisätiedot

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista)

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista) Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista) Kari Systä 05.10.2015 9/30/2013 Jotu2013/KSY 1 Ajankohtaista kurssista Keskiviikon viimeinen viikkoharjoitus saatetaan lopettaa

Lisätiedot

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio: Sisällys 9. Unified Modeling Language (UML) Perustuu Kai Koskimiehen Oliokirjaan ja aikaisempaan luentomateriaaliin. Johdanto. Luokkakaavio: Luokkasymboli, attribuutit ja metodit. Suhteet: Assosiaatiot:

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML 5. Kuvaustekniikat Miksi kuvaustekniikoita? Tämä luku perustuu Sommervillen lisäksi seuraaviin kirjoihin: Martin Fowler, UML Distilled - Second Edition. Addison-Wesley, 2000. Roger S. Pressman, Software

Lisätiedot

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005 UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005 Tutustumiskierros Vision UML-kaavioihin Avaa ChampionzoneUML.vsd-tiedosto Tutustu malliin eli

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

UML työvälineenä ja tutkimuskohteena

UML työvälineenä ja tutkimuskohteena UML työvälineenä ja tutkimuskohteena Kai Koskimies, Johannes Koskinen, Mika Maunumaa, Jari Peltonen, Petri Selonen, Mika Siikarla & Tarja Systä Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos

Lisätiedot

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

UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä

UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä Hannu A Heikkinen Helsinki 18.02.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos ii Sisältö 1 Johdanto 1 2 Ohjelmistojen vaatimusmäärittely

Lisätiedot

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

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

Lisätiedot

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010 UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010 TUTUSTUMISKIERROS VISION UML-KAAVIOIHIN Avaa ChampionzoneUML.vsd-tiedosto Tutustu malliin eli eri sivuilla oleviin kaavioihin (napsautus

Lisätiedot

Mallinnus UML-yleiskatsaus

Mallinnus UML-yleiskatsaus 2 Mallinnus UML-yleiskatsaus Tule maalle - näe mullin malli. Tämän osan sisältö Mallinnus ohjelmistoprojekteissa Mallinnuskielet UML-yleiskatsaus Oliopohjainen ajattelu UML-kaaviot rakennetta kuvaavat

Lisätiedot

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä 582104 Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä 1 Sisältö Oliomenetelmien taustaa Kirjastojärjestelmän käyttötapaukset Kirjastojärjestelmän luokkamalli 2 Oliosuuntautunut suunnittelumenetelmä

Lisätiedot

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit

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

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

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

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Lisätiedot

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

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen

Lisätiedot

Kertaus: yleistys-erikoistus ja perintä

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

3a. Projektin hallinta (lisäys lukuun 3)

3a. Projektin hallinta (lisäys lukuun 3) 3a. Projektin hallinta (lisäys lukuun 3) Tehokas projektin hallinta keskittyy kolmeen osaalueeseen: henkilökuntaan, tehtävään ja prosessiin. Henkilökunta: on yrityksen tärkein voimavara, oikea henkilö

Lisätiedot

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistoarkkitehtuurit, syksy Ohjelmistoarkkitehtuurit 2 Rajapinnat 24.9.2012 1 Arkkitehtonisen näkymän esittäminen Luonnollinen kieli + vapaamuotoinen grafiikka taustalla on oltava joku malli, jonka mukaisia asioita kuvaukseen otetaan

Lisätiedot

käyttötapaukset mod. testaus

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

Lisätiedot

Ohjelmistojen mallintaminen, sekvenssikaaviot

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

Lisätiedot

Vaatimusten keräys ja hallinta

Vaatimusten keräys ja hallinta Vaatimusten keräys ja hallinta Inka Vilpola 19.4.2006 Sisältö Vaihe ISO 13407 -prosessissa Vaatimusten lajit (teoria) Vaatimukset hyvälle vaatimukselle Vaatimusten hallinta Vaatimusten kerääminen Vaatimusten

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

812341A Olio-ohjelmointi, I Johdanto

812341A Olio-ohjelmointi, I Johdanto 812341A Olio-ohjelmointi, 2016 I Johdanto Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden kertausta 812341A Olio-ohjelmointi, Johdanto 2 1 Abstraktiosta

Lisätiedot

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML (Ch 2.) Ohjelmistojen mallintamisesta ja kuvaamisesta Strukturoitu mallinnus Tietovuo- ja ER-kaaviot Oliomallinnus ja UML

Lisätiedot

Määrittely- ja suunnittelumenetelmät

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

Yhteenveto. Menettelytavat

Yhteenveto. Menettelytavat Yhteenveto Ohjelmistotuotanto: Luotettavien ja tehokkaiden ohjelmistojärjestelmien tuottamista noudattaen hyviksi havaittuja menettelytapoja. Menettelytavat Prosessimalli (vesiputous/spiraali/kasvattava)

Lisätiedot

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

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

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /

Lisätiedot

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1 Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development 2.12.2008 Harri Laine 1 Jacobson jakaa ohjelmiston oliot kolmeen tyyppiin liittymäolioiksi (interface objects, boundary objects)

Lisätiedot

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 582101 - Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 1 Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Järjestelmän rajaaminen sidosryhmäkaaviolla

Lisätiedot

Visual Case 2. Miika Kasnio (C9767) 23.4.2008

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

Lisätiedot

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Lisätiedot

AVOIMEN LÄHDEKOODIN UML-MALLINNUSVÄLINEIDEN VERTAILU PIENTEN OHJELMISTOPROJEKTIEN TARPEISIIN

AVOIMEN LÄHDEKOODIN UML-MALLINNUSVÄLINEIDEN VERTAILU PIENTEN OHJELMISTOPROJEKTIEN TARPEISIIN Juha Rautiainen AVOIMEN LÄHDEKOODIN UML-MALLINNUSVÄLINEIDEN VERTAILU PIENTEN OHJELMISTOPROJEKTIEN TARPEISIIN Tietotekniikan pro gradu -tutkielma, 15.1.2014 Jyväskylän yliopisto Tietotekniikan laitos Tekijä:

Lisätiedot

5. Järjestelmämallit. Mallinnus

5. Järjestelmämallit. Mallinnus 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

UML OHJELMISTOPROSESSIEN TUKENA

UML OHJELMISTOPROSESSIEN TUKENA UML OHJELMISTOPROSESSIEN TUKENA Kimmo Kampman 11.5.2001 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma TIIVISTELMÄ Ohjelmistojen teko muuttuu jatkuvasti vaativammaksi. Ohjelmiston mallintamisen

Lisätiedot

2. Olio-ohjelmoinnin perusteita 2.1

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

Lisätiedot

UML työvälineenä ja tutkimuskohteena

UML työvälineenä ja tutkimuskohteena UML työvälineenä ja tutkimuskohteena Kai Koskimies, Johannes Koskinen, Mika Maunumaa, Jari Peltonen, Petri Selonen, Mika Siikarla & Tarja Systä Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos

Lisätiedot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

UML-laajennusten arviointi: sovellusalueena WWW-sovellukset

UML-laajennusten arviointi: sovellusalueena WWW-sovellukset Jouni Turpeinen UML-laajennusten arviointi: sovellusalueena WWW-sovellukset Tietojärjestelmätieteen pro gradu -tutkielma 30.7.2004 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Jyväskylä TIIVISTELMÄ

Lisätiedot

Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri Harri Laine 1 Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri 25.11.2008 Harri Laine 1 Buschmann et al: Software architecture is a description of the subsystems and components of a software system and relations

Lisätiedot

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2. CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.2010 Luennon

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

UML-kaaviot. Jouni Kylä-Nikkilä

UML-kaaviot. Jouni Kylä-Nikkilä UML-kaaviot Jouni Kylä-Nikkilä Tampereen yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi Pro gradu -tutkielma Huhtikuu 2008 Tampereen yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi

Lisätiedot

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , ) Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss. 121-133, 135 141) Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Sisältö Sekvenssikaaviot ja tilakaaviot osana UML:ia Sekvenssikaaviot

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset HAAGA-HELIA Käyttötapaukset 1 Käyttötapaukset 1. Käyttötapausmalli 2. Käyttötapaus (Use Case) 3. Toimija (Actor) 4. Käyttötapausmallin sisältö ja rakenne 5. Käyttötapausmalli vs. luokkamalli 6. Käyttötapausmalli

Lisätiedot

Käyttötapausten mallintaminen

Käyttötapausten mallintaminen Käyttötapausten mallintaminen Vaatimukset ja testauslähtöisyys, swd4tn001 Anne Valsta 1.3.2011 (ent. 11.2.2011) Sisällysluettelo 1 Käyttötapaukset ohjelmiston vaatimusten määrityksessä... 2 1.1 Käyttötapauskartta...

Lisätiedot

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

Ohjelmistoarkkitehtuurit. Kevät

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

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

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

1. Tarkastellaan seuraavaa kaaviota

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

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Lisätiedot

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

3. Komponentit ja rajapinnat

3. Komponentit ja rajapinnat 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot