UML Modellering Grunnregler og retningslinjer

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Gjenfinningssystemer og verktøy II
Objektorientert systemutvikling og UML
SOSI Grunnkurs - Øvelse SOSI-vis/SOSI-kontroll
XMLSchema.  Innledende eksempler: Tove 4. Janni 5. Huskelapp 6. Ikke glem avtalen til helgen 7. Vi har sett DTD’en til dette xml dok. Her kommer.
UML & object models av gruppe 8
Databaseteori.
Objektorientert programmering Objektorientert systemutvikling
SOSI grunnkurs UML-modellering - SOSI-sekretariatet UML-modeller Lese og forstå UML-modeller.
Objektorientert programmering i PHP del 2
Prototyping & Use Case Software Engineering Gruppe
Unified Process – Elaboration Iterasjon 3
IS-102 Klassedefinisjoner
Eiendomsregister - eksempel
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Se ellers læreboka, kap , side
Siste forelesning ER/EER-modellering
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
Sammensatt struktur Visning av intern struktur i et samarbeid mellom objekter Fokuserer på ett av en klasses flere mulige ansvar.
Forbindelser Diagrammer i UML består av ting med forbindelser
Strukturerende elementer i UML
Apache POI.
I dag snakker vi om: Brukergrensesnitt med kvalitet Bruksegenskaper Normans 7 stadier Testing med papirprototyp.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Strategi og samhandlingsarkitektur
Flash og ActionScript - eksempler og oppgaver
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
Overgang fra DMK til kontinuerlig ajourhold av AR5
INF5270 7/2-05 Metadata Sten I. Solli og Hans S. Tømmerholt.
Felles vegmodell i åpent format Utgangspunkt: –Standard krav til å utarbeide og levere 3D digital vegmodell eksisterer ikke i dag. Verken i Vegvesenets.
SOSI grunnkurs SOSI Grunnleggende prinsipper
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Litterære virkemidler
Ordklasser Inndelingen
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Se ellers læreboka, kap , side
Objektorientert utforming In 140 Sommerville kap. 12.
Bruk av geometrityper Eller: I applikasjonsskjema skriver vi:
Generelle definisjoner Oppslagsverk nå og senere! Finnes også i dokumentet Retningslinjer for datamodellering i UML UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
SOSI_ps Et verktøy for å definere produktspesifikasjoner basert på SOSI objektkatalog.
Innføring i UML UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Prosedyrer og vedlikehold av SOSI Pr. i dag har vi ulike dokumenter, modeller og databaser som oppdateres. Dette er et arbeid som tar mye tid å administrere.
UML-seminar 12. og 13. mars 2003 UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Sammensatte data (”Kobla data”) data satt i sammen fra ulike kilder.
Navneregler i UML Geir Myrind Sosi-sekretariatet UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Senter for teknologi, innovasjon og kultur (TIK) - Universitetet i Oslo ORGANIZATIONS AND KNOWLEDGE TIK ESST Module 4 Jon Vatnaland.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
2003 Ontopia AS1 Tanker om standarder for e-læring Emnekart og published subjects Lars Marius Garshol, utviklingsleder Ontopia,
Byggeklosser i UML klassediagram
Objektorientert design In 140 Sommerville kap 12 – del 1.
23. Spillere For spillere i Postenligaen og 1.div.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
TDT4210 Helseinformatikk 2004Øystein Nytrø Ontologier og Protégé Forberedelse til øving 1.
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Strukturerende elementer i UML
SOSI - planen for det videre arbeidet i 2001
Møte i SOSI arbeidsgruppe 4 – KYST, FISK, OLJE, VANN
Samordningsmøte - UML-modellering
IS-102 Interaksjon med objekter
Velkommen til Newton-rommet
Velkommen til Newtonrommet
Utskrift av presentasjonen:

UML Modellering Grunnregler og retningslinjer UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Vi går litt dypere inn i materien! Vi har sett på hvordan vi strukturer objektkatalogen i UML Pakker Objekttyper Egenskaper Datatyper Kodelister Hvordan modellerer vi videre Informasjonsmodellen (Application Schema) Identifisere objekttyper Se på forholdene objekttypene imellom Grunnleggende mekaniser og løsninger UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Informasjonsmodellen! (application schema) Beskrive fagområdet Gi en korrekt beskrivelse av objekter, egenskaper og forhold innenfor hvert fagområde (vegnett,bane++) Mennesklig forståelse Grunnlag for implementasjon, dataforvaltning og utveksling Datamaskinen må kunne lese modellen og dermed bruke rutiner for å oversette modellen til andre formater Konseptuelle språk (igjen) utvetydig og konsistent representasjon av modeller gir grunnlag for applikasjoner (FKB,AREALIS, ++) UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Informasjonsmodellen er implementasjonsuavhengig! UML beskriver en modell uavhengig av system Modellene kan oversettes til ulike systemer Vi beskriver retningslinjer for å lage en slik modell Vi følger samtidig internasjonale føringer ved bruke en akseptert objektmodell (UML) er konforme med ISO19100 serien Følger systemleverandørerer standarden kan alle snakke sammen UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Hvordan lager vi informasjonsmodellen? Identifiser objekttypene som tilhører den ønskede verden Objekttypene modelleres som UML klasser Identifiser egenskapene som tilhører objekttypen egenskapene modelleres som UML attributter Bestem hva slags datatype egenskapene skal ha Kan være basal, brukerdefinert eller kodeliste Egenskapsnavn skrives med liten forbokstav Identifiser forhold mellom objekttypene! Hvordan identifisere og beskrive forhold? UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Identifisere forhold Finnes det en objekttype som har klar sammenheng med en annen? Typisk eksempel er en flate og dens avgrensning Finnes det en stor ting som består av flere mindre ting? For eksempel et flateområde som består av flere delområder Finnes det objekttyper som kan klassifiseres som en art av en annen? Er en objekttype en spesialisering av en annen? UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Forhold mellom objekttyper For å modellere forhold mellom objekttyper bruker vi to mekanismer Assosiasjon (Association) Sammenheng mellom objekttyper Generalisering (Generalization) Forelder og barn klassifisering UML definere også andre typer forhold Avhengigheter Brukes mest for pakker (har vi sett på tidligere) Realisering Programmeringsspesifikt (en klasse realiserer et interface) UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Assosiasjon Det mest generelle forholdet vi bruker En assosiasjon angir semantisk sammenheng mellom to objekttyper. Jeg liker å tenke på assosisjoner som veier/lenker til andre objekttyper jeg kan se, snakke med og hente informasjon fra :) En assosiasjon betegnes med heltrukken linje mellom objekttypene Assosiasjonen tilegges også rollenavn og multiplisitet UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Roller og multiplisitet Rollenavn beskriver en objekttypes forhold til en annen GangSykkelvegAvgrensning spiller rollen som avgrensning for GangSykkelVeg GangSykkelveg spiller rollen som veg for GangSykkelVegAvgrensning Multiplisitet beskriver hvor mange instanser som er lovlige En GangSykkelveg har 1 eller to avgrensninger En GangSykkelvegAvgrensning avgrenser bare en GangSykkelveg UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Rollenavn Rollenavn skrives med liten forbokstav og store bokstaver på etterfølgende delord Rollenavnet skal helst være substantiv Skal angi rollen en objekttype spiller for en annen Mange er litt slepphendte med å angi rollenavn på begge ender av assosiasjonen Regelen er at man i hvert fall skal ha rollenavn på den ”viktigste” enden Ofte vil den andre være invers Dermed også vanskelig å finne et fornuftig rollenavn UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Kardinalitet/multiplisitet Hvor mange instanser kan lovlig assosieres med en annen? ? Forklaring Eksempel 1 1 og kun 1 instans Husk! En objekttype angir ett sett instanser. 0 eller flere 0..* 0 eller 1 0..1 1 eller flere 1..* Ett spesifisert antall instanser 1,3,7 UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Pil eller ikke pil på assosiasjoner Hva betyr disse pilene på assosiasjonene mellom objekttyper. I UML snakker man om navigering mellom objekter Noen ganger ønsker man kun å navigere en vei! Gitt en bruker, må systemet kunne finne brukerens passord Finner man et passord bør systemet sørge for at man ikke kan finne passordets eier Vi bruker ikke piler på assosiasjonene såfremt det ikke er noe spesielt, jamfør eksempelet over UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Typer assosiasjoner En assosiasjon mellom objekttyper kan tillegges ytterligere semantikk Vi har to typer: Aggregering åpen diamant på den ene enden av assosiasjonen beskriver en ting og dens deler (beskrivende) Komposison eller sterk aggregering fylt diamant på den ene enden av assosiasjonen delene er strengt assosiert med helheten (utøvende) UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Aggregering En aggregering er kun et konseptuelt begrep. Assosiasjonen beskriver forholder mellom det hele og deler av helheten. Skiller hvem av objektypene som organisasjonsmessig er overordnet. En aggregering beskrives ved en åpen diamant på assosiasjonsenden som er helheten. Eksempelet viser at en gang og sykkelveg har en eller to avgrensningslinjer, veien er helheten og avgrensningen er delen. UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Komposisjon - sterk aggregering En komposisjon angir at objekter av objekttypen på "diamant-siden" har, eller eier objekter av objekttypen på "strek-siden" som komponenter De eide objektenes oppretting og eksistens følger eier-objektets eksistens Komposisjon i eksemplet betyr at KpSamferdsel-Linje ikke kan eksistere uten et KpOmråde UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Eksempel på aggregeringer Eksempel fra SOSI-Plan -KpOmråde har et restriksjonsområde -KpRestriksjonsområde kan ikke eksistere uten KpOmråde -KpRestriksjonOmråde består også av en avgrensning Denne kan være en avgrensning til en annen objekttype! Hva fins på andre siden av avgrensningen? UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Generalisering Generalisering beskriver et forhold mellom det generelle (supertype) og det spesielle(subtype) En objekttype (den generelle) kan finnes i en mer spesifikk versjon (spesialiseringen) Et kjøretøy er enten en bil eller et tog. Generalisering representeres ved en rettet linje med en stor åpen pil rettet mot supertypen Ingen multiplisitet eller rollenavn! UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Mer om Generalisering En spesialisert objekttype arver egenskaper, operasjoner og assosiasjoner av den generelle En supertype kan være abstrakt, dvs. at den aldri instansieres som seg selv, men som en av subtypene Abstrakte supertyper skal angis med klassenavn i kursiv. Kjøretøy er abstrakt (kursiv). Vil aldri finnes et kjøretøy objekt, bare en bil eller et tog! UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Modellelementer i informasjonsmodellen! UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Deler av UML vi bruker Objekttyper Egenskaper Forhold Oppførsel Note multiplisitet på egenskaper enumeration (møtedag) kodeliste (produsent) datatype (adresse) basal datatyper (real,heltall) Forhold assosiasjon (rollenavn,multiplisitet) aggregering komposisjon generalisering Oppførsel Note UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Gjenbruk av modell-elementer Samme objekt dukker ofte opp i flere datasett Unødvendig å modellere objektet en gang til Objekttypene modelleres ett sted og benyttes på tvers av fagområder TekniskeAnleggSomDelAvKystkonturen KaiKant MoloKant Bølgebryter PirKant SlippKant SpuntveggKant Strømbryter Sluse UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Gjenbruk av andre elementer Samme gruppeelement kan brukes av flere fagområder Unødvendig å modellere elementet igjen Her er datatypen Høyde modellert i pakken SOSIDel1-2 og brukes av NavigasjonsLys i SOSI KystogSjø Høyde + høyde : String + enhet : string + Referansenivå : Referansenivå (from SOSIDel1-2) <<Datatype>> UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Andre former for gjenbruk Modelleres inn som verdien for en egenskap til en objekttype Eiendomsgrense kan følge en verdi definert i kodelisten. Dvs. at eiendoms- grense kan følge havkontur,innsjøkant, bygning, vegkant osv. Metoden er i overens- stemmelse med dagens forvaltningsløsning UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Generelle ting Vi har sett på Herfra ser vi på diverse emner Hvordan bygge opp informasjonsmodellen Mekanismene og notasjonene i UML vi trenger Herfra ser vi på diverse emner Generelle problemstillinger Detaljer og avanserte ting Litt opptil dere hvordan vi går videre Temaer vi skal/kan ta opp Geometrimodellen i SOSI Stereotyper Operasjoner Synbarhet kodelister og verdidomener Utvidelsesmekanismer i UML modellere avgrensninger UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

UML dekker ikke alt! Eksempler på ting som må beskrives andre steder Verbal beskrivelse av fagområdene Definisjon av begreper Evt. link til autoritativ beskrivelse Noter, eksempler, bruksområder Grafiske beskrivelser og eksempler Figurer som viser virkelige objekter Illustrasjoner Mapping av begrepene Oversettelse til annet språk GML SOSI Dette er implementasjonsspesifikt Spesielt informasjonsmodellen for produktet har sterke forbindelser til begreper og objektkatalogen. En grafisk datamodell vil kunne anskueliggjøre objekttypene og deres innbyrdes forhold. I tillegg vil en tekstlig framstilling kunne presentere ytterligere detaljer i informasjonsmodellen. . Ut ifra de abstrakte datamodellene og beskrivelsene i objektkatalogen, vil dataprodusenter kunne: · Plukke ut ønskede objekttyper og deres ønskede egenskapsinnhold. · Legge til egne egenskaper, på en standardisert måte. · Legge til egne nye objekttyper. på en standardisert måte. · Beskrive hvilke avgrensninger i datainnsamlingen som er gjort. UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Veien videre++ UML er et omfattende språk Det fins mange måter å gjøre ting på Det vi har gått igjennom er å regne for retningslinjer erfaringer vi har gjort oss løsninger vi har kommet opp med Fortsatt noen saker som ikke er avgjort Hensiktsmessig at vi modellerer mest mulig ensartet Sikrer felles forståelse!! UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet

Referanser Retningslinjer for datamodellering i UML Foilene Er et foreløpig arbeidsdokument Vil bli lagt ut på SOSI siden Utkastet er tilgjengelig ved forespørsel Foilene Noe har allerede blitt delt ut Foiler kan utleveres ved forespørsel Blir lagt ut på SOSI siden etterhvert UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet