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

Objektorienterad analys och design

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

OOMPA 2D1359 Föreläsning 2

Objektorienterad konstruktion

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

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

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

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

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

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

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

Objektorienterad analys och design

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

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

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

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

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

Föreläsning 15: Repetition DVGA02

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

TDP005 Projekt: objektorienterade system

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

Begreppsmodellering i UML

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

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

(Data)Modellering. nikos dimitrakas rum 2423

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

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

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

Objektorienterad programmering

Programmering = modellering

Konceptuell modellering. Formalisering, automatisering och effektivisering

Begreppsmodellering i UML

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

Objektorienterad programmering. Grundläggande begrepp

Objektorientering Klasser

Introduktion. Byggstenar TDBA

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

Föreläsning 9: Arv och UML

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

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

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

Objektorienterad analys och design

1 Klasser och objektorientering Vad är objektorientering?

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

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

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

Information. Computer

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

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

Tentamen i Objektorienterad modellering och design

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

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

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

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

Tentamen i Objektorienterad modellering och design Helsingborg

Classes och Interfaces, Objects och References, Initialization

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

Support Manual HoistLocatel Electronic Locks

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

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

Inkapsling (encapsulation)

Föreläsning 13 Innehåll

Övning / handledning Användningsfall

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

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

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

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

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

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

Arv. Objektorienterad och komponentbaserad programmering

Föreläsning 8. Designmönster

Arkitektur Michael Åhs

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

Objektorienterad Systemutveckling 1 (7,5 hp)

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

Programutvecklingsmetodik

Objektorienterad programmering, allmänt

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

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

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

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

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

Objektorienterad programutveckling i ett nötskal

Principles of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018

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

Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg

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

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 inkonsekvenser För att enkelt skapa kod Begränsningar av modellering? 5

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 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 Typ för det där Generalisering 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

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

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??? 26

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? 27

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 28

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

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

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 31

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 32

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 33

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. 34

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 35

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 36

Klassdiagram 37

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 38

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 39

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 40

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 41

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 42

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? 43

Kursregistrering 44

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. 45

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 46

Beskrivning av Use case Use case Ansvar Data in Data ut Startvillkor Beskrivning Undantag 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. Server nere kan inte komma åt hemsidan för att skapa profil 47

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 48

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

Sekvensdiagram grunderna 50

Samarbetsdiagram 51

Samarbetsdiagram - grunderna 52

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 53

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

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. 55

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 56

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 57

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