Utgangspunkt: kvalitetsrammeverket Metoder for å sikre syntaktisk og semantisk kvalitet Boka kap. 4 og 5 Participant knowledge K Physical Perceived semantic Empirical I Guttorm Sindre, IDI Modeling domain D Semantic Model externalization M Syntactic Language extension L Technical T Syntaktisk kvalitet for språk Skille mellom syntaks og semantikk Skille mellom syntaks og semantikk Underliggende basis og ekstern representasjon Hvor langt strekker syntaksreglene seg? Tekstlige vs. diagrammatiske språk Verktøystøtte Semantikken gir språkuttrykk en tolkning + = + - et usemantisk uttrykk er feil ift. virkeligheten Syntaksen sier hvordan grunnbegreper kan kombineres til språkuttrykk a = a + 1 og a += 1 - et usyntaktisk uttrykk har ingen tolkning/semantikk Metoder for å bedre syntaktisk kvalitet Syntaksen begrenses iht. semantikk Underliggende basis og ekstern representasjon Hvor langt strekker syntaksreglene seg? Underliggende basis baseres på språkdesignerens oppfatning av virkeligheten, kjennskap til brukernes virkelighetsoppfatning, og ønsker om formelle egenskaper Ekstern representasjon = symbolbruk språkdrakt, notasjon, kortformer, boksologi Syntaksen begrenser de semantiske feilene guttens alder er grønn: gutt.alder = grønn Noen typer semantiske feil er vanskelige å håndtere vha. syntaksregler while(true); all ut-porter må kunne trigges deontiske regler 1
Tekstlige vs. diagrammatiske språk Hvordan beskrive syntaks? Tekstlige uttrykk er endimensjonale Linje -grammatikk beskriver sammensetning (funksjon består av hode og kropp) sekvens (hode kommer før kropp) Grafiske plan -grammatikker finnes begreper som over, inni, inntil, peker på Diagrammer er n-dimensjonale beskriver sammensetning, ikke sekvens Metaspråk for spesifikasjon av et modelleringsspråks syntaks Backus-Naur Form Datamodelleringsspråk Predikatlogikk Kombinserte representasjonsspråk e.g. datamodell + BNF Verktøystøtte Hvordan sikre den syntaktiske kvaliteten? Spenn fra fritekst/tegning til struktureditorer tegneeditor, fargekoding, strukturmakroer, tvangstrøye pixeleditor, bokser og streker, moduser, highlighting Atomer vs. sammensetninger Ikke alle enkeltrelasjoner er lovlige Sett av enkeltrelasjoner kan gi ulovlig tilstand Error avoidance vs. detection Mål: alle utsagn i modellen M er i samsvar med syntaksen/vokabularet for språk L M / L = Ø To hovedtilnærminger til syntakssjekk: Error prevention : a priori-regler (må alltid respekteres), eks. syntaksorienterte editorer Error detection : a posteriori-regler (kan oversees underveis i modelleringen, men må før eller senere oppfylles) Bruk av syntaksregler Semantisk kvalitet for språk Error detection techniques øker modelleringsfriheten reglene kan aktiviseres manuelt eller automatisk når visse betingelser er oppfylt Error prevention techniques kan undertrykke kreativitet sikrer at brukeren hele tiden respekterer grunnprinsippene i modelleringsspråket kontinuerlig påtvunget av verktøyet Semantisk kvalitet vedrører samsvaret mellom modellen og det modellerte domenet Kvalitetsmål: M: all modellutsagn D: all mulige utsagn om domenet Validitet: Alle modellutsagn er korrekte og relevante M/D = Ø Kompletthet: Modellen inneholder alle korrekte og relevante utsagn D/M = Ø 2
Hvordan sikre semantisk kvalitet? Tilnærminger til konsistenssjekk Relevans: inspeksjon av modellen Korrekthet: sjekk av konsistens mellom modellfragmenter sjekk av konsistens mellom modellfragment og lingvistisk beskrivelse Problem: Domenet kan ikke utsettes for automatisk manipulasjon, dvs. D kan bare uttrykkes som en eller annen M. Konsistenssjekk basert på logiske beskrivelser Konsistenssjekk basert på konstruktivitet Konsistenssjekk basert på logiske beskrivelser Resultat av statisk konsistenssjekk Lag konseptuell modell m/ contraints Formuler databaseskjema Transformer db-skjema til logisk teori Transformer teorien til et sett av clauses S Konstruer digrafen G(S) Dekomponer G(S) til svakt koplede sett S1, S2,..., Sn Bestem konsistens direkte Ellers: Sjekk om G(Si) er avgjørbar Hvis avgjørbar: bruk resolusjonsmetode til å bestemme konsistens Hvis hver G(Si) er konsistent, er G(S) konsistent Hvis en G(Si) er uavgjørbar, er G(S) uavgjørbar DB-skjema er konsistent, DB-skjema er inkonsistent, eller sjekkingen er ikke avgjørbar Selv om en logisk teori er uavgjørbar, kan den være semi-avgjørbar, dvs. inkonsistens kan fastslås ved et begrenset antall steg. Metoder for å sjekke konsistensen Lewis: predikatlogikk Kung: grafteoretisk formulering Konstruktivitet og konsistens Konstruktivitet i PPM Fundamental principle of systems work (Langefors): Definer systemet som et sett av deler Definer systemstrukturen Definer systemdelene Bestem egenskapene til systemet Konstruktivitet: det å utlede egenskapene til et system basert på egenskapene til dets subsystemer Kungs tilnærming (1986): Inputs og outputs representert som logiske uttrykk og knyttet sammen ved logiske operatorer Sindre s tilnærming (1987-88): Konstruksjon av et tilstandsdiagram for prosessnettverket Ming Weis tilnærming (1990-93): Konstruksjon av et tilstandsdiagram fra kanonisk form av prosessnettverket 3
Lingvistisk verifikasjon Lingvistisk verifikasjon: Definisjon av språk Basis: En konseptuell modell består av grafiske modellelementer og små beskrivelser i naturlig språk Tolkningen av NL-beskrivelsen må være konsistent med den lingvistiske tolkningen av modellelementet Hvert modellkonsept definert ved lingvistiske, semantiske strukturer Eksempel: Sign Model (forenklet) company company company own own buy plant employee plant relationship: - transition - endpoint agent: [+concrete +identifiable] patient: [+concrete + identifiable]] entity: [+concrete + identifiable + countable] Lingvistisk verifikasjon: 1. Isolerte beskrivelser Lingvistisk verifikasjon: 2. Relasjoner Er company en entity unifiserer med entity : Ja Er buy og own relationships? unifiserer ikke med relationship : Nei buy: +transition + endpoint agent: [..] patient: [..]] company: [+concrete +countable + identifiable - living] Unifiserer: Ja own: - transition - endpoint agent: [..] patient: [- living...]] Er own(company,employee) en lovlig konstruksjon? Vi kombinerer strukturene for enkeltordene, slik at entitetene unifiseres med argumentene til relasjonene Hvis unifikasjonen lykkes, er konstruksjonen mulig fra et lingvistisk synspunkt Ugyldig konstruksjon own(company,employee): - transition - endpoint agent:[+concrete...] patient:[+concrete - living +living...]] Fortsatt samme kvalitetsrammeverk: Metoder for pragmatisk kvalitet Boka kap. 6 Participant knowledge K Physical Perceived semantic Empirical I Guttorm Sindre, IDI Modeling domain D Semantic Model externalization M Technical T Syntactic Language extension L 4
Teknikker - 4 dimensjoner Aktiviteter Språkforståelse Innholdsrelevans, fokus strukturanalyse Forståelse av oppførsel (eksekvering) Opplæring Inspeksjon: gjennomganger av modeller Transformasjoner av modeller T: M1Li M2Lj Mål: Forståelse Transformasjoner Transformasjorner forts Omformulering - ~(a b) ~b ~a Kan gi ny forståelse ved å gjøre visse forhold eksplisitte Modifisering av layout Bedre oversikt, forståelse Basert på graf-estetiske retningslinjer Manuell eller automatisk Filtrering tar et utdrag av modellen språk/meta-modell - begrensning av språk-elementer modell/spesifikasjon - skjule detaljer Aspekter inklusiv/eksklusiv deterministisk/indeterministisk global/lokal N M person writes paper person 1 N writes Transformasjoner, forts. Transformasjoner forts Sletting Del av modell fjernes Innsetting ny del legges til modellen Versjoner! Flere modeller av det samme som eksisterer på samme tid Oversetting T: MLi MLj, i " j Språk med ulike pragmatiske kvaliteter Semantisk, ikke syntaktisk mapping L kan være tekst eller diagram Trenger oversetting i CASE-verktøy Mer vanlig i programmeringsomgivelser 5
Oversetting, krav Prototyping for forståelse Separat spesifikasjonsnivå Spesialiserte deklarative oversettingsspråk Generelt og komplett Språk og oppgaveuavhengig Støtte for blandede representasjoner Ulike repositories for modeller Tekstlige og diagrammatiske språk Interaktivt vs automatisk Throwaway (bruk-og-kast) Identifisere og stabilisere krav Evolusjonær Gradvis utvikle til fullt system Mock-up Ytre fasade, ingen dyp oppførsel Eksperimentell Fastslå gjennomførbarhet av foreslått løsning Prototyping - taksonomi Prototyping - språk Klassifisering langs 6 dimensjoner fokus hvilke aspekter blir prototypet skop hvor mye blir prototypet dybde hvor dyp er oppførselen skala hvor mye testdata blir brukt tidspunkt hvor tidlig i prosjektet varighet hvor lenge blir den brukt, når kastet? Eksekverbare spesifikasjonsspråk Hva systemet skal gjøre på et visst abstraksjonsnivå Logiske og algebraiske språk Operasjonelle spesifikasjonsspråk Både HVA og HVORDAN, om en annen Eksekverbare konseptuelle modeller Very high level languages Programmeringsorienterte, problemspesifikke Eksekvering av konseptuelle modeller Oppsummering Lavere abstraksjon spesifikasjon eksekvering CM VHLL HLL Oversetting til eksekverbar CM (conceptual model) Direkte interpretasjon Oversetting til Very High Level Language (VHLL) Oversetting til High Level Language (HLL) Kvalitetsnivåer..., syntaktisk, semantisk, pragmatisk,... Kvalitetsmål Syntaktisk korrekthet, validitet, kompletthet, forståelse...tilhørende midler Manuelle eller i verktøystøtte Feilforhindring / feildeteksjon Konsistenssjekk, lingvistisk verifikasjon Transformasjoner Prototyping, modell-eksekvering Neste uke er den siste Oppsummering av hele faget Evt noe som ønskes gjennomgått i mer detalj? 6 #