Kravhåndtering INF1050: Gjennomgang, uke 03 Kompetansemål Kravhåndtering Anvende metoder og teknikker for å … Innhente / Analysere / Spesifisere krav Ulike typer krav Funksjonelle krav Ikke-funksjonelle krav Kravspesifikasjon Kravhåndtering: Bakgrunn Hva? Prosess for å identifisere / analysere / spesifisere krav til et system Sentral del i de aller fleste utviklingsprosjekter project title Hvorfor? Vi utvikler IT-systemer for å løse et problem / Identifisere og utnytte muligheter Kravene forteller oss noe om hva som skal lages Kostbart å rette feil i kravene etter systemleveranse Utilstrekkelig kravhåndtering Viktigste årsak for problemer i systemutviklingsprosjekter Standish-rapporten Kravendringer vil alltid forekomme Kravhåndteringsprosessen Forstudie / Målanalyse Kost/nytte-analyser | Risikoanalyser | Gevinstrealisering Kravinnsamling og kravanalyse project title Hva ønsker interessentene seg? Hva har de behov for? Prioritering av kravene Kravspesifisering Utgangspunkt for anbud og kontrakt Mellom kunde og leverandør Utgangspunkt for design, implementasjon og testing Utgangspunkt for estimater (tid og kostnad) Validering av kravspesifikasjonen Uttrykker kravspesifikasjonen det kunden og interessentene faktisk ønsker seg? Kravhåndteringsprosessen Håndtering av kravendringer Brukere oppdager nye behov etter at systemet tas i bruk project title Formell prosess for vurdering og eventuell gjennomføring av foreslåtte endringer Hvilken endring foreslås? Hvem foreslår endringen? Vurdering av foreslått endring / Konsekvensanalyse Beslutning om endringen skal implementeres Hvem skal følge opp endringene? Kravspesifikasjonen som grunnlag for testing Kravspesifikasjonen sier noe om systemets funksjonalitet og oppførsel Kan brukes som grunnlag for testinnsatsen Saksstudie: Ruter Ruter Har en applikasjon for kjøp av ulike typer billetter Betalingsmåter: Visa, MasterCard, Vipps, MobilePay, mCash, Strex Kunde Den som kjøper / bestiller produktet Ruter Kunde Sluttbruker av produktet De som bruker applikasjonen project title project title Gjennomgang av ukesoppgaver Ukens tema : Aspekter ved systemutvikling Oppgave 1(a) Hva er en kravspesifikasjon? project title Oppgave 1(a): Løsningsforslag Hva er en kravspesifikasjon? Et dokument som spesifiserer hva som skal lages Bruker- og systemkrav Ikke et designdokument Sier ingenting om hvordan oppgaven skal løses Ofte en del av kontrakten Ulike standarder brukes Eksempel: IEEE project title Oppgave 1(a): Løsningsforslag Hva er en kravspesifikasjon? Brukerkrav project title Uttrykkes på naturlig språk / diagrammer Viser ønsket funksjonalitet og hvilke føringer som gjelder (kvalitetsegenskaper) Kunden skal kunne forstå disse kravene uten problemer Systemkrav Detaljert beskrivelse av systemfunksjoner og hvilke føringer som gjelder Definerer hva som skal implementeres Basis for kontrakt mellom kunde og leverandør Oppgave 1(b) Hvorfor er det nødvendig å lage en kravspesifikasjon? project title Oppgave 1(b): Løsningsforslag Hvorfor er det nødvendig å lage en kravspesifikasjon? Basis for anbud project title Kan tolkes på ulike måter Skape interesse og tiltrekke seg leverandører som kan møte behovet Basis for kontrakt / design / implementasjon Leverandør og kunde blir enige om hva som skal lages Spesifiserer ytelsen Skape felles forståelse av systemet / enighet om hva som skal leveres Forhindre eventuelle konflikter – Ulike forventninger Oppgave 2 Gi en definisjon av begrepet interessent. project title List opp noen interessenter for en applikasjon som finner restauranter i nærheten av der du befinner deg. Oppgave 2: Løsningsforslag Gi en definisjon av begrepet interessent. Interessent project title Mengde personer / grupper / organer som har interesse av systemet Blir påvirket av eller påvirker systemets utvikling og bruk Både direkte og indirekte Interessenter både påvirker og påvirkes av kravspesifikasjonen Fire hovedkategorier Kunde: Kjøper / bestiller produktet Leverandør: De som utvikler produktet Bruker: Sluttbruker av produktet Andre: Øvrige Oppgave 2: Løsningsforslag Eksempler på interessenter for appen project title Oppgave 3(a) Hva er funksjonelle og ikke-funksjonelle krav? project title Oppgave 3(a): Løsningsforslag Hva er funksjonelle og ikke-funksjonelle krav? Funksjonelle krav project title Definerer HVA systemet skal gjøre Spesifikke funksjoner og tjenester systemet skal ha / oppfylle Hvordan systemet skal reagere på ulike typer input / stimuli Nyttig å fortelle hva systemet ikke skal gjøre Format Systemet skal ... / Systemet bør (nice to have) ... Oppgave 3(a): Løsningsforslag Hva er funksjonelle og ikke-funksjonelle krav? Ikke-funksjonelle krav project title Definerer HVORDAN systemet skal innfri de funksjonelle kravene Sier noe om hvilke kvalitetsattributter systemet skal ha Egenskaper Hvordan skal systemet oppføre seg? Må være målbare Format System skal være [egenskap] Oppgave 3(a): Løsningsforslag Hva er funksjonelle og ikke-funksjonelle krav? project title Sommerville: Figur 4.3 (p. 88) Saksstudie: Ruter Eksempler på funksjonelle og ikke-funksjonelle Funksjonelle krav project title Systemet skal kunne vise en oversikt over brukerens kjøpshistorikk Systemet skal gi beskjed når det gjenstår under 24 timer til en periodebillett utløper Systemet skal tilby funksjonalitet for valg av billettype Systemet skal tilby hurtigkjøp av tidligere valgte billetter Ikke-funksjonelle krav En ny kunde skal kunne betale for en billett på under tre minutter Systemet skal kunne håndtere 10.000 brukere samtidig Systemet skal utvikles ved hjelp av smidige utviklingsmetoder Oppgave 3(b) Skriv fem funksjonelle krav til appen beskrevet i oppg. 2 project title Oppgave 3(b): Løsningsforslag Skriv fem funksjonelle krav til appen beskrevet i oppg. 2 project title Oppgave 3(c) Skriv fem ikke-funksjonelle krav til appen beskrevet i oppg. 2 project title Oppgave 3(c): Løsningsforslag Skriv fem ikke-funksjonelle krav til appen beskrevet i oppg. 2 project title Hva er ”problemet” med de overnevnte kravene? Kan de måles? Oppgave 3(c): Løsningsforslag Skriv fem ikke-funksjonelle krav til appen beskrevet i oppg. 2 project title Oppgave 3(d) Beskriv hvordan du kan evaluere de ikke-funksjonelle kravene project title Oppgave 3(d): Løsningsforslag Beskriv hvordan du kan evaluere de ikke-funksjonelle kravene project title Evaluering ikke-funksjonelle krav Kravene må være målbare Unngå at utviklere tolker kravene på egen måte Definer krav som er direkte målbare Eksempelkrav: Et system skal kunne håndtere 200.000 brukere samtidig Generelle krav, men spesifiser konkrete metrikker i evalueringen Eksempelkrav: Systemet skal være raskt Metrikk: En ny side skal laste inn på under tre sekunder Oppgave 3(d): Løsningsforslag Beskriv hvordan du kan evaluere de ikke-funksjonelle kravene project title 1. Krav om responstid Gjennomfør tester der man måler tid Flere tester under ulike dekningsforhold 2. Krav om brukervennlighet Brukertester Mål tid som brukes 3. Krav om plattformuavhengighet Tester gjennomføres på ulike plattformer Oppgave 3(d): Løsningsforslag Beskriv hvordan du kan evaluere de ikke-funksjonelle kravene project title 4. Krav om kapasitet Gjennomfør stresstester Sjekk hvor mye systemet tåler Når nås bristepunktet? 5. Krav til dokumentasjon Ja/Nei-spørsmål Sjekkes direkte Oppgave 4 Hva vil det si å validere et system og hvorfor er det viktig? project title Oppgave 4: Løsningsforslag Hva vil det si å validere et system og hvorfor er det viktig? Validering project title Har man utviklet det systemet som kunden faktisk ønsket seg? Kravspesifikasjoner kan valideres Beskriver kravspesifikasjonen det kunden gir uttrykk for? Avdekker avvik i forventninger og spesifikasjon Kostbart å endre et ferdigstilt system Oppgave 4: Løsningsforslag Hva vil det si å validere et system og hvorfor er det viktig? project title Oppgave 5(a) Hva er en brukerhistorie? project title Oppgave 5(a): Løsningsforslag Hva er en brukerhistorie? Brukerhistorier project title Beskriver hva brukeren av et system ønsker å få ut av systemet Elementer Brukerens rolle Ønsket funksjon Nytteverdi av funksjonen Format Som [ROLLE] ønsker jeg [FUNKSJON] for å oppnå [NYTTEVERDI] Oppgave 5(b) Nevn fordeler ved å bruke denne teknikken for å beskrive krav project title Oppgave 5(b): Løsningsforslag Nevn fordeler ved å bruke denne teknikken for å beskrive krav project title Fordeler ved brukerhistorier Krever ingen teknisk kompetanse for å forstå kravet Skjuler kompleksitet Kravene uttrykkes på en kort og konsis måte Bruker Hver er kravet tiltenkt? Funksjon Hva er den faktiske funksjonen som etterspørres Nytteverdi Forstår nødvendigheten av ønsket funksjon Oppgave 5(c) Drøft utfordringer ved å benytte brukerhistorier beskrevet på lapper på en tavle i store, smidige utviklingsprosjekter project title Oppgave 5(c): Løsningsforslag Drøft utfordringer ved å benytte brukerhistorier beskrevet på lapper på en tavle i store, smidige utviklingsprosjekter project title Utfordringer Kaotisk med mange lapper som hoper seg opp Krever at man er tilstede for å kunne se hva som står på tavlen Generelle utfordringer Kan tolkes på flere måter Skjuler kompleksitet Funksjonen kan være vanskeligere å implementere enn antatt Skjuler underliggende krav Hva er den faktiske betydningen av brukerhistorien? Oppgave 5(d) Skriv noen brukerhistorier for appen beskrevet i oppg. 2 project title Oppgave 5(d): Løsningsforslag Skriv noen brukerhistorier for appen beskrevet i oppg. 2 project title Oppgave 6 I systemutviklingsprosjekter med tett kundemedvirkning er det en fare for at kunden blir påvirket av project title utviklingsteamet og adopterer deres perspektiv. Da kan brukernes behov bli tillagt for liten vekt. Oppgave 6(a) Foreslå tre måter å redusere dette problemet på project title Oppgave 6(a): Løsningsforslag Foreslå tre måter å redusere dette problemet på Unngå at kunden blir påvirket av utviklerne Ha ulike representanter for kunden som deltar Fremfor én fast representant Hold tekniske diskusjoner til et minimum Kunden våger ikke å si at han/hun ikke forstår Går med på endringene Unngå at kunden blir en del av teamet Involver kunden kun der det er nødvendig project title Oppgave 6(b) Diskuter fordeler og ulemper med kundeinvolvering project title Oppgave 6(b): Løsningsforslag Diskuter fordeler og ulemper med kundeinvolvering Fordeler Raske tilbakemeldinger Sørger for at systemet ivaretar brukerens behov Ulemper Krever tid og ressurser av kunden Krever at kunden er tilgjengelig Krever at kunden har en god domeneforståelse project title Oppgave 7 Forklar hvorfor det er nødvendig med to kravaktiviteter i prosessen for gjenbruksbasert systemutvikling project title Oppgave 7: Løsningsforslag Forklar hvorfor det er nødvendig med to kravaktiviteter i prosessen for gjenbruksbasert systemutvikling project title Gjenbruksbasert systemutvikling Eksisterende programvare brukes på nytt i nye systemer Varierende grad Komponentbasert utvikling Benytter seg av komponenter fra ulike pakker Tjenesteorientert utvikling Benytter seg av tjenester som finnes på nett / i skyene Oppgave 7: Løsningsforslag Forklar hvorfor det er nødvendig med to kravaktiviteter i prosessen for gjenbruksbasert systemutvikling project title Sommerville: Figur 2.3 (p. 35) Oppgave 7: Løsningsforslag Forklar hvorfor det er nødvendig med to kravaktiviteter i prosessen for gjenbruksbasert systemutvikling project title Standard kravinnsamling og –spesifikasjon Bestemmer hva som skal lages Komponentanalyse Undersøker hva som finnes på markedet Tilpasning av krav Ønsket funksjonalitet vil ofte variere fra det som allerede finnes Kravene tilpasses for å kunne ta utgangspunkt i den eksisterende programvaren Til slutt Husk å registrere deg på en gruppe! 2-4 studenter per gruppe project title Alternativ 1 Registrer deg som enkeltperson og få tildelt gruppe Send e-post til den aktuelle gruppelæreren Alternativ 2 Registrer hele gruppen på Devilry Spørsmål? Ta kontakt Yulai Fjeld ydfjeld @ uio.no Husk å inkludere emnekoden! Andre gruppelærere Delta på gruppetimene project title Takk til Foilene er basert på project title Tidligere presentasjoner laget av Emilie Hallgren og Kristin Brænden Eksisterende forelesningsnotater av Dag Sjøberg og Yngve Lindsjørn Sommerville, I. (2010). Software Engineering (9th Edition). Pearson. Takk for meg project title Neste uke : UML-modellering, kravhåndtering og use case
© Copyright 2024