Språk, abstraksjonsmekanismer og perspektiver i konseptuell modellering

Like dokumenter
EKSAMEN I FAG SYSTEMERING 2 LØSNINGSFORSLAG Mandag 18. mai 1998 Tid: kl

Oppgave 1. Modelleringsperspektiver og modelleringsspråk (40%) Alle underoppgavene teller likt

KONTINUASJONSEKSAMEN I FAG 78052/45161 SYSTEMERING 2 Onsdag 18. august 1999 Tid: kl

Kap3: Klassemodellering

UKE 11 UML modellering og use case. Gruppetime INF1055

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

Model Driven Architecture (MDA) Interpretasjon og kritikk

Meta- og språk-modellering

Kirsten Ribu - Høgskolen i Oslo

Data design p.1/17. Data design. Lage ER modell av kravspesifikasjoner.

Oversikt over forelesningen. DFD sentrale konsepter. Intro til Dataflytdiagrammer (DFD) Marakas, kap. 5

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA)

EKSAMEN I FAG SIF 8060 Modellering av Informasjonssystemer Mandag 21. mai 2001

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad

Use Case-modellering. INF1050: Gjennomgang, uke 04

Tom Røise IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar Klassediagrammet. Klasse

UML-Unified Modeling Language

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu

Kravspesifisering (3): Forhold til OO Analyse og Design

AlgDat 12. Forelesning 2. Gunnar Misund

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI2001 forelesning

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

Innhold. Innledning Del 1 En vei mot målet

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Oppgave 1: Multiple choice (20 %)

Kirsten Ribu - Høgskolen i Oslo

Modellering av data. Magnus Karge, Kartverket

Fra krav til modellering av objekter

KONTINUASJONSEKSAMEN I FAG SYSTEMERING 2 Torsdag 24. august 2000 Tid: kl

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

19. januar 2012 Noen punkter fra i går

Analyse av problemområdet

UNIVERSITETET I OSLO

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Aksiom 3.1 (Likhet av mengder). La A og B være mengder. Da er A og B like hvis og bare hvis de har akkurat de samme elementene.

Use case drevet design med UML

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Objekt med Java. Harald Yndestad Høgskolen i Ålesund

Introduksjon til objektorientert programmering

Oppsummering. Thomas Lohne Aanes Thomas Amble

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Linjen for Datateknikk Valg av emner i vårsemesteret - 3. årskurs. Bård Kjos Institutt for datateknikk og informasjonsvitenskap

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

AMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Oppgave 1 Referent Modell (20%)

Design og dokumentasjon

UML 1. Use case drevet analyse og design Kirsten Ribu

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

SIF 8035 Informasjonssystemer Våren Øving 2 DFD-modellering. Innlevering: Mandag 12. februar

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Kravspek: Mål-orientering

Hvorfor objektorientert programmering?

OOA & D. Analyse av problemområde klasser, klassediagram struktur atferd. 14 mars Tone Bratteteig

INF5120 Oblig gjennomgang

Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

LO118D Forelesning 5 (DM)

Prosjektrettet systemarbeid

Tilstandsmaskiner kalles på engelsk for Finite State Machines.

Design av pedagogiske dataspill en forsknings og kreasjonsmetode

To RDF or not to RDF Fagdag om Noark 5 og RDF

det offentlige kartgrunnlaget (DOK)

Semantisk Analyse del III

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

Introduksjon til alternative modelleringsperspektiver. Talehandlingsteori - Illocution. Anvendelser av talehandlings-teori. Strukturering av begreper

IN2000:&Kravhåndtering,&modellering,&design

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Rollemodell. for. det norske kraftmarkedet

Konstruktivistisk Veiledning

Tilstandsmaskiner med UML og Java

Datamodellering med UML

INF Algoritmer og datastrukturer

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

Kvalitet av modelleringsspråk

Repetisjon: Normalformer og SQL

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

MAT1030 Forelesning 22

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Kap. 12 Analysemodellering (Analysis Modeling)

Informasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6

FASIT/LF FOR EKSAMEN TMA4140, H07

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Normalisering. Hva er normalisering?

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

EKSAMEN I FAG SYSTEMERING 2 Tirsdag 23. mai 2000 Tid: kl

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Denne ukens tema Del 1: Faginfo + A1; Del 2: kap Velkommen til fag SIF8060 Modellering av informasjonssystemer. Faginfo: Terminologi

AlgDat 10. Forelesning 2. Gunnar Misund

Transkript:

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