UML. Unified Modeling Language



Relevanta dokument
Introduktion. Byggstenar TDBA

Objektorientering. Grunderna i OO

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

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

Inkapsling (encapsulation)

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

Objektorientering Användning

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

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

Objektorienterad analys och design

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

Handbok Umbrello UML Modeller

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

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?

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

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

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

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

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

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

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

Objektorienterad analys och design

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

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

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

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?

Föreläsning 15: Repetition DVGA02

Imperativ programmering. Föreläsning 4

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

Konceptuell modellering. Formalisering, automatisering och effektivisering

Unified Modeling Language UML

Objektorienterad programutveckling i ett nötskal

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

TDP005 Projekt: objektorienterade system

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

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

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Objektorienterad konstruktion

Begreppsmodellering i UML

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

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

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

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

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

Begreppsmodellering i UML

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

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

Programutvecklingsmetodik

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

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

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

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Information. Computer

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Objektorienterad programmering Föreläsning 4

Objektorienterad Programmering (TDDC77)

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Objektorientering Klasser

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

RUP - Rational Unified Process

Kort om klasser och objekt En introduktion till GUI-programmering i Java

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

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

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

Övning / handledning Användningsfall

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

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

Symptom på problemen vid programvaruutveckling

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

RUP Rational Unified Process. 17 november 2004

Relationer mellan objekt

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

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

Föreläsning 9: Arv och UML

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Copyright Syntell AB 1

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

F2: Krav på objektorienterat språk

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

OOMPA 2D1359 Föreläsning 5

Tentamen i Objektorienterad modellering och diskreta strukturer

Introduktion till UMLs klassdiagram

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

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

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

Unified Modeling Language UML

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

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

Objekt, Klasser, Paket m. m.

Konstruktion av klasser med klasser

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

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

Objektorienterad Programmering (TDDC77)

Transkript:

UML Unified Modeling Language 1

UML kort historik 1980-talet: Många OO-metoder Stora skillnader inom Notation Begrepp Omfång Svåra att jämföra Unified Modeling Language enad eller likriktad 2

UML kort historik Kortfattat kan UML beskrivas så här: UML är ett visuellt språk för att specificera, konstruera och dokumentera ingående delar i ett system. UML är ett generellt modelleringsspråk i den mening att det går att använda för olika verksamhetsområden och för olika tekniska plattformar. Historik: UML 2.0 utökning som lanserades stegvis mellan 2003 och 2005 De som mest aktivt deltog i framtagande av UML var: Grady Booch Jim Rumbaugh Ivar Jacobson Ansvaret för vidareutveckling har OMG (Object Management Group) där vidare specifikationsarbete sker i form av en community. 3

UML kort historik Målet är att UML ska Kunna beskriva alla typer av system Kunna utökas vid behov Kunna tolkas entydigt av en maskin Kombinera styrkorna från tidigare OO-notationer 4

UML kort historik Några egenskaper hos UML som modelleringsspråk: UML är ett visuellt modelleringsspråk. UML består av en stor uppsättning element och regler för hur elementen kopplas samman. 14 olika diagramtyper finns identifierade i UML 2.2, tidigare var det 9 stycken. Elementen har en definierad syntax och semantik, vilket gör att det kan kallas för ett språk. UML är utökningsbart 5

Genomgång av UML UML är ingen metod Beskriver därför inte Arbetssteg (omfattning / ordning) Projektfaser Rollfördelning (ansvar) Leveransobjekt Övrig dokumentation Stödjer alla faser i mjukvaruutveckling Metodoberoende 6

Elementen i UML Språket UML byggs upp av ett antal element och regler för hur dessa element kopplas samman. 7

Diagram i UML 2.2 8

Allmän UML-notation En notering kan göras var som helst i ett diagram. Antingen som en fristående notering eller kopplad till ett element via en streckad linje. Note Note Använd noteringar för att: Förklara och informera läsaren. Förklara det som inte är uppenbart. Skriva kodfragment eller text som beskriver ett beteende eller en begränsning. 9

Allmän UML-notation Ramar (Frames) är en nyhet i UML 2.0. De används för att rama in grupper av samverkande element eller för att att referera till andra sådana grupper. rama in hela diagram. rama in delar av diagram, exempelvis sekvensdiagram. 10

Så här ritas en klass Klassnamn instansvariabler metoder Klass utan instansvariabler Klassnamn metoder Så här ritas en instans :Klassnamn Klass på designnivå Djur Djur namn fördelseår hämtanamn hämtaålder Klass på implementationsnivå private String namn private int födelseår public String hämtanamn() public int hämtaålder() variabelnamn = värde 11

Klassdiagram Klassdiagrammet är ett strukturbeskrivande diagram som används för att visa en statisk bild över modellelement och deras inbördes relationer. Klassdiagram är det mest centrala diagrammet i UML Visar klasserna som ingår i systemet Visar relationer mellan klasser (arv, aggregat, associationer) Beskriver systemets statiska struktur Vad används det till? Definiera vilka data som systemet ska hantera Definiera hur data kan modifieras Vad uppnås? Verksamhetsförståelse Ansvarsfördelning mellan klasser 12

Klassdiagram Klassdiagram kan användas i många olika sammanhang där strukturelement och deras relation ska modelleras. Kodgenerering och kodvisualisering: Objektorienterad kod och klassdiagram har mycket gemensamt och historiskt sett är den kopplingen kärnan i de verktyg som stödjer UML. Objektorienterad kod kan visualiseras med UML och från klassdiagram kan kod genereras. Verksamhetsmodellering: Konceptuella modeller för att beskriva verksamheter är lämpliga att beskriva i form av klassdiagram. 13

Klassdiagram Class ClassName Interface Generalization <<interface>> InterfaceName Association Interface Realization Dependency Aggregation Composition 14

Klassdiagram Klass Företeelse i verksamheten Ritas som en tredelad rektangel Namn, attribut och operationer skrivs ut Första rutan i rektangeln får inte vara tom. (Klass Namn) Person -name : String -age : int Attribut Egenskap för en klass Har en datatyp Värden sätts i objekt av klassen Exempel: sträng, heltal Namnet bör spegla vilka data som lagras Synlighet (prefix före namn): Public (+) Private (-) Protected (#) 15

Klassdiagram Operation Kan vara Kommando ändrar objektets tillstånd Fråga returnerar data om tillståndet (get) Kan ha en eller flera parametrar med varsin datatyp VisibilityForOperationsClass + publicoperation() - privateoperation() # protectedoperation() Objekt Förekomst av en klass person : Person name : String = Alex Jones age : int = 25 16

Association Association (A har/använder B) Visar att klasserna känner till varandra Statisk relation mellan två eller fler klasser Rak linje innebär obestämd eller dubbelriktad association. Innebörd bestäms i projektet. Enkelriktad association ritas som en pil Associationens namn bör spegla relationens syfte Placeras nära linjen Inte obligatoriskt Verb Roll Visar hur en klass uppfattas av en annan klass Kan namnges (substantiv) Varje association har två roller (en för varje riktning) Skriv namnet nära klassen som rollen avser (på en associationslinje) Exempel: Ägare, Kund, Lärare 17

Ex Roller Person Bil 1 Ägare äger * Egendom Person Mor 1 1 Far Föräldraskap 18

Association ClassA ClassC ClassE ClassG ClassI ClassK ClassB ClassD ClassF ClassH ClassJ ClassL Exempel på diverse relationer mellan klasser ClassA är beroende av ClassB. ClassC har en ospecificerad koppling till ClassD. ClassE känner till ClassF Båda klasserna känner till varandra. Aggregat används för att visa på en struktur med whole/part -relation. ClassJ är en del av klassen ClassI Påminner om aggregat men vid komposition kan inte ClassL existera om inte ClassK finns. 19

Association Multiplicitet Visar hur många objekt av en klass som kan kopplas ihop med objekt av en annan klass Anges vid associationslinje Asterix (*) = godtyckligt många <min>..<max> = intervall Exempel: * 0..* 2, 3, 7 1..7 4..* Employee 1 1..2 Computer Multiplicitet 20

Aggregat Aggregering (är en del av) Visar att ett modellelement (en klass) är en del av ett annat modellelement (en annan klass) Starkare form än association mellan klasser Samma notationsmöjligheter (multiplicitet, roller, etc) Visas som en streck med diamant Work Team 1 1..10 -member Person 21

Aggregat Ifylld diamant (komposition) avser att ett objekt av en klass kan endast existera som del av ett objekt av en annan klass. Förstörs huvudobjektet förstörs även delarna (composition) Bil 1 1 1 1 1 4 Chassi Motor Hjul 22

Aggregat Exempel på komposition * Listbox Window 1 * Button * Menue 23

Generalisering /Specialisering (Arv) Specialisering /Generalisering (är) Visar att en klass ärver egenskaper och beteenden från en annan klass Specialfall av association Abstrakta klasser: saknar instanser Animal Fordon Mammal Cat Horse Bil Buss Grundregel för pilar: Den som pekar är den som utför en aktiv handling. 24

Klassdiagram Exempel - Hinge -size Room * -Passage * Door -isopen : bool -color : String +open() +close() +isopen() +getcolor() +setcolor(in color : String) - 1-1 * - Lock -islocked : bool * +lock() +unlock() +islocked() Glass Door -isbreakable : bool +isbreakable() : bool 25

Klassdiagram Mål / Ideal Visar hur användarna tänker kring sin verksamhet Beskriver användarnas språk (jämför med begreppsmodellering) Visar hur centrala begrepp hänger ihop 26

Klassdiagram Objektdiagram Instanciering av ett klassdiagram Visar en ögonblicksbild över tillståndet i ett system Kan klargöra komplicerade klasstrukturer Behöver inte alltid tas fram 27

Tillståndsdiagram Vad är det? Beskriver totala dynamiken för en klass (beteende) Behövs inte för enkla klasser Händelseorienterat Vad används det till? Hitta alla tillstånd för objekt av klassen Beskriva klassens levnadscykel över samtliga användningsfall Identifiera alla giltiga övergångar mellan tillstånd Vad uppnås? Hantering av komplicerad dynamik 28

Tillståndsdiagram Tillståndet hos bok objektet kan ändras när en kopia av boken lånas. Tillståndet kan ändras från att vara utlåningsbar (det finns en kopia i biblioteket) till ej utlåningsbar (alla kopiorna är utlånade eller reserverade). Vi kan visa detta med ett tillståndsdiagram. 29

Tillståndsdiagram 30

Ex. tillståndsdiagram - kontantuttag sätt in kort Kort insatt begär kod mata in kod Väntan på kod förkasta betalning Kod inmatad avbryt Belopp godkänt Kod accepterad Väntan på belopp välj belopp Belopp valt godkänn belopp Belopp ej godkänt 31

Ex. tillståndsdiagram - telefon Active TimeOut lift receiver / getdialtone DialTone do/ play dial tone do/ play message dial digit(n) dial digit(n)[incomplete] Dialing Idle Invalid dial digit(n)[invalid] do/ play message Connecting Pinned caller hangs up / disconnect Busy do/ play busy tone busy connected Talking Ringing do/ play ringing tone 32

Övning klassdiagram Böcker och tidskrifter Biblioteket innehåller böcker och tidskrifter. Det kan finnas flera kopior av samma bok. Endast biblioteksanställda får låna tidskrifter. 33

Lösningsförslag 34

Use Case Use Case är användarfall som visar systemet ur användarnas synvinkel beskriver en bestämd uppgift som görs i ett system består av ett diagram och en textbeskrivning ska skapa ett mervärde för systemets aktörer lätt modell att komma igång med Use Case-Diagrammet visar relationen mellan olika användningsfall visar hur aktörerna använder användningsfall 35

Use Case Vad används det till? Hitta systemets användare Identifiera användarnas krav Definiera systemets funktioner Identifiera delsystem 36

Use Case 37

Use Case Notation: <Actor> Primär aktör Informationsflöde (dubbelriktat) <Actor> Sekundär aktör Informationsflöde (enkelriktat) Funktionsnamn Ett användningsfall (Use Case) Include Nyttjande av användningsfallet Systemets namn Systemet Extends Utökning av användningsfall 38

Use Case Aktör Primär aktör i förhållande till systemet Motsvarar en roll som användaren spelar En användare kan ha många roller Flera användare kan ha samma roll Använder systemet direkt Erhåller värden från systemet Behöver inte vara en person Exempel: Kund, Tidrapporteringssystem Sekundär aktör Underhåller eller övervakar systemet Gör systemet tillgängligt för primära aktörer Exempel: Lagerpersonal, systemklocka <Actor> <Actor> 39

Use Case Användningsfall (Use Case) Ett användningsfall är en specificerad uppgift en aktör kan utföra i systemet Uppbyggt av ett antal scenarier Scenario: dialog mellan aktör och systemet Normalfall / undantag Tillsammans utgör alla användningsfall systemets funktionalitet System Definierar omfånget (gränsen) för systemet Kan vara vilken sorts system som helst Exempel: Lagerhanteringssystem 40

Use Case Informationsflöde (dubbelriktat) En ömsesidig påverkan mellan en aktör och ett användningsfall (relation) Funktionen är beroende av de data som användaren matar in Exempel: Aktörens val avgör vilka skärmbilder som visas och vilken information som presenteras, därefter gör aktören nya val, etc. Informationsflöde (enkelriktat) Informationsflöde från ett användningsfall till en aktör (eller omvänt) Symbolen används för att visa att informationen är enkelriktad Exempel: Rapport skrivs ut till kund (info) 41

Use Case A include B A extend B Beroende (include) Ett including användningsfall inkluderar ett annat användningsfall Beroende (extend) Används för att utvidga ett användningsfall med innehållet i ett annat användningsfall Notationen används ofta för att beskriva undantag och felhantering i modellen 42

Use Case-diagram Varuleverans (system) Fakturering Uses Beräkna kostnad Kund Registrera order Extends Registrera förstagångsanvändare Plocka ihop beställning Leverera varor Budfirma Lagerarbetare Uses kan ses i gamla diagram, i de nyare heter relationen <<include>> 43

Use Case-diagram 44

Use Case-diagram Realiseras av systemets klasser Genom samarbete Realiseringen visas i övriga UML-diagram Hur användningsfall ska dokumenteras i detalj beskrivs inte i UML 45

Use Case-diagram Fallgropar? Göra ostrukturerade / tvetydiga textbeskrivningar Klassiska fällor: synonymer, homonymer, syftningsfel För många användningsfall Beskriva användningsfall som inte levererar mervärde till någon aktör 46

Övning 1 - Use Case Vid en bensinstation kan man tanka sin bil och betala i en automat, antingen med kontokort eller kontant. Vilka aktörer och användningsfall kan finnas i detta system. 47

Övning 2 - Use Case Vilka scenarier kan du hitta för systemet i övning 1? Beskriv något av scenarierna närmare. 48

Lösningsförslag Övning 1 Aktörer: kund, bensinbolag (det datorsystem hos bensinbolaget som kontrollerar bensinkort och registrerar köp). Eventuellt en administratör till bensinbolagets system. Användningsfall: Tankning med kontant betalning, tankning med kontokortsbetalning. Ett eller flera användningsfall som hanterar administration av systemet. 49

Lösningsförslag Kund Tanka med kort Bensinbolag Tanka kontant Sätta bensinpris Admin 50

Lösningsförslag Övning 2 Två vanliga scenarier: En kund betalar kontant och tankar En kund betalar med kort och tankar. Mer ovanliga scenarier: En kund betalar kontant och glömmer att tanka En kund betalar med kort men har glömt sin PIN-kod En kund vill betala kontant men automaten accepterar inte sedeln, o.s.v. Det finns fler av dessa mer ovanliga scenarier beroende på alla faktorer som kan gå fel. 51

Lösningsförslag Noggrannare beskrivning av tanka med kontokort: En kund anländer till bensinstationen. Textfönstret i bensinautomaten visar Välkommen, sätt in ditt kort. Kunden sätter in sitt kort i automaten. Automaten läser kortet, visar Ange PIN-kod i textfönstret. Kunden trycker in sin kod. Automaten läser koden, kontrollerar kortet och koden hos bensinbolaget och finner att de är giltiga. Automaten visar Tag ditt kort och tanka i textfönstret. Kunden väljer oktantal vid bensinpumpen och tankar. Automaten får uppgifter om tankningen från bensinpumpen och registrerar köpet hos Bensinbolaget. 52

Sekvensdiagram Vad är det? Visar hur objekt samarbetar för att lösa en uppgift Motsvarar vanligtvis ett användningsfall Operationerna visas i tidsordning Vad används det till? Beskriva systemets beteende (dynamik) Skapa arbetsfördelning mellan klasser (ansvar) Identifiera saknade klasser 53

Sekvensdiagram Vad uppnås? Överblick Händelser Meddelande-flöden (mönster) Samarbete mellan komponenter Verksamhetsförståelse Fallgropar? Göra för komplicerade sekvensdiagram 54

Sekvensdiagram window Objekt Deltar i samarbete för att lösa arbetsuppgift Klassnamnet kan skrivas ut Exempel: fönster : Fönster Livslinje för objektet (lifeline) Tidsaxel open() Meddelande Skickas mellan objekten Metodnamn obligatoriskt Kan ha parametrar (inom parentes) 55

Sekvensdiagram recordplayer Aktivitet Ritas som vertikal rektangel längs livslinjen Anges då ett objekt utför arbete i flödet Resultatet av ett meddelande-anrop Villkor Måste gälla för att meddelandet ska sändas [unlocked] open() valuesok() Retur-meddelande Retur tillbaka till anroparen Visa bara returvärde om det förtydligar beskrivningen 56

Sekvensdiagram Objektet upphör (destruktion) Anger att objektet slutar existera Görs på eget initiativ eller resultat av anrop Visas som ett kors längs livslinjen close() Asynkront meddelande Anroparen väntar inte på retur Meddelande (vanligt anrop) 57

Sekvensdiagram :Klass1 :Klass2 :Klass3 1. metodnamn 2. metodnamn 3. * metodnamn 58

Ex. Sekvensdiagram vad händer när man klickar på en sökknapp i ett fönster :Användare :Sökknapp :Knapp- Kommando :Söktextruta :Modell :Fönster klick actionperformed gettext sökdata visasökresultat 59

Ex. Sekvensdiagram -öppna dörr med en kod Keypad Door Control Unit Security System Lamp Controller Door key pressed(1) key pressed(5) key pressed(3) key pressed(enter) verify code(153) code accepted() light() open() 60

61

Aktivitetsdiagram Aktivitetsdiagram beskriver en följd av händelser i ett system, med hjälp av aktiviteter. Aktivitetsdiagram är en speciell form av tillståndsdiagram, som bara (eller i huvudsak) innehåller aktiviteter. Aktivitetsdiagram liknar procedurella flödesdiagram, med skillnaden att alla aktiviteter är klart länkade till objekt. Aktivitetsdiagram hör alltid ihop med en klass, en operation eller ett användningsfall. Aktivitetsdiagram stöder sekvens- samt parallella aktiviteter. Parallell körning representeras med ikonen Dela upp/samla ihop, och det är inte viktigt för aktiviteter som kör parallellt i vilken ordning de utförs (de kan köras samtidigt eller en i taget). Aktivitet En aktivitet är ett enda steg i en process. En aktivitet är ett tillstånd i systemet med intern aktivitet och åtminstone en utgående övergång. Aktiviteter kan också ha mer än en utgående övergång, om de har olika villkor. 62

Några andra typer av diagram Samarbetsdiagram Samarbetsdiagram visar växelverkan mellan objekt som deltar i en speciell situation. Det här är mer eller mindre samma information som visas i sekvensdiagram, men där läggs vikten vid hur växelverkan sker i tiden, medan samarbetsdiagram lägger vikten vid sambanden mellan objekten och deras topologi. Komponentdiagram Komponentdiagram visar programkomponenter (antingen komponentteknologier som Kparts, CORBA-komponenter eller Java Beans eller bara delar av systemet som är klart urskiljbara) och artefakterna de består av, som källkodsfiler, programbibliotek eller relationsdatabastabeller. Komponenter kan ha gränssnitt (dvs. abstrakta klasser med operationer) som tillåter association mellan komponenter. Utplaceringsdiagram (deployment diagram) Utplaceringsdiagram visar komponentinstanserna vid körning och deras associationer. De omfattar noder, som är fysiska resurser, typiskt en enskild dator. De visar också gränssnitt och objekt (klassinstanser). 63