Presentation laddar. Vänta.

Presentation laddar. Vänta.

Next previous 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.

Liknande presentationer


En presentation över ämnet: "Next previous 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."— Presentationens avskrift:

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

2 previous next 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 previous next 3 UML 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 previous next 4 UML Strukturella saker KlassGränssnittSamarbete Användningsfall Aktiv klassKomponent Nod Window open() close() move() display() origin size ISpelling Chain of responsibility Place order EventManager suspend() flush() Server orderform.java

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

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

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

8 previous next 8 UML Klassdiagram

9 previous next 9 UML...Klassdiagram

10 previous next 10 UML Sekvensdiagram

11 previous next 11 UML... Sekvensdiagram

12 previous next 12 UML Tillståndsdiagram: exempel

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

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

15 previous next 15 UML Exempel: klocka WatchUserWatchRepairPerson ReadTime SetTime ChangeBattery Paket SimpleWatch Användningsfallsdiagram

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

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

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

19 previous next 19 UML 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 previous next 20 UML 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 previous next 21 UML Klassdiagram: notation Klassnamn attribut : Typ = initialtVärde operation(argumentlista) : returTyp Klassnamn Klass Generalisering Supertyp Subtyp1Subtyp2 superklass (basklass) subklass (härledd klass) klassbox, lång form klassbox, kort form

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

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

24 previous next 24 UML Exempel: Färgat geometriskt objekt, med defaultvärden 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) 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 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 eget namn (frivilligt)

25 previous next 25 UML Exempel: klassen Point med två instanser

26 previous next 26 UML Arv 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

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

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

29 previous next 29 UML Relationer mellan klasser 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

30 previous next 30 UML Exempel: association Person 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. Company 1* Person Sätt ut lämpliga rollnamn på associationerna i diagrammet. Company 1* employeeemployer Person Inför i diagrammet att varje person kan ha noll eller en chef och att varje chef kan ha noll eller flera underställda. Company 1* employeeemployerboss 0..1 *worker

31 previous next 31 UML En association kan ha ett namn PersonCompany 1* employeeemployerboss 0..1 *worker Manages Works-for För att förtydliga kan vi sätta ut riktning PersonCompany 1* employeeemployerboss 0..1 *worker Manages  Works-for  namn

32 previous next 32 UML 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 previous next 33 UML 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 previous next 34 UML... Användningsfall –är en mall för en sekvens av interaktioner mellan en aktör och ett system Användningsfall Aktör –människa eller annat system –kommunicerar med ett system, vilket kan beskrivas med ett användningsfall

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

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

37 previous next 37 UML Exempel: Banksystem Kontouttag Överföring Insättning Kund Banksystem

38 previous next 38 UML...användningsfallet kontouttag 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....

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

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

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

42 previous next 42 UML … Hello... Hello paint() Graphics Applet

43 previous next 43 UML … Hello... Hello Applet Panel Container Component Object ImageObserver

44 previous next 44 UML java … Hello paketering... Helloapplet awt lang

45 previous next 45 UML … Hello sekvensdiagram... :Thread:Toolkit:ComponentPeertarget:Hello run callbackLoop handleExpose paint

46 previous next 46 UML … Hello komponenter Hello.class Hello.java Hello.html Hello.jpg

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

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

49 previous next 49 UML 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) 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) Country capital 1 :City :Country name : String City name : String name= Sverige name = Stockholm :City :Country name= Norgename = Oslo 1 1

50 previous next 50 UML 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 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

51 previous next 51 UML Aggregat Ett specialfall av association där relationen kan ses som en sammansättning ("består av") DocumentParagraph * Line * Figure * 1 1 1

52 previous next 52 UML Exempel: aggregat Component Composite * Leaf1Leaf2 Shape Group 1..* RectangleEllipse

53 previous next 53 UML Exempel: aggregat och operationer Det är vanligt att operationerna propageras från helheten till delarna. Document print Paragraph Line Figure print ** * 1 1 1

54 previous next 54 UML Riktade associationer För att förtydliga relationer kan riktade associationer användas genom att en pil används Om man inte sätter ut pil så säger inte UML om associationen är enkel eller dubbelriktad –Detta får man själv (inom projektet) bestämma Riktad association med pil –En riktad association utrycker att klassen vid pilens start har ansvar för relationen med klassen vid pilspetsen –Man kan navigera från A till B men inte från B till A AB AB *1 class B {private A _assocA;} class A {public B _assocB;} class B {private Vector _assocA;}

55 previous next 55 UML Exempel: riktad association * Subject attach(Observer) detach(Observer) notify() Observer update() for all o in observers { o.update() } observers ConcreteObserver observerState update() ConcreteSubject subjectState getState() subject1

56 previous next 56 UML Restriktioner För att förtydliga eller reglera en klass beteende kan restriktioner användas –en restriktion är ett villkor som skrivs inom ett par måsvingar, {} Order dateReceived isPrepaid number: String price : Money dispatch() close() Customer name address creditRating() : String *1 {if Order.customer.creditRating is "poor" then Order.isPrepaid must be true}

57 previous next 57 UML … restriktioner PolygonPoint 3..* {ordered} Contains  Account Person {or} Corporation Restriktioner kan också anges för associationer boss {salary <= boss.salary} Employee salary 0..1 *

58 previous next 58 UML Exempel: restriktioner

59 previous next 59 UML Aggregat som komposition

60 previous next 60 UML Modifierare Klassnamn +publikt_attribut #protected_attribut -privat_attribut klassvariabel +publik_operation() #protected_operation() -privat_operation() klassmetod() visibility name : type-expression = initial-value { property-string } där visibility någon av: + public visibility (dvs alla kan använda det) # protected visibility (dvs endast synlig i klassen eller dess subklasser) - private visibility (endast synlig i klassen) understruken betyder klassmetoder och attribut om visibility inte sätts ut betyder det bara att den inte visas (inte att den är privat eller publik)

61 previous next 61 UML Exempel: modifierare Person # name : String # dateOfBirth : Date - pinCode : Integer + name() : String + age() : Integer + equals(Person) : boolean # name(String) + create(name : String, dateOfBirth : Date) : Person - hashCode() : Integer

62 previous next 62 UML Högre ordningens associationer

63 previous next 63 UML Exempel: högre ordningens association Supplier Customer Shipment Part Quantity * * *

64 previous next 64 UML Härledda attribut och associationer


Ladda ner ppt "Next previous 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."

Liknande presentationer


Google-annonser