Kyllä! olioperustainen (Smalltalk, C++, Java) tiedot ja toiminta liitetään yhteen luokaksi Kullekin paradigmalle parhaiten sopivat mallinnusmenetelmät"> Kyllä! olioperustainen (Smalltalk, C++, Java) tiedot ja toiminta liitetään yhteen luokaksi Kullekin paradigmalle parhaiten sopivat mallinnusmenetelmät">

Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa II

Samankaltaiset esitykset


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

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

2 Ohjelmointi(ohjelmisto) paradigmoja
proseduraalinen (Pascal, C) ohjelmassa määritellään toiminta - mitä tapahtuu - suoritus etenee sen mukaan tiedot määritellään "erillään" toiminnasta funktionaalinen (Lisp) ohjelma koostuu kokoelmasta funktioita Funktiot kutsuvat toisiaan (usein sisäkkäin) logiikka (Prolog) ohjelmassa määritellään loogisia relaatioita jos eläimellä on evät, niin eläin on kala jos eläin on hauki, niin eläimellä on evät Onko hauki kala? -> Kyllä! olioperustainen (Smalltalk, C++, Java) tiedot ja toiminta liitetään yhteen luokaksi Kullekin paradigmalle parhaiten sopivat mallinnusmenetelmät

3 Kuinka hahmotamme maailmaa oliopohjaisesti?
haluan lähettää kukkia ystävälleni naapurikaupunkiin menen kukkakauppaan pyydän toimittamaan kukat -> pyyntö välitetään naapurikaupungin kukkakauppaan siellä lähetti toimittaa kukat sama oliokäsitteillä: lähetän viestin kukkakauppias oliolle hän hyväksyy ja osaa käsitellä viestin tehtävä jää hänen vastuulleen kukkakauppias toteuttaa viestin toimenpiteen (metodin) avulla toteutus piilotettu minulta hän lähettää viestin toiselle kukkakauppiaalle jne.

4 Olio-pohjainen ajattelu
olio-pohjainen ohjelmisto muodostuu joukosta keskenään kommunikoivia olioita toiminta syntyy toisille olioille lähetetyistä viesteistä viestin vastaanottanut olio toteuttaa sitä vastaavan toimenpiteen - metodin lähettäjä ei tunne viestin toteutusta (tiedon piilottaminen) "ohjelmoijan ei tarvitse itse tehdä kaikkea - hän voi hyödyntää valmiita komponentteja" vastaanotetun viestin tulkinta vaihtelee, se riippuu vastaanottajasta ja hänen tilastaan toiminta kuvataan vastuina "älä mieti mitä itse osaat tehdä, vaan mitä muut voivat tarjota sinulle" jokainen olio kuuluu johonkin luokkaan luokka määrittelee metodit eli viestin jotka olio osaa käsitellä luokan kaikki oliot käyttävät samoja metodeja luokka määrittelee olion ominaisuudet eli attribuutit - olion tiedot luokat muodostavat luokkahierarkian aliluokka perii yliluokan attribuutit ja metodit aliluokka voi peittää perimiään attribuutteja ja metodeja vaikka oliot vastaanottavat saman viestin ne voivat toimia eri tavoin - tätä kutsutaan monimuotoisuudeksi

5 SA -menetelmä Structured Analysis Menetelmästä useita eri versioita
Yleisin käytetty proseduraalinen menetelmä SD (Structured Desing) suunnitteluun (erittäin vähän käytössä) SA/RT reaaliaikajärjestelmien mallintamiseen

6 Mallinnusvuo - toteutuksen rajaaminen SA/RT-mallinnus Ydinmalli
- järjestelmän tavoitteet - liittymäkaavio - tapahtumalista Ympäristömalli - tietovuokaaviot, minispeksit - käsitekaaviot - tilakaaviot - tietohakemisto Käyttäytymismalli Toteutusmalli - toteutuksen rajaaminen - käyttöliittymä - kaavioiden muokkaaminen toteutuskelpoisiksi - ei-toiminnaliset ominaisuudet - toteutukseen liittyvät virhetilanteet

7 Menetelmän komponentit

8 Tietovuokaaviossa (DFD) käytetyt symbolit

9 Tietovuokaavioiden hierarkia
Ylimmällä tasolla järjetelmän toiminta kuvataan ns. liittymäkaaviolla (context diagram, yhteyskaavio, ympäristökaavio) terminaattorit ja koko järjestelmä yhtenä transformaationa Järjestelmätransformaatio kuvataan tarkemmin tason 1 tietovuokaaviolla, sen transformaatiot edelleen tason 2 tietovuokaaviolla, jne. Pilkkominen alkaavioihin lopetetaan, kun transformaation on niin yksinkertainen, että sen toiminta voidaan kuvata minispesifikaatiolla (pseudokoodi, strukturoitu kulkukaavio, työnkulkukaavio)

10

11 Hierarkia, liittymäkaavio

12 Hierarkian toinen taso
Alimman tason transformaatiot merkitään tähdellä

13 Hierarkian kolmatta tasoa

14 Hierarkian alin taso kuvataan minispekseillä
Minispeksi 1: Tilauksen vastaanotto - Tilauksen vastaanotto tapahtuu puhelimitse tai faksilla. - Asiakkaan tiedot tarkastetaan asiakastietokannasta, tarvittaessa asiakastiedot syötetään. - Samalla tarkastetaan asiakkaan laskutustilanne. Jos asiakkaalla on hoitamattomia karhuja, ei tilausta oteta vastaan.

15 Järjestelmän tavoitteet
KURREK-järjestelmä sisältää kuvaukset opintojaksoista, opettajista ja opintosuorituksista. Järjestelmä tuottaa kurssien osallistujalistoja, tenttien tuloslistoja ja opintosuoritusrekisteriotteita. Opettajat kirjaavat järjestelmän avulla opintosuoritukset rekisteriin. Opiskelijat pystyvät ilmoittautumaan kursseille ja tutkimaan omia suoritustietojaan.

16 Liittymäkaavio KURREK-järjestelmästä

17 Tapahtumalista 1) Ylläpitäjä päivittää opiskelijan tietoja
(lisäys, poisto muutos). 2) Ylläpitäjä päivittää opintojakson tietoja. 3) Ylläpitäjä päivittää opettajan tietoja. 4) Opiskelija ilmoittautuu kurssille. 5) Opiskelija ilmoittautuu tenttiin. 6) Opiskelija osallistuu tenttiin. 7) Opettaja pyytää kurssin osallistujalistan. 8) Opettaja pyytää tentin osallistujalistan. 9) Opettaja kirjaa opintosuorituksen. 10) Opiskelija pyytää opintorekisteriotteen. 11) Laitoksen johtaja saa opintoviikkoyhteenvedon.

18 Organisaation toimintaa kuvaava tietovuokaavio

19 Lämpötilahistoriaa keräävän reaaliaikajärjestelmän tietovuokaavio

20 Esimerkki tietovirtamatriisista

21 Tietovuokaavio Kurrek-järjestelmästä

22 Kahvikeitin harjoituksiin

23 Ylimmän tason tietovirtakaavio

24 Kahvinkeittiminen tapahtumalista
Start-nappulan painallus vesi loppuu kannu pois kannu takaisin (tyhja kannu tai ei-tyhjä kannu)

25 Veden mahdolliset tilat tilakaaviona

26 Lamppua ohjaava tilakone

27 Tilakoneiden käyttömahdollisuuksia
Toiminnon kuvaaminen esim. algoritmin määrittely Laitteiden ja prosessien toimnnan kuvaus (digitaalikello, matkapuhelin, pankkiautomaatti) Järjestelmän elinkaaren mallintamiseen Käyttöliittymien specifioinnissa

28 Tilasiirtymämatriisi: merkkijonon muuttaminen reaaliluvuksi

29 Kirjan elinkaari tilakaaviona

30 Poistuminen editorista Harelin tilakaaviolla

31 Tiedon rakenteen ja esitystavan kuvaaminen

32 Tietohakemistonotaation merkintätavat

33 Tietohakemisto esimerkkejä
henkilötiedot = nimi + aviosääty + lapset nimi = 1{etunimi}3 + sukunimi aviosääty = [naimaton | naimisissa | eronnut | leski] osoite = (toimitusosoite) + (laskutusosoite) osoite = [toimitusosoite | laskutusosoite | toimitusosoite + laskutusosoite] osoite = toimitusosoite + (laskutusosoite) luottoraja = *asiakkaalle myönnettävän luoton enimmäismäärä markkoina* luottoraja_ilmoitus = *vastaus luottorajan muutosyritykseen* ["Tuntematon asiakas" | "Virheellinen luottoraja" | "Uudeksi luottorajaksi on muutettu xxx markkaa"]

34 Tietohakemisto esimerkkejä
suoritustietokanta= * Relaatiokanta, joka kuvaa opiskelijat, kurssit ja suoritukset. Se koostuu tauluista opiskelijat, suoritukset ja opintojaksot.* opiskelijat = + nimi + osoite + ...} suoritukset = + op_nro + oj_nro+ pvm + ov_määrä + arvosana + opettaja} opintojaksot

35 Muita tiedon rakenteen ja esitystavan määrittelytapoja
Merkkauskielet HTML SGML XML (ja siihen liittyvät standardit: DTD, XML Schema) ASN.1: tietoliikenteen sanomarakenteet

36 XML:n dokumenttityypin rakenteen määrittely: DTD (Document Type Definition).
Tiedon rakenteen kuvaaminen. <!DOCTYPE postitilaus [    <!ELEMENT postitilaus (vastaanottaja, tavara*)    <!ELEMENT vastaanottaja (nimi, osoite)>    <!ELEMENT tavara (nimeke, määrä, hinta)>    <!ELEMENT nimi (#PCDATA)>    <!ELEMENT osoite (#PCDATA)>    <!ELEMENT nimeke (#PCDATA)>    <!ELEMENT määrä (#PCDATA)>    <!ELEMENT hinta (#PCDATA)> ]>

37 XML-dokumentti <?xml version="1.0"?> <postitilaus>
<vastaanottaja> <nimi>Ahto Simakuutio</nimi> <osoite>Hermiankatu 99, Tampere</osoite> </vastaanottaja> <tavarat> <tavara> <nimeke>Muistipiiri 256MX</nimeke> <maara>2</maara> <hinta>100</hinta> </tavara> <nimeke>Nokia 9210</nimeke> <maara>1</maara> <hinta>6250</hinta> </tavarat> </postitilaus>

38 … ja vastaava XML Schema
<xsd:schema xmlns:xsd=" <xsd:element name="postitilaus" type="tilaus"/> <xsd:complexType name="tilaus"> <xsd:element name="vastaanottaja" type="osoitetiedot"/> <xsd:element name="tavarat" type="tavaroidentiedot"/> </xsd:complexType> <xsd:complexType name="osoitetiedot"> <xsd:element name="nimi" type="xsd:string"/> <xsd:element name=“osoite" type="xsd:string"/> <xsd:complexType name="tavaroidentiedot"> <xsd:element name="tavara" type="tavaratiedot" maxOccurs=“*"/> <xsd:complexType name="tavaratiedot"> <xsd:element name=“nimeke" type="xsd:string"/> <xsd:element name="maara" type="xsd:positiveInteger"/> <xsd:element name="hinta" type="xsd:decimal"/> </xsd:schema>

39 UML (OMT++) vs. SA Liittymäkaavio vs. käyttötapauskaavio.
Tapahtumalista vs. käyttötapaus vs. operaatio. Tietovuokaavio vs. tapahtumasekvenssikaavioiden ja luokkakaavioiden käyttö. UML (OMT++) oliopohjaiseen mallintamiseen SA proseduraaliseen mallintamiseen sekä reaaliaikajärjestelmien mallintamiseen

40 Millä piirrät? Jos et osaa paperilla ja kynällä ei välineestä ole apua. CASE-välineet (Rational Rose, Prosa, Rhapsody…) Hinta verraten korkea (10-50kmk). 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. Raskaan sarjan käyttökokemuksia ei ole julkaistu (?). Oppimiskynnys korkeahko. Piirto-ohjelmat (Visio, ABCFlowcharter) Hinta muutama KMK. 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.


Lataa ppt "Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa II"

Samankaltaiset esitykset


Iklan oleh Google