kravspesifikasjon

62
16.06.22 Kravspesifikasjon 1 Kravspesifikasjon Kravspesifikasjon: Pensum definert gjennom forelesningene (Powerpoint filer) Mye overlapp med IT-strategi delen Vi har tidligere sett på hvordan organisasjoner kan få maksimalt ut av alle sine IT systemer, her ser vi på kravene til ett system Denne forelesningen kan også fungere som en oppsummering av mye av det vi tidligere har snakket om Referansebok: Del I av Kotonya, G. & Sommerville, I., Requirements Engineering, Wiley, 1997.

Upload: zena-contreras

Post on 02-Jan-2016

60 views

Category:

Documents


2 download

DESCRIPTION

Kravspesifikasjon. Kravspesifikasjon: Pensum definert gjennom forelesningene (Powerpoint filer) Mye overlapp med IT-strategi delen Vi har tidligere sett på hvordan organisasjoner kan få maksimalt ut av alle sine IT systemer, her ser vi på kravene til ett system - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kravspesifikasjon

20.04.23 Kravspesifikasjon 1

Kravspesifikasjon Kravspesifikasjon:

Pensum definert gjennom forelesningene (Powerpoint filer)

Mye overlapp med IT-strategi delen Vi har tidligere sett på hvordan organisasjoner kan få

maksimalt ut av alle sine IT systemer, her ser vi på kravene til ett system

Denne forelesningen kan også fungere som en oppsummering av mye av det vi tidligere har snakket om

Referansebok: Del I av Kotonya, G. & Sommerville, I., Requirements

Engineering, Wiley, 1997.

Page 2: Kravspesifikasjon

20.04.23 Kravspesifikasjon 2

Bakgrunn IT prosjekter har vært plaget av:

Budsjettoverskridelser Tidsoverskridelser Mange fiaskoer Uklarhet om mål er oppnådd

Ofte legger en skylden på uklare kravspesifikasjoner

Med kravspesifikasjonen ønsker en: Bedre styring Fastere former Kontroll over budsjett og tid Systemer som dekker kundens behov

Page 3: Kravspesifikasjon

20.04.23 Kravspesifikasjon 3

Kravspesifikasjon kan være mangt… Et formelt dokument, en juridisk

bindende kontrakt, mellom kunde og utvikler om hva som skal gjøres

En prototype En liste av mål for systemet, samt en

skisse til løsning Kan starte med en vag ide

”hei, vi har et problem med å lage en ordreplan”

Page 4: Kravspesifikasjon

20.04.23 Kravspesifikasjon 4

Her skal vi I stor grad se på mer formell

kravspesifikasjon Kunnskap om dette er viktig da

enkelte organisasjoner krever dette Men, vi skal også se på andre måter

å lage en kravspesifikasjon på Kravspesifikasjonen blir viktig for

store systemer

Page 5: Kravspesifikasjon

20.04.23 Kravspesifikasjon 5

Forskjellige typer av krav kan inngå:

Generelle

Funksjonelle

Krav til implementasj

on

Effektivitet

Brukervennlighet

Page 6: Kravspesifikasjon

20.04.23 Kravspesifikasjon 6

Problemer Upresise mål Kravspesifikasjonen beskriver ikke brukernes virkelige

behov Spesifikasjonene er inkonsistente og ikke komplette Spesifikasjonene er for detaljerte (låser utviklerne),

mange punkter, svak overordnet forståelse Misforståelser mellom bruker, de som utvikler

spesifikasjonene og utviklerne Kravspesifikasjonen forutsetter en stabil verden, det har

vi sjelden Kravspesifikasjonen tar ikke hensyn til at visse mål er

vanskelig å oppnå Hva når de egentlige kravene endres over tid?

Page 7: Kravspesifikasjon

20.04.23 Kravspesifikasjon 7

Kan føre til… Forsinket leveranse Fordyret leveranse Behov for store endringer etter installasjon Systemet blir benyttet galt, lite eller ikke i det

hele tatt Systemet kan være upålitelig Kritiske brukere Meget store vedlikeholdskostnader Dårlig tilpassning til andre systemer Systemet blir fort avleggs Indirekte kostnader (jobben blir ikke gjort)

Page 8: Kravspesifikasjon

20.04.23 Kravspesifikasjon 8

Ofte Store kostnader til utvikling og tilpassning Systemet blir tatt i bruk Det virker Men uklart om en har oppnådd noe F.eks. (fra en vit. artikkel):

It is therefore very unlikely that any ERP implementation can simply be asserted to be a success or a failure

Men det er selvfølgelig systemer som er en åpenbar suksess eller en åpenbar fiasko

Page 9: Kravspesifikasjon

20.04.23 Kravspesifikasjon 9

Kravspesifikasjonsprosessen

Hvordan man håper at denne skal gå!

Page 10: Kravspesifikasjon

20.04.23 Kravspesifikasjon 10

Aktiviteter

Page 11: Kravspesifikasjon

20.04.23 Kravspesifikasjon 11

Kravspesifikasjonsdokumentet inneholder:

Page 12: Kravspesifikasjon

20.04.23 Kravspesifikasjon 12

IEEE/ANSI 830-1993 (standard): Introduction

Purpose Scope of the product Definitions References Overview of document

General description Product perspective Product functions User characteristics General constraints Assumptions and dependencies

Specific requirements functional, non-functional, interface, performance, database and

network requirements, etc. Index

Page 13: Kravspesifikasjon

20.04.23 Kravspesifikasjon 13

Hvem bruker kravspes. dokumentet?

Page 14: Kravspesifikasjon

20.04.23 Kravspesifikasjon 14

Guidelines:

Page 15: Kravspesifikasjon

20.04.23 Kravspesifikasjon 15

Prosessen

Page 16: Kravspesifikasjon

20.04.23 Kravspesifikasjon 16

Data

Page 17: Kravspesifikasjon

20.04.23 Kravspesifikasjon 17

Aktivitetsmodell

elicitation – å få fram, synliggjøre

Page 18: Kravspesifikasjon

20.04.23 Kravspesifikasjon 18

Tradisjonell modell

Waterfall model

Page 19: Kravspesifikasjon

20.04.23 Kravspesifikasjon 19

Mer moderne

Page 20: Kravspesifikasjon

20.04.23 Kravspesifikasjon 20

Utvikling, først når vi vet hva vi skal lage:

Utvikling av systemet (detaljspesifikasjon, programmering…)

Denne fasen er lite formalisert, åpen, med mange usikkerhetet

Denne fasen bør være formalisert, entydig og sikker

Page 21: Kravspesifikasjon

20.04.23 Kravspesifikasjon 21

Hvem er involvert?

Page 22: Kravspesifikasjon

20.04.23 Kravspesifikasjon 22

Roller

Page 23: Kravspesifikasjon

20.04.23 Kravspesifikasjon 23

Verktøy for å understøtte kravspesifikasjonsprosessen:

Page 24: Kravspesifikasjon

20.04.23 Kravspesifikasjon 24

CMM – Capability Maturity Model

SEI, Software Engineering Institute i Pittsburgh bruker disse 5 nivåene.

Page 25: Kravspesifikasjon

20.04.23 Kravspesifikasjon 25

Nivåer av utvikling mht softwareutvikling: Initial:

Udisiplinerte prosesser, individer bestemmer hvordan ting skal gjøres og hvilke teknikker som skal brukes

Repeatable level: Grunnleggende prosesser for budsjettering og

planlegging av utviklingsprosesser er beskrevet og kan repeteres

Defined level: Dokumentasjon, standardisering

Managed level: Kvalitetskontroll

Optimizing level: Kontinuerlig prosess for forbedring, objektive målinger

Page 26: Kravspesifikasjon

20.04.23 Kravspesifikasjon 26

”in” å karakterisere organisasjoner på denne måten

Mest anvendelig for store softwarehus

Har mange prosjekter Ofte store prosjekter Mange prosjektdeltagere Formalisering er nødvendig for å få

oversikt og kontroll

Page 27: Kravspesifikasjon

Problemer med modellen Mange softwareutviklere bruker en

ad hoc modell (nivå 1) med stor suksess

Eksempler: Microsoft, Google, Facebook, Apple

Men dette kan sies å falle innenfor kreativ softwareutvikling, mens “maturity” modellen kanskje er ment for mer rutinepreget virksomhet?

Page 28: Kravspesifikasjon

20.04.23 Kravspesifikasjon 28

Forenklet modell for kravspesifikasjon

Page 29: Kravspesifikasjon

20.04.23 Kravspesifikasjon 29

Best practices

Page 30: Kravspesifikasjon

20.04.23 Kravspesifikasjon 30

Requirement Elicitation

Page 31: Kravspesifikasjon

20.04.23 Kravspesifikasjon 31

Fire dimensjoner Application domain understanding

Forstå institusjonen, området der systemet skal anvendes. Hvem er brukerne, hva er brukernes bakgrunn. Hvilke holdninger eksisterer…

Problem understanding Hva er målene for systemet, hvilke problemer skal vi

løse… Business context

Systemet skal (som oftest) bidra til utvikling av organisasjonen, hvordan passer systemet inn med andre, med overordnede strategier

Stakeholder needs and constraints Hva er deres motivasjon, hva ønsker de å oppnå

Page 32: Kravspesifikasjon

20.04.23 Kravspesifikasjon 32

Problemer Application domain understanding

Informasjon om dette er ikke samlet på ett sted, mange kilder, også muntlige, eksplisitt og implisitt

Problem understanding De har et problem, men akkurat hva dette går ut på

og hvordan det skal løses må vi ofte finne ut selv. De vi skal arbeide med er ofte opptatt…

Business context Hvordan fungerer organisasjonen, er overordnede

mål og strategier uttalte? Stakeholder needs and constraints

Stakeholders kan ha sine (ofte gode) personlige motivasjoner i et prosjekt, hva er disse?

Page 33: Kravspesifikasjon

20.04.23 Kravspesifikasjon 33

”Elicitation” og analyse

Page 34: Kravspesifikasjon

20.04.23 Kravspesifikasjon 34

4 kritiske aktiviteter: Mål

Beskriv målene for systemet, oversikt over problemet, hvorfor et nytt system kan være nødvendig, begrensninger som budsjett…

Bakgrunnskunnskap Organisasjon, anvendelsesområde, andre systemer…

Organisering Organiser data og informasjon samlet inn til nå,

prioriter mål Brukerkrav

Hva er brukernes krav til det nye systemet

Page 35: Kravspesifikasjon

20.04.23 Kravspesifikasjon 35

Mål

Skal fortelle oss hva vi skal oppnå, hensikten (”rationale”)

Disse kan brukes når vi må ta avgjørelser underveis (f.eks. for å velge mellom brukervennlighet og effektivitet)

Målene blir viktige når systemet skal evalueres

Page 36: Kravspesifikasjon

20.04.23 Kravspesifikasjon 36

Oversikt

Page 37: Kravspesifikasjon

20.04.23 Kravspesifikasjon 37

Analyse /forhandlinger

Page 38: Kravspesifikasjon

20.04.23 Kravspesifikasjon 38

Teknikker

Samle bakgrunnsstoff (strategiplaner, årsrapporter….)

Intervjuer Scenarioer ”Soft system methodology” (SSM)

Syv faser (se neste slide)

Page 39: Kravspesifikasjon

20.04.23 Kravspesifikasjon 39

SSM – 7 faser:

Page 40: Kravspesifikasjon

20.04.23 Kravspesifikasjon 40

Page 41: Kravspesifikasjon

20.04.23 Kravspesifikasjon 41

Etnografisk undersøkelse

Observasjon av brukerne i arbeid, intervjuer, video, ”de-briefing” hvor vi trekker ut verdifull informasjon

Page 42: Kravspesifikasjon

20.04.23 Kravspesifikasjon 42

Prototyping Alternativer:

Bruk og kast Evolusjonær prototyping (mer aktuell nå med bedre

verktøy) Mange fordeler:

Kan vise hvordan systemet vil bli, inklusiv ”look and feel” Håndfast Lettere for brukerne å forholde seg til en prototype enn

en spesifikasjon, mer og bedre tilbakemeldinger Hurtigere utvikling Understøtter utvikling i faser Gir utviklerne tidlige kunnskaper om metoder, tidsbruk

m.m.

Page 43: Kravspesifikasjon

20.04.23 Kravspesifikasjon 43

Prototype Av hele systemet, prototypen kan da bli

systemet (ref. Oshaug) Av deler av systemet:

Brukergrensesnitt Komplekse tekniske løsinger Tidsaspekt

Det er smart å konsentrere seg om ukjente deler først.

Prototyper kan hjelpe oss her.

Page 44: Kravspesifikasjon

20.04.23 Kravspesifikasjon 44

Analyse av kravspesifikasjon, sjekkliste

Page 45: Kravspesifikasjon

20.04.23 Kravspesifikasjon 45

Validering

Sjekker for: Kompletthet Konsistens Nøyaktighet

Avsluttende fase i arbeidet

Page 46: Kravspesifikasjon

20.04.23 Kravspesifikasjon 46

Input & Output

Page 47: Kravspesifikasjon

20.04.23 Kravspesifikasjon 47

Reviews

Reviews (gjennomgang), teknikk for å verifisere kravspesifikasjonen

Page 48: Kravspesifikasjon

20.04.23 Kravspesifikasjon 48

Sjekkliste

Page 49: Kravspesifikasjon

20.04.23 Kravspesifikasjon 49

Prototyping Validering gjennom prototyping:

Velg testpersoner Utvikle testscenario Utfør scenario

Mange krav kan best testes gjennom prototype:

Opplæring Brukervennlighet Effektivitet (delvis)

Page 50: Kravspesifikasjon

20.04.23 Kravspesifikasjon 50

Prosess

Page 51: Kravspesifikasjon

20.04.23 Kravspesifikasjon 51

Modellvalidering

Vi kan ha detaljerte modeller av systemet, for eksempel for dataflyt Er disse i orden? Inkluderer de all relevant

informasjon? Konfliktfritt? Er de konsistent med andre modeller? Beskriver de brukernes behov?

Page 52: Kravspesifikasjon

20.04.23 Kravspesifikasjon 52

Testing Kan kravene testes?

Kan vi gjøre en eller flere tester i det ferdige systemet for å vise at kravet er oppfylt

Eksempel: Systemet skal være lett å lære? 95% av brukerne skal kunne benytte

systemet etter 10 minutter? Hvilket krav er testbart?

Page 53: Kravspesifikasjon

20.04.23 Kravspesifikasjon 53

Requirements management

Her er vi opptatt av: Stabile og dynamiske krav Identifisering av krav, lagring Versjonskontroll Sporing (traceability)

Page 54: Kravspesifikasjon

20.04.23 Kravspesifikasjon 54

Behovet for endringer

Page 55: Kravspesifikasjon

20.04.23 Kravspesifikasjon 55

Identifisering av krav

Page 56: Kravspesifikasjon

20.04.23 Kravspesifikasjon 56

Lagringsstruktur for krav

Page 57: Kravspesifikasjon

20.04.23 Kravspesifikasjon 57

Versjonskontroll (faser)

Page 58: Kravspesifikasjon

20.04.23 Kravspesifikasjon 58

Versjonskontroll (prosess)

Page 59: Kravspesifikasjon

20.04.23 Kravspesifikasjon 59

Sporing

Vi ønsker å kunne spore endringer begge veier.

Hvilke underordnede krav kan bli berørt av endringen i dette kravet?

I hvilke overordnede krav inngår kravet som er endret?

Page 60: Kravspesifikasjon

20.04.23 Kravspesifikasjon 60

Typer av sporing

Page 61: Kravspesifikasjon

20.04.23 Kravspesifikasjon 61

Oppsummering Følgende må være på plass:

Det er viktig å vite målsettingene for systemet Vi må ha en god og utarbeide idé av

systemfunksjonaliteten Brukergruppene må være kjent Vi må ha valgt metodikk Vi må vite hvordan systemet skal

implementeres Koplinger til andre systemer må være kjent Installasjonsfasen må være beskrevet

Før vi starter utviklingen av systemet

Page 62: Kravspesifikasjon

20.04.23 Kravspesifikasjon 62

Små systemer – store systemer Mange av de konkrete eksemplene vi har brukt

tidligere har vært for små systemer Små systemer har mange fordeler:

Oversiktlige Begrenset arbeidsmengde Få brukere, få installasjoner

Da kan vi få en betydelig reduksjon av arbeidet med:

Kravspesifikasjon Testing Opplæring

Med store systemer blir alt annerledes, spesielt om de utvikles under en detaljert kravspesifikasjon