Documente Academic
Documente Profesional
Documente Cultură
Ploiești 2020
Unitatea de învățare 7. Faza de analiză
7. 1. Introducere .................................................................................................................................. 2
7. 2. Analiza cerințelor......................................................................................................................... 3
7. 2. 1. Tipuri de cerințe .................................................................................................................. 3
7. 2. 2. Metode de reprezentare ..................................................................................................... 5
7. 2. 3. Activități tehnice.................................................................................................................. 5
7. 3. Documentul specificațiilor software ......................................................................................... 10
7. 4. Validarea cerințelor ................................................................................................................... 12
Durata: 4 ore
Cunoștințe și deprinderi
La finalul parcurgerii acestei unități de învățare veți înțelege:
- care sunt etapele ciclului de viață a unui program;
- care sunt principalele modele de dezvoltare ale unui produs software;
- care sunt avantajele și dezavantajele aplicării unui anumit model.
7. 1. Introducere
✎Exercițiul 1
Dați exemplu de o cerință SMART în cazul aplicației software MonitAer.
Persoana care face identificarea cerințelor trebuie să aibă abilități de comunicare și de
lucru cu oamenii, deoarece interacționează cu diferite grupuri de utilizatori, dar și cunoștințe de
programare pentru a ști dacă cerințele clientului sunt realizabile.
Ca tehnici de extragere a cerințelor pot fi enumerate:
• interviurile cu persoanele direct interesate în dezvoltarea sistemului software;
• studierea produselor software deja existente;
• realizarea unor scenarii de utilizare a produsului;
• crearea unor prototipuri ale viitorului sistem etc.
7. 2. 1. Tipuri de cerințe
Se identifică două mari categorii de cerințe utilizator:
1. cerințe funcționale (Capability Requirements), ce descriu ceea ce așteaptă
utilizatorii să facă produsul software;
2. cerințe non-funcționale surprind diferite constrângeri impuse asupra sistemului.
Cerințele funcționale cuprind precizarea serviciilor pe care trebuie să le ofere sistemul,
cum trebuie să reacționeze sistemul la intrări particulare și cum trebuie să se comporte sistemul
în situații particulare [11].
Exemple de cerințe funcționale pentru SatWatch - un ceas de mână care se actualizează
automat, exemplu preluat din [6] și [7].
• SatWatch este un ceas de mână ce utilizează sateliții GPS pentru a determina
locația curentă și a realiza actualizarea orei în mod automat.
• SatWatch actualizează ora și data la schimbarea fusului orar sau a granițelor
politice. Proprietarul ceasului nu trebuie să îl reseteze niciodată, ca urmare
ceasul nu are butoane de control.
• SatWatch are aceleași limitări ca orice dispozitiv ce utilizează sateliții GPS
pentru determinarea locației curente (ex. incapacitatea de a determina locația la
anumite momente din zi, în regiunile muntoase). În timpul perioadelor de black-
out, SatWatch consideră că nu se schimbă fusurile orare sau regiunile politice,
dar imediat după terminarea unui interval de acest tip se realizează actualizările
aferente.
• SatWatch are un afișaj pe două linii, cea de sus indicând timpul (ora, minute,
secunde, fus orar), iar cea de jos data (zi din săptămână, data, luna, an).
• În cazul modificării granițelor politice, proprietarul poate actualiza softul
ceasului prin utilizarea dispozitivului WebifyWatch (oferit împreună cu ceasul)
și a unui calculator conectat la Internet.
Conform modelului FURPS+, există diferite tipuri de cerințe non-funcționale (de
calitate) [9][10]:
• Utilizabilitate (eng. usability)- cât de ușor un utilizator învață să opereze
sistemul, să pregătească datele de intrare, să interpreteze datele de ieșire ale
modulelor sau ale întregului sistem. De exemplu existența unui ghid detaliat de
utilizare, sau unui help online, a diferitelor convenții regăsite la nivelul
interfețelor grafice - logo-uri, scheme de culori, tipuri de fonturi etc;
• Performanță (engl. performance) – caracterizată prin timpul de răspuns al
sistemului la interogările utilizatorului, puterea de calcul, acuratețea rezultatelor,
disponibilitatea (măsura în care un sistem este operațional și accesibil atunci
când se dorește utilizarea lui);
• Fiabilitate (eng. reliability) – caracteristica sistemului de a îndeplini funcțiile
cerute în condițiile stabilite, pentru o anumită perioadă de timp. De exemplu,
precizarea unui timp mediu dintre momentele de eșec sau a unei proceduri
urmate în cazurile unor atacuri de securitate etc.;
• Suportabilitate (eng. suportability), include adaptabilitatea (eng. adaptability) -
abilitatea de a modifica sistemul pentru a opera cu noi concepte din domeniul
problemei, mentenabilitatea (eng. maintainability) - abilitatea de a schimba
sistemul pentru a opera cu noi tehnologii sau a repara defecte și
internaționalizarea (eng. internationalization) - abilitatea de a schimba sistemul
pentru a opera cu limbi/unități de măsură/formate numerice străine [7].
Pe lângă acestea, în cadrul modelului există descrise constrângeri suplimentare precum
[6]:
• Constrângeri de implementare, ce includ constrângerile de utilizare a anumitor
unelte, limbaje de programare sau platforme hardware;
• Constrângeri de interfață sunt constrângeri impuse de sisteme externe;
• Constrângeri privind modul de operare;
• Constrângeri de instalare;
• Constrângeri legale ce cuprind prevederile legale privind licența și certificatul
de utilizare ale produsului software.
Exemple de cerințe de calitate și constrângeri pentru SatWatch:
• SatWatch trebuie să poată fi folosit de către orice utilizator ce știe să citească un
ceas digital și care cunoaște abrevierile legate de fusurile orare(cerință legată de
utilizabilitate);
• După o perioadă de black out, SatWatch trebuie să afișeze fusul orar corect în
maxim5 minute (cerință legată de performanță);
• Nu trebuie să apară nicio eroare care să necesite restartarea ceasului, deoarece
SatWatch nu dispune de butoane (cerință legată de fiabilitate);
• SatWatch trebuie să poată efectua upgrade-uri prin intermediul interfeței seriale
WebifyWatch (cerință legată de suportabilitate);
• Softul SatWatch va fi scris integral în Java, pentru conformanța cu standardele
companiei (constrângere de implementare);
• SatWatch se conformează interfețelor fizice, electrice și software definite de
WebifyWatch 2.0 (constrângere de interfață).
✎Exercițiul 2
Enumerați câteva cerințe non-funcționale pentru sistemul MonitAer.
7. 2. 2. Metode de reprezentare
Limbajul natural reprezintă cea mai intuitivă metodă de reprezentare a cerințelor
utilizator. Aceasta prezintă însă diferite neajunsuri, precum: ambiguitatea (utilizatorii și
dezvoltatorii trebuie să interpreteze aceleași cuvinte în același fel, ceea ce prin utilizarea
limbajul natural este dificil), supra-flexibilitate ( același lucru poate fi spus în mai multe moduri
în documente), lipsa modularizării ( structurile limbajului natural nu sunt adecvate structurării
cerințelor sistem).
Ca alternative ale reprezentării în limbaj natural, au fost dezvoltate diferite metode:
limbajul natural structurat, formule, tabele, diagrame de flux de date, elemente de modelare
UML: cazuri de utilizare, diagrame de cazuri de utilizare pentru delimitarea sistemului in
mediul său de operare, diagrame de secvență pentru descrierea scenariilor de utilizare a
sistemului etc [11].
7. 2. 3. Activități tehnice
Pentru utilizarea metodei elementelor de modelare UML sunt efectuate următoarele
activități tehnice:
• Identificarea actorilor;
• Identificarea scenariilor;
• Identificarea cazurilor de utilizare;
• Rafinarea cazurilor de utilizare;
• Identificarea relațiilor între cazurile de utilizare;
• Identificarea cerințelor non-funcționale.
Identificarea actorilor permite delimitarea sistemului de mediul în care urmează să
activeze. Pentru acest lucru se încearcă să se răspundă la întrebări asemănătoare cu acestea:
• Care sunt grupurile de utilizatori care execută funcțiile principale ale sistemului?
• Care sunt grupurile de utilizatori care execută funcții secundare, precum cele de
întreținere sau administrare?
• Care sunt grupurile de utilizatori a căror activitate este suportată de sistem?
• Care sunt echipamentele hardware și sistemele software externe cu care sistemul
în dezvoltare va interacționa?
Pentru sistemul MonitAer actorul principal este responsabilul ce monitorizează
măsurarea valorilor parametrilor atmosferici și analiza calității aerului, iar pentru SatWatch se
pot identifica în rolul de actor atât proprietarul ceasului, cât și sistemele GPS și WebifyWatch.
Identificarea scenariilor
Pentru a avea o bază de înțelegere comună cu utilizatorii, dezvoltatorii creează diferite
scenarii de folosire a sistemului ce se dorește a fi implementat. Pentru aceasta, ei consultă
documentele rezultate din interviurile cu clienții și utilizatorii, diferite manuale ale unor sisteme
anterioare, manuale procedurale, standarde ale companiei, note etc. Întrebările al căror răspuns
ajută în această etapă pot fi:
• Care sunt acțiunile pe care clientul dorește să le execute sistemul?
• Care sunt informațiile la care are acces actorul? Cine creează aceste date? Pot fi
ele modificate sau șterse? De către cine?
• Care sunt modificările externe despre care actorul trebuie să informeze sistemul?
Cât de des trebuie să efectueze aceste notificări? Când?
• Care sunt evenimentele despre care sistemul trebuie să informeze actorul? Cu ce
periodicitate?
Exemple de scenarii pentru sistemul MonitAer au fost date în cadrul unității de învățare
UI4.
✎Exercițiul 3
Dați exemplu de scenarii pentru SatWatch.
Identificarea relațiilor
Identificarea relațiilor dintre actori și cazurile de utilizare (comunicare, incluziune,
extindere, generalizare) permite reducerea complexității modelului, eliminarea redundanțelor
și a potențialelor inconsistențe [7].
Unele reguli urmate în această etapă includ:
• Modelarea comportamentului opțional sau de frecvență redusă utilizând relația
de extindere;
• Factorizarea comportamentului comun mai multor cazuri de utilizare prin relația
de incluziune;
• Evitarea supra-structurării modelului funcțional prin utilizarea judicioasă a
relațiilor (Un singur caz de utilizare mai complex se poate dovedi a fi mai
inteligibil decât un număr prea mare de cazuri mai simple).
Identificarea cerințelor non-funcționale
Pentru a identifica cerințele non-funcționale aferente modelului FURPS+ pot fi utilizate
răspunsurile următoarelor întrebări, prezentate în Tabelul 3[6]:
Tabelul 3 Exemple întrebări pentru identificarea cerințelor non-funcționale
Capitol Subcapitol
Introducere Scopul documentului cerințelor
Obiectivele și criteriile de succes ale proiectului
Definiții, acronime, abrevieri
Referințe
Sumar al restului documentului
Descriere generală Perspectiva produsului
Funcțiile produsului
Caracteristicile utilizatorilor
Constrângeri generale
Premise și dependențe
Cerințe specifice Cerințe de interfață (Interfețe utilizator, Interfețe hardware, Interfețe
software, Interfețe de comunicare)
Cerințe funcționale (Modulul 1, Modulul 2, ..., Modulul n)
Cerințe non-funcționale (Cerințe de performanță, Constrângeri de design
etc)
Alte cerințe
Apendice
Index
7. 4. Validarea cerințelor