1 / 32

010758002 Ohjelmistotuotanto - Mallinnus

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

gari
Download Presentation

010758002 Ohjelmistotuotanto - Mallinnus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Sisältö • Mallintamisesta ja kuvaustekniikoista • UML

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

  4. Mallien riippuvuus Toteutus Testaus Analyysi Suunnittelu Vaatimukset Vaihetuotemalleja

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

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

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

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

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

  10. 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)

  11. Käyttötapauskaavio: notaatio Käyttötapaus sisältää laajennuskohtia, joihin toinen käyttötapaus voidaan sijoittaa Järjestelmä 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

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

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

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

  15. 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).

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

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

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

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

  20. Sekvenssikaavio (sequence diagram)

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

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

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

  24. Muita tapoja: perinteinen vuokaavio

  25. Muita tapoja: Nassi-Schneidermann

  26. Komponenttikaavio GUI Auton- Vuokraus VuokrausToiminta Tietokanta- liittymä KohdeKanta

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

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

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

More Related