Kuvaustekniikoista menetelmiin

Koko: px
Aloita esitys sivulta:

Download "Kuvaustekniikoista menetelmiin"

Transkriptio

1 Kuvaustekniikoista menetelmiin Kurssin loppuosa käsittelee kuvausmenetelmiä ja tekniikoita. Tarkoituksena on antaa valmiudet sekä laatia että ymmärtää erilaisia ohjelmistotuotannossa yleisesti käytössä olevia kuvauksia. Esiteltävät kuvaustekniikat ovat puoliformaaleita eli niihin liittyy toisaalta formaalille kuvaukselle ominaista täsmällisyyttä ja toisaalta vapaan ilmaisun luomaa helppoutta ja luonnollisuutta. Aihepiiriä käsitellään tässä ja seuraavissa luvuissa laajasti eri tarkoituksiin soveltuvia tekniikoita ja menetelmiä esitellen. Eri kuvauskohteisiin soveltuvat erilaiset kuvausmenetelmät tästä johtuu laaja kuvausmenetelmien kirjo. Yritysten ohjeistot (määrittelymenetelmät, suunnittelumenetelmät) standardoivat yleensä hyvinkin tarkkaan yrityksen kuvauskäytännöt sekä dokumenttimallien että menetelmien osalta. Tekijälle ohjeistus antaa työskentelyn puitteet, dokumenaatiota lukevalle taas mallin odotettavissa olevasta dokumentaation rakenteesta ja muodoista. Olennaista on, että kuvaukset ovat aina odotetunlaisia ja samankaltaisia kaikissa projekteissa. Kuvausmenetelmiä on syytä opetella käyttämään menetelmän periaatteiden mukaisesti sallien kuitenkin luonnollisella kielellä esitettäviä selitteitä ja täydennyksiä niiden osana. Kurssin esittelemät kuvausmenetelmät pohjautuvat pitkälti UML-standardiin. Kurssilla käsitellään myös joitain UML-standardiin kuulumattomia menetelmiä, jotka ovat tarkoituksenmukaisia käytettäväksi joissain erityiskohteissa. Kuvausmenetelmiä koskeva osuus lähtee liikkeelle toimintojen ja tietojen kuvausmenetelmistä. Tämän jälkeen käsitellään luokka- ja käsitekaavioita, tilakaavioita, tapahtumasekvenssien eli vuorovaikutuksen kuvaamista ja tietovirtakaavioita. Käsittelyn lopuksi esitellään eräs tapa sitoa eri kuvausmenetelmät toimivaksi järjestelmän määrittelymenetelmäksi eli käytännössä määrittelydokumentaation rakenne. Toimintojen ja tietojen kuvauksessa käydään läpi algoritmien kuvaamisen tekniikoita, päätöstilanteiden kuvauksessa käytettäviä menettelytapoja sekä tietohakemistomäärittelyn käyttöä tietojen kuvaamisessa. Exit

2 Sisällys Kuvattavat kohteet Johdatus UML-kuvauksiin Terminologiaa Mallinnus Mallien jäsentely Näkymät ja kaaviot UML-kaaviotyypit kehitystyössä UML-kaavioiden kuvausvoima UML:n perusosat Laajennusmekanismit UML ja OMT++ UML ja Simplified Method Kuvaustekniikat Kulkukaavio Rakenteinen kulkukaavio Pseudokoodi Aktiviteettikaavio Päätöspuut ja -taulut Esi- ja jälkiehdot Tietohakemistomäärittely BNF-notaatio Harjoitus Kertauskysymykset Kuvaustekniikoista menetelmiin 2

3 Kuvattavat kohteet Kuvauskäytännöt ei-toiminnalliset ominaisuudet: suorasanainen teksti, kaavat, taulukot, rajoitteet ja reunaehdot: suorasanainen teksti, toiminnalliset ominaisuudet: kuvaustarpeeseen sopivat notaatiot, joita voidaan täydentää suorasanaisella tekstillä ohjeistus määrittää käytettävät notaatiot ja niiden käyttötavan kehitysmenetelmän osana kehitysmenetelmät: notaatioita yhdistelemällä saatuja kokonaisvaltaisia (kuvausten kokonaistarpeet tyydyttäviä) kuvauskäytäntöjä ohjeistaa menetelmien valinnan ja niiden käyttötavan OMG - UML (standardi?) Booch, Rumbaugh, Jacobsson [ Kuvaustekniikoista menetelmiin 3

4 Johdatus UMLkuvauksiin Introduction to UML: Structural Modeling and Use Cases Exit

5 Terminologiaa näkymä (view): kuvaa mallinnettavan järjestelmän eri näkökulmista näkymän kuvaus koostuu useista kaavioista kaavio (diagram): kuvaustekniikkaa käyttäen tehty kuvaus; UMLään sisältyy kuvaustekniikka yhdeksän eri kaavion tekemiseen mallinnuselementti (model element): vastaa olioohjelmoinnin käsitteitä (luokka, yhteys, riippuvuus, ); käytetään erityyppisissä kaavioissa merkityksen muuttumatta yleiset merkinnät (general mechanism), ym:n avulla kuvauksiin voidaan liittää tarkenteita ja laajentaa peruskuvauksia UML:n UML:n kuvausnotaatioita kuvausnotaatioita tarkastellaan tarkastellaan tässä tässä katsauksenomaisesti. Lisätietoja katsauksenomaisesti. Lisätietoja voi voi etsiä etsiä kurssin kurssin seuraavista seuraavista luvuista luvuista ja ja aihetta käsittelevistä aihetta käsittelevistä oppikirjoista. oppikirjoista. Kuvaustekniikoista menetelmiin 5

6 Mallinnus Mallien generointi, tarkistus,... Takaisinmallinnus Mallinnus Koodi Koodin generointi Järjestelmä Lähde: K.Koskimies (2000),UML-kurssin materiaali.tarkemmin: Pieni oliokirja, Suomen ATK-kustannus Mallintaminen Mallintaminen on on todellisuuden abstrahointia todellisuuden (yksinkertaistaminen). abstrahointia (yksinkertaistaminen). Hyvä Hyvä malli rakentuu malli rakentuu samoista samoista toimijoista toimijoista ja toiminnoista ja toiminnoista kuin kuin todellisuuskin. todellisuuskin. Kuvaustekniikoista menetelmiin 6

7 Mallien jäsentely: 4+1 Views käyttötapausnäkymä (use case view): järjestelmän toiminta ulkopuolisen toimijan (actor) kannalta looginen näkymä (logical view): järjestelmän sisäinen toiminnallisuus pysyvien rakenteiden (staattinen) ja muuttuvien (dynaaminen) toimintojen kannalta komponenttinäkymä (component view): lähdemoduulien rakenne samanaikaisuusnäkymä (concurrency view): samanaikaisuutta sisältävän järjestelmän yhteistoiminta kommunikaation ja synkronoinnin kannalta sijoittelunäkymä (deployment view): järjestelmän käyttöönotto eri tietokoneissa ja oheislaitteissa (solmuissa - nodes) Kuvaustekniikoista menetelmiin 7

8 näkymät (Eriksson, Penker) komponenttikaaviot komponenttinäkymä looginen näkymä staattinen:: luokkakaaviot oliokaaviot dynaaminen tilakaaviot sekvenssikaaviot yhteistyökaaviot aktiviteettikaaviot käyttötapauskaaviot aktiviteettikaaviot käyttötapaus näkymä Käyttötapausnäkymä Käyttötapausnäkymä on kehitystyön on kehitystyön perusta (asiakastarpeet). perusta (asiakastarpeet). Muiden Muiden näkymien kuvaus näkymien kuvaus perustuu perustuu tähän. tähän. sijoittelukaaviot sijoittelu näkymä samanaikaisuus näkymä dynaamiset kaaviot tilakaavio sekvenssikaaviot yhteistyökaaviot aktiviteettikaaviot toteutuskaaviot komponenttikaaviot käyttöönottokaaviot Kuvaustekniikoista menetelmiin 8

9 Käyttötapausnäkymä järjestelmän toiminta ulkoisen toimijan kannalta hyödyntäjä: asiakkaat, suunnittelijat, kehittäjät, testaajat ohjaa muiden näkymien kehitystä järjestelmän tavoite on toteuttaa käyttötapausnäkymä Käyttötapaukset testauskuvauksina Käyttötapaukset toimivat toimivat testauskuvauksina järjestelmätestaukselle Kuvaustekniikoista menetelmiin 9

10 Looginen näkymä kuinka järjestelmän toiminnat on toteutettu kuvaa pysyvät rakenteet: luokat, suhteet, dynaamiset rakenteet: yhteistyö ominaisuudet (säilyvyys, samanaikaisuus) ulkoiset rajapinnat sisäiset rakenteet hyödyntäjä: suunnittelijat, kehittäjät Kuvaustekniikoista menetelmiin 10

11 Komponenttinäkymä moduulien toteutus ja riippuvuudet käyttäjät: kehittäjät komponentit ovat erilaisia koodimoduuleita, joiden rakennetta ja riippuvuuksia näkymä kuvaa Kuvaustekniikoista menetelmiin 11

12 Samanaikaisuus- ja sijoittelunäkymät samanaikaisuusnäkymä järjestelmän jako prosesseihin ja prosessoreihin rinnakkaisuus, säikeistys, synkronointi, kommunikaatio, käyttäjät: kehittäjät, integraattorit sijoittelunäkymä järjestelmän fyysinen sijoittelu solmut (tietokoneet) ja niiden välinen riippuvuus koodimoduulien sijoittelu solmuihin, käyttäjät: integraattorit, kehittäjät, testaajat Kuvaustekniikoista menetelmiin 12

13 Näkymät ja kaaviot (Rational Rose) Näkymät use use case case logical component deployment Kaaviot luokka- olio- olio- sekvenssi- yhteistyö tila- tila- aktiviteetti- komponentti- sijoittelu- Kuvaustekniikoista menetelmiin 13

14 UML-kaaviotyypit kehitystyössä Esimerkkejä Rakenne Oliokaaviot Käyttäytyminen Ohjelmistokehitys Käyttötapauskaaviot Sekvenssikaaviot Yhteistyökaaviot Aktiviteettikaaviot Sijoittelukaaviot Luokkakaaviot Tilakaaviot Komponenttikaaviot Lähde: K.Koskimies (2000) Staattinen Staattinen rakenne rakenne Dynamiikka Dynamiikka Perusidea Perusidea mallintamisessa: mallintamisessa: esimerkkien avulla esimerkkien avulla kuvatut kuvatut tilanteet tilanteet yleistetään rakenne- yleistetään rakenneja ja käyttäytymiskuvauksiksi käyttäytymiskuvauksiksi Kuvaustekniikoista menetelmiin 14

15 UML-kaavioiden kuvausvoima Luokkakaaviot Komponenttikaaviot Sijoittelukaaviot Tapahtumasekvenssik.:t Yhteistyökaaviot Tilakaaviot Aktiviteettikaaviot Käyttötapauskaaviot Rakenne Vuorovaikutus Olion käyttäytyminen Järjestelmän käyttäytyminen Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 15

16 Kaaviot käyttötapauskaavio (use case diagram) kuvaa asiakasvaatimukset käyttötapausten muodossa luokkakaavio (class diagram) järjestelmän luokkarakenne oliokaavio (object diagram) luokkakaavion muunnelma, kuvaa luokkarakennetta ilmentymätasolla (esimerkit, joista yleistetään luokkakaavio) tilakaavio (state diagram) (mm.) luokan toiminnan kuvaus Kuvaustekniikoista menetelmiin 16

17 kaaviot sekvenssikaavio (sequence diagram) synonyymi: tapahtumasekvenssikaavio, viestiyhteyskaavio, kommunikointikaavio dynaaminen olioiden (luokkien) välinen yhteistyö käytetään kun ajan kuluminen tai viestisarja on tärkeä esimerkkejä, joista yleistetään toimintokuvaus yhteistyökaavio (collaboration diagram) synonyymi: oliointeraktiokaavio dynaaminen olioiden välinen yhteistyö käytetään kun olioiden suhde kommunikoinnissa on tärkeä Kuvaustekniikoista menetelmiin 17

18 kaaviot aktiviteettikaavio (activity diagram) synonyymi: toimintokaavio toiminnon kulun kuvaaminen komponenttikaavio (component diagram) lähdekoodin fyysinen rakenne voidaan ryhmitellä paketteihin tuki ohjelmointityölle sijoittelukaavio (deployment diagram) synonyymi: käyttöönottokaavio järjestelmän laitteiston ja ohjelmiston fyysinen rakenne solmut (tietokoneet, laittet, ) ja niiden väliset yhteydet Kuvaustekniikoista menetelmiin 18

19 Kaaviot all in one Käyttötapaus Luokka- ja oliokaavio Tapahtumasekvenssikaavio Yhteistoimintakaavio Kuljettaja Kuljettaja Käsittele puu Puu 1..* Tukki Mänty :Puu :Tukki Kuljettaja Sahaa <<create>> AsetaMitat 1. Sahaa 2. Syötä :Tukki 2.1. AsetaMitat Sahaa tukki Mänty :Puu :Tukki Syötä AsetaMitat Mänty :Puu 1.2. AsetaMitat 1.1. <<create>> Aktiviteettikaavio Tilakaavio Komponettikaavio Sijoittelukaavio H Tartu puuhun kouralla H Saha suojassa H.U.I. ITuotanto <<Laptop>> H.U.I. H.U.I. Kaada puu Sahaa / ^KäynnistäTerä PuuPoikki / ^PysäytäTerä Tuotanto <<CAN>> Tuotanto Syötä ja sahaa Valitse puulaji H H Saha ulkona Tuotanto Puu Tukki <<processor>> Main Unit Lähde: I.Haikala Kuvaustekniikoista menetelmiin 19

20 UML:n perusosat Luokka Elementit nimi nimi Riippuvuus Suhteet Olio olionnimi: luokannimi olionnimi: luokannimi Assosiaatio * rooli 0..1 Tila nimi Kooste Pakkaus nimi Yleistys (Periytyminen) Toteutus Kommentti teksti jne. jne. Kuvaustekniikoista menetelmiin 20

21 Käyttötapauskaavio Kukin Kukin käyttötapaus käyttötapaus kuvataan kuvataan yksityiskohtaisesti yksityiskohtaisesti käyttötapauskuvauksena (tekstimuoto) (tekstimuoto) Ajoneuvojen vuokrausjärjestelmä Varaus Käyttöönotto Asiakas Palautus <<include>> Huolto Virkailija Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 21

22 Oliokaavio Olio Olio todellinen todellinen Luokka Luokka --yleistys yleistys : KohdeHallinto Kaksi Kaksi eri eri autoa, autoa, sama sama kohdehallinto. kohdehallinto. Yleistys Yleistys luokkakaaviona. luokkakaaviona. auto1: HenkilöAuto rekisterinumero = XYZ-999 auto2 : HenkilöAuto rekisterinumero = ABC-123 Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 22

23 Luokkakaavio Kaksi Kaksi esimerkkiautoa esimerkkiautoa = yhteys yhteys monta monta Kohde palauta varaa otakäyttöön hallinnoi * 1 KohdeHallinto palauta(kohde, Varasto) varaa(kohde) otakäyttöön(kohde) Varasto HenkilöAuto rekisterinumero huolla(int km) palauta Talleta Talletahuolto- informaatio informaatio (palauta (palautakutsuu) ParkkiAlue Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 23

24 Sekvenssikaavio UI : KohdeHallinto auto: HenkilöAuto parkki: ParkkiAlue palauta(auto, parkki) palauta() varastoi(auto) Lähde: K.Koskimies (2000) Esimerkki Esimerkki interaktiosta interaktiosta (toimijoina (toimijoina oliot oliot ei ei luokat) luokat) Kuvaustekniikoista menetelmiin 24

25 Yhteistyökaavio Sama Sama toiminnallisuus toiminnallisuus edellisen edellisen kaavion kaavion kanssa kanssa 1.1: palauta() auto: Henkilöauto : KohdeHallinto 1: palauta(auto,parkki) 1.2: varastoi(auto) parkki: ParkkiAlue UI Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 25

26 Tilakaavio Auto-olion käyttäytyminen: Auton Auton tilojen tilojen muutosten muutosten tarkastelu tarkastelu avustaa avustaa toiminnallisuuden toiminnallisuuden suunnittelussa suunnittelussa Käytettävissä palauta/ lopeta ajan lasku Käytössä valmis huolla otakäyttöön/ aloita ajan lasku Huollossa Varattu do/huoltoilmoitus varaa Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 26

27 Aktiviteettikaavio Asiakas Pyydä auto Virkailija Tee varaus :lasku [ei maks] Tee lasku :lasku [maks] Maksa Valmistele auto Lähde: K.Koskimies (2000) Ota auto Kolme Kolme toimintosekvenssiä. Synkronointi. toimintosekvenssiä. Synkronointi. Rekisteröi vuokraus Kuvaustekniikoista menetelmiin 27

28 Komponenttikaavio GUI Komponentit Komponentit ja ja rajapinnat rajapinnat (interface) (interface) Auton- Vuokraus VuokrausToiminta Tietokantaliittymä KohdeKanta Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 28

29 Sijoittelukaavio Asiakaspiste: Asiakas : GUI Ajoneuvorekisteri: Palvelin : XTietokantaliittymä : Auton- Vuokraus <<IP>> Kohde- Kanta : XTietokanta Edellisen Edellisen kuvan kuvan komponenttien komponenttien sijoittelu sijoittelu järjestelmäkomponentteihin Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 29

30 Mallinnuselementit Elementit Luokka Nimi Riippuvuus Suhteet Tila Nimi Assosiaatio * rooli 0..1 Kooste Pakkaus nimi Yleistys (Periytyminen) Kommentti Teksti Toteutus Rajapinta Käyttötapaus Komponentti (pakkaus) Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 30

31 mallinnuselementit kaavion symbolille on määritelty yksikäsitteinen semantiikka sama elementti voi olla käytössä useissa eri kaavioissa (UML:n säännöt määrittävät käytettävyyden rajat) mallinnuselementtejä voidaan täsmentää ja laajentaa yleisillä merkinnöillä ja laajennusmerkinnöillä mahdollisuus omien elementtien rakentamiseen Seuraavien Seuraavien esimerkkien esimerkkien avulla avulla annetaan annetaan yleiskuva yleiskuva UML:n UML:n kuvauksista. kuvauksista. Ne Ne on tarkoitettu on tarkoitettu esimerkeiksi. esimerkeiksi. Aiheeseen Aiheeseen perehtyminen perehtyminen edellyttää edellyttää soveltuvaan oppikirjaan soveltuvaan oppikirjaan tutustumista. tutustumista. Kuvaustekniikoista menetelmiin 31

32 Ryhmittely, pakkaukset Kohteet Tuki Kohde palauta varaa otakäyttöön hallinnoi * KohdeHallinto palauta(kohde, Varasto) varaa(kohde) otakäyttöön(kohde) Varasto HenkilöAuto rekisterinumero ParkkiAlue huolla(int km) palauta Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 32

33 Pakkausten suhteet Tuki <<import>> Tietokanta Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 33

34 Yleiset merkinnät ja laajennukset koristeet (adornments) lisäävät elementtiin lisämerkityksiä esimerkkejä: viivan paksunnos, bold- tai ul-teksti huomautukset (notes): voidaan sijoittaa minne tahansa täsmentämään, rajoittamaan jne. merkkinono (teksti): liitetään yleensä katkoviivalla elementtiin Teksti Teksti Kuvaustekniikoista menetelmiin 34

35 Laajennusmekanismit: stereotyypit Stereotyyppi (stereotype) määrittelee uuden mallialkiotyypin olemassa olevan laajennoksena teknisesti uusi UML meta(ali)luokka UML määrittelee joukon standardistereotyyppejä käyttäjä voi antaa omia merkitys voidaan jättää epäformaaliksi tai määritellä esim. rajoitteilla voi olla oma ikoni ikoni Stereotyyppi merkitään: Esimerkki: <<stereotyypin nimi>> <<exception>> Overflow <<exception>> Overflow Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 35

36 Laajennusmekanismit: malliparametrit Malliparametri (tag) koostuu malliparametrin nimestä ja arvosta sallii mielivaltaisen informaation liittämisen mallin osiin ei muuta mallin merkitystä käytetään esimerkiksi koodin tuottamisessa tai konfiguraationhallinnassa Esimerkki: MyClass {version = 1.2} Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 36

37 Laajennusmekanismit: rajoite Rajoite (constraint) rajoittaa mallin mahdollisia toteutumia ehto, jonka jokaisen mallin mukaisen järjestelmän täytyy täyttää standardi (nimetty), vapaamuotoinen tai formaali (OCL) Yritys Ministeriö * {xor} 0..1 omistaa aviomies 0..1 johtaa 0..1 vaimo Henkilö sukupuoli OCL: {(self.aviomies->size=1 {(self.aviomies->size=1 implies implies self.aviomies.sukupuoli self.aviomies.sukupuoli = = mies) mies) and and (self.vaimo->size=1 (self.vaimo->size=1 implies implies self.vaimo.sukupuoli self.vaimo.sukupuoli = = nainen) nainen) and and not(self.vaimo->size=1 not(self.vaimo->size=1 and and self.aviomies->size=1)} self.aviomies->size=1)} Lähde: K.Koskimies (2000) * {ordered} Kuvaustekniikoista menetelmiin 37

38 UML ja kehitysmenetelmät (OMT++) Analyysimalli Dialogimallit Suunnitteluvaiheen luokkamalli Vaatimukset Koodi Class C { } User System User UI System User View Contr void C::m() { } Käyttötapaukset Operaatiospesifikaatiot Tehtäväspesifikaatiot Suunnitteluvaiheen tapahtumasekvenssit Lähde: K.Koskimies (2000) Kuvaustekniikoista menetelmiin 38

39 UML ja kehitysmenetelmät: Simplified Method Vaatimukset UseCaseA UseCaseB Use Case C Muut Vaat. Suunnitteluoliomalli Määrittelyoliomalli Toimintolista Operaatio Operaatio X attribute attribute Y attribute Operaatio Operaatio X function2 function3 attribute attribute X function2 function3 attribute attribute Tapahtumakaaviot User X Y Z function1 function2 function3 User X Y Z function4 function5 X function2 function3 attribute attribute function6 Määrittelyt Class Y { function3(); function5(); X x; } Koodi Y::function5() { x function6(); } Testitapaukset UseCaseA UseCaseB Use Case C Muut Vaat. Kuvaustekniikoista menetelmiin 39

40 Kuvaustekniikat Toimintojen ja tietojen kuvaaminen Exit Paluu Paluu oppikirjan oppikirjan aiheisiin aiheisiin

41 Algoritmien kuvaaminen kulkukaaviotekniikat perinteinen tekniikka algoritmien kuvaamiseen soveltuvuus nykyaikaiseen ohjelmointiin on kyseenalainen soveltuu toimintovuon etenemisen kuvaamiseen Kuvaustekniikoita Kuvaustekniikoita tarkastelemalla tarkastelemalla on on helppo helppo tehdä tehdä havainto, havainto, että että tekniikat tekniikat noudattelevat noudattelevat oman oman aikansa aikansa ohjelmistotyön ohjelmistotyön paradigmaa. paradigmaa. Kulkukaaviot Kulkukaaviot ovat ovat peräisin peräisin ohjelmoinnin ohjelmoinnin varhaisvuosilta, varhaisvuosilta, joten joten ne ne ovat ovat ilmaisuvoimaltaan ilmaisuvoimaltaan heikkoja. heikkoja. Rakenteiset Rakenteiset kulkukaaviot kulkukaaviot heijastavat heijastavat rakenteisen rakenteisen ohjelmoinnin ohjelmoinnin aikakautta. aikakautta. Uusimmissa Uusimmissa kuvaustekniikoissa kuvaustekniikoissa sen sen sijaan sijaan on on nähtävissä nähtävissä rinnakkaisuuden, rinnakkaisuuden, olioajattelun olioajattelun ym. ym. nykyaikaisten nykyaikaisten kehitystyön kehitystyön paradigmojen paradigmojen vaikutus. vaikutus. Kuvaustekniikoista menetelmiin 41

42 Kulkukaavio Symbolit: alku/loppu tiedosto dokumentti A A toiminto toiminto ehto syöttö/ tulostus liittimiä (= "nuoli jatkuu kohdasta A") Development cycle (Murphy): Order Order T-shirts T-shirts Announce Announce delivery delivery date date Write Write manuals manuals Write Write code code Hire Hire product product manager manager Write Write specifications specifications Kuvaustekniikoista menetelmiin 42 Test Test Ship Ship Announce Announce uppgrade uppgrade

43 Kulkukaavio laske tulokset alustukset opiskelijoita jäljellä ei laske arvosanajakauma kyllä Esimerkki Esimerkki kuvaa kuvaa kulkukaaviota, kulkukaaviota, jossa jossa opiskelijoiden opiskelijoiden arvosanatietoja arvosanatietoja koskevasta koskevasta tulosaineistosta tulosaineistosta määrätään määrätään arvosana, arvosana, päivitetään päivitetään opiskelijaa opiskelijaa koskevat koskevat tiedot tiedot ja ja lopulta lopulta lasketaan lasketaan tulosten tulosten arvosanajakauma. arvosanajakauma. ei hae seuraavan opiskelijan tiedot mukana tentissä kyllä loppu määrää arvosana päivitä opiskelijan tiedot Kuvaustekniikoista menetelmiin 43

44 kulkukaavio tilausjärjestelmä tilauksen vastaanotto tilauksen tarkastus ei voidaanko toimittaa kyllä ilmoitus tilaajalle tee varastomääräys ei jätetäänkö odotukseen kyllä loppu loppu tee varaus loppu Kulkukaavio Kulkukaavio soveltuu soveltuu karkean karkean tason tason toimintokuvaukseen. toimintokuvaukseen. Käyttökelpoisuus Käyttökelpoisuus algoritmien algoritmien kuvauksessa kuvauksessa on on kyseenalainen. kyseenalainen. Kuvaustekniikoista menetelmiin 44

45 kulkukaavio Jos kuukauden toteutunut myynti alittaa tavoiteet, tulostetaan raportti, ellei toteutunut myynnin ja tavoitteen ero ole vähemmän kuin puolet edellisen kuukauden tavoitteen ja toteutunut myynnin erosta, tai toteutunut myynti alittaa tavoiteen alle 5% aloita aloita eronyt eronyt = = tavoite( tavoite( tämä tämä kk) - toteutunut(tämä kk) kk) - toteutunut(tämä kk) eroed eroed = = tavoite( tavoite( edellinen edellinen kk) kk) - toteutunut(edellinen kk) - toteutunut(edellinen kk) eronyt ero% ero% = = * * tavoite ero ero % < < 5 E eronyt eronyt < < 5 eroed/2 eroed/2 E Tulosta Tulosta raportti raportti Tässä Tässä kulkukaavio kulkukaavio selkiyttää selkiyttää monimutkaista monimutkaista päättelyalgoritmia päättelyalgoritmia K K lopeta lopeta Kuvaustekniikoista menetelmiin 45

46 Rakenteinen kulkukaavio rakenteiset kulkukaaviot ongelmaa (top-down) jäsentelevä lähestymistapa rakenteinen symbolit rakenteisen ohjelmoinnin periatteiden mukaisisia» rakenteella on alku- ja loppukohta» logiikka muodostuu peräkkäisistä ja sisäkkäisistä rakenteista graafinen esitysmuoto» rajaa yhteen kuvaukseen mahtuvien toimintojen määrää»jäsentelevä hyödyt ohjelman (koodin) rakenteen suunnitelulle! Kuvaustekniikoista menetelmiin 46

47 .. rakenteinen kulkukaavio peräkkäisrakenne toiminto 1 toiminto 2 toiminto 3 while-silmukka while-ehto do until -silmukka elsetoiminto silmukkatoiminto until-ehto ehdollinen rakenne T ehto F case-rakenne 1 2 toiminto 1 case-lauseke toiminto 2 3 else toiminto 3 thentoiminto elsetoiminto silmukkatoiminto Kuvaustekniikoista menetelmiin 47

48 rakenteinen kulkukaavio while opiskelijoita jäljellä alustukset ei hae seuraavan opiskelijan tiedot mukana tentissä määrää arvosana päivitä opiskelijan tiedot laske arvosanajakauma kyllä Kuvaus Kuvaus muodostuu muodostuu vaiheittain vaiheittain jäsennellen. jäsennellen. Alussa Alussa kuvataan kuvataan toiminto toiminto yhtenä yhtenä prosessina. prosessina. Tätä Tätä tarkennetaan tarkennetaan peräkkäisiksi peräkkäisiksi toimintokokonaisuuksiksi toimintokokonaisuuksiksi jäsentämällä. jäsentämällä. Toimintokokonaisuuksien Toimintokokonaisuuksien luonne luonne selkiytyy selkiytyy jäsentelyn jäsentelyn myötä. myötä. Lopputuloksena Lopputuloksena saadaan saadaan oheinen oheinen kuvaus. kuvaus. Kuvaustekniikoista menetelmiin 48

49 Pseudokoodi pseudokoodi ohjelmointikielen kaltainen vapaa ilmaisu» ei ohjelmointikielen rajoituksia helppo muuttaa ohjelmaksi ohjelmointityöhön tottuneelle luonnollinen (?) pseudokielen rakenneperiaatteita» lausesulkujen käyttö (rakenteen alku ja loppu)» ohjelmointia tukevat rakenteet» voi perustua käytettävään ohjelmointikieleen, jota on laajennettu määrittelyn tarvitsemilla ilmaisuilla Kuvaustekniikoista menetelmiin 49

50 pseudokoodi alustukset while opiskelijoita jäljellä loop hae opiskelijan tiedot; if opiskelija mukana tentissä then määrää arvosana; päivitä opiskelijan arvosana; end if end while; laske arvosanajakauma; Tästä Tästä ohjelmoija ohjelmoija voi voi jatkaa jatkaa työtä työtä jättämällä jättämällä kuvauksen kuvauksen ohjelman ohjelman kommenteiksi kommenteiksi ja ja täydentämällä täydentämällä kuvausten kuvausten yhteyteen yhteyteen vastaavan vastaavan toiminnan toiminnan suorittavat suorittavat lopulliset lopulliset ohjelmointikieliset ohjelmointikieliset ilmaisut. ilmaisut. Kuvaustekniikoista menetelmiin 50

51 Aktiviteettikaavio UML - aktiviteettikaaviot kulkukaavion kaltainen, ilmaisuvoimaltaan tätä voimakkaampi sisältää tilakaavioista ja SDL:stä peräisin olevia piirteitä, jotka lisäävät sen sovellettavuutta Kuvaustekniikoista menetelmiin 51

52 aktiviteettikaavio alustukset [opiskelijat loppu] laske arvosanajakauma Yksinkertaisimmillaan aktiviteettikaavio aktiviteettikaavio muistuttaa muistuttaa kulkukaaviota. kulkukaaviota. [opiskelijoita jäljellä] hae seuraavan opiskelijan tiedot [ei mukana tentissä] [mukana tentissä] päivitä opiskelijan tiedot määrää arvosana Kuvaustekniikoista menetelmiin 52

53 aktiviteettikaavio Näyttölaite Mittari Tekniikka Tekniikka mahdollistaa mahdollistaa rinnakkaisuuden, rinnakkaisuuden, kommunikoinnin kommunikoinnin ja ja synkronoinnin synkronoinnin kuvaamisen. kuvaamisen. Mittari.run(näytteistystaajuus) alusta järjestelmä näytä mittaustulosta mittaustulos tee Mittauksia Kuvaustekniikoista menetelmiin 53

54 Päätöspuut ja -taulut päätöstaulut, käyttökohde monimutkaiset päätöstilanteet monimutkaiset ehtokombinaatiot vaihtoehtoiset toimenpiteet päätöspuut, käyttökohde pitkien päätösketjujen hallitttu esittäminen Kuvaustekniikoista menetelmiin 54

55 Päätöspuut Päätöspuu Päätöspuu on on yksinkertainen yksinkertainen haarautumista haarautumista kuvaava kuvaava rakenne. rakenne. Haarautumiskohdassa Haarautumiskohdassa esitetään esitetään tutkittava tutkittava ehto ehto ja ja haaroihin haaroihin johtavissa johtavissa nuolissa nuolissa ehdon ehdon arvo arvo (päätös). (päätös). vihreä ehtiikö jarruttamaan? k e aja risteykseen aja risteykseen valon väri? keltainen punainen ehtiikö jarruttamaan? k e pysähdy aja risteykseen ehtiikö jarruttamaan? k e pysähdy aja risteykseen Kuvaustekniikoista menetelmiin 55

56 Päätöstaulut valon väri vihreä keltainen keltainen punainen punainen ehtiikö jarruttamaan kyllä tai ei kyllä ei kyllä ei toiminto aja risteykseen pysäytä aja risteykseen pysäytä aja risteykseen Päätöstaulua Päätöstaulua on on helppo helppo yksinkertaistaa. yksinkertaistaa. Miten? Miten? Kuvaustekniikoista menetelmiin 56

57 päätöstalut sukupuoli m m m m m m n n n n n n paino < 80 k k k e e e k k k e e e ikä < 20 k k k k 20 <= ikä < 60 k k k k ikä >= 60 k k k k lääkitys 1 x x x x x x lääkitys 2 x x x x x x lääkitys 3 x x x x x ei lääkitystä x Sarakkeiden Sarakkeiden määrä määrä = kaikkien kaikkien vaihtoehtojen vaihtoehtojen määrän määrän tulo. tulo. Osa Osa tutkittavista tutkittavista ehdoista ehdoista on on tilanteen tilanteen kannalta kannalta yhdentekeviä yhdentekeviä (don t (don t care) care) tai tai kombinaatiot kombinaatiot ovat ovat mahdottomia, mahdottomia, jolloin jolloin niitä niitä ei ei tarvitse tarvitse päätöstaulussa päätöstaulussa käsitellä. käsitellä. Tässä Tässä esimerkiksi esimerkiksi tutkittavan tutkittavan kuuluessa kuuluessa johonkin johonkin ikäryhmään, ikäryhmään, hän hän ei ei voi voi kuulua kuulua muihin. muihin. Kuvaustekniikoista menetelmiin 57

58 päätöstaulut eronyt = tavoitemyynnin ja toteutuneen myynnin erotus tässä kuussa eroed = tavoitemyynnin ja toteutuneen myynnin erotus viime kuussa ero% = tavoitemyynnistä jälkeenjääminen tässä kuussa prosentteina eronyt < eroed/2 kyllä ei kyllä ei ero% < 5 < 5 >= 5 >= 5 tulosta raportti ei ei ei kyllä Myös Myös tämä tämä kuvaus kuvaus selkiyttänee selkiyttänee luonnollisella luonnollisella kielellä kielellä esitettynä esitettynä monimutkaiselta monimutkaiselta vaikuttavaa vaikuttavaa päätössääntöä. päätössääntöä. Kuvaustekniikoista menetelmiin 58

59 Päätöstaulujen rakenne - terminologiaa vaihtoehto-osa ehtojen luettelo toimenpiteiden luettelo arvo-osa ehtojen arvot toimenpiteiden arvot ehto-osa tutkittavat ehdot toimenpideosa suoritettavat toimenpiteet Kuvaustekniikoista menetelmiin 59

60 Päätöstaulut muodostamisen periaatteita ehtojen kattavuus kaikki mahdolliset (toteutuvat) ehtojen kombinaatiot esiteltävä taulussa don t care tilanteiden huomioonottaminen vähentää ehtokombinaatioiden määrää vapaa ilmaisu ehdoissa / arvoissa yksinkertaistaa taulun ilmaisua suoritusjärjestys periaatteessa taulun suorituksessa ei ole suoritusjärjestystä sopimuksella suoritusjärjestyksestä merkitystä koodauksessa viittaukset päätöstaulujen sisällä / välillä päätöstauluhierarkkia - päätöstaulukutsut Kuvaustekniikoista menetelmiin 60

61 Esi- ja jälkiehdot toiminta kuvataan ennen toimintaa olevaa ja sen jälkeistä tilaa kuvaavilla määrittelyillä (loogiset lausekkeet) tilamuutoksen kuvaus muutoksen aiheuttaman toiminnon sijasta ei kiinnitä toiminnon toteutustapaa vaikeutena täsmällisen (oikean) esi- ja jälkitilaa kuvaavan ehdon löytäminen vrt. ohjelmien oikeaksi todistamisen mekanismit Kuvaustekniikoista menetelmiin 61

62 esi- ja jälkiehdot Esimerkki esiehto (loogisena lausekkeena) i 1 N: A[i] jälkiehto (loogisena lausekkeena) i,j 1 N: i j B[i] B[j] Tarkoituksena Tarkoituksena on on kuvata kuvata taulukon taulukon lajittelu. lajittelu. Kuvaus Kuvaus on on täsmällinen täsmällinen ja ja formaali. formaali. Ehdot Ehdot eivät eivät kuitenkaan kuitenkaan ole ole onnistuneesti onnistuneesti valittuja? valittuja? Toiminto Toiminto on on musta musta laatikko laatikko (ei (ei kuvata) kuvata) Esiehto: on Esiehto: on olemassa olemassa järjestämätön järjestämätön lukujoukko, lukujoukko, N lukua lukua Jälkiehto: Jälkiehto: on on olemassa olemassa nousevaan nousevaan järjestykseen järjestykseen järjestetty järjestetty lukujoukko lukujoukko N lukua, lukua, samat samat kuin kuin esiehdossa esiehdossa Toimintokuvauksen Toimintokuvauksen sijasta sijasta vaikutuksen vaikutuksen kuvaus kuvaus saattaa saattaa olla olla havainnollinen. havainnollinen. Tutki Tutki testaukselle! testaukselle! Kuvaustekniikoista menetelmiin 62

63 Tietohakemistomäärittely järjestelmässä käsiteltävien tietojen kuvaaminen tietovarastot (ja niiden sisältö) lähtö- ja tulostiedot tieto- ja tapahtumavirrat yksityiskohtainen kuvaus syntyy suunnittelutyön kuluessa tarkentuu suunnittelutyön myötä tukee suunnittelutyötä yhtenäistää terminologiaa toimii kommunikaation välineenä käytännössä osa tietosisällön ja myös tietokannan suunnittelua CASE-järjestelmien keskeinen osa (käsitteiden hallinta) tieohakemisto on osa kuvauskantaa myös erillisen tietohakemiston ylläpidolle saattaa olla tarve Projekti Suunn 1 Suunn 2 tietoh tuote=tno+tnimi+varasto+ tuotetilaus=tuote Kuvaa Kuvaa järjestelmässä järjestelmässä olevien olevien tietojen tietojen rakenteen rakenteen ( tiedot ( tiedot tiedoista. tiedoista. Kohteena Kohteena tietorakenteet tietorakenteet ja ja niiden niiden muodostamisessa muodostamisessa tarvittavat tarvittavat perustiedot. perustiedot. Kuvaustekniikoista menetelmiin 63

64 tietohakemistomäärittely merkki merkitys + ja () optionaalinen (voi puuttua) {} toisto (0-N kertaa) n{}m toisto n-m kertaa [] vaihtoehtoja vaihtoehtojen avainkenttä * kommentti Kuvaustekniikoista menetelmiin 64

65 tietohakemistomäärittely Esimerkki: henkilötiedot = nimi + aviosääty (+ lapset) nimi = 1{etunimi}3 + sukunimi aviosääty = [naimaton naimisissa eronnut leski] lapset = *määrittelyssä ok; suunnittelu ongelmallinen* henkilötnunnus = 6{numero}6 + [+ - A] + 3{numero}3 + [sallittu_kirjain numero] Vaihtoehtoisia kuvaustapoja (erilainen rakenne!): osoite = (toimitusosoite) + (laskutusosoite) osoite = [toimitusosoite laskutusosoite toimitusosoite + laskutusosoite] osoite = toimitusosoite + (laskutusosoite) Tietokannan Tietokannan taulun taulun rakenne rakenne on on kaikissa kaikissa sama. sama. Sisällön Sisällön hyödyntäminen hyödyntäminen vaihtelee vaihtelee (käyttötapa). (käyttötapa). Kuvaustekniikoista menetelmiin 65

66 tietohakemistomäärittely Esimerkki: suoritustietokanta = * Relaatiokanta, joka kuvaa opiskelijat, kurssit ja suoritukset. Se koostuu tauluista opiskelijat, suoritukset ja opintojaksot.* opiskelijat = {@op_nro + nimi + osoite +...} suoritukset = {@suor_nro + op_nro + oj_nro+ pvm + ov_määrä + arvosana + opettaja} opintojaksot = {@oj_nro+oj_nimi+kuvaus} Terminologiaa: avain (@op_nro rakenteessa opiskelijat ) vierasavain (viittaus muihin tauluihin; op_nro rakenteessa suoritukset) surrogate key (keinotekoisesti generoitu tunnistusavain rakenteessa suoritukset) Kuvaustekniikoista menetelmiin 66

67 tietohakemistomäärittely Opiskelijat-taulu: op_nro nimi... Ahto Simakuutio Teemu teekkari... os Suorituksettaulu: suor_nro op_nro oj_nro pvm ov-määrä arvosana opettaja... ljh jmj ijh... Opintojaksot-taulu: oj_nro... oj_nimi... kuvaus... Edellistä Edellistä tietohakemistokuvausta tietohakemistokuvausta vastaava vastaava tietokannan tietokannan taulurakenne taulurakenne Ohjelmistotuotannon peruskurssi Ohjelmistotuotannon menetelmättt Kuvaustekniikoista menetelmiin 67

68 BNF-notaatio a) Lausekkeen kielioppi BNF-notaatiolla <lauseke> ::= <kertolauseke> <kertolauseke> <ynnäoper> <lauseke> <kertolauseke> ::= <sulkulauseke> <sulkulauseke> <kerto-oper> <kertolauseke> <sulkulauseke> ::= <termi> ( <lauseke> ) <ynnäoper> ::= + - <kerto-oper> ::= * / <termi> ::= <numeerinen_vakio> <muuttuja> b) Lausekkeen kielioppi tietohakemistonotaatiolla, vaihtoehto 1 lauseke = [kertolauseke kertolauseke lauseke] kertolauseke = [sulkulauseke sulkulauseke + * + kertolauseke] sulkulauseke = [termi ( lauseke ) ] termi = [numeerinen_vakio muuttuja] c) Lausekkeen kielioppi tietohakemistonotaatiolla, vaihtoehto 2 lauseke = kertolauseke + { + + kertolauseke} kertolauseke = sulkulauseke + { * + sulkulauseke} sulkulauseke = [termi ( lauseke ) ] termi = [numeerinen_vakio muuttuja] Kielioppien Kielioppien kuvaamisessa kuvaamisessa käytetään käytetään BNF-noitaatiota. BNF-noitaatiota. Ilmaisuvoimaltaan Ilmaisuvoimaltaan se se on on tietohakemistomäärittelyn tietohakemistomäärittelyn kaltainen. kaltainen. Esityssymboliikka Esityssymboliikka on on erilainen. erilainen. BNF BNF on on laajalti laajalti käytössä käytössä mm. mm. ohjelmointikielten ohjelmointikielten syntaksin syntaksin kuvaamisessa. kuvaamisessa. BNFnotaatiossa BNFnotaatiossa lainausmerkeissä lainausmerkeissä esitetään esitetään symboli, symboli, joka joka jää jää kieleen kieleen (terminaali) (terminaali) kulmasulkeissa kulmasulkeissa esitetään esitetään kuvauksella kuvauksella tarkennettava tarkennettava symboli symboli (non-terminaali) (non-terminaali) Kuvaustekniikoista menetelmiin 68

69 Harjoitus Pieni sormiharjoitus: esitä Tietohakemistonotaatio desimaalilukujen esittämiseksi. Sallituja muotoja ovat esimerkiksi "123", "-123", " ", ".123", "+.123", "-.123" Kielletyjä ovat mm. "++123", "123.", ".", "-" Kuvaustekniikoista menetelmiin 69

70 ...harjoitus LUKU = [ETUM] + ARVO ETUM = +' '-' ARVO = KOK_LUKU + ['.' + KOK_LUKU] '.' + KOK_LUKU KOK_LUKU = 1{ NUMERO} N NUMERO = '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' Kuvaustekniikoista menetelmiin 70

71 tietohakemistomäärittely vs. BNF a) Lausekkeen kielioppi BNF-notaatiolla <lauseke> ::= <kertolauseke> <kertolauseke> <ynnäoper> <lauseke> <kertolauseke> ::= <sulkulauseke> <sulkulauseke> <kerto-oper> <kertolauseke> <sulkulauseke> ::= <termi> ( <lauseke> ) <ynnäoper> ::= + - <kerto-oper> ::= * / <termi> ::= <numeerinen_vakio> <muuttuja> <lauseke> <kertolauseke> <sulkulauseke> <kerto-oper> <kertolauseke> jne... jne... ( ) / ( ( ) / 5 ) Kuvaustekniikoista menetelmiin 71

72 Kertauskysymykset Selvitä lyhyesti UMLkuvausmenetelmäjoukon periaatteet. Mitä tarkoitetaan UML:n yhteydessä esiintyvällä 4+1 View -termillä. Selvitä siihen liittyvien eri näkymien merkitys järjestelmäkehityksen kannalta. Miten näkymät ovat nähtävissä järjestelmäkehityksen menetlmissä (esimerkiksi OMT++). Mihin käytetään käyttötapausnäkymää. Mihin käytetään loogista näkymää. Järjestelmän kuvaustyössä osa kuvauksista kuvaa esimerkinomaisesti reaalimaailmassa tapahtuvia toimintoja tai sen rakenteita, osa taas mallintamisen näkökulmasta antaa kattavan kuvauksen joko mallinnettavan kohteen rakenteesta tai sen käyttäytymisestä. Mikä on tällaisten esimerkki-kuvausten rooli laadittaessa järjestelmän kattavaa kuvausta. Mitkä kuvausmenetelmät ovat luonnehdiottavissa esimerkkikuvauksiksi ja mitkä kattaviksi kuvauksiksi. Minkälaisen prosessin tuloksena rakennetta / toimintaa koskevat kattavat kuvaukset saadaan. Mitä kuvataan luokkakaavioilla ja oliokaavioilla. Mikä on näiden kahden kaavion ero. Mitä kuvataan tapahtumasekvenssikaavioilla. Selitä kurssimateriaalin UML-katsauksen yhteydessä olevien esimerkkikuvausten sisältö käyttötapauskaavio olikaavio luokkakaavio sekvenssikaavio yhteistyökaavio tilakaavio aktiviteettikaavio Mitä ovat UML-kuvausten yleiset merkinnät ja laajennukset. Mitä UML:n kuvaustekniikoita käytetään OMT++ -menetelmässä ja Simplified method -menetelmässä. Mikä on käyttötapausten rooli järjestelmätestauksessa. Kuvaustekniikoista menetelmiin 72

73 kertauskysymykset Minkälaisten kuvaustehtävien yhteydessä käyttäisit perinteisiä kulkukaavioita. Mitä etuja on rakenteisten kulkukaavioiden käytöllä ohjelmiston moduulisuunnittelussa. Entä edut verrattuna perinteisiin kulkukaavioihin. Arvioi pseudokoodin käyttökelpoisuutta ohjelmistoon liittyvässä toiminnallisuuden kuvaamsessa. Mmiten pseudokoodia voi hyödyntää osana lopullista ohjelmakoodia. Mitä etuja tästä menettelystä saadaan. Vertaa UML:n aktiviteettikaavioita perinteisiin kulkukaavioihin. Mitä ovat merkittävimmät ilmaisuvoimassa olevat erot. Mitä hyötyä toimintokuvauksissa saadaan aktiviteettikaavioiden uusien" ilmaisujen avulla. Miksi nämä piirteet ovat olennaisia nykyaikaisessa ohjelmistokehityksessä. Minkälaisiin tilanteisiin päätöstaulut ja -puut soveltuvat kuvausmenetelmäksi. Olisiko mahdollista käyttää niiden sijasta jotain muita kuvaustekniikoita. Mikä on esi- ja jälkiehtoihin perustuvan toimintomäärittelyn periaate. Mitä etuja siinä on toimintokuvauksiin verrattuna ja minkälaisiin tilanteisiin se soveltuu. Mikä on tietohakemistokuvauksen tehtävä järjestelmäkuvausten yhteydessä. Selitä kurssimateriaalin yhteydessä olevat kuvausesimerkit ja kommentoi tehtyä ratkaisua sekä sen havainnollisuutta kulkukaavio rakenteinen kulkukaavio pseudokoodi aktiviteettikaavio päätöstilanteiden kuvaamisen tekniikat esi- ja jälkiehdon käyttö sekä valitut kuvauskäytännöt tietohakemistokuvaus Vertaa tietohakemistokuvauksen ja BNFnotaation esityskäytäntöjä. Kuvaustekniikoista menetelmiin 73

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

Ohjelmistotekniikan menetelmät, UML

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

Lisätiedot

Ohjelmistojen 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

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

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Lisätiedot

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

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

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

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

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

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

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

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

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

Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita

Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita Mahdollistavat todellisuuden havainnollistamisen ja yksinkertaistamisen Sallivat eri abstraktiotasot, laajuudet ja näkökulmat Auttavat ymmärtämään

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

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

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

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

Ohjelmistotekniikan menetelmät, kesä 2008

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

Lisätiedot

Ohjelmistojen mallintaminen, kesä 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

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

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen www.cs.helsinki.fi 9 April 2018 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syy-seurausverkot ja päätöstaulut Kombinaatioiden

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

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

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

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

Kuvaustekniikat. Exit

Kuvaustekniikat. Exit Kuvaustekniikat Luvussa tarkastellaan tietojärjestelmän määrittelymenetelmiä. Määrittelymenetelmä sitoo yhteen ja ohjeistaa sen, miten eri kuvausmenetelmiä käyttäen voidaan tehdä tietojärjestelmän määrittely.

Lisätiedot

Olioiden yhteistyön mallintaminen

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

Lisätiedot

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

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

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

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

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

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

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

Lisätiedot

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

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

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. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen. Luento 2, pe 5.11. Ohjelmistojen mallintaminen Luento 2, pe 5.11. Kertausta Ohjelmistotuotantoprosessin vaiheet: Vaatimusanalyysi- ja määrittely Mitä halutaan? Suunnittelu Miten tehdään? Toteutus Ohjelmointi Testaus Varmistetaan

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

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

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

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaariesitelmä 26.9.2000 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisällys 1 Johdanto 1 2 UML:n perusteet 2 2.1 Kaaviot 2 2.1.1 Yleiskäsitteet ja käyttötapauskaavio 2 2.1.2 Luokkakaavio 3

Lisätiedot

Määrittelyvaihe. Projektinhallinta

Määrittelyvaihe. Projektinhallinta Määrittelyvaihe Projektinhallinta testaus määrittely suunnittelu ohjelmointi käyttöönotto, testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta Määrittely Määrittely, eli kansanomaisesti

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

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

10. Luento Käsiteltävä tieto

10. Luento Käsiteltävä tieto 10. Luento Käsiteltävä tieto Kari Systä 5.11.2013 JOTU 2013 / Kari Systä 1 Alustava luentoaikataulu 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 2.9: Ohjelmistojen roolista ja ohjelmistotyön

Lisätiedot

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN SISÄLLYS 4. Viestiyhteyskaavio suunnitteluvaiheessa 4.1 Suunnitteluvaiheen viestiyhteyskaavion osat 4.2 Aikajakson viestit ohjelmakoodissa 4.3 Ehdonesittäminenohjelmakoodissa

Lisätiedot

19. Unified Modeling Language (UML)

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

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

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

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

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

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

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

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

Lisätiedot

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

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

Lisätiedot

MagicDraw-pikaohje (VH5)

MagicDraw-pikaohje (VH5) MagicDraw-pikaohje (VH5) Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Linux-työasemaluokka: käynnistä MagicDraw jollakin

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

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

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

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2 Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2 Viikon 2 laskareita ei pidetä mikrosaleissa, käytössä ovat opetusohjelmaan merkatut salit. Tämän viikon tehtävistä 1-6 tehdään etukäteen kotona.

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

GroupDesk Toiminnallinen määrittely

GroupDesk Toiminnallinen määrittely GroupDesk Toiminnallinen määrittely Tilanne: Paikallinen oppilaitos, kuvitteellinen WAMK, tarvitsee ryhmätyöhön soveltuvan sähköisen asioiden hallintajärjestelmän ja ryhmätyöohjelmiston, jonka ajatuksena

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. Luento 3, 9.11.

Ohjelmistojen mallintaminen. Luento 3, 9.11. Ohjelmistojen mallintaminen Luento 3, 9.11. Kertausta: Ohjelmistotuotantoprosessin vaiheet Vaatimusanalyysi- ja määrittely Mitä halutaan? Suunnittelu Miten tehdään? Toteutus Ohjelmointi Testaus Varmistetaan

Lisätiedot

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

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

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, 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ä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

VH5, JOTU, MagicDraw:n käyttö

VH5, JOTU, MagicDraw:n käyttö VH5, JOTU, MagicDraw:n käyttö 1. Käynnistä MagicDraw (versio 18.2) 2. Valitse Manage Projects-kohdasta Create New Project toiminto. Oletusarvona on UML Project, saa olla. Täytä nimi (Name) ja tallennuspaikka

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

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas

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

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

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Lisätiedot

Luokkakaavion laatiminen

Luokkakaavion laatiminen Luokkakaavion laatiminen Kartoita luokkaehdokkaita Karsi ehdokkaita Tunnista olioiden väliset yhteydet Täsmennä luokkakuvauksia määrittelemällä attribuutit Määrittele yhteyksiin liittyvät osallistumisrajoitteet.

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

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

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

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

Lisätiedot

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

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Kurssin aihepiiri: ohjelmistotuotannon alkeita Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista

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

1. Olio-ohjelmointi 1.1

1. 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ä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

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

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

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

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 32 Miten toteuttaisin softalla... Procedure for determining employee holidays, (Pressman, p. 620): Executive order

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot