användningsfall
Download
Report
Transcript användningsfall
Objektorientering
Användning
Samt repetition av klasser
Suzana Ramadani
1
Repetition
Objektorientering bygger på
Abstraktion
Hierarkisk strukturering
Inkapsling
Klassificering
Generalisering – specialisering
Suzana Ramadani
2
OO Metodik
Analys
ska ge en modell av systemet som är mer exakt och en
specifikation som är mer fullständig
ge en bättre förståelse av systemet och dess relation till
omvärlden
Design
förfining av analysen som kan utgöra underlag för kodning
Implementering
kodning
Suzana Ramadani
3
Objekt
Objekt bildar den strukturella grunden
program består av objekt som kommunicerar med
varandra
Objekt tillhör en klass
Klassificering
generalisering – specialisering (härledning/arv)
association – objekt är i någon mening relaterade
sammansättning (”aggregation”, ”composition”) – mer
specifika former av association
Suzana Ramadani
4
Objekt
Varje objekt har en unik identitet
Måste kunna särskiljas från alla andra objekt
Malins hus
Ulfs bil
Suzana Ramadani
Suzanas dator
5
Objekt har attribut
attribut avser gemensamma egenskaper för en viss
typ av objekt
objekts egenskaper beskrivs av attributens värden
Fabrikat: Volvo
RegNr: ABC123
Ägare: Ulf
Hustyp: villa
Antal_rum: 5
Taxeringsvärde: 750.000
Ägare: Malin
Suzana Ramadani
6
Objekt har beteende
beteende avser de tjänster som ett objekt ställer till
förfogande för andra
startaMotor
stängAvMotor
körFramåt
backa
ökaFarten
bromsa
Suzana Ramadani
7
Objekt samarbetar
Objekt sägs kommunicera genom meddelanden
definierar interaktion mellan objekt
identifierar beroenden (associationer) mellan objekt
står för informationsöverföring
Person
ökaFarten(km/h)
Suzana Ramadani
Bil
8
Klass
Beskriv klasserna
Innebörden av varje klass, syftet med klassen?
Var noga med namnet, välj ett beskrivande substantiv
Ex: Student person som är inskriven vid högskolan
Ex: Registreringsformulär formulär som
innehåller en students namn, personnummer, linje,
antagningsår, läsår, samt val av kurser under läsåret
Suzana Ramadani
9
Klassificering
en klass representerar alla objekt med samma
egenskaper
Ex klass Bil
Suzana Ramadani
10
Klasser
en klass beskriver det som är gemensamt för alla
objekt av typen ifråga
Bil
Fabrikat
registreringsnummer
Ägare
startaMotor
stängAvMotor
körFramåt
backa
bromsa
Klassnamn
Data/attribut/egenskaper
Operationer
Suzana Ramadani
11
Klass och objekt
Klass
beskriver objekt med samma
egenskaper och beteende
kan ses som en stämpel eller mall för att skapa objekt
Objekt – klassinstanser
är konkreta förekomster av klassen
skapas under programkörningen
Bil (klass)
AnnasBil:Bil (klassinstans)
Suzana Ramadani
12
Relationer
Relationer mellan klasser eller objekt kan grovt delas
upp i
relation genom härledning/arv
andra former av relationer, vilka kan delas upp i
association – ”känner till en”, ”har en”
”aggregation” – en ”helhet/del”-relation (en form av
sammansättning)
”composition” – som ”aggregation” men livstiden för delarna
kontrolleras av det ”hela”
Suzana Ramadani
13
Analys av användningsområde
Att bestämma ett systems användningskrav
Hur kommer systemet att användas?
Definiera kraven på systemets funktioner och gränssnitt
Suzana Ramadani
14
Analys av användningsområde
Aktivitet
Innehåll
Begrepp
Användning
Hur samspelar systemet med användningsfall och aktör
personer och system
i omgivningen?
Funktioner
Vilka är datasystemets
Funktion
innehållsmässiga användningsegenskaper? Vad skall
Systemet användas till?
Gränssnitt
Vilka krav ställs på systemets Gränssnitt, användargränsanvändargränssnitt?
snitt, systemgränssnitt
Suzana Ramadani
15
Användningsfall
Vad används det till?
Hitta systemets användare
Identifiera användarnas krav
Definiera systemets funktioner
Identifiera delsystem
Suzana Ramadani
16
Användningsfall
Ett användningsfall (use case) är en interaktion
mellan en användare och ett system.
Om man arbetar med dokumenthanteringsprogram
kan ett användningsfall vara att ”ändra ett textstycke
till kursiv stil” eller ”skapa en innehållsförteckning”.
Suzana Ramadani
17
Användningsfall
Dessa exempel påvisar egenskaper som utmärker
användningsfall:
Ett användningsfall utgör någon funktion
som är synlig för användaren.
Användningsfall kan vara stora eller små.
Ett användningsfall uppnår ett distinkt mål
för användaren.
Suzana Ramadani
18
Användningsfall
Fokus på externt beteende
systemet specificeras utifrån användarens perspektiv
bildar grund för både konstruktion och testning
Användningsfallsmodellering ger två huvudsakliga
resultat
Aktörer
En lista (katalog) med användningsfall
Utgör funktioner som är synliga för användaren
uppnår distinkta mål för användaren
Kan vara stora eller små
kan bestå av delfall
Suzana Ramadani
19
Aktör
Aktörer
är systemexterna
utbyter information med systemet
används för att modellera interaktion med systemet
Skilj på användare och aktör
en användare är en person eller en sak
herr Linus, fröken Karin
en aktör är en roll som en användare kan anta
kassör, avdelningschef
Suzana Ramadani
20
Hur hittar man aktörerna?
• Vem behöver stöd av systemet för att utföra sina dagliga
uppgifter?
• Vem skall underhålla och administrera systemet?
• Med vilka andra system skall systemet interagera?
• Vilka har intresse utav de resultat som systemet tar fram?
Suzana Ramadani
21
Användningsfall
Ett användningsfall är en viss funktionalitet i
systemet som en aktör använder. Det initieras av
aktören och består av en sekvens av händelser i
systemet.
Användningafall visualiseras i form av
användningsfallsdiagram (use case diagram)
I dessa diagram visar man aktörer som streckgubbar
och användningsfall som ellipser, där
användningsfallets namn är inskrivet med fet stil.
Ex: Student-> Ansök om studiemedel, Registrering för
termin, Anmälan till kurs, Anmälan till tentamen.
Suzana Ramadani
22
Användningsfall
sekvens av händelser i systemet
ger den ordning som operationer ska utföras i
initieras av en aktör
telefonist
rökdetektor
visar systemet funktionalitet
vad ska göras, hända
användningsfall är den funktionalitet en aktör
använder
koppla samtal
utlösa brandlarm
Suzana Ramadani
23
Användningsfall beskriver detaljer
Kund: Uttag, Överföring
Uttag:
Kunden stoppar in sitt kort i bankomaten.
Kunden matar in koden.
Koden verifieras.
Kunden väljer UTTAG.
Kunden väljer belopp
Bankomatkortet matas ut och kunden tar detta.
Pengarna matas ut och kunden tar dessa.
Kvitto matas ut.
Detta är inte komplett beskrivning, fyll själv på detaljer
Suzana Ramadani
24
Användningsfallsdiagram
Use Case Diagram
För in alla användningsfall i ett användningsfallsdiagram
(Ellipser)
Rita en systemgräns (Rektangel runt samtliga användningsfall)
Lägg in aktörerna utanför systemgränsen
Rita relationer mellan aktörer och användningsfall
Suzana Ramadani
25
Användningsfall - exempel
Användningsfall
Exempel - bank/bankomat
Aktör
1: Ta ut pengar
2: Sätt in pengar
Bankkund
3: Fråga saldo
Syftet med användningsfall är att ge en bild av
vilka användare som finns och vad dessa gör.
Suzana Ramadani
26
Användningsfallsdiagram - exempel
Turnering
Registrera
deltagare
Administratör
Skapa turnering
Turneringsledare
Parti
Spelare A
Spela parti
Spelare B
Suzana Ramadani
27
Användningsfall - exempel
Program för hantering av order och varor
Aktörer
Lagerarbetare
Försäljare
Åkeri
Suzana Ramadani
28
Ex. Informell beskrivning av fall
Försäljaren registrerar ordern under förutsättning att
kunden är kreditvärdig och varorna finns.
Vid slutet av dagen meddelas lagerarbetaren om
ordern vars status uppdateras.
Lagerarbetaren bekräftar att ordern blivit packad och
meddelar åkeriet om att varorna hämtas.
Åkeriet bekräftar att varorna har hämtats och
uppdaterar statusen för ordern.
Suzana Ramadani
29
Ex. användningsfallsdiagram
Registrera order
Ivägskicka
Försäljare
Åkeri
Skriv order
Packa order
Lagerarbetare
Suzana Ramadani
30
Scenario
En beskrivning av en viss väg att ta sig igenom ett
användningsfall, en instans av användningsfallet,
kallas för scenario.
Scenarier beskrivs i interaktionsdiagram, av vilka det
finns två former, sekvensdiagram (sequence
diagram) och samarbetsdiagram (collaboration
diagram).
Interaktionsdiagram används mest i designfasen
Suzana Ramadani
31
Interaktionsdiagram
Ett sekvensdiagram visar detaljerat i vilken
tidsordning objekt interagerar, medan ett
samarbetsdiagram främst ger en övergripande bild
av vilka objekt som samarbetar med varandra.
Suzana Ramadani
32
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
Suzana Ramadani
33
Notation
I interaktionsdiagram förekommer objekt, vilka ritas
som rektanglar.
I rektanglarna skriver man objektets namn
tillsammans med namnet på klassen, på formen
objektnamn: Klassnamn, alternativt enbart
objektnamnet. Normal, understruken stil används.
Suzana Ramadani
34
Notation
I ett sekvensdiagram visas ett objekt som en
rektangel ovanför en streckad linje. Den streckade
linjen kallas objektets livlina (lifeline) och
representerar objektets liv under interaktionen.
Varje meddelande representeras med en pil mellan
livlinorna för två objekt.
Ordningen i vilken meddelandena sänds visas
uppifrån och ner.
Varje meddelande märks med åtminstone
meddelandets namn.
Suzana Ramadani
35
Exempel: sekvensdiagram ”låna en bok”
Suzana Ramadani
36
Beräkna pris
Övning - Sekvensdiagram
Rita ett sekvensdiagram för hur trafikljus och
röd/grön gubbe tänds och släcks vid ett ljusreglerat
övergångsställe.
Röd gubbe lyser.
Fotgängare trycker på knappen för att gå över.
Trafiksignalen med röd, gul och grön lampa
behandlas som ett objekt.
Röd och grön gubbe representeras var för sig.
Suzana Ramadani
38
Sekvensdiagram
Sekvensdiagram för hur trafikljus och röd/grön gubbe tänds och släcks
Suzana Ramadani
39
Objektorienterad design (OOD)
Systemkonstruktion
lägger ut riktlinjer för hur det vidare arbetet under
konstruktionsfasen ska genomföras, och hur koppling till
t.ex. databassystem ska konstrueras
Infrastrukturkonstruktion
t.ex. användargränssnitts utformning, hur permanent
datalagring ska göras, hur kommunikation mellan olika
delar i systemet ska ske, etc.
Detaljkonstruktion
Man är på en ganska detaljerad nivå. Namn på metoder,
metodernas parametrar, deras namn och typ, returvärden
och attribut (datamedlemmar) ska specificeras noggrant.
Iterationer
Suzana Ramadani
40
Litteraturhänvisning
Wiktorin: kap 5
Se caseexempel på sidan 99!
Suzana Ramadani
41