Oversikt over ukas tema Meta- og språk-modellering Guttorm Sindre, IDI Motivasjon for metamodellering Oversikt over sentrale konsepter (2.4 fra boka ) Uttrykkskraft for konseptuelle modelleringsspråk Metamodellering, ontologi Fra CASE til MetaCASE MetaEdit MetaEdit+ A Fully Configurable Multi-user and Multi- Tool CASE and CAME Environment Domenespesifikk modellering med MetaEdit Visual Domain-Specific- Modeling: Benefits and Experiences of Using Metacase Tools UML s metamodell The OMG Meta-Object Facility Motivasjon for metamodellering Intet enkelt perspektiv dekker alle behov Mulige løsninger 1 Bruke flere språk i samme verktøy, begrenset integrasjon (tidl. CASE-verktøy, Visio, ) 2 Utvid og integrer eksisterende språk (UML, PPP) 3 Lag helt nye språk 4 Verktøy for språk- og meta-modellering (Metaedit, Conceptbase) (lar brukeren utvide / endre / redefinere modelleringsspråk etter behov) Metamodell også basis for å sammenligne ulike språk Sentrale konsepter Meta-nivåer: ihht til abstraksjonen klassifisering Meta-nivåer brukt i modellering Instans: Forelesning 8, SIF 8060, Ylrik Modell: Forelesning gis_i Fag tatt_av Student Metamodell: Entitetsklasse, Relasjonsklasse Meta-meta modell: Node, kant Språkmodell vs metamodell Semantisk språkbeskrivelse vs. basis for modell repository Språk for språk- og meta-modellering Nødvendig uttrykkskraft i mod.språk? Typisk strukturelt perspektiv ER Andre semantiske datamodelleringsspråk UML (klassediagram) GOPRR (Graph Object Property Role Relationship) Regelspråk ofte supplement Dynamiske modeller også suppl. tilstandsdiagram Bunge-Wand-Weber: Ontologisk rammeverk IFIP 8.1: basert på eksisterende språk Amadeus: Metamodell for språkintegrasjon GDR: Designrepresentasjon m sanntidsfokus Petri-nett semantikk ARIES: div interrelaterte mod.språk, utvikler velger fritt Hull og King: Metamodell for semantiske datamodelleringsspråk 1
Wand-Weber IFIP 8.1 metamodel AMADEUS GDR ARIES Hull og King 2
Sammenligning Oppgave: Sett i lys av språkkvalitet som def. i kvalitetsrammeverket, hvilke grunner kan man ha for å lage spesialtilpassende modelleringsspråk? Participant knowledge K Social actor interpretation I Modeling domain D Model externalization M Language extension L Technical actor interpretation T UMLs metamodell The OMG Meta-Object Facility David S. Frankel Tre klassifiseringsnivåer (Tab 1) Meta-modell: Class, Attribute, Operation Modell: f.eks. Customer, Policy,... Instans: Customer #123,... Fire modellnivåer (Tab 2) M3 MOF Core: spesifisere metamodeller MetaClass, MetaAttribute M2 Meta-modell: en meta-modell UML: Class, Attribute, Operation Data warehousing: Database, table, row M1 modeller: Customer, Policy M0 instanser Eksempler, mappinger Fig 1: merk at Association er instans av MetaClass (ikke av MetaAssociation!) Fig 2-4: CORBA-mapping Fig 6-7: XML mapping Fig 8-9: EJB mapping MetaEdit+: A Fully Configurable Multi-user and Multi-Tool CASE and CAME environment Disse mappingene gjør det lettere å utveksle modeller Over nettet Mellom ulike verktøy Steven Kelly, Kalle Lyytinen, Matti Rossi 3
Contents CASE-verktøy utvikling (CASE - Computer Aided System Engineering) CAME (Computer-Aided Method Engineering) som et alternativ Oversikt over MetaEdit GOPRR som metamodelleringsspråk Metodeverktøy i MetaEdit Oppsummering om MetaEdit CASE - Computer Aided System Engineering Silver Bullet 80-tallet Bedre produktivitet og kvalitet Modell-orienterte (SA/SD, tilstandsmodeller, OOA/OOD) (Rigid?) fokus på metode, oppgaveautomatisering Noen verktøy med metamodellarkitektur normalt utilgjengelig for brukerne Brukt mindre enn ventet Dyre verktøy Manglende modenhet Lite fleksible for endret infrastruktur OS, DB, Middleware, GUI Bruk mindre lønnsom enn ventet Svakheter ved CASE Svak / statisk integrasjon av submodeller Dårlig flerbrukerstøtte Dårlig støtte for ulike representasjonsformer Diagrammer, matriser, tabeller, hypertekst Manglende koblinger Manglende støtte for evolusjon MetaCase: ConceptBase, RAMATIC, MetaEdit, METIS... Lacking support for varying interest-groups MetaEdit + Flerbruker: Repository kan aksesseres av mange samtidig Fler-verktøy: Mange ulike synsvinkler på samme modellobjekt Fler-metode: Metodeintegrasjon, konsistenssjekking Fler-format: Mange representasjonsformer for samme modellobjekt Fler-nivå: Støtter både analyse (IS) og design-metoder Arkitektur Meta-engine Modellering Diagram editor Matrix editor Table editor Modellgjenfinning (modeller, meta-modeller) Repository browser Query editor Report editor Model-lenking, annotering Hypertext tool Debate Browser Metodestyring Metamodeling tool Symbol editor Verktøy-styring Repository OPRR- Metamodeling language O - Object: noder i diagram P - Property: egenskaper for noder, relasjoner eller roller R - Relationships: Kanter (forbindelser) i diagram R - Roles: Hvordan objekter deltar i relasjoner Kardinalitet Identifikatorer Både instans og type-nivå 4
GOPRR- Utvidelse av OPPR Metodestyringsverktøy G - Graph (model): aggregering av modellobjekter Gjenbruk av submodeller Kan ha mange representasjonsgrafer for en konseptuell graf Generalisering Polymorfi gjenbruke modell-objekter in mange modeller Regler for integritetskontroll Fleksibel oppretting, testing og styring av nye modelleringsspråk Ulike fremgangsmåter Fra scratch komponentbasert gjenbruksorientert Eksempel: Fig 2, s. 13 Metodebygging Generering Metamodellverktøy (utvikle GOPRR-modeller) Symboleditor Definere regler for konsistenssjekk Metrikker og statistikker for å evaluere språkkvalitet fokus på kompleksitet Hjelp Metodestøtte Rapporter, kode Oppsummering Diskusjonsoppgave: Høynivå metodespesifikasjon Åpen arkitektur Samtidig flerbrukeraksess Mangfoldig verktøyssett Fleksibel integrasjon Symmetrisk behandling av modeller og metamodeller Hva er ulemper ved å benytte MetaCase verktøy (sagt på en annen måte, hva er fordeler ved bruk av mer tradisjonelle modelleringsverktøy som støtter for eksempel standard UML)? Uferdig Repository Samtidighetskontroll Integrasjon med andre verktøy 5