Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I

Samankaltaiset esitykset


Esitys aiheesta: "Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I"— Esityksen transkriptio:

1 Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I
. Kevät 2002 Päivi Ovaska LTKK/Tite

2 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

3 Mallien riippuvuus (1) Mallien generointi, Takaisin- tarkistus, ...
mallinnus Koodi Mallinnus Koodin generointi Järjestelmä

4 Mallien riippuvuus (2) Analyysi Suunnittelu Toteutus Testaus
Vaatimukset Vaihetuotemalleja

5 Mikä on UML? 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 siunaama (standardoitu 1997) Nykyinen versio 1.3 Erittäin laaja Tosiasiallinen standardi työkaluissa, kirjallisuudessa, teollisuudessa Ks

6 Unified Modelling Language
Johdanto: mallintaminen ohjelmistokehityksessä Pikakatsaus kaavioihin Laajennosmekanismit Piirrosvälineet, prosessi, käyttöönotto 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 * Assosiaatio Olio
0..1 Assosiaatio Olio rooli Tila Kooste Yleistys (Periytyminen) Pakkaus Toteutus Kommentti jne. jne.

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

9 UML kaaviot Korkean tason toiminnalisuus Ohjelmisto- kehitys Rakenne
Käyttö- tapauskaaviot Käyttäytyminen Esimerkkejä Oliokaaviot Sekvenssi- kaaviot Yhteistyö- kaaviot Sijoittelu- kaaviot Luokka- kaaviot Tilakaaviot Aktiviteetti- kaaviot Komponentti- kaaviot

10 Vaatimusten mallintaminen: käyttötapauskaaviot
Miksi käyttötapauksia? Notaatio Käyttötapausten kuvaaminen Esimerkki Käyttötapausten laatimisesta Harjoitus

11 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) Testauksen suunnittelu Käyttöohjeiden laatiminen

12

13 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

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

15 Käyttötapauksen kuvaaminen
UML ei standardoi esitystapaa. Käyttötapauksen sisältö voidaan kuvata esimerkiksi: 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)

16 Esimerkki (1)

17 Esimerkki (2) 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.

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

19

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

21

22 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

23 Laajennosmekanismit: stereotyyppi
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 Stereotyyppi merkitään: <<stereotyypin nimi>> ikoni Esimerkki: <<exception>> <<exception>> Overflow Overflow

24 Laajennosmekanismit: lisätietomääre
Lisätietomääre (tag) koostuu määreen 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} operation()

25 Laajennosmekanismit: 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) OCL: omistaa Yritys * Henkilö {(self.aviomies->size=1 implies self.aviomies.sukupuoli = mies) and (self.vaimo->size=1 implies self.vaimo.sukupuoli = nainen) aviomies 0..1 {xor} sukupuoli 0..1 vaimo Ministeriö Onko mahdollista, että henkilöllä on sekä vaimo että aviomies? 0..1 johtaa

26 Oliokaavio : KohdeHallinto auto1: HenkilöAuto auto2 : HenkilöAuto
rekisterinumero = XYZ-999 rekisterinumero = ABC-123

27 Esimerkki Martinin käsitekaaviosta

28 Luokkakaavio Chenin notaatiolla

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

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

31 Tilakaavio Auto-olion käyttäytyminen: Käytettävissä Käytössä Huollossa
Onko yhtäpitävä luokkakaavion kanssa? Käytettävissä palauta/ lopeta ajan lasku Käytössä otaKäyttöön/ aloita ajan lasku valmis huolla Huollossa Varattu do/huoltoilmoitus varaa

32 Aktiviteettikaavio Asiakas Virkailija Pyydä auto Tee varaus
[ei autoja] [on autoja] :lasku [ei maks] Tee lasku Valmistele auto Maksa :lasku [maks] Rekisteröi vuokraus Ota auto

33 Muita tapoja 2: pseudokoodi

34 Muita tapoja 1: perinteinen vuokaavio

35 Muita tapoja 3: Nassi-Schneidermann

36 Komponenttikaavio GUI Auton- VuokrausToiminta Vuokraus Tietokanta-
liittymä KohdeKanta

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

38 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

39 UML ohjelmistokehityksessä: Esim. OMT++
Suunnitteluvaiheen luokkamalli Analyysimalli Dialogimallit Vaatimukset Koodi Class C { } void C::m() { User System User UI System User View Contr Käyttötapaukset OMT-menetelmästä tarkemmin luentojen kohdassa oliokeskeisyys Operaatio- spesifikaatiot Tehtävä- spesifikaatiot Suunnitteluvaiheen tapahtumasekvenssit


Lataa ppt "Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I"

Samankaltaiset esitykset


Iklan oleh Google