Transcript ppt
Udledning af krav samt use case
modellering
Kravs workflow
Use case modellering
Avancerede
Kravs workflow
Tyngden i
inception og
elaboration
13-04-2015
Lektion 5
2
Hvad er kravspecifikation?
Kravspecifikation går ud på at beskrive, hvad et
systemet skal gøre for brugeren
Kravspecifikation har flere formål, hvilket stiller
forskellig krav til beskrivelsesform og
detaljeringsniveau:
◦ Beslutningsgrundlag for ledelsen
◦ Kontraktgrundlag mellem virksomhed og systemudvikler
◦ Designgrundlag for systemudvikler
13-04-2015
Lektion 5
3
Kravspecifikation - metamodel
13-04-2015
Lektion 5
4
UP kravs workflow
13-04-2015
Lektion 5
5
Udvidelse af UP’s kravs workflow
13-04-2015
Lektion 5
6
Formulering af krav (1)
UML indeholder ingen anbefalinger til hvordan kravene
skal beskrives
[Arlow og flere andre] anbefaler ”feature stile”:
◦ <id><Systemet>skal<funktion>
Eksempler:
◦ K1-3: Systemet skal kunne registrere og udskrive oplysninger om
kunder, varer og ordre
◦ K4: Systemet skal kunne overvåge, at varer leveres som aftalt
◦ K5: Systemet skal kunne håndtere betaling
◦ K6: Systemet kunne understøtte såvel bestilling fra web’en som
intern i forretningen
◦ K7: Der skal kunne søges efter forskellige kriterier
13-04-2015
Lektion 5
7
Formulering af krav (2)
Eksempler fortsat
◦ K15: Svar tiden ved afgivelse af en ordre skal være under 2
sek.
◦ K16: Vareoplysninger og prislister skal altid være
tilgængelig, ligesom en ordre altid skal kunne registreres,
selvom serveren går ned
◦ K17: Der skal være sikkerhed for, at uvedkommende ikke
får adgang til data
◦ K18: Systemet skal afvikles i klient-server arkitektur
13-04-2015
Lektion 5
8
Organisering af krav
13-04-2015
Lektion 5
9
Prioritering af krav (MoSCoW)
13-04-2015
Lektion 5
10
Hvordan finder vi krav?
Brugerens opfattelse af den virkelighed det kommende
system skal understøtte, kan udledes ved:
◦ Interviews
Forestil dig ikke en løsning
Stil kontekst frie spørgsmål
Lyt
Tro ikke, du kender svaret
Ha’ tålmodighed
◦ Spørgeskema
◦ Workshop
Hent ideer fra prototyper og eksisterende systemer!
13-04-2015
Lektion 5
11
Use case modellering
Aktører
Use case
13-04-2015
Lektion 5
12
Find aktører og use cases
13-04-2015
Lektion 5
13
Hvad er en aktør?
En aktør er en rolle, som en ekstern
entitet (person, andet system osv..)
indtager ved direkte interaktion med
systemet:
◦ en bruger rolle f.eks. ekspedient, sælger,
lagermedarbejder
◦ andre it-systemer
◦ et apparat f.eks. en temperaturføler
Primære aktører får deres mål opfyldt gennem
use casen
13-04-2015
Lektion 5
14
Find aktører
Tag udgangspunkt i hvem/hvad bruger systemet og
hvilken rolle spiller de? - Generaliser
Brug en tids aktør til tidsafhængige funktioner
Aktørerne navngives, og de beskrives ud fra et
forretningsperspektiv
Eksempel:
◦ Navn: Ekspedient
◦ Opgave: Står for at modtage og registrere ordrer fra
kunder
13-04-2015
Lektion 5
15
Hvad er en use case?
En use case er en specifikation af en
handlingssekvens mellem en ekstern aktør
og systemet
Omfatter et normalt forløb, alternative
forløb samt fejlscenarier
Use cases fortæller en historie om,
hvordan en aktør bruger et system med
henblik på at opfylde et mål, og illustrerer
de funktionelle krav gennem den historie,
der fortælles
Startes altid af en aktør
Er altid skrevet ud fra aktørens syn (view)
13-04-2015
Lektion 5
16
Find use cases
Se på aktører og kravslisten
Fokus i afgrænsningen af use cases skal være, at
use casen skal give aktøren en observerbar
nytteværdi (kaffe pause testen: fortjener aktøren
at holde kaffepause efter use casen er afsluttet?)
En hyppig fejl er at use cases fastlægges på et
for lavt niveau, fx er Udskriv bekræftelse som
regel en del af noget andet
Triviel funktionalitet kan samles i en CRUD use
case (Create, Read, Updata, Delete) – idet der
ellers vil være mange uinteressante use cases
med et enkelt trin
13-04-2015
Lektion 5
17
Gode og dårlige use cases
Kriterier:
Afsluttede; målet er nået; kaffepause
Små beslægtede opgaver bundtes i én beskrivelse (CRUD)
Gode eller dårlige?
◦ Administration af bøger
◦ Registrer bogens titel
◦ Udlån af bog
◦ Ret reservation
◦ Slet reservation
Kontrol: Er alle opgaver med?
Er alle aktørernes
opgaver dækket?
Er kritiske opgaver
med?
Kan alt data
registreres, ændres,
slettes (CRUD)?
13-04-2015
Lektion 5
18
Use case diagrammet
13-04-2015
Lektion 5
19
Ordforklaringer
13-04-2015
Lektion 5
20
Øvelse: Find use cases
I et ordrestyringssystem er der følgende
aktører:
◦ Ekspedient der har kontakten til kunderne og
tager imod ordre
◦ Lagermedarbejder der sørger for pakning og
afsendelse af varer, samt bestilling og
modtagelse af nye varer
◦ Bogholder der sørger for modtagelse af
betalinger og håndtering af restancer
Kom med forslag til use cases
13-04-2015
Lektion 5
21
UP aktivitet: Detaljer en use case
13-04-2015
Lektion 5
22
Use case specifikationen
13-04-2015
Lektion 5
23
Forgreninger ved brug af ”if”
13-04-2015
Lektion 5
24
Repetitioner ved brug af ”for”
13-04-2015
Lektion 5
25
Repetitioner ved brug af ”while”
13-04-2015
Lektion 5
26
Alternative flows
13-04-2015
Lektion 5
27
Alternative flows relateret til step i
normalforløb
13-04-2015
Lektion 5
28
Alternative flows, der kan starte
når som helst
13-04-2015
Lektion 5
29
Øvelse: Specifikation af use case
I skal nu specificere use casen: Afgiv ordre,
web i forbindelse med bestilling af
blomster
Lad jer fx inspirere af interflora
13-04-2015
Lektion 5
30
Sporbarhedsmatrice
Krav
K1
K2
K3
……
UC1
x
x
UC2
Use case
UC3
UC4…
x
x
13-04-2015
Lektion 5
31
Use cases i det videre forløb
Udgangspunkt for af finde systemets klasser og
deres relationer samt modellering af systemets
interaktion
Udgangspunkt for formulering af testcases til
accepttest
◦ Accepttesten kan således planlægges allerede når use
casene er formuleret, selvom den først udføres efter
systemet er færdig kodet
Danner sammen med skærmbilleder udgangspunkt
for brugervejledning (er en slags vejledning i sig
selv)
13-04-2015
Lektion 5
32
Avanceret use case modellering
Generalisering
Include
Extend
13-04-2015
Lektion 5
33
Aktør generalisering
13-04-2015
Lektion 5
34
Use case generalisering
Generaliseringsformer:
◦ Arv. Forældrenes egenskaber nedarves
uændret til børnene.
◦ Tilføjelse. Nye funktioner ud over forældrenes
tilføjes
◦ Overskrivning. Forældrenes egenskaber
overskrives (o)
13-04-2015
Lektion 5
35
Eksempel: Use case generalisering
13-04-2015
Lektion 5
36
Forældre use casen: FindProduct
13-04-2015
Lektion 5
37
Børne use casen: FindBook
13-04-2015
Lektion 5
38
”Include” relationen
”Include” relationen bruges til at modellere
repeterende funktionalitet på tværs af forskellige
use cases
Formål: Reduktion af redundans, så man ikke skal
skrive de samme ting mange gange
Det, der er fælles, modelleres i en ”inclusion” use
case, som inkluderes i ”base” use cases.
Vises i use case diagrammet ved en ”include”
relation (stiplet pil fra ”base” use cases til
”inclusion” use casen med teksten ”include”)
”Include” samt navnet på ”inclusion” use casen
skrives i det relevante step i specifikationen på
´”base” use casene.
En use case er kun komplet, hvis alle use cases,
der inkluderes er medtaget.
13-04-2015
Lektion 5
39
”Include” relationen visualiseret
13-04-2015
Lektion 5
40
Eksempler på specifikation af
”base” use cases med ”include”
13-04-2015
Lektion 5
41
Eksempel på specifikation af
”inclusion” use casen
13-04-2015
Lektion 5
42
”Extend” relationen
”Extend” relationen bruges til at udvide
funktionaliteten i en eksisterende use case
med noget mere
Vises i use case diagrammet ved en ”extend”
relation og et ”extension” point, der relateres
til den use case, der skal inkluderes, dvs.
”extension use casen”
I specifikationen af den use case der udvides,
”base” use casen, inkluderes en betingelse og
en reference til ”extension” use casen ved et
extension punkt
”Base” use casen er komplet i sig selv
13-04-2015
Lektion 5
43
”Extend” relationen visualiseret
13-04-2015
Lektion 5
44
Eksempel på specifikation af ”base”
use case med ”extension points”
13-04-2015
Lektion 5
45
Eksempel på specifikation af en
”extension” use case
13-04-2015
Lektion 5
46
IssueFine (multiple segments)
13-04-2015
Lektion 5
47
Betinget udvidelse
13-04-2015
Lektion 5
48
Eksempel: Specifikation af betinget
”extension” use case
13-04-2015
Lektion 5
49
Undgå funktionel dekomposition
13-04-2015
Lektion 5
50
Øvelse: Avancerede strukturer
I ordre systemet er følgende use cases
identificeret:
◦ Søg vare
◦ Afgiv ordre
Hvordan kan de relateres?
I ordre systemet kan endvidere betales på
flere forskellige måder
Kan man bruger strukturer til håndtering
af det?
13-04-2015
Lektion 5
51
Opgave: Restaurant Godbid
Kom med forslag til use cases
Specificer use casen: Afgiv bestilling
13-04-2015
Lektion 5
52