Bolk om Kravspesifisering



Like dokumenter
Presentasjon 1, Requirement engineering process

Kravspesifisering (2): Validering av kravspek er

Agenda. TDT4140: Kravinnhenting. Kravprosessen Forståelsesproblemet Teknikker for innhenting av krav. Den organisatoriske dimensjonen

Kravspesifisering (4): Use Cases. Hvorfor passer use cases til krav? Tema / læremål. Gjettekonkurranse: Hva er det mest fundamentale.

Kravhåndtering. INF1050: Gjennomgang, uke 03

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0>

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Livsløpstesting av IT-systemer

Kravspek: Mål-orientering

Oppsummering. Thomas Lohne Aanes Thomas Amble

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

Problemdefinisjon. Læremål denne uka og de to neste. Problemanalyse og kravspesifikasjon Marakas kap 2-4. Marakas kap 2: So what is the problem?

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Digitalisering av krav - kravhåndtering

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

Krav. Beskriver tjenestene produktet skal håndtere Kravene kan testes

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

INF329: Utvalgte emner i programutviklingsteori Sikkerhetsanalyse av programvare

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Denne ukens tema Del 1: Faginfo + A1; Del 2: kap Velkommen til fag SIF8060 Modellering av informasjonssystemer. Faginfo: Terminologi

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

GJENNOMGANG UKESOPPGAVER 9 TESTING

Systemutvikling (Software Engineering) Professor Alf Inge Wang

Kravspesifisering (3): Forhold til OO Analyse og Design

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

UNIVERSITETET I OSLO

Validering og verifisering. Kirsten Ribu

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI2001 forelesning

Requirement Engineering Process

Jernbaneverkets erfaringer med implementering av RAMS

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.

Forskningsmetoder i informatikk

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

Spesifikasjon av Lag emne

GJENNOMGANG UKESOPPGAVER 3 KRAVHÅNDTERING

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Tom Røise 18. Februar 2009

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Kapittel 7 & 8. Kravspesifikasjoner & Data design. Thomas Tjøstheim og Thomas Edvinsen. 20 September Kapittel 7 & 8 p.1/20

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

UML 1. Use case drevet analyse og design Kirsten Ribu

Hva, Hvorfor og litt om Hvordan

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Kap. 10 Systemutvikling System Engineering

Delt opp i tre strategier: forretningststrategi, organisasjonsstrategi og informasjonstrategi.

Kravspesifisering (5): Use Cases, forts. 1.1 identifiser/oppsummer hver u.c. Tema / læremål. 1. Del opp i detaljerte use cases

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Eksamen INF

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Krav som bør stilles til leverandørens verifikasjon og test

Iden%fisere behov og etablere krav. INF 1500; introduksjon %l design, bruk og interaksjon 13 september 2010

Rapportskriving. En rettledning.

IT Service Management

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Systemutvikling (Software Engineering) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Innhold. Innledning Del 1 En vei mot målet

Iden%fisere behov og etablere krav. INF 1500; introduksjon %l design, bruk og interaksjon 8 september 2014

Distributed object architecture

Klargjøring av begreper

UNIVERSITETET I OSLO

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

EN INNFØRING I BPM

UKE 3 Krav og behov. Plenum IN1050 Julie og Maria

LØSNINGSFORSLAG TIL EKSAMEN I STE6221 Sanntidssystemer

Technical Integration Architecture Teknisk integrasjonsarkitektur

INF 5120 Obligatorisk oppgave Nr 2

Læringsmål for forelesningen

Tom Røise 9. Februar 2010

1. Hvilke type krav angår sikkerhet og pålitelighet?

Gruppenavn. Beskrivelse av arkitektur For Navn på systemet. Versjon <1.0>

INF1500 Introduksjon til design, bruk, interaksjon Kapittel 10 Identifisere behov og etablere krav

Grunnleggende om Evaluering av It-systemer

Tom Røise IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar Klassediagrammet. Klasse

UKE 10 Kravhåndtering. Gruppetime INF1055

2. Beskrivelse av mulige prosjektoppgaver

Grunnleggende testteori. Etter Hans Schaefer

Model Driven Architecture (MDA) Interpretasjon og kritikk

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Skjulte avhengigheter i signalsystemene? - Hvordan unngå at togene kolliderer

Test og kvalitet To gode naboer. Børge Brynlund

Generelle bestemmelser og tekniske krav Side: 1 av 7

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Hvorfor objektorientert programmering?

Konfigurasjonsstyring

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Løsningsforslag til Case. (Analysen)

UNIVERSITETET I OSLO

Introduksjon til fagfeltet

Programvare arkitekturer

Testing av øreproppens passform har aldri vært enklere

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

Training module on. Grant Contract LLP DK-LEONARDO-LMP

Transkript:

Bolk om Kravspesifisering Guttorm Sindre, IDI Læremål Forstå Hva en kravspesifikasjon er, og hva den bør inneholde? Hvorfor god kravspesifikasjon er viktig i IS - utviklingsprosjekter Hvordan man går fram for å lage gode kravspesifikasjoner Praktiske ferdigheter i å Vurdere kvaliteten av kravspesifikasjoner Selv lage gode kravspesifikasjoner Bedømme hvilke uttrykksformer som passer til hva ifbm problemanalyse og kravspek, og hvorfor Men selvsagt ikke perfekt etter dette kurset! Innhold Kravspesifikasjoner, P11 (F13, F14) Innhold Kvalitetsvurdering (validering) Objekter og analyse / krav, P10, P13 (F15) Forskjell på problemanalyse, krav, design Ulike objekter i ulike faser Kravspek og hyllevare, P14 (F16) Spesielle metodiske problemer PORE-metoden Use cases, P12 (F17, F18) Motivasjon for use cases i kravspesifikasjon Hvordan skrive gode (tekstlige) use cases? Denne uka: P11 Utdrag fra Kotonya/Sommerville: Requirements Engineering: Processes and Techniques Del 1: Processes Kap 1: Intro Kap 2: Requirements Processes Kap 3: Requirements Elicitation and Analysis Kap 4: Requirements Validation Kap 5: Requirements Management Del 2: Techniques : navngitte teknikker (SADT, VORD,...) Disposisjon dagens forelesning 1. Hva er et krav? 2. Hvorfor er gode kravspesifikasjoner viktig? 3. FAQs om krav 4. Kravspesifisering i en større utviklingsprosess 5. Kravdokumentet Hva skal en kravspesifikasjon inneholde? 6. Hvordan skrive gode krav? 1. Hva er et krav? Krav sier Hva et system skal gjøre, og hvilke Betingelser/begrensninger det må operere under Ikke hvordan systemets indre skal utformes for å oppnå dette (design/implementasjon) Eksempler (P11, s. 4) 1. Systemet skal behandle info om biblioteksmateriale... 2. Systemet skal tillate brukerne å søke på... 3. Systemets brukergrensesnitt skal være web-basert... 4. Systemet skal støtte minst 20 transaksjoner pr sek. 5. Systemfasilitetene som er tilgjengelige for allmenn bruk skal kunne demonstreres på max 10 min. 1

2. Hvorfor er god kravspesifikasjon viktig? Dårlig kravspek gir flg problemer: Krav uttrykker ikke kundens reelle behov Krav er inkonsistente eller ukomplette Dyrt med senere endringer av vedtatte krav (og kostnaden øker til lenger feilaktige krav er med på lasset) Misforståelser mellom kunder, kravkonsulenter og designere Store tapsprosjekter, hva er grunnen? Dårlig prosjektstyring? Dårlig kravspek? Dårlig programmering? Eksempler på tapsprosjekter TRESS-90: 1,2 mrd kroner e-billetten (1995): 300 mill kroner Statens Vegvesen: 152 mill kroner Ariane-5: 5 mrd kroner Uheldig gjenbruk, kode som hadde virket for Ariane -4 Manglende spesifikasjon av forskjeller NASA s Mars-fiasko (1999), tap ca. 3,6 mrd Orbiter brant opp, Polar Lander kræsjet caused by a missing line of computer code several management mistakes, including inadequate testing before launching Viktigheten av å avsløre feilaktige krav tidlig Anslått at kostnaden ved et feilaktig krav multipliseres med 10 per fase Dvs: Oppdages allerede i kravfasen: kostnad 1 Oppdages etter design: kostnad 10 Oppdages etter ferdig implementasjon: kostnad 100 Oppdages etter bruk hos kunden: kostnad 1000 Eksempel på feilaktig (her inkomplett) krav (s.5)... søke på tittel, forfatter eller ISBN. Hva med CD er? 3. FAQs om krav (1.1) Hva er krav? Formulering av en tjeneste, eller Formulering av en begrensning Ulike kategorier av krav Tjenester på brukernivå Generelle systemegenskaper Spesifikke begrensninger Beregningsregler Begrensninger på utviklingsprosjektet (f.eks budsjett, valg av prog.språk) Dvs. ikke nødvendigvis bare HVA systemet skal gjøre Hva er kravspesifisering (RE)? Aktiviteter for å oppdage, dokumentere og vedlikeholde krav til et system Ved hjelp av systematiske teknikker For å sikre at kravene er komplette, konsistente, relevante etc. Hvor mye koster kravspesifisering (RE)? Varierer utifra type applikasjon, vanskegrad etc. Gjennomsnitt 15% for store systemer 10% for mindre systemer Hva skjer når krav er feil? Systemet blir forsinket, dyrere Kunder og brukere blir misnøyde Systemet kan bli lite pålitelig Høye kostnader til drift, vedlikehold, videreutvikling ~100 ganger så dyrt å fikse krav-feil som prog.-feil Hva er en kravspesifiseringsprosess? Strukturert sett av aktiviteter I en eller annen sekvens el. Iterasjon For å finne krav, analysere og forhandle om krav, spesifisere og validere krav Få organisasjoner har standardiserte prosesser 2

Fins det noen ideell kravspes-prosess? Ingen riktig for alle organisasjoner Avhengig av type prosjekt, involvert personell etc. De fleste standarder (IEEE std 830, US DoD std 2167A) handler mest om dokumentene som skal produseres, ikke om prosessen Hva er en kravspesifikasjon? Dokumentet, i motsetning til kravspesifisering (aktiviteten) Offisiell formulering av kravene, for kunder, brukere og programvareutviklere Her: kravdokumentet (requirements document) Hva er interessenter (stakeholders)? Personer eller organisasjoner som vil bli påvirket av systemet, og har (eller bør ha) innflytelse på kravene direkte eller indirekte Interessenter, automatisert togsignalsystem Operatører som skal være ansvarlige for systemet Togpersonell Ledelse i jernbanen Passasjerer Utstyrsinstallatører, vedlikeholdsingeniører Tilsynsmyndigheter FAQs (forts) Hva er forholdet mellom krav og design? Krav: HVA, design: HVORDAN Ikke alltid enkelt skille Systemet må virke sammen med andre eksisterende systemer Store systemer: Noe overordnet arkitekturdesign nødvendig før man kan gi detaljerte krav for subsystemer Ønske om å gjenbruke deler av eksisterende system Mhp godkjenning fra eksterne myndigheter: behov for å benytte et standard, utprøvet design Dvs., kan ikke alltid gi en helt ren framstilling av HVA og velge et hvilket som helst HVORDAN innen dette FAQs (siste) Hva er kravstyring (Req. Management)? Holde rede på endringer i kravspek Pga endrede behov, omgivelser, forretningsmål, lover og regler Hovedaktiviteter Endringskontroll: formelle prosedyrer for å innhente og gjennomføre endringer Endringseffektanalyse (change impact analysis): hvordan en endring vil påvirke resten av systemet Forutsetter sporbarhet Krav-krav (hvordan de er relatert til hverandre) Pre-krav (hvordan krav er relatert til overordnede forretningsmål, hvem som hadde kravet,...) Post-krav (hvordan krav er relatert til designet) 4. Kravspesifisering i større utv.prosess Systems engineering : utvikling av systemer med Programvare Maskinvare og annet utstyr Organisasjonelle rutiner for hvordan det skal betjenes To hovedkategorier Brukerkonfigurerte systemer: settes sammen av eksisterende programvareprodukter (hyllevare) Skreddersøm: kunde gir krav, kontraktør utvikler system ihht kravene. Kan være ulike divisjoner i samme organisasjon, eller ulike firmaer Etter hvert nå en glidende overgang Skreddersøm, ulike typer systemer Informasjonssystemer Hovedoppgave: prossesere info i DB Standard plattformer Krav programvarekrav (+ organisasjonsrutiner) Embedded systems (innbakte systemer) Hovedoppgave: kontroll av maskinvare Spesiallaget plattform Krav både til maskinvare og programvare Kommando- og kontrollsystemer Kombinasjon av info.sys og emb.sys. Ulike plattformer satt sammen i nettverk Spesifikasjon av maskinvare, programvare og org.rutiner 3

Emergent properties skjulte egenskaper, dvs som ikke kommer til syne før subsystemene er utviklet og satt sammen Pålitelighet Vedlikeholdbarhet Ytelse Anvendbarhet Sikkerhet Trygghet Generisk prosess (Fig 1.2) ]^ W X YZ[ \ g h_ i` jh a]bgc*b g kjhd ief G!H IQJRKLM STUI VLN HO P 354 6 7 894 :;4 < =>? @ ABCBCD E CE F! "# $% & ' ($% )*% +,-. / 0 1/.. 21/ 0 l m n opq prs t u v w v xy z {*v } ~ ƒ ˆ Š Œ Ž 5. Kravdokumentet (1.3) Skal beskrive følgende: Tjenester / funksjoner som systemet skal tilby Begrensninger som systemet må operere under Overordnede egenskaper for systemet (emergent properties) Grensesnitt til andre systemer som dette må integreres med Informasjon om anvendelsesområdet Mange måter å strukturere dette på Standarder fra IEEE, DoD Begrensninger på utviklingsprosessen Organisasjon kan ha egen standard IEEE Standard 830 (1993) 1. Introduksjon 1. Formål med dokumentet 2. Produktets omfang 3. Terminologi 4. Referanser 5. Oversikt over resten 2. Generell beskrivelse 1. Produktperspektiv 2. Produktfunksjoner 3. Brukerkarakteristikker 4. Generelle begrensninger 5. Antagelser og avhengigheter 3. De spesifikke kravene 4. Appendiks 5. Indeks Brukere av kravdokumentet Kunder Gi krav, sjekke om de stemmer med behov Ledelse (av utviklerfirma) Vurderer anbud, planlegger prosjekt Systemutviklere Forstå hva som skal lages Systemtestingeniører Utvikle systemtester Vedlikeholdsingeniører Forstå systemet og relasjoner mellom ulike deler 6. Hvordan skrive gode krav? (intro) De fleste organisasjoner skriver i naturlig språk Forståelig for alle grupper av lesere Stor, generell uttrykkskraft Ulemper Ikke entydig beskrivelse, potensielle misforståelser Vanskelig med automatisert analyse av krav Kan gi falsk følelse av mestring / enkelhet Vanlige problemer Komplekse undersetninger (hvis... ) Sløv, inkonsistent bruk av terminologi Implisitt kunnskap / antagelser 4

Hvordan skrive gode krav? (huskeregler) 1. Krav leses oftere enn de skrives Dvs. lønner seg å bruke mer tid på skriving for å optimalisere lesbarheten 2. Leserne har ulik bakgrunn Ikke regn med at de har samme kunnskap som deg! 3. Det er ikke lett å skrive klart og konsist! Utkast Gjennomgang (review) Forbedring Detaljnivå: avhengig av type krav, kundens forventninger, standarder osv. Hvordan skrive gode krav? (retningslinjer) Definer standard format for kravdokumentasjon Mer oversiktlig Reduserer sannsynligheten for å utelate viktig info Format kan variere noe for ulike krav Skriv enkelt, konsekvent og konsist Korte setninger og avsnitt, lister og tabeller Unngå sjargong, faguttrykk Bruk diagrammer for oversikt Supplementer med andre uttrykksformer Kvantifiser hvis mulig Gjelder særlig ikke-funksjonelle krav (dvs overordnede systemegenskaper) Eksempel på krav Ifbm et prosjekt for å skaffe et nytt ERP system for en større bedrift, fikk man i intervjuer med ulike interessenter typisk fram krav a la følgende: Fra brukere: Denne funksjonen må bli bedre enn i det gamle systemet Fra dataeksperter: Samme data må kun lagres ett sted, dvs. ingen duplisering. Ville dette vært gode eller dårlige krav? Hvorfor? Oppsummering Har gått igjennom Hva krav er Hvor kravspesifisering hører hjemme i en større utviklingssammenheng Hva kravdokumentet bør inneholde Noen retningslinjer for å skrive gode krav Neste gang Validering av krav (Requirements validation) 5 š