Unified Modeling Language UML



Relevanta dokument
Unified Modeling Language UML

Objektorientering. Grunderna i OO

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

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

Objektorientering Användning

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

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

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

OOMPA 2D1359 Föreläsning 2

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

Objektorienterad analys och design

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

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad konstruktion

Objektorienterad analys och design

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

Föreläsning 15: Repetition DVGA02

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

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

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

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

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

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

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

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

(Data)Modellering. nikos dimitrakas rum 2423

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

TDP005 Projekt: objektorienterade system

Begreppsmodellering i UML

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

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Begreppsmodellering i UML

Objektorienterad programmering

Föreläsning 9: Arv och UML

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

UML use cases. Mikael Söderström Institutionen för informatik Umeå universitet

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

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

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

Programmering = modellering

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Konceptuell modellering. Formalisering, automatisering och effektivisering

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Information. Computer

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

Objektorienterad analys och design

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

Objektorientering Klasser

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

Objektorienterad programmering. Grundläggande begrepp

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer!

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 13 Innehåll

1 Klasser och objektorientering Vad är objektorientering?

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Att skriva till och läsa från terminalfönstret

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

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

Introduktion. Byggstenar TDBA

Tentamen i Objektorienterad modellering och design

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Tentamen i Objektorienterad modellering och design Helsingborg

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Kursplanering Objektorienterad programmering

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

Classes och Interfaces, Objects och References, Initialization

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

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Support Manual HoistLocatel Electronic Locks

Objektorienterad metodik. Programutvecklingsmetodik. Objektmodellen. Varje objekt har en unik identitet

Programutvecklingsmetodik

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Objektorienterad Systemutveckling 1 (7,5 hp)

Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00

Objektorienterad Programmering (TDDC77)

Inkapsling (encapsulation)

Objektorienterad Programmering (TDDC77)

Övning / handledning Användningsfall

Föreläsning 3 Användare, uppgift och omgivning. Kapitel 3-4 i Stone et al.

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Lösningar till tentamen i EDAF25

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Imperativ programmering. Föreläsning 4

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Transkript:

Unified Modeling Language UML

Vad händer idag? Föreläsning Introduktion till UML Objekt-orientering Klasser Objekt Use cases UML-diagram Specifikationer Praktisk övning Skapa enkla UML-diagram 2

Vad är UML? Ett generellt objekt-orienterat modelleringsspråk UML 2.0 2002 OMT (Rumbaugh et al.) 1996 UML 1.4 Booch UML 0.9 UML 1.1 1999 1997 OOSE (Jacobson et al.) Catalysis ROOM etc. 3

UML Diagram Collaboration diagram Sequence diagram 4

En UML-modell av ett system Krav Specifikation av beteende och egenskaper (Requirement diagram, Use case diagram) Beteende Omvandla indata till utdata (activity based, Activity diagram) Utför operationer eller ändrar (state based, State chart diagram) Tillhandahåller tjänster (message based, Collaboration diagram, Sequence diagram) Struktur System / komponent hierarki, klassificering och sammankoppling (Class diagram, Component diagram, Deployment diagram) Egenskaper Prestanda och fysiska egenskaper och deras inbördes relationer 5

Varför behövs en modell? För att förstå problemet Grund för diskussioner med beställare/kund/användare Hitta fel, brister, och Find errors and inkonsekvenser För att enkelt skapa kod Begränsningar av modellering? 6

Grundläggande OO koncept Classes / class hierarchy Instances - instans Inheritance - arv Abstraction - abstraktion Object Attributes - egenskaper Methods - metoder Messages 7

Objekt i mjukvarutveckling Enheter som modellerar någon fysisk eller konceptuell enhet En unik identitet ( dedikerat minne ) Ett offentligt gränssnitt Attribut Operationer / metoder Gömd ( inkapslad ) implementation 8

Hierkarkiska beskrivningar av det här och det där Unified Language Modeling det där det där Specialisering av Exempel på det där Helhet för det här Del av det där T yp för det där Gener alisering av 9 det där

OO utveckling Krav Kravspecifikation Use case Analys -> OO modell Class diagram, Collaboration diagram, Sequence diagram, Statechart diagram Designmodell Mjukvara/Hårdvara Class diagram, Collaboration diagram, Statechart diagram Implementation Deployment diagram, Component diagram 10

En klass: Circle Vad kan du göra med en cirkel? Vad kännetecknar en cirkel? Vilka andra liknande objekt finns? 11

En klass: Circle Vad kan du göra med en cirkel? Rita den Fylla den med en färg Vad kännetecknar en cirkel? Radie Färg Vilka andra liknande objekt finns? Rektangel Ellips 12

En klass i UML Attribut Operationer/ Metoder Circle Colour : integer Radius : integer Draw (x,y,r:integer) Move (x,y:integer) Typ 13

Klassbenämning Analys Design 14

Viktiga metoder i alla klasser Constructor skapa ett objekt Get hämta ett värde eller ett innehåll Set ändra ett värde eller ett innehåll Finalize städa upp efter att ett objekt tagits bort ToString returnera en sträng som beskriver objektet på något sätt 15

Klass Template, blueprint, generalised description Basklass, superklass, abstraktion, generalisering Graphical object Underklass ärver från basklassen, specialisering Circle Instantiera ett objekt från en klass (realtd) MyCircle:Circle 16

Klass student Övning Definiera en klass student 17

Klassdiagram - Associationer Association Det finns ett samband mellan två klasser om en instans av en klass måste veta om den andra för att fungera korrekt. Aggregation En association där en klass tillhör en samling av klasser. Generalisering (arv) En arvslänk visar att en klass är en superklass till en annan klass. Multiplicities 0..1 Meaning zero or one instance. The notation n.. m indicates n to m instances. 0..* or * no limit on the number of instances (including none). 1 exactly one instance 18 1..* at least one instance

Exempel Fordon Bil Association Väg Är en del av Extraljus 0..2 Multiplicitet och namngivna associationer 4 Hjul 19

är en sorts :Bil en sorts är en en Fordon sorts speciellt Bil har ett är en del av en :Hjul är ett ett del av Hjul har

Klassdiagram Statisk struktur Visar de olika delarna I ett system och deras inbördes relation associationsklass Person ägare 0..* kund 0..* långivare 0..* Finansinstitut generalisering association Lån ränta villkor Bank Fondbolag boende 0..* Hus 1 0..* 21

Modell av en människa Övning Huvud Vänster tumme Höger tumme Skelettdel Hjärna Sinne Hjärta Själ Kroppsdel 22

Konceptuella objekt Alla objekt behöver inte ha en fysisk mening T.ex. Ett telefonsamtals-objekt Telefon 1 Telefon 2 Telefonsamtal Telefonsamtals-objekt AvslutaSamtal () läggtilldeltagare (t:telefon) Samtalstid () 23

Klasser och Instanser Realtidsspecifika objekt som har samma struktur och beteende klass (Design) Telephone busy : boolean offhook() onhook () ring() phone1:telephone busy = true offhook() onhook () ring() phone2:telephone busy = false offhook() onhook () ring() instanse (realtid) 24

Övning Rita ett klassdiagram för en person som använder en enhet för en tjänst Tips: Tänk på vem, när, var, vad 25

Övning Person -Name : string -Address:String -Id:Interger Device -Type : string -Id:Interger Place -Name : string Time -Name : string Service -Type : string Home Office Mobile Pc 26

Objektorienterad meddelandehantering Draw() MyCircle:Circle Pelle:person Call() Mobile1:telephone 27

Varför ska vi använda objekt? Enkelt att beskriva problem Kan användas på alla abstraktionsnivåer Arkitektur, hårdvara, mjukvara... Återanvändbara Kan användas för samverkande system Nackdelar??? 28

Hur hittar man rätt klasser? Objektorienterad analys Samla och dokumentera krav på systemet och formulera dem i ett antal samverkande objekt som grund för det fortsatta arbetet Förstå problemet relativt oberoende av genomförandet Kunna ställa de rätta frågorna, ge svar Ta reda på vad systemet inte ska göra När är vi färdiga? 29

Mål för (OO) analys Förstå problemet (en) som ska lösas Ställ frågor om problemet och systemet Ge tillräckligt med underlag för att besvara frågor Bestäm vad systemet ska / inte ska göra Försäkra dig om att systemet kommer att tillfredsställa användarnas behov Definiera acceptanskriterier Ge underlag för systemutveckling 30

Hitta objekt & klasser Checklista Domänanalys Lingvistisk analys Rollspel Återanvändning av analysmodeller Erfarenhet 31

Checklistor Människor Platser Saker som går att ta på (fysiska saker) Roller Organisationer Abstrakta saker Händelser Interaktioner... 32

Domänanalys Mål Hitta vanliga objekt / klasser i en särskild domän Hitta risker Görs vid behov Metoder Studera liknande system Litteraturstudie på domänen Prata med domänexperter Bygg en generisk modell av systemen i domänen Bygg en prototyp 33

Lingvistisk analys Skapa en lista över kandidater via analys av texten: Substantiv => objekt / klasser Verb => metoder Adjektiv => attribut... Analysera resultat Behåll bara kandidater som är meningsfulla och användbara i problemdomänen Dokumentera resulterat i klassdiagram Den här metoden är ofta kritiserad Fungerar bra för små dokument 34

Lingvistisk analys: granska kandidater Ta bort synonymer Kasta saker som är utanför systemet Kasta saker som beskriver implementationsdetaljer De flesta egennamn är instanser av klasser Komplexa substantivsatser kan beskriva dolda föremål / klasser Kontrollera verb som används som substantiv Leta efter vara(är en) och verb (har en) Leta efter ägandesubstantiv, masssubstantiv och måttenheter 35

Kravspecifikation SMSme is a wireless device where messages can be displayed. The colour of the device could be red or gold. When a message arrives the user is notified either by a sound or by a vibration. The last message sent or received is always displayed. A constraint is that the display is limited to 4 lines, 20 characters per line. A number of ten messages can be stored and if this limit is reached the device will show a warning message on the display. Each device can be given a unique name. This name will be sent back when a message is acknowledged. The user communicates with SMSme using buttons. 36

Kravspecifikation SMSme is a wireless device where messages can be displayed. The colour of the device could be red or gold. When a message arrives the user is notified either by a sound or by a vibration. The last message sent or received is always displayed. A constraint is that the display is limited to 4 lines, 20 characters per line A number of ten messages can be stored and if this limit is reached the device will show a warning message on the display. Each device can be given a unique name. This name will be sent back when a message is acknowledged. The user communicates with SMSme using buttons 37

Vad är en bra klass? En enda, väldefinierad abstraktion Ansvar kan beskrivas kortfattat och tydligt Namnet kommer från ett substantiv eller adjektiv som på ett bra sätt beskriver abstraktionen Abstraktion av data och funktion Sammanhängande gränssnitt Representerar en uppsättning möjliga realtids-objekt Har tillstånd och beteende 38

Klassdiagram 39

Beskrivning av klassdiagram Klass DateMe Knappar Skärm Kamera Mikrofon Högtalare USB-ingång Batteri Slå av/på Starta speeddejt Avbryta Speeddejt Välja fortsatt kontakt Spela in Spela upp ljud Beskrivning Den fysiska prylen som möjliggör kontakt via videochatt Attribut: För att möjliggöra inmatning av information Monitor som visar digitalt skapas bild Spelar in bild i videoformat Spelar in ljud Spelar upp ljud Hopkopplingsenhet för dator Energikälla Utförande: Slår på/av den fysiska DateMe prylen Startar speeddejt med en annan DateMe användare Avbryter speeddejt med en annan DateMe användare Avgör om man vill få den andra användarens kontaktuppgifter på hemsidan. Eller om man inte vill ha fortsatt kontakt och börja nästa speeddejt med ny användare Ta upp ljudkonverstaionen mellan två DateMe användare Spelar upp ljudkonversation mellan två DateMe användare 40

Vad är ett Use Case? Ett use case är en sekvens av händelser som utförs av ett system, som ger ett mätbart resultat av värden för en viss aktör De viktigaste syftena med use case är att definiera vad ett system ska kunna göra, och att tillåta utvecklare och kund att komma överens om detta 41

Modellbeteende -> Use cases Användarnas krav är viktiga, User-oriented Identifiera användare och andra som interagerar med systemet -> Actor (s) Identifiera vad systemen kan göra för / med aktörer -> Use case(s) Information kan användas både i analys, implementering och test av systemet Scenario - exempel på användningsfall 42

Aktörer (actors) An aktör är någon (eller något) som interagerar med systemet Universitet: Professor Student UMU web server Network support Umeå kommun 43

Use case - grunderna Ett use case är ett beteendemönster för systemet, "Vilka behov har en aktör?" Hur interagerar aktörer och systemet? Read info on the web Student Print article Do exercise 44

Hur hittar man use case och aktörer? Vilka funktioner vill en aktör använda? Behöver aktören läsa, skapa, skriva, ändra? Måste aktörenfå veta något? Vilken I/O finns till/från systemet? Vilka är de primära användarna av ett system? Vem tar hand om tjänster? Vilka andra aktörer berörs av systemet? Vilken maskinvara används/används av systemet? 45

Kursregistrering 46

Register for courses Beskrivning: Detta use case initieras av aktören student. Det ger möjlighet att skapa, granska, ändra och ta bort en kursregistrering för en termin All erforderlig faktureringsinformation sänds till Billing system Aktörer Student, Billing System. Anmärkningar: En student kan registrera sig för högst 4 kurser varje termin. 47

Extends och uses 48

Möjliga problem med use case Risk att man inte bygger ett objektorienterat system Fokus enbart på use case Risk att missta design för krav Ineffektivt system eftersom det endast modellerar hur användaren tror att systemet ska fungera -> behövs designinput Risk för att missa krav Kan missa krav om man enbart designar efter de olika aktörernas use case 49

Beskrivning av Use case Use case Ansvar Data in Data ut Startvillkor Beskrivning Registrera profil (hemsida) Registrera nya användare Personuppgifter + svar på frågor DateMeprofil Att du kan komma åt hemsidan Skapar en profil åt en användare och sparar den I en databas för användare. Undantag Server nere kan inte komma åt hemsidan för att skapa profil 50

Scenario Förädling av use case Många möjliga scenarier för ett use case Kan formuleras som en berättelse Scenario = Use case + startvillkor + slutresultat Exempel: Köpa mjölk Kalle tar två liter mjölk, kassören kontrollerar de två paketen en efter en, priset 20kr visas på en display, Kalle betalar med Visakort och PIN-kod. Pelle tar två liter mjölk, bäst-före-datumet har gått ut för mjölken, kassören matar manuellt in 10 kr, priset visas på skärmen, Pelle betalar 10 kr med en guldtia Observera att interaktioner ovan kan representeras av meddelanden Registrera händelser i use case 51

Sekvensdiagram Fångar dynamiska beteenden (tidsorienterad) Modellerar meddelandeflödet Illustrerar typiska scenarier En typ av interaktionsdiagram 52

Sekvensdiagram grunderna 53

Samarbetsdiagram 54

Samarbetsdiagram - grunderna 55

Tillståndsdiagram Grafisk beskrivning av klassbeteende Beskriver alla möjliga tillstånd och tillståndsändringar som utlöses av yttre stimuli Bra verktyg för att beskriva komplexa objekt livscykler Bra verktyg för att avslöja saknad tillståndsinformation och beteende 56

Tillståndsdiagram Initial pseudostate top top state State Trigger/event Ready Transition go /ctr := 0 Final state Done stop Action 57

Tillståndsdiagram - exempel Hissen börjar på bottenvåningen. Det kan röra sig uppåt eller nedåt. Om hissen är inaktiv på en våning en viss tid rör sig hissen till bottenvåningen. Hissen kan bara stängas av när den är på bottenvåningen. 58

Tillståndsdiagram - exempel Start Bottenvåning Åk upp Åker uppåt Framme Bottenvåning Framme Åk ner Framme Väntande Åk upp Bottenvåning Time out 59

Tillståndsdiagram - användning Fångar dynamiskt beteende (händelseorienterad) Konstrueras under analys och design Syfte Modellera objektets livscykel Modellera reaktiva objekt (användargränssnitt, enheter, etc.) Utvecklat av analytiker, designers och implementerare Tillståndsdiagram Statechart diagram 60

Sammanfattning Objektorientering (OO) Objekt Klasser UML Modellspråk Använder OO 8 olika diagram Ni kommer använda 5 i labben Analys Use case Kravspecification 61