Ohjelmistotuotanto - Mallinnus

Slides:



Advertisements
Samankaltaiset esitykset
19. Unified Modeling Language (UML)
Advertisements

Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
Kemian tietolähteet ( ) Kaija Sipilä Maria Kovero Kevät 2002 kurssikerta.
Määritystyön eteneminen
1 Opiston Moodleopas KALVOSTO 1 – JOHDANTO KTOL:n Moodle-työryhmä Olli Ruohomäki.
Tietojärjestelmät 2.
7. Käyttötapausmallinnus (kirjassa 8.4)
UML-notaatio staattinen ja dynaaminen mallintaminen
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietokanta.
UML RASE
Tietokannan suunnittelu
Tapahtumasekvenssit = Käyttötapausten realisointi
Sami Nikula, Stefan Lindström
Tekninen suunnit-telu
MULTIMEDIAN MONET MUODOT
Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I
II Kehittämismenetelmistä
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
– Ohjelmistojen mallintaminen, kesä 2009
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Ohjelmistotekniikka Specifikaatiot: Määrittely, suunnittelu, työkalut ja standardit . Kevät 2002 Päivi Ovaska LTKK/Tite.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
3. Spesifikaatioiden laatiminen
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
13. Hyvä ohjelmointitapa (osa 1)
Pro gradu -tutkielmat ohjelmistotestauksesta
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Kalenteri 2005 AJAVA – Ajanvarausjärjestelmä CSP Compact Software Products.
Miika Nurminen, Kerho -alusta() : void +lue_tiedostosta(tied : String) : String +talleta() : String +kerhon_nimi(): String +jasenia() : int +poista(nro:
Käyttötapauskaavio ja käyttötapaukset
Esitutkimus (tarvekartoitus)
Systeemityö 2 Käyttötapauskaavio Teppo Räisänen, Principal Lecturer
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Tässä esityksessä on piilotettu osa dioista
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Mallinnustavat.
Käyttötapaus (Use case) UML-tekniikalla
Ajoituskaavio– Timing diagram Olli-Pekka Jokinen Aleksi Alapuranen tik9sna.
Verkko-opetuksen laatukäsikirja Kristiina Karjalainen, Ulla Ritvanen Erika Löfström Laadun teoriasta käytäntöön työpajat
Ohjelmistotekniikka kevät 2003 CASE-välineet. Ohjelmistotekniikka kevät 2003 Mitä ovat CASE-välineet? Computer Aided Software Engineering Tietokoneavusteinen.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
Koostekaavio– composite structure diagram Mikko Näpänkangas.
Olio-ohjelmoinnin perusteet luento 7
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Ohjelmistotuotanto - Spesifikaatiot ja dokumentointi
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmät ja Systeemisuunnittelu
Tietojärjestelmät ja Systeemisuunnittelu
1 UML - yleiskatsaus UML - yleiskatsaus (ei kirjassa koottuna) Miksi mallinnus Mikä UML on? UML:n peruselementit Kaaviotyypit Esimerkkiprosessi.
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
Palvelukuvaustyö Pekka Linna, CSC Synergiaryhmä
– Ohjelmistojen mallintaminen, mallintaminen ja UML
UML-mallinnus osana tietotuotemäärittelyä
Kuinka niitä käsitellään
Vaatimukset ja käyttötapaukset
Mallintamisen metamalli ja notaatiot
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
Vaatimusanalyysin hallintatyökalu
Vaatimukset ja käyttötapaukset
Esityksen transkriptio:

010758002 Ohjelmistotuotanto - Mallinnus Kevät 2005 Jani Vaara LTY/Tite

Sisältö Mallintamisesta ja kuvaustekniikoista UML

Ohjelmiston kehittämisessä tarvitaan malleja Mallit - mahdollistavat todellisuuden yksinkertaistamisen - sallivat eri abstraktiotasot, laajuudet ja näkökulmat - toimivat vaihetuotteina suunnittelumenetelmissä - auttavat ymmärtämään sovellusaluetta - helpottavat kommunikointia koskien järjestelmää ja sovellusaluetta

Mallien riippuvuus Analyysi Suunnittelu Toteutus Testaus Vaatimukset Vaihetuotemalleja

UML (Unified Modeling Language) Standardoi ohjelmistomallien esitystavan Pohjana OMT, Booch, OOSE Pitkän evoluution tulos, kehittyy edelleen Tarkoitettu erityisesti oliopohjaisille ohjelmistoille Ei liity suoranaisesti mihinkään suunnittelumenetelmään OMG:n hyväksymä (standardoitu 1997) Nykyinen versio 2.0 Erittäin laaja Tosiasiallinen standardi työkaluissa, kirjallisuudessa, teollisuudessa ks. www.omg.org

UML: sisältö Vaatimusten mallintaminen: käyttötapauskaaviot Rakenteen mallintaminen: luokkakaaviot Vuorovaikutuksen mallintaminen: sekvenssikaaviot Käyttäytymisen mallintaminen: tila- ja aktiviteettikaaviot

UML:n perusosat Elementit Suhteet Riippuvuus Luokka * Assosiaatio Olio 0..1 Assosiaatio Olio rooli Tila Kooste Yleistys (Periytyminen) Pakkaus Toteutus Kommentti jne. jne.

Kaaviot Käyttötapaus Käsittele puu Kuljettaja Sahaa tukki

Miksi käyttötapauksia? Liittää asiakasvaatimukset järjestelmän toimintoihin Mahdollistaa vaatimusten täsmentämisen Mahdollistaa yhteisen käsityksen tehtävästä järjestelmästä Rajaa järjestelmän ympäristöstään Auttaa tunnistamaan kuka tai mikä käyttää järjestelmää Määrittää järjestelmän korkean tason toiminnallisuuden Auttaa jakamaan toiminnallisuuden osajärjestelmiin Määrittää järjestelmän perustermit Apuna olioiden tunnistamisessa Voidaan käyttää ohjelmistokehityksen organisointiin (iteraatioiden suunnittelu) Apuna testauksen suunnittelussa Auttaa käyttöohjeiden laatimisessa

Käyttötapauksen kuvaaminen UML ei standardoi esitystapaa. Käyttötapauksen sisältö voidaan kuvata esimerkiksi seuraavasti (ns. sanallinen käyttötapaus): Käyttötapauksen nimi: Kuvaava nimi Osallistujat: Mitkä aktorit osallistuvat Tuloehdot: Mitkä ehdot ovat voimassa, kun käyttötapaus aloitetaan (epäformaali) Kuvaus: Epäformaali, voidaan käyttää myös sekvenssikaavioita Poikkeukset: Poikkeustilanteet (mainitaan myös kuvauksessa) Jättöehdot: Mitkä ehdot ovat voimassa, kun käyttötapaus lopetetaan (epäformaali)

Käyttötapauskaavio: notaatio Järjestelmä Käyttötapaus sisältää laajennuskohtia, joihin toinen käyttötapaus voidaan sijoittaa Aktori: käyttötapaukseen osallistuva käyttäjä- tyyppi Käyttötapaus <<extend>> Käyttötapaus Käyttötapaus <<include>> Aktori Käyttötapaus on erikoistapaus toisesta Käyttötapaus Käyttötapaus sisältää toisen osanaan

Laajennusrelaatio Accounting System Pay invoice <<extend>> Seller Perform interaction Byer Pay overdraft fee

Esimerkki käyttötapauksesta Varausten poistaminen Salinvarausjärjestelmä Vastuu - henkilö assistentti ylläpitäjä Perustietojen ylläpito Luentosalin varaaminen Harjoitussalin Käyttäjän identifiointi <<include>> Salivuokran laskutus <<actor>> vuokra järjestelmä

Esimerkki sanallisesta käyttötapauksesta Nimi: Luentosalin varaaminen, versio 1.0 / ijh Suorittajat: Kurssin vastuuhenkilö Esiehdot: Vastuuhenkilö ja kurssi on syötetty järjestelmään (KT henkilötietojen ylläpito) Kuvaus: Vastuuhenkilö seuraa WWW-linkkiä, joka johtaa järjestelmän pääsivulle. Hän syöttää järjestelmään käyttäjätunnuksensa ja salasanansa (uses: KT käyttäjän identifiointi). Käyttäjä pyytää järjestelmää näyttämään salin varaustilanteen haluamaltaan aikaväliltä. Hän saa eteensä salin lukujärjestysnäytön (ks. liite). Käyttäjä näkee näytöstä vapaat ajat sekä myös, mille kursseille sali on milloinkin varattu ja kuinka monelle viikolle. Käyttäjä tekee varauksen joltain vapaaksi havaitsemaltaan ajankohdalta. [Poikkeus: varaus ei onnistu]. Poikkeukset: Varaus ei onnistu: Varaustilanne on voinut muuttua sillä aikaa kun varaaja tekee varausta. Järjestelmä ilmoittaa tilanteesta käyttäjälle ja käyttäjä yrittää uudelleen. Lopputulos: Varaukset kurssin luentoajoiksi on tehty. Muut vaatimukset: Päivittäin käsitellään kiireisimpänäkin aikana enintään n. 100 varausta. Vastausajan on oltava alle 1 sekuntia, lukujärjestysnäytön päivitys saa kestää 5 sekuntia.

Käyttötapausten laatimisesta Käyttötapauskaavio tukee käyttötapojen suhteiden kuvaamista, ei niiden sisällön kuvaamista. UML ei määrittele sisällön esitystapaa. Käyttötapausten tulee olla ymmärrettävissä sekä asiakkaan että suunnittelijan kannalta. Kaikkia käyttötilanteita ei voi eikä kannata antaa käyttötapauksina. Käyttötapauksella tulee olla selkeä aloitustilanne ja lopetustilanne. Käyttötapauksen "suuruudesta" päättäminen voi olla vaikeaa: Käyttötapauksen tulisi olla suhteellisen lyhyt (yhden sivun kuvaus). Käyttötapaus tuottaa käyttäjälle lisäarvoa (ei yleensä yksittäinen ohjelmiston toiminto, vaan kokonainen tuloksen tuottava ketju toimintoja). Käyttötapaus ei siis yleensä ole yksittäinen ohjelmalla suoritettava toiminto (ei siis esimerkiksi: tekstin kopiointi leikkuupöydälle).

Luokkakaaviot (class diagrams) Oliokaavio, ER-kaavio, Entity Relationship diagram, ERD, tietoyhteyskaavio, käsitekaavio, kohdekaavio Kuvaa järjestelmän käsitteitä (olioita) ja niiden keskinäisiä suhteita Perinteisesti tietokantasuunnittelun väline Oliokeskeisissä menetelmissä keskeisin mallinnusväline

Luokkakaavio KohdeHallinto Kohde Varasto HenkilöAuto ParkkiAlue * 1 palauta varaa otaKäyttöön hallinnoi palauta(Kohde, Varasto) varaa(Kohde) otaKäyttöön(Kohde) * 1 HenkilöAuto ParkkiAlue rekisterinumero Talleta huolto- informaatio (palauta kutsuu) huolla(int km) palauta

Esimerkki Martinin luokkakaaviosta kuuluu osallistuu opiskelija kurssi opettaja opinto- jakso suoritus tentti kuvaa luennoi

Luokkakaavio Chenin notaatiolla osallis- 0:N 0:N 1:1 opinto- opiskelija kurssi <-kuvaa tuu jakso 0:N 1:1 0:N 0:N 0:N suorittaa tentti kuuluu luennoi 0:1 suoritus opettaja

Sekvenssikaavio (sequence diagram)

Sekvenssikaavio, esimerkki 2 UI : KohdeHallinto auto: HenkilöAuto parkki: ParkkiAlue palauta(auto, parkki) palauta() varastoi(auto)

Yhteistyökaavio (collaboration diagram) 1.1: palauta() auto: Henkilöauto : KohdeHallinto 1: palauta(auto,parkki) parkki: ParkkiAlue 1.2: varastoi(auto) UI

Tilakaavio Auto-olion käyttäytyminen: Käytettävissä Käytössä Huollossa palauta/ lopeta ajan lasku Käytettävissä Käytössä otaKäyttöön/ aloita ajan lasku valmis huolla Huollossa Varattu do/huoltoilmoitus varaa

Muita tapoja: perinteinen vuokaavio

Muita tapoja: Nassi-Schneidermann

Komponenttikaavio GUI Auton- VuokrausToiminta Vuokraus Tietokanta- liittymä KohdeKanta

Sijoittelukaavio Asiakaspiste: Asiakas Ajoneuvorekisteri: Palvelin : XTietokanta- liittymä : XTietokanta : GUI : Auton- Vuokraus <<IP>> Kohde- Kanta

Ryhmittely: pakkaukset Kohteet Tuki Kohde KohdeHallinto Varasto palauta varaa otaKäyttöön hallinnoi palauta(Kohde, Varasto) varaa(Kohde) otaKäyttöön(Kohde) * HenkilöAuto ParkkiAlue rekisterinumero huolla(int km) palauta

Millä piirrät? Jos et osaa paperilla ja kynällä ei välineestä ole apua. CASE (Computer Aided/Assisted Software/System Engineering)-välineet , esim. Rational Rose, Prosa, Rhapsody…) Hinta verraten korkea (2-10 keur). Perustuvat tietokantaan, johon talletetaan kaikki malliin liittyvät tiedot, kaaviot ovat vain “näkymiä” tietokantaan. “Ymmärtävät” kaavioiden semantiikkaa ainakin jossain määrin. Reverse Engineering+Forward Engineering = Round Trip Engineering. Tukevat dokumentointia (esim. Soda+Rose). Demot ja pienet ohjelmaesimerkit antavat usein liian ruusuisen kuvan. Oppimiskynnys korkeahko. Piirto-ohjelmat (Visio, ABCFlowcharter) Hinta muutamasta sadasta keur:sta ylöspäin. Ainakin Visiossa melko hyvä UML-tuki, lähestyy CASE-välineen ominaisuuksia. Hyvä valinta, jos ei tarvitse CASE-välineen tietokannan tuomia lisäetuja. Julkisohjelmiakin löytyy verkosta.