1 / 64

Innehåll UML Till vad? Byggstenar Olika typer av diagram Att läsa

Innehåll UML Till vad? Byggstenar Olika typer av diagram Att läsa Läs Bruegge kapitel 2-2.3.5 och 2.4. OOMPA 2D1359 & 2D1360 Föreläsning 2. UML. UML är ett språk UML är ett språk för att visualisera UML är ett språk för att specificera UML är ett språk för att konstruera

marvel
Download Presentation

Innehåll UML Till vad? Byggstenar Olika typer av diagram Att läsa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Innehåll UML Till vad? Byggstenar Olika typer av diagram Att läsa Läs Bruegge kapitel 2-2.3.5 och 2.4 OOMPA 2D1359 & 2D1360 Föreläsning 2

  2. UML • UML är ett språk • UML är ett språk för att visualisera • UML är ett språk för att specificera • UML är ett språk för att konstruera • UML är ett språk för att dokumentera

  3. UML: konceptuell modell • UMLs byggstenar • Saker • Strukturella • Beteende • Gruppering • Noteringar • Relationer • Beroenden • Associationer • Generaliseringar • Relationer • Diagram • Klassdiagram, objektdiagram, användningsfallsdiagram, interaktionsdiagram (sekvens- och samarbetsdiagram), tillståndsdiagram, aktivitetsdiagram, komponentdiagram, leveransdiagram

  4. Strukturella saker Klass Gränssnitt Samarbete Window Chain of responsibility origin size ISpelling open() close() move() display() Aktiv klass Komponent EventManager orderform.java suspend() flush() Användningsfall Nod Place order Server

  5. Beteendemässiga, grupperande och noterande saker Meddelande Paket display Business rules Tillstånd Notis Waiting return copy of self

  6. Relationer i UML Beroende Association 0..1 * employer employee Generalisering Realisering

  7. Användningsfallsdiagram Sätt gränser Uppdatera konto Redovisnings- system Analysera risker Chefsförhandlare «uses» «uses» Värdera Prisför-handla aktör Handlare Slut avtal Försäljare «extends» Gränserna överskridna användningsfall

  8. Klassdiagram

  9. ...Klassdiagram

  10. Sekvensdiagram

  11. ... Sekvensdiagram

  12. Tillståndsdiagram: exempel

  13. Aktivitetsdiagram, notation [Villkor-a] [villkor-c] Aktivitet [Villkor-b] [villkor-d] Aktivitet Aktivitet [synkroniserings- villkor] för alla ^objekt.Meddelande * Aktivitet

  14. Exempel: "Person::ordna dryck" [inget kaffe] [ingen cola] Hitta dryck [kaffe hittat] [cola hittat] Kaffe i filtret Häll i vatten Hämta koppar Filtret i bryggaren Hämta cola Slå på bryggaren ^kaffepanna.slåPå slå av lampan Brygg Drick Häll upp kaffe

  15. Exempel: klocka Användningsfallsdiagram Paket SimpleWatch ReadTime SetTime WatchUser WatchRepairPerson ChangeBattery

  16. Klassdiagram SimpleWatch 1 1 1 1 1 2 1 2 PushButton state push()release() LCDDisplay Battery load() Time now() blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh()

  17. :SimpleWatch :LCDDisplay :Time :WatchUser pressButton1() blinkHours() pressButton1() blinkMinutes() pressButton2() incrementMinutes() refresh() pressButtons1And2() commitNewTime() stopBlinking() ... Sekvensdiagram

  18. Increment Hours button2Pressed button1&2Pressed Blink Hours button1Pressed Increment Minutes button2Pressed button1&2Pressed Blink Minutes button1Pressed Increment Seconds button2Pressed Blink Stop Seconds Blinking ... Tillståndsdiagram button1&2Pressed

  19. Klass • En klass är en uppsättning objekt med gemensam struktur, gemensamt beteende, gemensamma relationer och gemensam semantik • Klasser hittas hittas genom att användningsfall, sekvensdiagram, samarbetsdiagram och CRC-kort analyseras och används • En klass ritas i UML som en rektangel med tre olika delar • Klasser skall helst namnges med hjälp av den vokabulär som används i den aktuella domänen

  20. Klassdiagram • centralt i i stort sett alla objektorienterade metoder • beskriver dom olika typerna av objekt i systemet samt deras inbördes statiska relationer • ett klassdiagram visar två olika typer av statiska relationer • subtyper • en bil är ett fordon • associationer • en bil har en ägare • ett klassdiagram visar också klassernas • attribut • operationer • restriktioner på hur olika objekt kan förbindas

  21. Klassdiagram: notation klassbox, lång form Klass Klassnamn attribut : Typ = initialtVärde operation(argumentlista) : returTyp klassbox, kort form Klassnamn superklass (basklass) Supertyp Generalisering subklass (härledd klass) Subtyp1 Subtyp2

  22. Strukturen av en klass representeras av attribut Attributen kan hittas genom att utforska klassdefinitioner, från kravspecifikationen och med hjälp av domänkunskap Klass: attribut Varje kurs har ett nummer, en plats där den genomförs och en tid då den går CourseOffering number location time

  23. Person name : String age : Integer : Person name = Kalle age = 25 : Person name = Lisa age = 23 Exempel: Klassen Person med två instanser Rita en klass Person med hjälp av a) ett klassdiagram med attributen name: String och age: Integer b) två instanser av klassen Klass Instanser

  24. FärgatObjekt color : Color = röd position : Point = (10, 10) geo1: FärgatObjekt color = röd position = (10, 10) geo2: FärgatObjekt color = röd position = (30, 50) Exempel: Färgat geometriskt objekt, med defaultvärden Rita ett klassdiagram med med ett geometriskt objekt a) där defaultvärdet för färgen är röd och för positionen är (10, 10) b) "rita" också två instanser defaultvärden eget namn (frivilligt)

  25. Exempel: klassen Point med två instanser

  26. Arv är en relation mellan en superklass och dess subklasser Det finns två huvudtyper av arv generalisering specialisering Gemensamma attribut, operationer och/eller relationer brukar skrivas så högt upp i hierarkin som möjligt Arv

  27. Exempel: Generalisering Konstruera ett klassdiagram med två subklasser Student och Teacher med superklassen Person. Person Student Teacher courses : Vector salary : Money courses : Vector group : String

  28. Association roll B Klass A Klass B roll A Multiplicitet 1 Klass exakt en * noll eller flera Klass 0..1 Klass noll eller en m..n Klass numeriskt specificerad

  29. Relationer mellan klasser kan hittas genom att samarbetsdiagram undersöks Om två objekt behöver utbyta information måste en väg för informationsutbyte finnas Ett annat sätt är att CRC-kort används för att identifiera samarbete Relationer mellan klasser

  30. Exempel: association Antag att en Person har precis ett jobb men att ett företag kan ha noll eller flera anställda personer. Gör ett klassdiagram över detta. * 1 Person Company Sätt ut lämpliga rollnamn på associationerna i diagrammet. * 1 Person Company employee employer Inför i diagrammet att varje person kan ha noll eller en chef och att varje chef kan ha noll eller flera underställda. 0..1 * 1 Person Company boss employee employer * worker

  31. En association kan ha ett namn 0..1 * Works-for 1 namn Person Company boss employee employer * worker Manages För att förtydliga kan vi sätta ut riktning 0..1 * Works-for 1 Person Company boss employee employer * worker Manages

  32. Användningsfall (eng. Use Case) • Jacobson 1992 • Har snabbt utvecklats till en populär teknik • Fokusering på användaren • Enkel teknik som låter användaren delta på ett tidigt stadium • Ger analytikern möjlighet att på ett tidigt stadium uppmärksamma specifika behov hos användaren • Passar bra vid inkrementell lösningsprocess • Utifrån och in

  33. Vad är det? • Jacobson beskriver Use Case så här:A behaviourally related sequence of interactions performed by an actor in dialogue with the system to provide some measurable value to the actor. • Beskriver ett sätt att använda systemet • Tekniken kan användas för alla typer av system • Funktionaliteten hos systemet ska ge något av värde för användaren • Ska inte vara för detaljerat

  34. Aktör ... • Användningsfall • är en mall för en sekvens av interaktioner mellan en aktör och ett system • Aktör • människa eller annat system • kommunicerar med ett system, vilket kan beskrivas med ett användningsfall Användningsfall

  35. Användningsfallsdiagram Sätt gränser Uppdatera konto Redovisnings- system Analysera risker Chefsförhandlare «includes» «includes» Värdera Prisför-handla Handlare Slut avtal aktör Försäljare «extends» användningsfall Gränserna överskridna

  36. Identifiera aktörer Identifiera användningsfall beskriv informellt beskriv i tabellform beskriv i diagramform vidareutveckla detaljer undersök relationer mellan olika användningsfall Arbetsgång

  37. Exempel: Banksystem Kontouttag Överföring Kund Banksystem Insättning

  38. När kund sätter in kort i bankomaten, läs koden från kortet och kontrollera dess giltighet Om kortet ok så begär 4-siffrig kod av kunden. Om fyra siffror matats in så fortsätt annars mata ut kortet Kontrollera koden. Om koden giltig så fråga efter typ av transaktion annars mata ut kortet. När kunden valt kontantuttag, fråga efter belopp .... ...användningsfallet kontouttag

  39. Användningsfall kan ordnas i hierarkier Korttransaktion «includes» «includes» «includes» Kontouttag Överföring Insättning «extends» Hjälp

  40. Hello world-exempel import java.awt.Graphics; class Hello extends java.applet.Applet { public void paint(Graphics g) { g.drawString(”Hallå!”, 10, 10); } }

  41. … Hello klassdiagram ... Hello g.drawString(”Hallå!”, 10, 10); paint()

  42. … Hello ... Applet Hello Graphics paint()

  43. … Hello ... Object Component ImageObserver Container Panel Applet Hello

  44. … Hello paketering ... java Hello applet awt lang

  45. … Hello sekvensdiagram ... :Thread :Toolkit :ComponentPeer target:Hello run run callbackLoop handleExpose paint

  46. … Hello komponenter Hello.java ----- ----- --- ----- ----- -- Hello.class Hello.html ----- ----- --- ----- ----- -- Hello.jpg ----- ----- --- ----- ----- --

  47. Kvalifikationer En vanlig association där ett attribut unikt definierar det associerade objektet i mängden * 1 Employee Company number En kvalifikation är ett attribut för association. En kvalifikation särskiljer ett visst associerat objekt ur mängden av associerade objekt. 1 Employee Company number

  48. Exempel: kvalifikationer Till varje möjligt kontonummer finns noll eller en innehavare. Varje person kan inneha flera kontonummer Bank account # * 0..1 Person Inom en katalog finns en fil med ett visst namn Directory filename 1 File

  49. Exempel: fler associationer a) Rita ett klassdiagram där ett land associeras med en huvudstad b) Gör ett instansdiagram med följande associationer (Sverige, Stockholm) och (Norge, Oslo) capital Country City 1 name : String name : String 1 :City :Country name = Stockholm name= Sverige 1 :Country :City name= Norge name = Oslo

  50. Länkattribut Det är ofta naturligare att placera informationen om en viss relation i associationen än hos någon av dom associerade objekten. Vi kan lägga till attribut, operationer och andra finesser till associationen mha ett så kallat länkattribut eller associerad klass associerad klass

More Related