Arne Maus, Ifi. Jo Hannay (Ifi&Simula), Ian Sommerville m. fl. for lån av gamle foiler

Like dokumenter
Arne Maus, Ifi. Domenemodell

Kravhåndtering. Erik Arisholm. Simula Research Laboratory & Institutt for informatikk

Kravhåndtering. INF1050: Gjennomgang, uke 03

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

UKE 10 Kravhåndtering. Gruppetime INF1055

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Presentasjon 1, Requirement engineering process

Tom Røise 9. Februar 2010

INF1050 Systemutvikling,

INF1050 Systemutvikling,

Kravhåndtering. Plan. Generelt om krav Funksjonelle krav Ikke-funksjonelle krav Domenekrav Kravspesifikasjoner Kravhåndteringsprosessen Quiz 31/01/17

INF1050/ / Dag Sjøberg Slide 1

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

INF1050 Systemutvikling

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

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

Kravspesifikasjon. Kravspesifikasjon. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Hva skal systemet gjøre? Hvem og hva påvirker krav?

UNIVERSITETET I OSLO

Modellering av krav. INF1050: Systemutvikling 11. februar Universitetslektor Yngve Lindsjørn

UNIVERSITETET I OSLO

Grunnleggende om Evaluering av It-systemer

GJENNOMGANG UKESOPPGAVER 9 TESTING

Kravhåndtering. Plan. INF1030: Systemer, krav og konsekvenser

UKE 11 UML modellering og use case. Gruppetime INF1055

Hvordan evaluerer man kvaliteten på et IT-system?

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

Design, bruk, interaksjon

Kravspesifikasjon. Erik Arisholm. Simula Research Laboratory. Institutt for Informatikk. INF1050-krav-1

Utvikling fra skallet og inn

Use Case-modellering. INF1050: Gjennomgang, uke 04

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12

Innhold. Innledning Del 1 En vei mot målet

Distributed object architecture

GJENNOMGANG UKESOPPGAVER 3 KRAVHÅNDTERING

Modellering av krav. INF1050: Systemutvikling 07. februar Førstelektor Yngve Lindsjørn

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

Kravspesifikasjon med. UML diagrammer. systemutvikling. Dokumentasjon av systemets krav, arkitektur, design og implementasjon

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

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

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

AlgDat 12. Forelesning 2. Gunnar Misund

Systemutviklingssprosesser, prosjektarbeid Forelesning 3 - INF1050 Systemutvikling 1. feb.2010

UML-Unified Modeling Language

Kravspesifikasjon med. Erik Arisholm

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

UNIVERSITETET I OSLO

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

Digitalisering av krav - kravhåndtering

Forslag til løsning. Oppgave 1

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

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Tom Røise 18. Februar 2009

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Kap. 10 Systemutvikling System Engineering

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

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

Konfigurasjonsstyring

Use case drevet design med UML

Systemutvikling. Universitetet i Oslo, Institutt for informatikk Vår 2017

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

Technical Integration Architecture Teknisk integrasjonsarkitektur

Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu

IN& &april&2019. Modellering*av*krav. Yngve&Lindsjørn. IN1030&'>Systemutvikling'>&Modellering&av&krav 1

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

Arne Maus, Ifi. med takk til Gerhard Skagstein(Ifi), Rune Steinberg, (Visma), Jo Hannay (Ifi), Ian Sommerville m. fl. for lån av gamle foiler

A Study of Industrial, Component-Based Development, Ericsson

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Datainnsamling. Gruppetime 15. Februar Lone Lægreid

Forfattere: Daníelsdóttir, Drífa Meland, Maiken Mijalkovic, Biljana Svendsen, Simen H. Gruppelærer: Zarei, Amir Hossein. 5.

Utvikling med Genova. Agenda. Hvem er vi? Kursets struktur og forelesere. Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

Utvikling med Genova. Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

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

Kontrakter. INF1050: Gjennomgang, uke 12

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

Prosjektoppgave INF3290 høsten 2016

Sist oppdatert: 18.november Øvelsesoppgaver til INF1500

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

Prosjektoppgave INF3290 høsten 2017

Forelesning 1: Innledning

INF5120 Modellbasert systemutvikling

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

Oppsummering. Thomas Lohne Aanes Thomas Amble

UML 1. Use case drevet analyse og design Kirsten Ribu

Prosjektoppgave INF3290 høsten 2018

Oppsummering. Prosjektdelen

Velkommen. Torsdag 24 januar 2019 time 1. Yngve og Jo. IN 1030 Systemer, krav og konsekvenser

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

Brukersentert design Kapittel 3 i Shneiderman

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

Prøveeksamen INF1050: Gjennomgang, uke 15

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI 3001 Våren Prosjektstyring mm Arild Jansen AFIN

Smidig metodikk, erfaringer fra NAV Fagportal

INF 1050 OBLIGATORISK OPPGAVE 1

Transkript:

Kravhåndtering Arne Maus, Ifi med takk til Erik Arisholm (Ifi&Simula), Gerhard Skagstein(Ifi), Jo Hannay (Ifi&Simula), Ian Sommerville m. fl. for lån av gamle foiler 1

Kravhåndtering Kravhåndtering (innsamling, analyse og en mer eller mindre presis spesifikasjon av kravene til et system) er en sentral del i de aller fleste utviklingsprosjekter, uavhengig av hvilken utviklingsprosess som brukes Engelsk: Requirements Engineering i Kostnadene ved å rette feil i kravene etter systemleveranse er svært høy kanskje 100 ganger g mer enn kostnadene ved å rette en kodefeil Standish-rapporten: Mangelfull kravhåndtering var rapportert som viktigste årsak (37 %) til at utviklingsprosjekter fikk problemer Endringer i krav er uungåelig åli etter hvert som vår forståelse av kravene bedres etter hvert som utviklingen skrider fram etter at systemet er levert (vedlikehold, evolusjon) 2

Kravenes rolle i systemutviklingen De fleste kravspesikasjonsmetoder antar at hoveddelen av kravene bør identifiseres, spesifiseres og valideres (godkjennes) så godt som mulig før selve utviklingen (design, koding, testing) starter. Lettvektsprosesser (agile methods) forsøker å integrere kravhåndteringen i selve utviklingsløpet. Men kravene må fortsatt identifiseres, ifi analyseres, prioriteres, i osv. 3

Noen definisjoner Domenemodell Modell (ofte UML) over den delen av virkeligheten vi skal lage system for. Interessent - en eller annen som har en direkte eller indirekte interesse av at systemet utvikles, og som derfor påvirker kravene til et system. Engelsk: Stakeholder Interessenter kan være oppdragsgiver, kunder, lovgivere, brukergrupper, systemeiere Funksjonelle krav - beskriver oppførselen (funksjonene) til systemet Engelsk : System services, functional requirements Ikke-funksjonelle nelle krav - leggerer føringer på oppførselen i form av krav til ytelse, sikkerhet, brukervennlighet, kostnader, tidsrammer, interoperabilitet, osv Engelsk : System constraints, non-functional requirements 4

Kravhåndtering er en systematisk prosess Forstudie/målanalyse l Kost/nytte, risikoanalyser, hvorfor skal vi lage et system? Kravinnsamling og -analyse hva ønsker/trenger interessentene? Prioritering av kravene. Spesifiser kravene utgangspunkt for kontrakt mellom kunde og leverandør utgangspunkt for kostnadsestimater ti t utgangspunkt for design, implementasjon og testing Valider spesifikasjonen definerer kravspesifikasjonen det interessentene faktisk vil ha? 5

Overordnet kravhåndteringsprosess gp Basert på Sommerville: Software Engineering" s143 6

R equirem ents D ocum ent Table of Contents 1. Project Preliminaries 1.1 Purpose and Scope of the Product 1.2 Business Context 1.3 Stakeholders 1.4 Ideas for Solutions 1.5 Docum ent Overview 2. System Services 2.1 The Scope of the System 2.2 Function Requirem ents 2.3 Data Requirements 3. System Constraints 3.1 Interface Req uirem ents 3.2 Perform ance Requirem ents 3.3 Security Requirem ents 3.4 Operational Requirem ents 3.5 Political and Legal R equirem ents 3.6 Other C onst rai n t s 4. Project M atters 4.1 Open Issues 4.2 Prelim inary Schedule 4.3 Prelim inary B udget Appendices Glossary Business D ocum ents and Form s R eferences Maciaszek s.104 7

Fase 1: Forstudie/målanalyse Engelsk: Inception, solution envisioning Idéfasen (Inception) i Unified Process (RUP), Behovsfasen i PS2000 Analyser nåsituasjonen, ønsket situasjon og mulige tiltak for å oppnå ønsket situasjon Hvilke (del)mål kan oppnås ved å lage et nytt IT-system? Hvem er interessentene? Hva er kost/nytte for forskjellige delmål? Risikomomenter? Kan systemet integreres med andre systemer som allerede er i bruk? Prosjektmandat: Ja, vi skal lage et system for å oppnå følgende mål 8

Fase 2: Kravinnsamling og -analyse Engelsk: Requirements Elicitation, it ti requirement collection, capture or discovery Identifiser interessentenes krav, prioriter og løs konflikter mellom krav, valider kravene Omfatter mange av de samme aktivitetene som i foranalysen, bortsett fra at man nå typisk har et prosjektmandat og derfor innhenter flere fakta og systematiserer dem. Alle interessenter bør involveres! {Husk: Interessent = en eller annen som har en direkte eller indirekte interesse av at systemet utvikles} 9

Fase 3: Kravspesifikasjon Spesifiser kravene mest mulig presist, i et passende format, for eksempel ved bruk av modelleringsnotasjoner som Unified Modeling Language (UML). Detaljer kommer i senere forelesninger! Kravpesifikasjonen er et utgangspunkt for å analysere hvordan systemet skal oppfylle kravene, men omfatter ikke implementasjonsdetaljer Presis spesifikasjon av omfanget på systemet UML: Aktører (actors) og bruksmønstre (use cases) Leveransen fra en spesifikasjonsaktivitet er et utvidet kravdokument, som vi gjerne kaller et kravspesifikasjonsdokument (eller en kravspec) Spesielt: Grensesnitt-krav dvs. krav til programvare som bare skal snakke med andre programmer 10

Fase 4: Validering av kravspesifikasjonen Forståelighet forstår interessentene kravene? For kompliserte kan kravet deles opp mindre bestanddeler? Tvetydighet har kravet flere mulige tolkinger? Konsistens inneholder kravene selvmotsigelser? Verifiserbarhet (testbarhet) klarer du å teste om kravene er oppfylt? Hvis ikke, så er det ikke formulert presist nok Sporbarhet hva/hvem er kilden til kravet? Viktig når endringer må gjøres eller når man må prioritere vekk krav Endringsevne hva er konsekvensene av å endre et krav? Påvirker det andre krav? Kompletthet mangler det krav? Unødvendige krav ligger kravene innenfor prosjektmandatet? Realisme er kravene realistiske, gitt tilgjengelig ressurser? For tidlig design er kravet et skjult designelement/føringer på implementasjonen? 11

Funksjonelle og ikke-funksjonelle krav 12

Ikke-funksjonelle krav eksempler (1) Brukervennlighet er systemet lett å lære/bruke? Brukervennlighet er avhengig av krav til opplæring og varierer for forskjellige brukergrupper Vurder forskjellige måter som brukervennlighet kan måles på: Hvor lang tid tar det å lære systemet for nybegynnere? Hvor mange brukerfeil oppstår med erfarne brukere? Hvor ofte får brukerne meningsløse tilbakemeldinger? Hvor mange valg har hjelpefunksjoner? Responstid: Tid fra brukeren trykker OK e. l. til systemet svarer Spesielt kritisk for web-baserte applikasjoner med store, heterogene brukergrupper 13

Ikke-funksjonelle krav eksempler (2) Pålitelighet Feilrater (mean time between failures (MTBF)) Oppetid (% tid tilgjengelig for bruker, 24/7?) Ytelse kan måles på forskjellige måter Kapasitet (transaksjoner pr. time, jf. Julehandel for BBS) Responstid (min/maks/gjennomsnitt ved ulik belastning) Antall samtidige brukere Sikkerhet f.eks. Grad av datakryptering og valg av autentiseringsprotokoller/innlogging i l i Eget Ifi-kurs om sikkerhet planlegges 14

Ikke-funksjonelle krav eksempler (3) Eksemplene så langt beskrev ønskede egenskaper ved produktet. Andre ikke-funksjonelle krav kan beskrive begrensninger eller rammer. For eksempel: Kostnader og ressurser er alltid en begrensning! g Leveransetidspunkt (påvirker også kostnader og ressursbruk) Krav om samvirke med andre systemer Gjenbruk av eksisterende teknologi programmeringsspråk, verktøy, komponenter Lover - personvern 15

Krav til grensesnitt (interface interface): program-program De fleste systemene må operere mot andre systemer, og grensesnittet mot disse må spesifiseres som en del av kravene. Krav til program-program grensesnitt finnes på dels andre måter enn krav til et mennesker-program grensesnittet. Tre typer grensesnitt må være definert Prosedyremessige grensesnitt; Datastrukturer som utveksles; Data representasjoner eks.: hvilket tegnsett nyttes Formelle notasjoner kan være en effektiv teknikk for grensesnitt spesifikasjon. Z Ulike UML-teknikker (tilstandsdiagram, sekvensdiagram,..) 16

Kravinnsamling utfordringer Forskjellige forretningsområder har ofte sin egen terminologi Forskjellige organisasjoner har egen terminologi, struktur og forretningsprosesser, som en utvikler kanskje ikke kjenner til. Interessenter t vet ikke nøyaktig hva de vil ha eller kjenner ikke til tekniske muligheter og begrensninger Motstridende krav fra forskjellige interessenter, forskjellige meninger om hva som er viktig Ustabile organisasjoner (reorganisering, oppkjøp) Må skille mellom need to have og nice to have 17

Prosess for kravinnsamling og -analyse Forstå domenet forretningsområde og terminologi Faktainnsamling identifiser krav ved å intervjue interessenter, observere prosesser, analysere dokumenter, osv. Klassifisering organiser kravene i hierarkier eller grupper Konfliktløsning identifiser og løs potensielle konflikter mellom krav fra forskjellige interessenter t Prioritering identifiser de viktigste kravene Validering i kompletthet, konsistens, realisme 18

Prosess for kravinnsamling og analyse (2) 19

Tradisjonelle metoder for faktainnsamling Intervjuer Spørreskjemaer Observasjon Studere dokumenter og eksisterende systemer 20

Typer intervjuer Intervjuer Ustrukturerte intervjuer/samtaler Strukturerte intervjuer med både åpne spørsmål og forhåndsdefinerte svaralternativer Semi-strukturerte intervjuer: En blanding! Typer spørsmål Om eksisterende prosesser, framtidsvisjoner, alternative ideer, minimale, akseptable og optimale løsninger, spesifikke detaljer, andre informasjonskilder Datainnsamling notater opptak (men NB! mikrofonskrekk!) + transkribering (tidkrevende!) Send gjerne en kort rapport til intervjuobjektet innen et par dager slik at hun kan rydde opp i evt. feil og misforståelser 21

Spørreskjemaer Gjerne i etterkant av noen intervjuer Fordeler Respondenter har tid til å forberede seg! Relativt sett mindre tidkrevende enn intervjuer Ulemper Vanskelig å formulere presise spørsmål, krever ofte gode pilotstudier t Ingen mulighet til å presisere uklare spørsmål og svar Hvem gidder å svare?? Skjevt utvalg Typer spørsmål Flervalg eller åpne Prioritering av forskjellige alternativer, kartlegging av arbeidsoppgaver 22

Observasjon I tillegg til intervjuer og evt. spørreskjemaer Observere arbeidsprosesser Tre hovedformer Passiv observasjon (flua på veggen) Aktiv observasjon (hva gjør du hvis?) Egenobservasjon, spesielt for kunnskapsintensivt arbeid Ikke alle oppfører seg normalt når de blir observert 23

Studere eksisterende dokumenter og systemer Dokumenter som utveksles i organisasjonen Prosedyrer, avtaler, planer, strategier, retningslinjer, rapporter og formularer Standarder, reglementer og lovverk Dokumentasjon av eksisterende systemer De fleste systemer samvirker med andre systemer Evt. feilrapporter og endringsønsker i eksisterende system! 24

Andre metoder for faktainnsamling Prototyping Bruk-og-kast prototyper for å teste ut ideer og vise muligheter til brukerne GENOVA kan lage prototyper basert på kravspesifikasjonen Idédugnad Uformelt møte for å generere ideer og identifisere mulige løsninger på problemer. Deltakere: Gjerne 12-20 som har samme status i møtet Moderator: definerer problemområdet og holder diskusjonene rettet mot dette. Ideer analyseres og prioriteres (henges for eksempel opp på gule lapper ) 25

Klassifisering av krav Vi må ha en måte å klassifisere krav for å identifisere konflikter og redundante krav Sommerville: Gruppering Lag grupper av krav som hører sammen (høy kohesjon) med få avhengigheter til andre grupper (lav kobling) Abstraksjon prøv å finn felleselementer i kravene som kan deles mellom forskjellige funksjoner eller interessenter (hovedfunksjonalitet) Projeksjon betrakt systemet fra forskjellige perspektiver (sykehussystem: sykepleier, lege, administrasjon), og organiser kravene rundt disse 26

Konfliktløsning Identifiser og forsøk å løs konflikter mellom kravene til forskjellige interessenter Sjekk om det finnes inkonsistens mellom kravene Sjekk om kravene er reduntante (se også klassifisering) Lag en avhengighetsmatrise mellom kravene: Krav K1 K2 K3 K4 K1 K2 Konflikt K3 K4 Overlapper Forutsetter 27

Prioriter kravene Bruk klassifisering, avhengighetsmatrise samt kost/nyttevurderinger (ikke trivielt) for å møte budsjett eller for å definere delleveranser Delleveranse Utbytte Innsats Utbytte/innsats Renteberegning 25 5 5 Lagersaldo 9 05 0,5 18 Bidrags- 5 7,5 0.67 registrering 28

Endringshåndtering av krav Krav kan endres, slettes, eller nye krav kan oppstå Endringshåndtering betyr at man må dokumentere endringsforespørsler, gjøre en konsekvensanalyse, Implementere endringen Endringsforespørsler lagres og spores gjerne i et eget change management verktøy Implementasjonen av endringen kan spores i et konfigurasjonsstyringsverktøy. 29

Samle trådene i INF1050 Systemutvikling som helhet Kravhåndtering 1. Systemutvikling: motivasjon... Arne Maus, Ifi 2. Systemer med mennesker,; utviklingsprosessen... Arne Maus, Ifi 3. Utviklingsprosessen og ledelse, prosjektarbeid.. Arne Maus, Ifi 4. Avtaler & kontrakter... Jørgen Petersen, Promis AS 5. Kravhåndtering. Arne Maus, Ifi 6. Estimering...... Stein Grimstad /Magne Jørgensen, Simula 7. Jus & etikk...... Dag W. Schartum, Senter for Rettsinformatikk x Koding, validering og vedlikehold Analyse og design 8. Modellering av krav med use cases Erik Arisholm, Simula & Ifi 9-10 Objektorientert analyse (2 forel.)... Erik Arisholm, Simula & Ifi 11. Arkitektur Persistens og databaser Arne Maus, Ifi 12. Modellbasert utvikling med Genova Esito AS 13. Validering og verifisering... Andrea Arcuri, Simula 14. Konfigurasjonsstyring.. Hans Christian Benestad, Simula 30