Understanding Quality in Conceptual Modeling Odd Ivar Lindland, Guttorm Sindre, Arne Sølvberg IEEE Software, March 1994 Innhold Modelleringsspråk; eksempler Egenskaper og Perspektiver Hva er en god modell? Hva er De Gode Egenskaper Et rammeverk for kvalitetsbetraktninger Kvalitetsrammeverket Kvalitetskrav og utsagn Virkemidler og teknikker for forbedret kvalitet Kvalitetstyper Eksempler på teknikker og verktøy 1
Modelleringsspråk, variasjoner, eksempler Referentmodellering Basert på elementær sett-teori og lingvistikk. Modellering av: Referent-sett, Referent-Elementer, Attributter, Relasjoner, CAGA il bruk i Informasjonsforvaltning Navn elefonnr. Kunde PostAdresse Besøksadresse F.Meldt av Feilmelding K.Mottar Kundekontakt Konrad {} Kabel + Ansatt AnsattNr. Navn Annet Bakgrunns informasjon F.Fører til Driftssjef D.Overvåker Operatør GSM elefon Kontrakt. gjelder for Kontrakt Inngår i Hastesak Planlagt vedlikehold Avtalt service Õ Jobb Opprettet dato Frist O.utfører Ikke påbegynt + Aktiv + Ferdig Pågår Venter 2
ER modellering owards a unified view of Data, Chen, 1976 Konseptmodellering skreddersydd mot DB design Entiteter: Konsepter, Svake entiteter, avhengige av andre (slags aggregering) Attributter (Nøkler, Flerverdier, Avledede) Relasjoner (M. attributter) pnr # biler navn person (0,N) (1,1) eier bil BilNr adr tlf kjøpsdato Enhanced ER (EER) Modellering Sub-klasser (Generalisering/Spesialisering) Kategorier kule raske eier (0,N) (1,1) kjøretøy BilNr o person u d pnr BNavn bank firma FirmaNr lastebil Lastevekt personbil passasjerplasser 3
Clawfoot notasjon Min, Max angivelse vha. kråketær En bil kan ha 1 (min) eller mange (max) passasjerer bil passasjer En bil kan ha hatt 0 (min) eller mange (max) førere bil fører En bil kan ha 1 (min) og bare 1 (max) eier bil eier Subsett bil bil person laste kule raske NIAM Introdusert 1970, Nijssen & Halpin Fokusert mot mere detaljer enn ER Grunnlag for autogenerering av DB definisjoner i flere SQL dialekter Ønske om forklaringsgenerering person eier Eies av bil Per Per Kari LS 12345 ND 54321 VE 23456 person har identifiserer PNo 4
UML Klassediagram UML klasse definisjon navn id kjøretøy attributter operasjoner I tillegg: Datatyper Private, Protected, Public Operasjons-signaturer personbil Reg.Nr. (0..*) < P.eier (1) P.Nr person hjul dimensjon (3..4) motor (1) motornummer (1) id chassis UML Notasjon (detaljer) Fra: UML Notation Guide - http://www.rational.com/uml/resources/quick/index.jsp 5
ER - ER modellering med id idsperspektivet av datamodellering er generelt dårlig dekket Data -id; Ofte diskrete-tidsintervall Hendelses-tid (i virkelig verden) ransaksjons-tid (i databaseverden) Ofte vanskelig å få med seg i designet Gir spesielle tabeller/attributter ËØnskelig å skille ut tidsavhengige entiteter Ë Bruker og H merking av Entiteter og Relasjoner -merking Entiteter der instansene varierer over tid Subsett, der delmengden lever kortere enn hovedmengden Relasjoner, der deltakelse varierer over tid firma ansatte p2 f3 firma f1 f2 by b1 person p1 b2 b3 p3 firma f1 f2 by b1 person p1 b2 b3 p3 by person p2 p1 p3 b1 b2 b3 t 3 tid arb.ledige p1 p3 t 2 t 1 6
Eksempel, ER modell firma ansatte Har bestefar H person arb.ledige by DFD Detaljering idsperspektiv Start/Stopp Sekvens Hendelser Formalisering av inn/utgang Grunnlag for spesifisering av regler Markering av ressurser prosjektleder Personer Datakraft Verktøy/hjelpemidler A2.1 Lag styringsrapport Prosjektstyrings Siste verktøy statusrapport 7
ARIS (EPC: Event Process Chain) ysk CASE -omgivelse siden 1985 (SAP siden 87) Markedsleder på prosessmodellering, iflg. Gartner Group 1996-99 Fokus på integrasjon av organisatorisk informasjon og data inn i prosessen Prosess kjede Data Materialer Funksjon hendelse Aktør Funksjon Arbeidsflyt: eamware Visuell definisjon av arbeidsprosess Oversikt over hele prosessen m. statusoppfølging Oversikt over personlig arbeid, O DO lister Definisjon av data og meldinger vha. Forms Kopling til gruppevare eamware Office Microsoft Exchange Lotus Notes Integrert mot Web http://www.teamw.com 8
eamware eksempel http://www.teamw.com PetriNett Formell prosessmodell, streng matematisk definisjon Opprinnelig brukt for modellering av Distribuerte systemer mhp Ressursbruk og Samtidighet Fokus på Simulering av modellen, Eksekverbar modell Ë Spesielt populær for Arbeidsflyt BASIS: plasser plasser kan merkes med tokens, indikerer ressurser transisjoner Fyring : ransisjonsovergang, kan skje når alle input-plasser har token Konsumerer 1 token fra alle input plasser og genererer token på alle ut-plasser 9
Behaviour Network Model Spesifisering av ressurser. Kopling til datamodell Definisjon av PRE og POS - betingelser for transisjoner (regler, logikk) m tl timeliste pre: m= lag lønns-slipp post: neste Y = tl ID: Ansatt Nr. Arb.imer * pre: Y = {} post: Y pre: $y i Œ Y post: Y = Y - y i Ÿ = y i Ÿ.lønn = y i * timelønn Lønnsslipp Modellkvalitet - hva er en god modell? 10
Quality assessment approaches quality of end-product depends to a great extent on the quality of early models (conceptual models, requirements) most quality frameworks appear as lists of desired properties of the considered systems our framework distinguishes between goals and means, and is based on linguistic concepts Some common quality properties of information system specifications appropriate - ability to capture germane concepts complete - everything the software shall do is included in the specification conceptually clean - simplicity, clarity, ease of understanding consistent - no requirement is in conflict with other requirements constructable - there is a systematic approach to formulating specifications executable - automatic execution of specifications expressive - everything relevant may be expressed without too much effort formal - specification in formal language permitting formal analysis of spec. precise - can find whether some realiation does not meet some requirement testable traceable - the origin of each requirement statement is clear unambiguous, understandable, verifiable, minimal, modifiable,.. 11
Weaknesses of the list-approach to quality assessment Many definitions are vague, complicated, undefined List is unstructured, and properties overlap Specification properties, language properties and model properties are intermixed Some properties are design/implementation directed Some goals are unrealistic/impossible to reach, e.g., completeness Kvalitetsrammeverket A Aktører Pragmatisk kvalitet D Domene Semantisk kvalitet Modell Syntaktisk kvalitet Modellerings Språk L M 12
he statements he language L consists of all of the statements that can be made according to the syntax he domain D consists of all possible statements that are both correct and relevant for the problem at hand he model M is the set of statements actually made he audience interpretation A is the set of statements that the audience thinks that the model contains Kvalitetskrav Syntaktisk kvalitet: Krav: At modellen er korrekt ihht. modelleringsspråkets syntaks Utsagn: M \ L = Semantisk kvalitet: Krav: At modellen inneholder alle relevante begrep og at disse er korrekt representert ihht. domenet. Utsagn: Korrekt: M \ D =, Komplett: D \ M = Pragmatisk kvalitet: Krav: At modellen er forstått av de relevante aktører. En individuell aktør skal ha forstått de deler av modellen som er relevant for ham/henne. Utsagn: " i, M i = A i 13
Kvalitetstyper og virkemidler Kvalitetstyper Aktører Domene Modell Modellerings Språk Verktøy Modell kvalitet Språk-kvalitet Prosess-kvalitet 14
Modellkvalitet, Virkemidler Modell Kvalitet Syntaktisk Correct Semantisk Riktig Komplett Pagmatisk Forstått Verktøy Formell Syntaks Feil-oppdagelse Feil-retting Statement insertion / deletion Formell Semantikk Konsistens-testing Inspeksjon Estetikk, Lesbarhet Visualisering, Filtrering Forklaringer, Omformulering, Oversetting Eksekvering, Animering, Simulering Kan modellen søttes av / brukes i verktøyet CASE tools generelt Flere integrerte modelleringsspråk Samarbeidsstøtte: Kommunikasjon Samhandling Koordinering Meta-Modell Meta-Modell: Spesifiserer modelleringsspråkene Definerer sammenhenger mellom modeller og elementer i forskjellige perspektiv Repository: Lagring av modeller Flerbruker-funksjonalitet Verktøy og teknikker for bedret utnyttelse av modellene: Syntakssjekking Konsistenstesting Simulering Inspeksjon Forklaringsgenerering Eksekvering Protoyping Kodegenerering 15
EXERNALs Infrastructure MEIS: Modeling and visualiation Workware: Workflow, interface to work tasks XCHIPS: Synchronous cooperation Interactive model Process Information Resources Organisation ools SimVision: Project Simulation Virkemidler/eknikk-eksempler Forenkling Forklaring P1.1 P1.2 Simulering P1.3 P1.4 P1.1 P1.2 P1.3 P1.1 P1.2 P1.3 P1.4 P1.4 Hvorfor var ordren Ugyldig? Flyten Ugyldig ordre ble sendt av P1 fordi Kundedata ikke var gyldige Kodegenering P1.1 P1.2 P1.3 P1.4 16
Konstruktivitet i DFD P1 Motta Ordre Kundedata P1.1 elefon Mottak P1.3 Varedata Ordre P1.2 Motta ferdig utfylt Fyll ut ordrer P1.4 Sjekk ordre godkjent ugyldig Konstruktivitet i PrM P1 Kundedata Varedata Ordre Motta Ordre godkjent ugyldig Kundedata Varedata Ordre P1.1 elefon Mottak P1.2 Motta ferdig utfylt P1.3 Fyll ut ordrer P1.4 Sjekk ordre 17
Statisk konsistenstest i PrM I/O Matrise, Logisk uttrykk O1 = (P1:I1 Ÿ P1:I2) (P1:I3) P1.1 I1 O1 X P1.2 I1 O1 X O2 X P1 I1 I2 I3 O1 X X O1 X O2 X X O2 X P1.3 I1 I2 O1 X X O2 X X P1.4 I1 I2 I3 O1 X X O1 X X O2 X X O2 X X O1 = P1.4:O1 = (P1.4:I1 Ÿ P1.4:I3) (P1.4:I2 ŸP1.4:I3) fl (P1.3:O1 Ÿ (P1.3:O2 P1.2:O1)) ( P1.2:O2 Ÿ (P1.3:O2 P1.2:O1)) fl ((P1.3:I1 Ÿ P1.3:I2) Ÿ ((P1.3:I1 Ÿ P1.3:I2) I3)) (I3 Ÿ((P1.3:I1 Ÿ P1.3:I2) I3)) fl ((P1.1:O1 Ÿ I2) Ÿ(P1.1:O1 Ÿ I2)) Ÿ (((P1.1:O1 Ÿ I2) Ÿ(P1.1:O1 Ÿ I2)) I3 ) (I3 Ÿ(((P1.1:O1 Ÿ I2) Ÿ (P1.1:O1 Ÿ I2) ) I3)) fl (((I1 Ÿ I2) Ÿ(I1 Ÿ I2)) Ÿ ((I1 Ÿ I2) Ÿ(I1 Ÿ I2)) I3 ) (I3 Ÿ(((I1 Ÿ I2) Ÿ (I1 Ÿ I2)) I3)) fl (I1 ŸI2) I3 Dynamisk konsistenstest 18
Simulering Eksempel: AUDIWEB Informasjon om aktiv dataflyt: Varefraktspesifikasjon: Produsenten sender en varefraktspesifikasjon til distribusjonslageret. Denne spesifikasjonen sendes til distribusjonsterminalen ved hjelp av et elektronisk kommunikasjonsmedie og inneholder informasjon om hvilke varer som kommer fra produsenten. http://www.idi.ntnu.no/~systpro3/prosjektaudi/ Syntakssjekking A priori regler : Aldri lov inn-ordrer ut-ordrer A posteriori regler : Ikke lov i en ferdig modell P1 Navn? Sjekkliste: Navn Flyter riggere/erminering Porter Flytinnhold Prosessalgoritmer Datalagerinnhold 19
Forklaring av modellen Forklaring av syntaks P1 navn Dette er en prosess. En prosess er et dynamisk konsept som leser et sett med innflyter og genererer et sett med ut-flyter. Alle prosesser har en ID og et navn. Forklaring av feil P1 Motta Ordre Diagrammet er ulovlig siden P1 ikke produserer noen ut-flyt. Alle prosesser må generere minst 1 ut-flyt inn-ordrer ut-ordrer En data-flyt kan ikke gå direkte mellom 2 datalagre Forklaring av modellen (2) Hvorfor ble ordren avslått? P1 Motta ordre Ugyldig ordre ble sendt av prosess P1 fordi kundedata var ugyldig Hvorfor var kundedata ugyldig? P1 Motta ordre Kundedata var ugyldig fordi kunden har mindre enn 5000,- på konto. Dette bryter med regel R3: Ordrer fra direkte kunder godkjennes bare dersom vedkommende har mer enn 5000,- på konto 20
Oppsummering Modeller varieres etter behov Skreddersys ofte til konkrete bruksområder ilpasses til verktøystøtte Hva er en god modell? Det kommer an på Domenet (D), Språket (L), Aktørene (A) Syntaktisk kvalitet Semantisk kvalitet Pragmatisk kvalitet Gode verktøy tilbyr virkemidler for forbedret kvalitet 21