UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Relevanta dokument
Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Introduktion. Byggstenar TDBA

Objektorienterad analys och design

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Objektorientering. Grunderna i OO

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

RUP - Rational Unified Process

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Symptom på problemen vid programvaruutveckling

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Copyright Syntell AB 1

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

RUP Rational Unified Process. 17 november 2004

Objektorienterad analys och design

Objektorientering Klasser

UML 2.0 Genomgång av de 13 diagramtyper som ingår i UML 2.0.

Arkitektur Michael Åhs

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Inkapsling (encapsulation)

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Game Development. Spelprogrammering

Introduktion till UMLs klassdiagram

Användning av modeller för system/produktutveckling

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Begreppsmodellering i UML

Handbok Umbrello UML Modeller

Föreläsning om OO, OOA och UML

Fyra i rad Javaprojekt inom TDDC32

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDP005 Projekt: objektorienterade system

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Begreppsmodellering i UML

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

UML 2.0 och dess roll för modellbaserad utveckling

SKOLFS. beslutade den XXX 2017.

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

Utvärdering av modelleringsvertyg som använder XMI/UML 2.0

Tentamen NOA011 Systemarkitektprogrammet

Generering av Universella Editorer

Use case som teknik för identifiering och dokumentering av krav (HS-IDA-EA )

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

Institutionen för programvaruteknik och datavetenskap FRÅN OMT TILL UML - ETT NÖDVÄNDIGT VAL?

Tentamen i Objektorienterad modellering och diskreta strukturer

Konceptuell modellering. Formalisering, automatisering och effektivisering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad Systemutveckling 1 (7,5 hp)

Tentamen i Objektorienterad modellering och design

Objektorienterad programutveckling i ett nötskal

Objektorienterad analys och design

Objektorientering Användning

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Omtentamen i OOSU2, 21 augusti 2014

Objektorienterad konstruktion

Inledande programmering med C# (1DV402) Introduktion till C#

Interaktions- och klassdiagram, kap F4 ht -10

F2: Krav på objektorienterat språk

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

NVDB - Översiktlig informationsmodell

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Interaktions- och klassdiagram, kap F4 vt -07

Tentamen i Objektorienterad modellering och design Helsingborg

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Teoridel (svaren direkt på lydelsen)

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Tentamen i Objektorienterad modellering och design

UML. Unified Modeling Language

Tentamen i Objektorienterad modellering och design Helsingborg

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Blekinge Tekniska Högskola UML. - i teori och praktik. Examensarbete inom datavetenskap 10 poäng, C-nivå, våren Eva Henriksson is98

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

KravinsamlingAnalys Design Implementation Testning

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Tillämpning av Unified Process och Design Patterns vid integrering av system

Företagsmodellering i UML

SKOLFS. beslutade den -- maj 2015.

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

UML-syntax. Lennart Andersson Datavetenskap, LTH. 20 januari 2013

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Tillämpning av UML Hur och varför

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Unified Modeling Language UML

Tentamen i Objektorienterad modellering och design Helsingborg

Projektering av informationssystem

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Imperativ programmering. Föreläsning 4

Tentamen i Objektorienterad modellering och diskreta strukturer

Objektorienterad Systemutveckling (7,5 hp)

Transkript:

UML 1(5) Introduktion till Unified Modeling Language 1 Bakgrund och historik UML är ett objektorienterat modellspråk för att specificera och visualisera system. Det är framtaget i första hand för IT-orienterade system, men kan användas för alla typer av system (d.v.s. även för verksamhetsmodellering). UML ägs och utvecklas av OMG som är en icke-vinstdrivande organisation. Modellspråket togs fram genom en request for proposal 1995, då Grady Booch, Jim Rumbaugh och Ivar Jacobson tillsammans skickade in ett förslag till standard. Förslaget byggde till stora delar på tre amigos egna modellspråk/metoder (OMT, Booch och Objectory) men hade lånat stora delar från många andra språk på marknaden. Den senaste versionen av UML är version 2.0. UML är ett språk och är separerat från arbetssättet RUP. UML kan användas oavsett process, och RUP stödjer användandet av UML men kräver inte att man använder det utan fungerar lika bra med andra modellspråk. 2 Målgrupp och användningsområde UML kan användas på många olika sätt, av många olika personer. Nedanstående tabell är hämtad från boken UML Distilled av Martin Fowler och visar hur UML kan användas såväl före som efter själva programmeringsarbetet (riktning) som på olika nivåer med olika syften (skiss, ritning och som ersättning för ett programspråk). Vart i matrisen man väljer att lägga sig som användare varierar från projekt till projekt men innebär också att man kommer att lägga olika mycket möda på modellerna.

UML 2(5) Användningsområde/ riktning Skiss Ritning Programspråk Forward-engine engineering ering Modellering av idéer Detaljerad design UML kompileras direkt till exekverbar kod. Utforskande Fullständig Varken forward eller reverse-engineering. Modell och kod är samma sak. Slutgiltighet Reverse-engineering engineering Enbart viktiga delar Överföra detaljerad information 3 Innehåll UML 2 består av 13 olika diagramtyper. Grovt sett så kan diagrammen delas in i tre olika kategorier: beteende, interaktion och struktur. Mer om dessa nedan. Alla UMLs olika diagram beskriver ett och samma system och tillhör samma modell av systemet. Ett diagram är därför att betrakta som ett utdrag från modellen. Varje diagram beskriver systemet ur ett visst perspekt och lägger man till en relation i ett diagram så finns den tillgänglig i alla andra diagram från samma modell. UML är objektorienterat till sin natur och definierat så att det skall vara enkelt för såväl användare som verktygsleverantörer att anpassa språket till sina behov. Detta görs med hjälp av tre stycken utökningsmekanismer; stereotyper, uppmärkta värden (eng. tagged values) och begränsningar (eng. constraints) Stereotyper används ungefär som subklasser för att återanvända ett standardbegrepp i UML, men ge begreppt en mer specialiserad definition. T.ex. att detta inte är vilken klass som helst utan en klass som används i analysmodellen. Stereotyper känns igen genom att stereotypnamnet står mellan << och >>. Stereotyper är väldigt vanligt.

UML 3(5) Uppmärkta värden används för att lägga in metainformation (information om själva modellen, istället för om det som modelleln beskriver) i modellen. Det används främst av verktygsleverantörer. Begränsningar används för att beskriva regler i modellen. En begränsning känns igen genom att regeln är beskriven mellan { och }. Vill man kan man t.ex. använda OCL (Object Constraint Language) för att beskriva regeln, men oftast används vanlig svenska/engelska. Begränsningar används väldigt ofta och UML innehåller ett ganska stort antal standardbegränsningar men det är alltså fritt fram för användaren att definiera egna. 3.1 Diagramtyper Beteende Användningsfallsdiagram används för att på ett överskådligt sätt visa vilken nytta man kan ha av systemet (dvs hur det kan användas). UML-diagrammet i sig självt säger dock väldigt lite om kraven på systemet. Dessa specificeras vanligen i textdokument vid sidan av UML-diagrammet. Själva diagrammet består av användningsfall, aktörer och relationer mellan dessa. Aktivitetsdiagram används för att visa på logiska flöden och processer. Tillståndsmaskindiagram används för att visa på de olika tillstånd ett specifikt objekt kan vara in, samt när och hur övergångar mellan tillstånden sker. Interaktionsdiagram Sekvensdiagram används för att visa på sekventiell interaktion (kommunikation) mellan olika livslinor. I UML 2 används diagrammet för att visa på interaktion mellan livslinor istället för objekt som man gjorde I UML 1.x, det innebär att man t.ex. kan visa på interaktion mellan olika interaktioner Kommunikationsdiagram (hette tidigare samarbetsdiagram) används för att visa på kommunikation mellan objekt. Interaktionsöversiktsdiagram (nytt i 2.0) är en blandning av sekvensdiagram och aktivitetsdiagram. Det används för att visa på ett flöde av interaktioner (hur olika

UML 4(5) interaktioner följer på varandra) på ett övergripande sätt. Innehållet I respektive interaktion kan inkluderas I översiktsdiagrammet, eller döljas, efter behov. Timingdiagram (nytt i 2.0) används för att visa hur ett objekts/rolls tillstånd förändras över tiden. Struktur Klassdiagram används för att visa på en samling statiska modellelement, t.ex. klasser och typer, och deras innehåll och inbördes relationer. Klassdiagrammet beskriver ett generellt (strukturellt) regelverk och kan alltid användas för att beskriva strukturer, oavsett om det är systemstrukture, målstrukturer (målmodeller) eller begreppsstrukturer (begreppsmodeller). Objektdiagram används för att visa en ögonblicksbild av ett klassdiagram. Komponentdiagram används för att visa de komponenter som tillsammans utgör ett system. Komponenterna, deras relationer, interaktioner och publika gränssnitt visas. Driftsättnings-/försörjnings-/distributionsdiagram (deploymentdiagram) används för att ett systems hårdvaruarkitektur. Diagrammet visar ett antal noder där en nod, kan men inte behöver innehålla en processor och kopplingar mellan noderna. Paketdiagram (nytt i 2.0) används för att visa på paketens inbördes relationer. Paket är ett generellt UML-element som kan förekomma i samtliga diagramtyper, men paketdiagrammet kan vissa ytterligare relationer mellan paketen (som bl.a. kan användas vid aspektorienterad utveckling). Sammansättnings-/strukturdiagram (composite structure, nytt i 2.0) används för att visa på en klassificerares (t.ex. en klass, komponent eller användningsfall) interna struktur tillsammans med interaktionspunkterna med omvärlden (portar). 4 Nyheter i UML 2 De stora nyheterna för oss vanliga döda (dvs vi som inte tillverkar modelleringsverktyg...) är;

UML 5(5) Nästlade klassificerare (klassificerare är UMLs begrepp för modellelement som klasser, objekt, komponenter, aktiviteter, tillstånd etc.). Detta innebär att man numera t.ex. kan bygga upp komplicerade tillståndsmaskiner genom att nästa ett antal enklare sådana. Denna teknik är grunden för två av de nya diagramtyperna (interaktionsöversiktsdiagrammet och sammansättnings- /strukturdiagrammet). Man kan också lägga en tillståndsmaskin inuti den klass som implementerar den. Fyra nya diagramtyper (se ovan) l Ändrad semantik och ändrade symboler i aktivitetsdiagrammet. Numera används samma symbol för tillstånd och aktiviteter. Semantiken som används i aktivitetsdiagrammet är dock mer anpassad för flödes-/processmodellering. Ytterligare funktionalitet i sekvensdiagrammet. Det är nu enkelt att visa vägval, upprepningar etc. Med andra ord så är det möjligt att rita generella sekvensdiagram. Det är heller inte längre objekt som interagerar med varandra utan livslinor... 5 Mer information UML-specen laddas ned från OMGs hemsida. Det är dokumentet som heter UML superstructure som är intressant. www.uml.org http://www.agilemodeling.com/essays/umldiagrams.htm