12 Dokumenttiluokkien suunnittelusta

Samankaltaiset tiedostot
12 Dokumenttiluokkien suunnittelusta

12 Dokumenttiluokkien suunnittelusta

12 Dokumenttiluokan toteuttamisesta

12 Dokumenttiluokan toteuttamisesta

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys

Johdatus rakenteisiin dokumentteihin

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

6 DTD ja dokumentin tyyppimääritys

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

3 Verkkosaavutettavuuden tekniset perusteet

W3C ja alueellinen standardointi

Paikkatiedot ja Web-standardit

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Systemaattiset suunnittelumenetelmät

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

XML johdatus: DTD. Jaana Holvikivi

W3C-teknologiat ja yhteensopivuus

HELIA 1 (11) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

XML johdanto, uusimmat standardit ja kehitys

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Suunnitteluvaihe prosessissa

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

Ohjelmistojen suunnittelu

Tietojärjestelmän osat

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Elementtien tyyppideklaraatiot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Systemaattiset suunnittelumenetelmät

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Luento 12: XML ja metatieto

Rakenteisten dokumenttien jatkokurssi, syksy 2006

Määrittelyvaihe. Projektinhallinta

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

4 Johdanto XML-maailmaan

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Projektityö

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Tuotemallipohjaisen toimintaprosessin mallintaminen

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Hieman lisää malleista ja niiden hyödyntämisestä

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

Ohjelmistotekniikka - Luento 2

XML-saatavuuskysely. XML-tiedoston kuvaus. versio

VÄLI- JA LOPPURAPORTOINTI

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Hakeminen käytännössä: osallistujaportaali ja hakemuksen kirjoittaminen Elina Holmberg Infotilaisuus

Paikkatietotuotteen määrittely

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

XML / DTD / FOP -opas Internal

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

2 Rakenteisten dokumenttien perusteet

Yhteentoimivuutta edistävien työkalujen kehittäminen

è è è RDF-perusteet 7 RDF-perusteet

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

Luento 3 Tietokannan tietosisällön suunnittelu

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

Tietorakenteet ja algoritmit - syksy

IFC:n tilanne ja tuotetiedon elinkaaren hallinnan prosessi

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Onnistunut Vaatimuspohjainen Testaus

Yhteentoimivuusalusta ja sen hyödyntäminen kuntien/maakuntien taloushallinnossa Petri Tenhunen, VRK

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

P e d a c o d e ohjelmointikoulutus verkossa

käyttötapaukset mod. testaus

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

ARTS-ENG-projekti. Projektin lopettaminen

Sosiaalihuollon kokonaisarkkitehtuuri

ohjelman arkkitehtuurista.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

PROJEKTIN SUDENKUOPAT. f JOUNI HUOTARI PÄIVITETTY

Hohde Consulting 2004

Visma Software Oy

Uudelleenkäytön jako kahteen

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Kajaanin ammattikorkeakoulu Opinnäytetyösuunnitelman ohje

Yhteentoimivuutta edistävien työkalujen kehittäminen - JulkICTLab jatkohakemus

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

Merlin Systems Oy. Kommunikaatiokartoitus päätöksenteon pohjaksi. Riku Pyrrö, Merlin Systems Oy

Muotoilumaailman hahmottaminen - Tuotesemantiikka

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Sivuston tiedotqbooksupportpho nenumber.com

UML-kielen formalisointi Object-Z:lla

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

Pimeän arkiston toteutusvaihtoehtoja Theseukselle

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Transkriptio:

12 Dokumenttiluokkien suunnittelusta XML-sovellusten suunnittelun keskeinen ja toistuva osaalue on dokumenttiluokkien (tai XML-tekstiformaattien) suunnittelu. Työn kärjistetty (ja nyt tarkoituksella rajattu) lopputulos on XML DTD tai XML-skeema. Dokumenttityypin abstrakti tehtävä on määrittää rajapinta jonka sovellus sitten tavalla tai toisella toteuttaa. Tyyppimäärityskiel(t)en yksinkertaisuudesta huolimatta hyvän dokumenttiluokan suunnittelu on ei-triviaali tehtävä, aihepiirin kytköksistä johtuen (osaprj). Hyvä tyyppimääritys mallintaa sovelluksen keskeisen tiedon järkevästi jäsennettynä, toimii sekä teknisen kirjoittamisen että sovellusohjelmoinnin näkökulmasta (std-ratkaisut ja välineet huomioiden), ja tarjoaa puitteet tuleville laajennuksille. Suunnittelutehtävä helpottuu esim. visuaalisten apuvälineiden käytöllä. 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 216

12.1 Suunnittelutehtävän reunaehdoista Rakdok-suunnittelu käynnistyy yleensä selvitystyöllä joka pyrkii jäsentämään tehtävän osana olemassa olevaa sovellusperhettä Hyvin yleisellä tasolla, dokumenttityypin tietomallin määrittelyn pitää asettaa ainakin - tavoite ja käyttötapa - tarkkuus (granulariteetti) - sovellusala Onnistumisen avain = hyvä sovellusalueen ja välineiden tuntemus 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 217

12.2 Systemaattisuudesta ja menetelmistä (1/2) Mikäli suunnittelukäytäntö on epäselvä, seurauksena on ikäviä ongelmia: - tekijätiimin huonomuistisuus aiheuttaa virheitä ja tehottomuutta (samaa jauhetaan kerrasta toiseen ja ratkaisut keksitään aina uudelleen) - tavoitteet ja tulokset ovat epäselviä ja muuttuvat huomaamatta matkalla - oikeita kysymyksiä ei huomata kysyä oikeina aikoina tai unohdetaan kokonaisia työvaiheita (tyypillisesti dokumentointi, raportointi ja korjaukset) - suunnitteluprosessin seuraaminen on hankalaa ja tehtyjen päätösten vaikutusten arvioiminen jälkikäteen (ja esim. työstä oppiminen!) vaikeaa 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 218

12.3 Systemaattisuudesta ja menetelmistä (2/2) Systemaattisen suunnittelun idea on soveltaa kuvaustekniikoita ja hyviä käytäntöjä kirjaavia toimintatapoja: - yhtenäinen kieli ja käsitejärjestelmä jonka avulla esittää suunnitelmia ja keskustella niistä - selkeä malli suunnitteluprosessin toteuttamiseksi ja kirjaamiseksi - muistilistoja joiden seuraaminen varmistaa pahimpien sudenkuoppien välttämisen työn eri vaiheissa - esimerkkejä joista ottaa mallia työn suorittamiseksi käytännössä Menetelmien jaottelusta: vapaamuotoiset (informaalit) menetelmät (esim. seinätaulut), puoliformaalit menetelmät (esim. UML+RUP), formaalit menetelmät (tiedon ja käyttötapausten looginen kuvailu) 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 219

12.4 Systemaattisen työn vaiheet Kaikentyyppinen projektityö hyötyy seuraavien hyväksi havaittujen työvaiheiden mukaisesta jäsennyksestä (kärjistys) a) esitutkimus (mitä tehdään/onnistuuko edes/mitä pitää tietää) b) määrittely (mitä ajetaan takaa/keskeiset tavoitteet/reunaehdot) c) suunnittelu (miten tavoitteeseen päästään) d) toteutus (tyyppimäärityksen kirjoittaminen ja dokumentointi) e) testaus (toimiiko todella kuten ajateltiin/otetaanko käyttöön) f) korjaus (jos ja kun ei mennyt kuin elokuvissa) Iteratiivinen kehitys jäsentää vaiheet yhden iterat. kehitysaskeleen sisäisiksi välivaiheiksi, pienissä projekteissa osa-alueet sulautuvat Conceptualisation Problem Problem-solving Solution Inception Elaboration Construction Transition Development Cycle Realisation Product Generation 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 220

12.5 Riskeistä Työn tyypillisimpiä riskejä ovat (kohde)sovelluksen heikko tuntemus ja epärealistisuus tavoitteiden suhteen (lue: liian nopea eteneminen) - määrittelytekniset riskit (keskeistä tietoa tai tavoitteita ei huomioida määrittelyvaiheessa, tavoitteissa ei huomioida tekniikan rajoituksia [yleensä hankalan toteutuksen hintaa]) - poliittiset riskit (piilotavoitteet, katteettomat lupaukset ja sitoutumattomuus, yliampuva markkinointi, erit. "X[ML] viisasten kivenä") - osaamiseen liittyvät riskit (asiakas vs. toimintaympäristö vs. toteuttajat) - teknologiaan liittyvät riskit (esim. kypsyys ja välineiden puutteet) Terve järki ja maanläheisyys auttavat riskien arvioinnissa; tyypillinen virhe on "sanella itse sisältöä ja antaa asiakkaan sanella toteutustekniikkaa" (liikaa) Hyvässä projektissa "luovuus valjastetaan hallittujen osatehtävien puitteisiin" 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 221

12.6 Suunnittelun kulmakivi: systemaattinen kokeileminen Kun sisällöllinen tavoite on haarukoitu, suoraviivainen tapa lähteä liikkeelle (dokumenttiluokan) suunnittelussa on esimerkki- ja testiaineiston tuottaminen (vrt. protoilu). Käytännössä esim. dokumentteja joiden avulla... - ideoidaan tietomalli (abstrahointi ja tietorakenteiden suunnittelu) - suunnitellaan tuotanto- ja ylläpito- ja hallintaprosessit - testataan ja varmennetaan tekniikat tavoitteeseen pääsemiseksi -...ja luodaan keskusteluyhteys eri toimijoiden välille Huomaa että KYSE EI OLE DOKUMENTIN TYYPPIMÄÄRITTELYN KIRJOITTMISEST VN DOKUMENTTITYYPIN J TÄHÄN LIITTYVIEN VÄLINEIDEN SUUNNITTELUST OSN TIEDON HLLINTPROSESSIN J SEN REUNEHTOJEN SUUNNITTELU 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 222

12.7 Hyviä huomioita Miten ja millä välineellä dokumenteista löytyvä tieto tuotetaan ja käsitellään? - tietokoneohjelma tuottaa/ tekninen kirjoittaja tuottaa/ kadunmies tuottaa -...ts. tarvitaanko "psykologista suunnittelua", virheiden minimointi, yms. Mikä on yksinkertaisin tietomalli joka ratkaisee ongelma (suunnittelun miniperiaate)? - pieni on kaunista (kunhan laajennettavissa) - on helppoa suunnitella "liian rikas" tietomalli jonka avulla saavutettavat (lisä)hyödyt ovat minimaalisia suhteessa haittoihin (esim. kustannukset, ymmärrettävyys, lipsuminen [vrt. TS]) Staattisen vs. dynaamisen tietomallin suunnittelu - järjestelmän objektien tyypit (tietosisällöt), ominaisuudet ja suhteet vs. informaatiovirrat systeemin eri osien välillä 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 223

12.8 Suunnittelun lopputuotteista (ei pelkkä DTD) Tietomalli/skeema (kuvaileva tieto tyyppimäärityskielen avulla esitettynä) - päätason elementtihierarkia (rakenne-elementit) - mielekkäät tietokokonaisuudet / yhden tapahtumankäsittelijän tarvitsemat tiedot (tietue-elementit) - tietueiden sisältö (dataelementit) Informaali ohjeistus, (lisä)rajoitteet ja reunaehdot name - käyttöohje käyttöesimerkkeineen (sis. keskeisesti tavoitellut käyttötapaukset) - mahdollisia lisävaatimuksia (joiden formalisointi ei kenties onnistuisi valitulla tyyppimäärityskielellä järkevästi) music * album Kärjistetysti: data vs. dokumenttilähtöisen mallintamisen ero on tapa jolla tietue-elementit ovat viitattavissa/saatavilla (ts. löytyykö "päätasoa" ylipäänsä, tietue-elementtien "itseriittoisuus", kuvailu- ja metatiedot,...) tracks * track 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 224

12.9 Suunnittelun visuaalisista apuvälineistä Dokumenttiluokan suunnittelu onnistuu teknisesti suoraan DTD/Skeemakielen varassa Erilaiset mallinnus- ja kuvailukielet tulevat mukaan projektin kasvaessa täsmällisyys ei kuitenkaan tarkoita "formaalin näköistä" Nyt tarkastellaan yksinkertaisuuden vuoksi vain (DTD-) suunnittelun visuaalisia apuvälineitä Tarkoituksena on nyt luonnehtia suunnittelun apuvälineitä hyvin yleisellä tasolla; käytännössä notaatio vaihtelee välineittäin, valitun tyyppimäärityskielen mukaan Huomaa suunnitteluperspektiivit notaation suhteen (conceptual-specification-implementation) name music lang: xsd:language * album id: xsd:id year: xsd:date /TEXT #PCDT tracks * track len: xsd:duration /TEXT #PCDT 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 225

12.10 Esimerkkejä: Epic Editor & XML Spy Schema Editor 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 226

12.11 Rakennediagrammit (1/2): idea Rakennediagrammin idea on kuvata elementin tietomalli automaatin avulla - vrt. oheinen automaatti R R: tunnistaa (hyväksyy) kielen F D E (+ C)DE[FG] sanat Kyse on hyvin matalan tason G C välineestä (esim. sieventäminen) Vastaavuus säännönmukaisten kielioppien (vrt. DTD) kanssa on ilmeinen () ( ) (,) 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 227

12.12 Rakennediagrammit (2/2): notaatio ja rakenteet Kertojat (*, +,?), lyhennemerkintöjen määrittely (esim. &), ositetut rakennediagrammit Käytännössä käyttö nykyään melko vähäistä, mutta hyvä ymmärtää (+) ODY (*) HTML: HED (?) FRMESET HED: TITLE MET "&" ~ ((,) (,)) 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 228

12.13 Puudiagrammit (1/6): idea Puudiagrammin idea on kuvata dokumentin (yleensä geneerinen) tyyppimääritys tiivistetysti puumuodossa Visuaalisuuden keskeinen etu on tietomallin "näkeminen" kokonaisuutena; vrt. elementtien teknisten tyyppimäärittelyjen "lukeminen" Käytännössä tyyppimääritykset ovat suuria diagrammiesityksiä piirretäänkin siis esim. päätason ja tietue-elementtien tasoilla (eri kuvina) Pääpaino on usein elementtirakenteissa; attribuutit jätetään toisinaan kokonaan merkitsemättä Johtuen esim. tyyppimäärityskielten eroista, diagrammien ja vaikkapa DTDtyyppimäärityskielen välillä ei (automaattisesti) ole 1:1-suhdetta Seuraavaksi tarkastellaan ELM-puudiagrammeista (Enables Lucid Modelling) ja UML:stä (Unified Modelling Language) johdettua notaatiota 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 229

12.14 Puudiagrammit (2/6): notaatio Käytössä on useita vaihtoehtoisia notaatiota; tärkeintä on tietenkin systemaattisuus ja album selkeys Huom. Nyt rajoitutaan DTD- tyyppimääritystä toisintavaan notaatioon; käytännössä esim. ID/REF - viittausrakenteet ja periytyminen id: xsd:id year: xsd:date name /TEXT #PCDT tracks * track len: xsd:duration /TEXT #PCDT suunnitellaan esim. UML:n luokkasuunnittelun mukaan (esim. association) name #PCDT album tracks * track #PCDT name type: xsd:pcdt id: xsd:id year: xsd:date id: xsd:id year: xsd:date len: xsd:duration album type: albumtype id: xsd:id year: xsd:date tracks type: trackstype id: xsd:id year: xsd:date * track type: xsd:pcdt len: xsd:duration 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 230

12.15 Puudiagrammit (3/6): perusrakenteita Ohessa ELM-puudiagrammien (rekursiivinen) syntaksi XML-DTD:n mukaan esitettynä; Puun haaroihin voidaan liittää myös kertojia *, + tai? (korvaa merkki ' ' kertojalla) C C <!ELEMENT ()> Notaatiota on helppo laajentaa (vrt. {4,7}); tämä mahdollistaa monimutkaisten DTD-määritysten sieventämisen suunnitteluvaiheessa <!ELEMENT (,C)> C <!ELEMENT ( C ) > <!ELEMENT ( C)> C <!ELEMENT (,C ) > 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 231

12.16 Puudiagrammit (4/6): perusrakenteita Mahdollista on sopia myös kiinteästi DTD:hen liittyvä notaatio (tyhjät elementit, yhdistelmäsisältöiset elementit [mixed]) Notaatio sallii myös ositetut, luonnokset sekä entiteetein paloitellut tyyppimäärittelyt <!ELEMENT EMPTY> (REF) kuvaus jatkuu toisaalla #PCDT <!ELEMENT (#PCDT)> "TEKSTIÄ" elementin sisältö kuvataan vapaamuotoisesti (suunnittelu kesken tms.) #PCDT <!ELEMENT (#PCDT )*> * eclass elementtiluokkaan eclass viitataan entiteetin avulla: <!ELEMENT (,(%eclass;))> 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 232

12.17 Puudiagrammit (5/6): attribuuteista id: xsd:id val[0..1]: CDT C col: (RED GREEN) = RED desc: CDT = "ed"? D idname[0..1]: ID tref: IDREF id=id val=cdt? desc=cdt("ed")? C col=(red GREEN) D idname=id? tref=idref <!ELEMENT ( C)> <!TTLIST id ID #REQUIRED val CDT #IMPLIED> <!TTLIST C col (RED GREEN) "RED"> <!ELEMENT (D?)> <!TTLIST desc CDT "ed"> <!TTLIST D idname ID #IMPLIED tref IDREF #REQUIRED> 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 233

12.18 Puudiagrammit (6/6): muuta Kuten rakennediagrammien tapauksessa, lyhenne- ja lisämerkintöjä on helppo keksiä lisää Lisämerkinnät kuitenkin vain kuorruttavat notaatiota, sieventäen alla olevan skeemakielen syntaksia {1,3} 3+ C C <!ELEMENT ((( (,)) (,,)),C,C,C+)> :n malli on &C ~ <!ELEMENT ((,C) (C,))> 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 234

12.19 Lopuksi Rakenteisia dokumentteja (kuvailevia tietorakenteita) hyödyntävän sovelluksen suunnittelu on tehtävänä erittäin yleinen ja esiintyy kaikessa tietojenkäsittelyssä Projekti ei tietenkään voi onnistua ilman yhteistyötä eri sidosryhmien kanssa - muodollinen tilaaja ja asiakkaan edustaja(t), toteutusprojektin ohjausryhmä - loppukäyttäjät - sovelluksen sisällön asiantuntijat - sisällöntuottajat ja tekniset kirjoittajat - toteutuksesta vastaavat suunnittelijat - testaajat...esitystapa ja kommunikaatio, tiedolliset ja taidolliset valmiudet, (piilo)tavoitteet 7307015 RKENTEISET DOKUMENTIT (kevät 2005) - ON 235