Cerințe funcționale versus nefuncționale

Diferența cheie între cerințele funcționale și nefuncționale

  • O cerință funcțională definește un sistem sau componenta acestuia, în timp ce o cerință nefuncțională definește atributul de performanță al unui sistem software.
  • Cerințele funcționale, împreună cu analiza cerințelor ajută la identificarea cerințelor lipsă, în timp ce avantajul cerințelor nefuncționale este că vă ajută să asigurați o experiență bună de utilizare și ușurință în operarea software-ului.
  • Cerința funcțională este un verb, în ​​timp ce Cerința nefuncțională este un atribut
  • Tipurile de cerințe nefuncționale sunt: ​​Capacitate de scalabilitate, Disponibilitate, Fiabilitate, Recuperare, Date Integrity, etc., în timp ce corecțiile, ajustările și anulările tranzacțiilor, regulile de afaceri, cerințele de certificare, cerințele de raportare, funcțiile administrative, nivelurile de autorizare, urmărirea auditului, interfețele externe, gestionarea datelor istorice, cerințele legale sau de reglementare sunt diferite tipuri de cerințe funcționale.
Cerințe funcționale versus nefuncționale
Diferența dintre cerințele funcționale și nefuncționale

Ce este o cerință funcțională?

În ingineria software, a cerință funcțională definește un sistem sau componenta acestuia. Descrie funcțiile pe care trebuie să le îndeplinească un software. O funcție nu este altceva decât intrări, comportamentul ei și ieșiri. Poate fi un calcul, manipulare a datelor, un proces de afaceri, interacțiune cu utilizatorul sau orice altă funcționalitate specifică care definește ce funcție este probabil să îndeplinească un sistem.

Cerințe funcționale în inginerie software vă ajută să capturați comportamentul dorit al sistemului. Acest comportament poate fi exprimat ca funcții, servicii sau sarcini sau pe care sistemul trebuie să le realizeze.

Ce este cerința nefuncțională?

A cerinţă nefuncţională definește atributul de calitate al unui sistem software. Ele reprezintă un set de standarde utilizate pentru a judeca funcționarea specifică a unui sistem. De exemplu, cât de repede se încarcă site-ul?

O cerință nefuncțională este esențială pentru a asigura utilizarea și eficacitatea întregului sistem software. Nerespectarea cerințelor nefuncționale poate duce la sistemele care nu satisfac nevoile utilizatorilor.

Cerințele nefuncționale vă permit să impuneți constrângeri sau restricții asupra designului sistemului în diferitele restanțe agile. De exemplu, site-ul ar trebui să se încarce în 3 secunde când numărul de utilizatori simultani este > 10000. Descriptionul cerințelor nefuncționale este la fel de critică ca și o cerință funcțională.

Exemplu de cerințe funcționale

Iată câteva exemple de cerințe funcționale în ingineria software:

  • Software-ul validează automat clienții cu sistemul de management al contactelor ABC
  • Sistemul de vânzări ar trebui să permită utilizatorilor să înregistreze vânzările clienților
  • Culoarea de fundal pentru toate ferestrele din aplicație va fi albastră și va avea o valoare a culorii RGB hexazecimală de 0x0000FF.
  • Numai angajații de nivel managerial au dreptul de a vedea datele privind veniturile.
  • Sistemul software ar trebui să fie integrat cu API-ul bancar
  • Sistemul software ar trebui să treacă Secțiunea 508 cerința de accesibilitate.

Exemple de cerințe nefuncționale

Iată câteva exemple de cerințe nefuncționale în ingineria software:

  1. Utilizatorii trebuie să schimbe parola de conectare atribuită inițial imediat după prima conectare cu succes. Mai mult, inițiala nu trebuie reutilizată niciodată.
  2. Angajații nu au permis niciodată să își actualizeze informațiile despre salariu. O astfel de încercare trebuie raportată administratorului de securitate.
  3. Fiecare încercare nereușită a unui utilizator de a accesa un element de date va fi înregistrată pe o pistă de audit.
  4. Un site web ar trebui să fie suficient de capabil să gestioneze 20 de milioane de utilizatori cu afectarea performanței sale
  5. Software-ul ar trebui să fie portabil. Deci, trecerea de la un sistem de operare la altul nu creează nicio problemă.
  6. Confidențialitatea informațiilor, exportul de tehnologii restricționate, drepturile de proprietate intelectuală etc. ar trebui auditate.

Diferența dintre cerințele funcționale și nefuncționale

Mai jos este diferența principală dintre cerințele funcționale și nefuncționale în ingineria software:

parametrii Cerință funcțională Cerință non-funcțională
Ce este Verb Atribute
Cerinţă Este obligatoriu Este neobligatoriu
Tip de captură Este capturat în cazul de utilizare. Este surprins ca un atribut de calitate.
Rezultat final Caracteristica produsului Proprietățile produsului
capturarea Usor de capturat Greu de capturat
Obiectiv Vă ajută să verificați funcționalitatea software-ului. Vă ajută să verificați performanța software-ului.
Zona de focalizare Concentrați-vă pe cerințele utilizatorului Se concentrează pe așteptările utilizatorului.
Documentație Descrieți ce face produsul Descrie modul în care funcționează produsul
Tipul de testare Testare funcțională, cum ar fi sistemul, integrarea, capăt la capăt, Testare API, Etc Testări non-funcționale, cum ar fi performanța, stresul, gradul de utilizare, Testare de securitate, Etc
Executarea testului Execuția testului se face înainte de testarea nefuncțională. După testarea funcţională
Informatii despre produs Caracteristici produs Proprietățile produsului

Avantajele cerințelor funcționale

Iată avantajele/avantajele creării unui document cu cerințe funcționale tipice-

  • Vă ajută să verificați dacă aplicația oferă toate funcționalitățile care au fost menționate în cerințele funcționale ale aplicației respective
  • Un document de cerințe funcționale vă ajută să definiți funcționalitatea unui sistem sau a unuia dintre subsistemele acestuia.
  • Cerințele funcționale împreună cu analiza cerințelor ajută la identificarea cerințelor lipsă. Ele ajută la definirea clară a serviciului și comportamentului sistemului așteptat.
  • Erorile surprinse în etapa de colectare a cerințelor funcționale sunt cel mai ieftin de remediat.
  • Sprijiniți obiectivele, sarcinile sau activitățile utilizatorilor pentru un management ușor de proiect
  • Cerința funcțională poate fi exprimată în formularul de caz de utilizare sau povestea utilizatorului, deoarece prezintă un comportament funcțional vizibil extern.

Avantajele cerințelor nefuncționale

Avantajele/avantajele testării nefuncționale în Inginerie software sunt:

  • Cerințele nefuncționale asigură că sistemul software urmează regulile legale și de conformitate.
  • Acestea asigură fiabilitatea, disponibilitatea și performanța sistemului software
  • Acestea asigură o experiență bună de utilizare și ușurință în operarea software-ului.
  • Ele ajută la formularea politicii de securitate a sistemului software.