Inneh¥ll UML Till vad? Byggstenar Olika typer av diagram Att l¤sa

  • View
    55

  • Download
    2

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Text of Inneh¥ll UML Till vad? Byggstenar Olika typer av diagram Att l¤sa

GRIPOOMPA 2D1359 & 2D1360
previous
next
previous
next
Meddelande
Tillstånd
display
Waiting
Paket
Notis
return b;
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
previous
next
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
associationer
attribut
operationer
previous
next
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
previous
next
Klass
Instanser
a) ett klassdiagram med attributen name: String och age: Integer
b) två instanser av klassen
Person
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
eget namn
previous
next
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
previous
next
Konstruera ett klassdiagram med två subklasser Student och Teacher med superklassen Person.
previous
next
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
previous
next
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
Company
1
employee
employer
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
Person
Company
1
Person
Company
1
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
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
previous
next
Användningsfall
är en mall för en sekvens av interaktioner mellan en aktör och ett system
Användningsfall
Aktör
kommunicerar med ett system, vilket kan beskrivas med ett användningsfall
Aktör
previous
next
previous
next
...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
....
Kontouttag
Överföring
Insättning
Korttransaktion
«includes»
Hjälp
«extends»
«includes»
«includes»
previous
next
number
Employee
Company
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.
previous
next
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
previous
next
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)
Country
capital
1
:City
:Country
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
associerad klass
UML
Aggregat
Ett specialfall av association där relationen kan ses som en sammansättning ("består av")
Document
Paragraph
Det är vanligt att operationerna propageras från helheten till delarna.
Document
print
Paragraph
Line
Figure
print
print
print
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
A
B
A
B
previous
next
{
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
previous
next
boss
där visibility någon av:
# 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)
- hashCode() : Integer
b.merge(
p.bounds());