Oversikt over forelesningen Språk, abstraksjonsmekanismer og perspektiver i konseptuell modellering Guttorm Sindre, IDI Modellering som hierarkisk abstraksjon Hierarkiske relasjoner brukt i modellering Perspektiver til modellering Eksempler på modelleringsspråk Bruk av konseptuell modellering i praksis Bruk av modelleringsspråk fra mange perspektiver i sammenheng, med PPP som eksempel Modellering som hierarkisk abstraksjon Hva er et hierarki? (Bunge) Informasjonssystemer er komplekse Hierarkier er essensielle for at mennesker skal forstå komplekse systemer Det er naturlig for mennesker å ordne sin oppfatning av verden hierarkisk Jfr. Brooks diskusjon om visualisering: IS så komplekse at det ikke alltid er lett å vise som pene hierarkier kan trenge hierarkier i flere dimensjoner må kutte lenker (dvs filtrere bort info) for å få illustrerende hierarkier H er et hierarki hvis og bare hvis det er et ordnet trippel <S,b,D>, der S er et ikketomt sett, b er et spesifikt element i S og D er en relasjon på S slik at: S har en enkelt startnode b b står direkte eller indirekte i relasjon med alle andre elementer i S gjennom D For alle elementer x i S med unntak av b finnes en og bare en y i S slik at Dyx D representerer dominans eller makt =>Strikt trestruktur som representerer dominans Hierarkidefinisjon fortsetter En strikt hierarkisk graf En svakt hierarkisk graf: En DAG (directed acyclic graph) Hierarkisk: et gradsspørsmål Standard hierarkiske relasjoner Klassifikasjon Aggregering Generalisering Assosiering (a) (b) (c) (d) (e) (f) 1
Klassifisering Aggregering Instanser ses på som en høyere ordens objekttype via relasjonen is_instance_of Eks: Guttorm Sindre is_instance_of foreleser Ortogonal til de øvrige siden det er snakk om en relasjon mellom instanser og sett (eller mer generelt, mellom ulike meta-nivåer), mens de andre befinner seg på samme meta-nivå. Hvordan foretar mennesker klassifisering? Attributt-teori Prototype-teori Eksempel-teori Et objekt er relatert til komponentene som det består av ved bruk av is_part_of relasjonen Eksempel: En sykkel har hjul, et sete, en ramme etc. Aggregering tilsvarer kartesisk produkt. Hvis settet A er en aggregering av settene A 1..A n, er A subset av A 1... A n Del eksklusiv eller delt mellom flere aggregeringer avhengig eller uavhengig av helhetens eksistens Generalisering Assosiering Tilsvarende objekt-typer abstraheres til høyere ordens objekttyper via is_a relasjonen Eksempel: En foreleser is_a menneske Tilsvarer union: Hvis et sett A er en generalisering av settene A 1.. A n betyr det at A er et subsett av A 1 U... U A n Varianter: Coverage Disjointness Partition Flere objekt-type anses som en høyere ordens objekt-type via is_a_member_of relasjonen Eksempel: Settene menn og kvinner er medlemmer av settet kjønnsgrupper Assosiering tilsvarer medlemsskap: Hvis settet A er en assosiering av A 1... A n, betyr det at A = { A 1,..., A n } Fordeler med standardrelasjoner Positive erfaringer i bruk Generelle, kan brukes i mange sammenhenger Intuitive, brukes i mange andre kontekster Svakheter ved relasjonene (spesielt med de sett-teoretiske definisjonene) Relasjoner mellom instanser Kan bruke assosiering Kan behandle instanser som sett med et medlem Masser: Vann, penger etc Kan bruke definisjoner basert på typer Kan bruke settdefinisjoner på spesielle måter 2
Konseptuelle modelleringsspråk: En oversikt Diskusjonsoppgave Mer enn 500 ulike modelleringsspråk beskrevet i litteraturen Klassifisering av språk innen perspektiver for å gi enklere oversikt Vil bare gi en oversikt over de ulike perspektivene, vil gå mer i detalj i forhold til bruk av enkelte språk/perspektiver utover i faget Hvorfor er det så mange modelleringsspråk? Perspektiver til modellering Perspektiver til konseptuell modellering Et perspektiv: Hva er viktig, hva fremheves, hva nedtones eller ignoreres? Hvilke konsepter regnes som fundamentale? Hva er eksplisitt representert ved dedikerte modelleringsmekanismer? Hva visualiseres, og fremheves visuelt? Hva modelleres først? Hva kan evt dekomponeres? Ulike perspektiver benytter ikke nødvendigvis ulike fenomen/konsept Kan potensielt representere de samme tingene Strukturelt orientert Funksjonelt orientert Oppførselsorientert Regelorientert Objektorientert Kommunikasjonsorientert Aktør/rolle-orientert Strukturelt perspektiv Eksempel: GSM Statisk beskrivelse av strukturen i et domene Hovedkonsept: Entitet (objekt, fenomen, konsept, ting, referent...) Eksempler Datamodellering (e.g. ER-modellering og varianter av denne, NIAM, ORM) Referentmodellering Semantisk nett Konseptuelle grafer Spesielt datamodellering mye brukt i praksis. Basis for meta-modellering (språkmodellering) 3
Funksjonelt perspektiv Eksempel: SA/RT (evt også kalt prosedyre- el. prosess-orientert, ikke forveksle med funksjonell programmering!) Beskrivelse av dynamisk prosessering og prosesseringsflyt Hovedkonsept: Prosess (funksjon, transformasjon, aktivitet, aksjon, task) Standardeksempel: DFD Mange utvidelser (SA/RT, PPM, PID, APM) Mye brukt i prosessmodellering (både forretningsprosesser og prosesser innen en datasystem) og arbeidsflytmodellering (for modellering og basis for utføring) Oppførselsperspektiv Eksempel: STD/statecharts Beskrivelse av overordnet systemdynamikk Hovedkonsepter: Tilstander og transisjoner mellom tilstander ved hendelser Eksempler: Tilstandsdiagram (STD/STM). Statecharts Petri-nett SDL Tilstandsdiagrammer i ulike varianter mye brukt, spesielt i forhold til sanntidssystemer Eksempel: Petri-nett Regelperspektiv Beskrivelse av mål-middel sammenhenger Hovedkonsept: Regel En regel er noe som influerer på handlingene til et sett av aktører Standardform: IF condition THEN action Eksempler: Regelhierarkier (goal-oriented modeling) Tempora Ekspertsystemer 4
Objektperspektiv Beskrivelse av verden som autonome, kommuniserende objekter. Hovedkonsept: Objekt. Entitet med unik identitet og lokal tilstand som bare kan aksesseres utenfra ved å sende meldinger til dets grensesnitt. Eksempler: UML, OML, OMT, Shlaer/Mellor, OOA... Basis fra design og programmering av objektorienterte systemer Økende bruk etterhvert som objekt-orientert systemutvikling generelt blir mer vanlig (spesielt UML og utvidelser av UML) Fenomen representert i OO-modellering Kommunikasjonsperspektivet Typer talehandlinger Beskrivelse av sosial kommunikasjonsstruktur Hovedfenomener: Talehandlinger og konversasjoner Basert på språkfilosofi (Austin, Searle) Fem ulik typer talehandlinger som settes sammen i konversasjoner Brukt spesielt innen arbeidsflytmodellering og CSCW/gruppevare Directive: Lukk vinduet Commisive: Jeg skal lukke det Assertive: Jeg har lukket vinduet Declarative: Hermed erklærer jeg dere for rette ektefolk Expressive: Gratulerer! Aktør- og rolleperspektivet Beskrivelse av organisasjon eller systemstruktur Hovedkonsept: Aktører og roller Mulig definisjon: En aktør er et fenomen som påvirker et annet fenomens historie En rolle er oppførsel som forventes av en aktør når hun/han fyller denne rollen Basert på arbeid innen AI (Intelligente agenter) og objektorientert programmering Organisasjonsmodellering, modellering av gruppedynamikk etc. Noe overlapp med det objekt-orienterte perspektivet i forhold til rolle og aktørkommunikasjon Intet språkperspektiv dekker alle situasjoner/domener godt Ulike kombinasjonsmuligheter 1 Bruke flere ulike eksisterende språk uten nærmere integrering (tidlige CASE-verktøy, Visio) 2 Utvide og integrere eksisterende språk (UML, PPP) 3 Utvikle et sett helt nye språk 4 Utvikle språk-modelleringsrammeverk, slik at man kan lage nye språk etter behov (Metaedit) 5