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