Analiza de sistem, definirea cerinţelor, niveluri formale de

Download Report

Transcript Analiza de sistem, definirea cerinţelor, niveluri formale de

INGINERIE SOFTWARE
Ştefan Stăncescu
CURSUL 3
CERINTE
INGINERIA SOFTWARE StSt
2
CURSUL 3 - CERINTE
NASTEREA UNUI PSW
START : INSATISFACTII la un utilizator
servicii inexistente
servicii sub prag acceptabil
(performante mici la utilizator)
 NEVOIA de schimbare
 disponibilitatea de a consuma resurse
(pentru schimbare)
 finantare lansare PSW nou
INGINERIA SOFTWARE StSt
3
CURSUL 3 - CERINTE
DEFINIREA SI SPECIFICAREA
CERINTELOR PSW
Problemele noi: complexe
dificil de inteles
I-a abordare de rezolvare
(problemele simple si vechi - deja rezolvate)
Daca exista o I-a rezolvare –traducere pe calc.
INGINERIA SOFTWARE StSt
4
CURSUL 3 - CERINTE
DEFINIREA SI SPECIFICAREA
CERINTELOR PSW
cunoasterea nevoilor utilizator
stabilirea cerintelor utilizatorului pt PSW
Cerinte:
exprimare amanuntita, comunicabila nevoi
prezentare clara a problemei informatice
(include definirea problemei)
INGINERIA SOFTWARE StSt
5
CURSUL 3 - CERINTE
DEFINIREA PROBLEMEI
REZOLVATE DE PSW
Definirea e dificila:
probleme complexe
probleme incurcate, neinteligibile
probleme fara formulare definitiva
Ex: eradicarea saraciei, planificare genetica
INGINERIA SOFTWARE StSt
6
CURSUL 3 - CERINTE
DEFINIREA PROBLEMEI
“50% din rezolvare”
Alte dificultati:
interventie de imbunatatire imediata
utilizatori multi, diferiti ca interes
procuratori PSW / utilizatori PSW
INGINERIA SOFTWARE StSt
7
CURSUL 3 - CERINTE
TRASEU SPECIFICARE CERINTE:
REALITATE
INSATISFACTII
NEVOI
DEFINITII CERINTE PSW
ANALIZA CERINTE PSW
SPECIFICATII CERINTE PSW
SPEC CERINTE SW PSW
INGINERIA SOFTWARE StSt
8
CURSUL 3 - CERINTE
NEVOILE evidentiaza SCOPUL utilizatorului
general, netestabil, subiectiv, instabiul
CERINTELE PSW
precise, testabile, verificabile
EX: Nevoia PSW: cu interfata prietenoasa
(insatisfactia user de la interfata existenta greoaie – erori I/O)
Cerinta user :
sa contina informatii ajutatoare
Cerinta SW:
menu cu pozitie HELP in toate serviciile
INGINERIA SOFTWARE StSt
9
CURSUL 3 - CERINTE
SPECIFICARE CERINTE PSW
Requirement Specifications RS
transcrierea cerintelor pentru PSW
Documentele RS – mediu de schimb info
intre utilizatorii si elaboratorii PSW
Sursa a reutilizarii PSW la alti utilizatori
cu cerinte putin diferite – modificari PSW
INGINERIA SOFTWARE StSt
10
CURSUL 3 - CERINTE
NIVELURI SPECIFICARE CERINTE PSW
RD
Requirements Definitions
nivel manager utilizator
RS
Requirements Specifications
nivel specialist utilizator
SWRS
SW Requirements Specifications
nivel elaborator PSW
Delimitarile RD/RS/SWRS
vagi, imprecise, depind de problema
INGINERIA SOFTWARE StSt
11
CURSUL 3 - CERINTE
RD Requirements Definitions
nivel manager user
limbaj natural
enumerare servicii
enumerare avantaje, performante
inteligibil de nespecialist
INGINERIA SOFTWARE StSt
12
CURSUL 3 - CERINTE
RS
Requirements Specifications
nivel user spcialist
limbaj formal specialist utilizator
cerinte detaliate
valorifica experienta utilizatorului
in specialitatea acestuia
in problema reala
INGINERIA SOFTWARE StSt
13
CURSUL 3 - CERINTE
SWRS SW Requirements Specifications
nivel elaborator PSW
in notatie foemala, abstracta
limbaj specialist SW
baza a implementarii PSW
INGINERIA SOFTWARE StSt
14
CURSUL 3 - CERINTE
CERINTE
FUNCTIONALE (proprii PSW)
NEFUNCTIONALE (universale)
CERINTE NEFUNCTIONALE
restrictii, constrangeri, proprietati generale
•
•
•
•
Fiabilitate
timp de raspuns
spatiu de memorie
performante de comunicatie, etc.
Cerintele nefunctionale pot fi antagonice
(sp mem/mediu dezv)
INGINERIA SOFTWARE StSt
15
CURSUL 3 - CERINTE
CERINTE FUNCTIONALE
Specificatia functionala:
set de functii – servicii
specificare prin
preconditii
postconditii
asertiuni cu predicat booleean
combinatii logice de asertiuni booleene
INGINERIA SOFTWARE StSt
16
CURSUL 3 - CERINTE
Specificatia functionala axiomatica de cerinte:
1. Specificarea gamei parametri intrare
(reguli pentru constrangeri intrari)
2. Specificarea gamei pentru iesiri
(reguli pentru constrangeri iesiri)
3. Specificarea transformarilor intrarilor in iesiri
(predicatele care obttin iesiri din intrari)
INGINERIA SOFTWARE StSt
17
CURSUL 3 - CERINTE
Ex:
PSWsa gaseasca intr-un sir prima coincidenta cu o
cheie data (definitie)
Functie: Cautare(sir X intregi, key intreg, return x
intreg = key)
Pre: exista un numar in sir = key
Post: f(x)=pozitia in sir a primului x=key
Err: f(x)=ultima pozitie in sir +1
INGINERIA SOFTWARE StSt
18
CURSUL 3 - CERINTE
ETAPE CLASICE IN RS
• Studiul de fezabilitate.
• Definirea cerinţelor.
• Specificarea cerinţelor.
INGINERIA SOFTWARE StSt
19
CURSUL 3 - CERINTE
ETAPE CLASICE IN RS
• Studiul de fezabilitate.
– estimare generală a stadiului existent al problemei reale
– fundamentarea nevoii pentru un produs software nou şi
se stabileşte setul de criterii de eficienţă care măsoară
eficacitatea unui produs nou.
– estimează bugetul de cheltuieli pentru acoperirea
costurilor de realizare a produsului software
INGINERIA SOFTWARE StSt
20
CURSUL 3 - CERINTE
ETAPE CLASICE IN RS
• Definirea cerinţelor.
– creează un model al problemei reale
– elaborează o descriere abstractă
– stabileşte în scris fiecare cerinţă, în urma acestui proces
rezultând documentul de control care
– Precizează îndatoririle producătorului de
software) şi care
– se înmânează utilizatorului.
INGINERIA SOFTWARE StSt
21
CURSUL 3 - CERINTE
ETAPE CLASICE IN RS
• Specificarea cerinţelor.
descriere detaliată şi precisă a cerinţelor
conduce la un contract între
utilizator şi
proiectantul PSW
INGINERIA SOFTWARE StSt
22
CURSUL 3 - CERINTE
REPREZANTAREA RS
• Informală
Limbaj natural
usor de inteles
• Formală
Limbaje abstracte (matematice)
precis, dificil de aplicat
• Semiformală
Limbaj natiral + grafică(diagrame, tabele, etc)
INGINERIA SOFTWARE StSt
23
CURSUL 3 - CERINTE
REPREZANTAREA RS
Reprezentarea RS in etape
– reprezentare definitii cerinţe
– reprezentare sintetica RS în limaj natural
inteligibila utilizatori
– reprezentare detaliata RS si cu limbaj formal
inteligibila utilizatori specialişti
– reprezentare detaliata RS in limbaj formal
inteigibiaă realizatori produs SW
INGINERIA SOFTWARE StSt
24
CURSUL 3 - CERINTE
REPREZANTAREA RS
EXEMPLU SWRS
Scrierea unui program Visual C++ care să realizeze un “director cu
numerele de telefon ale angajaţilor unei firme”. Acest program
trebuie să implementeze funcţii de căutare a numărului de telefon
şi de adăugare a unui nou număr. Programul trebuie să aibă o
interfaţă prietenoasă
Intrebari pt a stabili RS bun:
•
•
•
•
se referă “ce anume” şi nu “cum”? (VC++?)
specificarea este clară? (prietenoasă)
specificarea este suficient de detaliată?
specificarea este completă?
INGINERIA SOFTWARE StSt
25
CURSUL 3 - CERINTE
REPREZANTAREA SWRS
Pasi de crestere a claritatăţii RS:
1. Prima exprimare a cerinţelor utilizator
2. Evidentiere puncte de vedere diferitele
dintre clienţi şi proiectanţi.
3. Examinarea realizabilităţii sincronismului
explicarea utilizatorului final ce se poate si ce nu
4. Se explică şi se clarifică cerinţele utilizatorului.
5. Se negociază astfel încât să se ajungă la un acord între
clienţi şi proiectanţi privind acceptarea cerinţelor.
INGINERIA SOFTWARE StSt
26
CURSUL 3 - CERINTE
UTILIZAREA SWRS
•
clienţii şi departamentul de marketing
Obţin descrierea produsului care urmează să fie furnizat
•
managerii de proiect SW
elaborează planuri şi evaluări de efort, resurse
•
echipa de proiectare SW
înţelege ce produs se realizează
•
grupul de testare
utilizează descrierile de funcţionare ale produsului,
elaborează planuri şi proceduri de testare;
•
echipa de administrare şi suport
înţelege funcţia fiecărei componente a produsului;
•
grupul de publicaţie
redactează documentaţia tehnică pentru utilizator (manuale) schema interfeţei cu utilizatorul;
•
personalul de instruire elaborează materialele educaţionale
INGINERIA SOFTWARE StSt
27
CURSUL 3 - CERINTE
SWRS
descriu precis functionarea PSW
descriu constrângeri
de proiectare si de implementare
nu au detalii intempestive
INGINERIA SOFTWARE StSt
28
CURSUL 3 - CERINTE
SWRS ITERATIVE
m m descrieri, rafinare succesivă după
• nivelul de detaliere;
– restricţionare a specificaţiei, specifică “ce” va face PSW şi nu “cum”
– include punctul de vedere al utilizatorului
– nu conţine modul de implementare a PSW.
• cui i se adresează documentul;
– Utilizatori PSW
– Elaboratori PSW
Au scop unic PSW, interese diferite (SW complex/simplu)
• notaţia utilizată.
– Utilizatori PSW (limbaj natural, simplu sau tehnic)
– Elaboratori PSW (limbaj tehnic si de specialişti SW)
INGINERIA SOFTWARE StSt
29
CURSUL 3 - CERINTE
Sugestii referitoare la structura şi modul de redactare al SWRS :
• numerotarea capitolelor, subcapitolelor şi cerinţelor
individuale;
• utilizarea spaţiului alb sp, nl, np;
• folosirea sublinierii (exemple: bold, underline, italic şi
diferite fonturi) în mod corespunzător;
• crearea unui tabel şi a unui index pentru ca utilizatorii să
aibă acces rapid la informaţia dorită;
• numerotarea şi etichetarea tuturor figurilor şi tabelelor;
• utilizarea facilităţii “cross-reference” a procesorului text
pentru a referi alte locaţii din cadrul documentului.
INGINERIA SOFTWARE StSt
30
CURSUL 3 - CERINTE
Sugestii referitoare la etichetarea SWRS :
• Secvenţă de numere
• Numerotarea ierarhică
• Etichete ierarhice textuale
Secvenţă de numere
o cerinţă, o secvenţă unică de numere
cerinţa utilizator 1- n, cerinţa sw 1- n
nu oferă grupare logica cerinţe
1.
2.
3.
4.
PSW va face mai intai a . functia de bază
PSW va elabora un raport asupra îndeplinirii a
PSW va respecta constrangerea b
etc.
INGINERIA SOFTWARE StSt
31
CURSUL 3 - CERINTE
Sugestii referitoare la etichetarea SWRS :
Numerotarea ierarhică
cerintele formează o structură
capitole, subcap, paragrafe, subpar, etc.
nu oferă semnificaţie
1. Specificatii de operator 1
1.1Va respecta a
1.1.1 Va respecta subprocedura aa
1.1.2 Va respecta restrictia ab
1.1.3 Etc.
INGINERIA SOFTWARE StSt
32
CURSUL 3 - CERINTE
Sugestii referitoare la etichetarea SWRS :
Etichete ierarhice textuale
simbolism semantic ierarhic
domeniu.subdomeniu.etc.
Functionalitatea_a
restrictia_b in functionalitatea a:
a_b
Ex: calcul medie statistica cu distributie controlata
preluaredate
preluaredate.calculmedie
preluaredate.calculmedie.calculsigma
preluaredate.calculmedie.calculsigma.depasirelimita
preluaredate.reluarepreluaredate
INGINERIA SOFTWARE StSt
33
CURSUL 3 - CERINTE
Sugestii referitoare la etichetarea SWRS :
Capitole TBD
To Be Defined
Numerotare separata cerinte TBD
Lista separate cerinte TBD
Zone cerinte TBD de tratat prioritar rafinarii cerinte
INGINERIA SOFTWARE StSt
34
CURSUL 3 - CERINTE
Cerinta de descriere de interfete utilizator/PSW :
mijloc de comunicare client/PSW
clientul vede ecrane WYSIWYG, dar nu intelege sensul
descrieri ale schemelor de comunicare cu PSW
sunt principăii de comunicare
nu sunt cerinte
Interfata se precizează inainte de elaborare RS
Include descrierea interfeţei UTILIZATOR/PSW în SWRS
Mijloc de modificare coerenta a iteraţiilor de RS
Orice modificare in RS se urmareste simultan
cu modificariel in interfata utilizator PSW
INGINERIA SOFTWARE StSt
35
CURSUL 3 - CERINTE
REDACTAREA RS
•
•
•
•
•
•
propoziţii şi paragrafe scurte;
scrierea completă a propoziţiilor cu o gramatică, punctuaţie şi ortografie
corecte, adecvate;
utilizarea corespunzătoare a termenilor definiţi în glosar;
stabilirea cerinţelor într-un mod adecvat, cum ar fi “Sistemul trebuie” sau
“Utilizatorul trebuie”, urmat de un verb (la diateza activă), urmat de rezultatul
observării. Pentru reducerea ambiguităţii trebuie evitaţi termenii: uşor, simplu,
rapid, eficient, suport, câteva, superior, acceptabil şi robust. Trebuie
determinat la ce anume se referă clientul prin termenii “rapid”, “robust”;
evitarea cuvintelor de comparaţie cum ar fi: “a îmbunătăţi”, “a maximiza”, “a
minimiza”, “a optimiza”. Cunatificarea gradului de îmbunătăţire care e necesar
şi stabilirea valorilor maxime respectiv minime pentru anumiţi parametrii.
Nu se utilizează “şi/sau” sau “etc.” în declararea unei cerinţe.
INGINERIA SOFTWARE StSt
36
CURSUL 3 - CERINTE
DOCUMENTAREA RS (Contract utilizator/elaborator)
Heninger a formulat 6 cerinţe (ipoteze) asupra documentului de cerinţe software:
• Specifică numai aspectul extern de manifestare a problemei
• Specifică şi constrângerile de implementare a problemei
• Documentul în sine să fie uşor de modificat
• Constituie document de referinţă pentru managerii sistemului real (şi de aceea
trebuie să aibă o exprimare naturală)
• Menţionează toate aspectele ciclului de viaţă al software-lui.
• Cuprinde măsuri pentru eventualele evenimente improbabile nedorite.
INGINERIA SOFTWARE StSt
37
CURSUL 3 - CERINTE
DOCUMENTAREA RS
•
•
•
•
•
•
•
•
Introducere – plasarea cerinţelor într-un context real
Modelul sistemului – structura problemei aranjată sub formă de graf
Cerinţe fundamentale – serviciile ce se vor realiza vor fi enumerate succint în
limbaj natural
Cerinţe hardware – menţionarea hardware - lui special necesar
Cerinţe de baze de date – definirea unor structuri de date implicate în problemă
(cu care comunică sistemul) şi relaţiile dintre structurile de date.
Cerinţe nefuncţionale – restricţii de altă natură decât cele software şi hardware
(prezintă alte aspecte ale produsului).
Informaţii de mentenanţă a produsului
Dicţionar, index
INGINERIA SOFTWARE StSt
38
CURSUL 3 - CERINTE
EVOLUTIA RS
INGINERIA SOFTWARE StSt
39
SABLON SWRS
CURSUL 3 - CERINTE
1.1 Scop
1.2 Convenţii din document
1.3 Sugestii pentru citirea documentului şi categoria de cititori căreia i se adresează
1.4 Domeniul produsului
1.5 Indicaţii despre alte produse similare
2. Descriere generală
2.1 Perspectiva produsului
2.2 Funcţiile produsului
2.3 Clasele şi caracteristicile produsului
2.4. Mediul de operare
2.5 Constrângeri de implementare şi proiectare
2.6 Presupuneri şi dependenţe
3. Cerinţe de interfaţă externă
3.1 Interfeţe cu utilizatorul
3.2 Interfeţe hardware
3.3. Interfeţe software
3.4 Interfeţe de comunicaţii
4. Trăsăturile produsului
4.x Trăsătura de sistem X
4.x.1 Descriere şi prioritate
4.x.2 Secvenţe stimul /răspuns
4.x.3 Cerinţe funcţionale
5. Alte cerinţe nefuncţionale
5.1 Cerinţe de performanţă
5.2. Cerinţe de siguranţă
5.3. Cerinţe de securitate
5.4 Atribute de calitate software
5.5 Reguli de business
5.6. Documentaţia utilizatorului
6. Alte cerinţe
Anexa A: Glosar
INGINERIA SOFTWARE
Anexa B: Modele de analiză
Anexa C: Lista indicatorilor TBD
StSt
40
CURSUL 3 - CERINTE
VALIDARE CERINTE
VALIDARE: Demonstrare - cerintele respecta
nevoile
SCOP VALIDARE: Evitarea propagarii erorilor
specificare => proiectare => implementare
Implicatii erori specificare semnalate la
implementare => 95% cod rescris
Totusi
si cu verificare, raman >12% din erorile in
exploatare provin din RS
INGINERIA SOFTWARE StSt
41
CURSUL 3 - CERINTE
VALIDARE CERINTE
Etape validare RS
Validare nevoi
(utilizator)
Proba consistenta
(cerinte neconflictuale)
Proba completitudine
(toate cerintele – functionale)
(toate constrangerile – nefunctionale)
Validare realisticitate
(realizare posibila cu tehnologii SW/HW curente)
Validare verificabilitate
(exista paramentri care masoara caracteristici cerinte)
INGINERIA SOFTWARE StSt
42
CURSUL 3 - CERINTE
VALIDARE CERINTE
Validare mentala
cu model mental (o singura persoana)
dificila, neperformanta, neverificabila, subiectiva
Validare pe baza de documente RS
in prezenta ingineri SW + utilizatori
utilizatorilor li se vor explica ce contradictii exista
=>prezentare suport inteligibil dialog
=>dialogul cu utilizatorii determina modificari
suport inteligibil curent: prototip al PSW de elaborat
(varianta incompleta, doar pt descoperire cerinte de la utilizator)
INGINERIA SOFTWARE StSt
43
CURSUL 3 - CERINTE
VALIDARE CERINTE
Testarea completitudinii se face
manual, prin parcurgerea RS in prezenta utilizatori
Testarea consistentei se poate face
automat, prin verificare document RS editat formal
respectand regulile (invariantii) de format
Doc formal
Procesare de
verificare
formalism
Erori format sau
de comunicare
INGINERIA SOFTWARE StSt
Test final
Cerinte
validate
44