Föreläsning 3 - Dokumentering av krav Flashcards
7 anledningar till att dokumentera krav
Persistens – under ett projekt insamlas en stor mängd krav vilket intressenter knappast kan memorera och reflektera över.
Gemensam referensram och kontrakt – gemensam information finns tillgänglig och delas bland alla projektdeltagare.
Främja kommunikation – gemensamma dokument främjar diskussioner, därmed förbättras kommunikationen i projektet.
Främjar objektivitet – Skriftligt informationsutbyte är mindre sårbart än verbalt utbyte för subjektiva tolkningar.
Hjälper till att hitta fel – eftersom informationen dokumenteras systematiskt hjälper det att identifiera inkonsekvenser.
Grund för systemutveckling, test, användning och förvaltning – kravspecifikationen används i alla dessa faser som informationskällan om systemet.
Grund för kravstyrning – vid förändring av krav framkallar kravdokumentet påverkan på de andra specificerade kraven.
Vad för 3 saker möjliggör dokumentering med användning av verktyg?
- Unik identifiering av krav och i olika format (text, modeller, bilder)
- En effektiv strukturering, hantering och uppdatering av ett stort antal krav
- Sökning av olika krav, olika vyer och rapporter.
Vilka typer av språk finns det för att dokumentera krav, och vad är fördel/nackdel med dem?
Informella språk – När kraven uttrycks i ett naturligt språk utan innehållsbegränsningar.
Fördelar:
- Universellt: Kan användas i alla problemområden eller domäner
- Flexibelt: Godtyckliga abstraktioner och förfiningar
- Begripligt: Ingen utbildning eller specialverktyg behövs
Nackdelar:
- Under-specifikation: detaljer kan missas
- Fel av naturligt språk: tvetydighet – olika tolkningar
- Vaga termer: suddiga definitioner.
Semi-formella språk - När kravet uttrycks a) i en strukturerad och/eller begränsad form av ett naturligt språk, eller b) när text och modeller kombineras (exempel: UML)
Kontrollerat språk - för en specifik domän definieras en begränsad-naturligt-språk grammatik (syntax) och en uppsättning av termer (inklusive deras semantik) som ska användas. Med den begränsade grammatiken. Viktiga fördelar:
i. Krav är lätta att förstå, eftersom de liknar uttrycken i de naturliga språken
ii. Uttryck är mindre tvetydiga än i naturliga språk eftersom att de har en strukturerad syntax och en förenklad grammatik
iii. Gör det lättare att läsa krav, och (semi)-automatisera deras ytterligare bearbetning (för utveckling)
Modellerade krav - modellbaserade krav (konceptuella modeller) ger mer kompakta beskrivningar än NS (eng. ”NL”); de är mindre tvetydiga än NS; men de kräver kunskap om modellering. När kravet uttrycks med hjälp av modeller uttrycker det vanligtvis ett enda perspektiv (data eller funktionalitet, osv.)
Formella språk - När kravet uttrycks i ett fastställt språk med tydliga termer och semantik. Formella språk uttrycks med symboler och formler som exakt definierar syntaxen (vad som skrivs) samt semantiken (meningen om det som skrevs).
Hur formuleras ett krav i ett kontrollerat kravspråk?
- System (substantive): systemet är subjektet för systemkrav.
- Process (verbfras): registrera…, söka…, skicka, ta emot,…
- Objekt (substantiv): patient, kund, student, order, faktura, osv.
- Objekts detaljer (substantiv): patients ID, namn, adress.
- När? Logiska/tids förutsättningar under vilka processen ska tillhandahållas (typiskt börjar med ”om…”, ”när…”).
Ex.: Systemet/Daisy ska kunna lägga till på en kurs student med students ID, namn och adress (gata, postnummer, stad) om studenten är registrerad på programmet var kursen går.
Vilka attribut brukar krav ha?
- Unik identifiering – ett unikt nummer för hantering av kravet
- Intressent – den som är ansvarig eller ska utföra kravet
- Status – i skrivning, utkast, överens osv.
- Utarbetande – beskrivning, motivation, kommentar
- Prioritet – när ska kravet utvecklas
- Genomförbarhet – kostnad, folk, tid
- Spårbarhet – förhållande till andra krav
Nämn 9 kvalitetskriterier för individuella krav
1) Komplett – kravet måste helt beskriva funktionaliteten (eller kvaliteten) som kravet specificerar.
2) Spårbarhet – kravs källa, genomförande och relation till andra krav kan spåras
3) Nödvändigt – Kravet är bekräftat (överens) som korrekt av intressenterna.
4) Entydigt – Kravet kan tolkas på ett enda sätt.
5) Begripligt – Kravet är begripligt för alla berörda parter
6) Konsekvent – Kravet får inte stå i konflikt med andra krav, eller med sig självt.
7) Kontrollerbart – kravet kan testas eller mätas i det implementerade systemet.
8) Genomförbart – det måste vara möjligt att genomföra kravet med tanke på de organisatoriska, juridiska, ekonomiska eller tekniska begränsningar som existerar.
9) Ett resultat – kravet beskriver en enda process.
Vilka två nivåer av systemkrav dokumenteras vanligtvis?
- Intressents krav för system
a. Kraven som anges av intressenterna för ett system
b. De dokumenteras oftast som NS-baserad, kontrollerat språk
c. Kvalitetskrav och begränsningar identifieras och klassificeras som ”icke-funktionella” krav. - Funktionella och icke-funktionella (kvalitet, begränsningar) krav:
a. De mappas från intressenternas krav
b. Funktionella krav* är modellbaserade (AF, domänmodeller, osv) för att kunna tolkas enklare/snabbare av systemutvecklare och även för att automatiskt kunna bearbetas.
c. En del av klassificerade icke-funktionella krav går att modellera för att de kan uppfyllas genom systemfunktioner; den andra delen som inte kan modelleras, behålls i form av strukturerad text.
Arbetsöversikt : beskriv i vilka steg RE görs!
- Mål bryts ned till delmål och vidare till medel för att hitta nya krav.
- De medel som kan realiseras med ett system leder till intressenters krav.
- Krav av intressenter insamlas, skrivs i detalj, och även icke-funktionella krav identifieras.
- Kraven mappas till användningsfall och ofta motsvarar flera krav till ett användningsfall.
- Användningsfall beskrivs i detalj (och vidare används för att skapa domänmodeller)
- Alla kravattribut och spårbarhetslänkar måste specificeras.