5 Toimintojen ja tietojen kuvaus Toiminto voidaan kuvata Algoritmisesti Antamalla joukko toiminnon määritteleviä ehtoja Määriteltävä Ohjelmiston käsittelemien tietojen käsittelysäännöt Tietojen rakenne ja esitystapa Kuvaustekniikoita toimintojen määrittelyyn ja kuvaukseen Algoritmien kuvaustekniikat Päätöstaulut Päätöspuut Tulo- ja jättöehtojen esittäminen Tietojen määrittely tietohakemisto 5. Toimintojen ja tietojen kuvaus
5.1 Algoritmien kuvaaminen Pseudokoodi Ohjelmointikieltä muistuttava tekstimuotoinen esitystapa (”structured English”) Peräkkäisrakenne, while - ja do until silmukat, ehdollinen rakenne, valintarakenne Käytetään moduulisuunnittelussa Pseudokoodista voi syntyä kommentointi Kulkukaaviotekniikat Vanha tapa esittää algoritmeja ”kuvana” Aktiviteettikaavio UML-notaatiossa vastaa tätä: käytetään lähinnä mallinnettaessa toimintoja 5. Toimintojen ja tietojen kuvaus
Esimerkki pseudokoodista 5. Toimintojen ja tietojen kuvaus
Vastaavia kulkukaavioita 5. Toimintojen ja tietojen kuvaus
5.2 Päätöstaulut ja päätöspuut Kuvataan monimutkaisia päätöstilanteita Päätöstaulut hyödyllisiä, kun suoritettavat toimenpiteet riippuvat monimutkaisista ehtojen kombinaatiosta Päätöspuut käyttökelpoisia, kun päättelyn lopputulos on pitkän päättelyketjun tulos 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus Päätöspuu 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus Päätöstaulu Valon väri Vihreä Keltainen Punainen Ehtiikö jarrutta-maan Kyllä tai ei Kyllä Ei Toiminta Aja risteykseen Pysäytä 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus 5.3 Esi- ja jälkiehdot Erityisesti määrittelyvaiheessa toiminnon spesifioiminen voidaan tehdä käyttäen esi- ja jälkiehtojen kirjaamista Ei ota kantaa toimintojen toteutustapaan Esim. määriteltävänä toiminto, joka lajittelee taulukon A[1..n] sisältämät positiiviset kokonaisluvut kasvavaan suuruusjärjestykseen taulukkoon B[1..n] Esiehto: V i C 1..n: A[i] C 0..216 -1 Jälkiehto: V i,j C 1..n: i ≤ j B[i] ≤ B[j] 5. Toimintojen ja tietojen kuvaus
5.4 Tietohakemistomäärittelyt Tietohakemistolla voidaan kuvata Tietovarastot Tietovirrat Tapahtumavirrat Kuvauksen perusteella voidaan jopa tuottaa ohjelmointikielen syntaksin mukaiset määrittelyt Kuvataan: esitystapa, tarkkuus, käytettävät yksiköt, rakenne Merkintätapoja Merkki Merkitys + Ja () Valinnainen {} Toisto | Vaihtoehtojen erotin @ Avainkenttä * kommentti 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus Esimerkkejä Henkilötiedot = nimi + @henkilötiedot + siviilisääty + lapset Nimi =1{etunimi}3 + sukunimi Siviilisääty = [naimaton | naimisissa | eronnut | leski] Luottoraja = *asiakkaalle myönnettävän luoton enimmäismäärä euroina* Luottorajoitus = *vastaus luottorajan muutosyritykseen* [”Tuntematon asiakas” | ”Virheellinen luottoraja” | ”Uudeksi luottorajaksi on määritelty xx euroa”] 5. Toimintojen ja tietojen kuvaus
Opiskelijatietokanta Suoritustietokanta = *Relaatiotietokanta, 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 + arvosana + ope_nro} Opintojaksot = {@oj_nro + oj_nimi + ov_maara + kuvaus} Opettajat = {@ope_nro + ope_nimi + tehtava} 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus Esimerkki tilaussanomasta <?xml version="1.0"?> <postitilaus> <vastaanottaja> <nimi>Ahto Simakuutio</nimi> <osoite>Hermiankatu 99, 33720 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> b) DTD-kuvaus <!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)> ]> 5. Toimintojen ja tietojen kuvaus
5. Toimintojen ja tietojen kuvaus c) XML schema <xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:element name="postitilaus" type="tilaus"/> <xsd:complexType name="tilaus"> <xsd:sequence> <xsd:element name="vastaanottaja" type="osoitetiedot"/> <xsd:element name="tavarat" type="tavaroidentiedot"/> </xsd:sequence> </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=“unbounded"/> <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> 5. Toimintojen ja tietojen kuvaus