You are on page 1of 46

Cerine Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 1

Obiective

De a introduce conceptele de cerine utilizator i cerine sistem De a descrie cerinele funcionale i nefuncionale De a explica cum pot fi organizate cerinele sotfware ntr-un document de cerine

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 2

Cuprins

Cerine funcionale i ne-funcionale Cerine utilizator Cerine de sistem Documentul de cerine software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 3

Ingineria cerinelor

Este procesul de stabilire a serviciilor pe care le dorete clientul de la sistem i constrngerile de operare i dezvoltare. Cerinele sunt descrieri ale serviciilor sistemului.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 4

Ce este o cerin?

Poate varia de la o fraz abstract care descrie un serviciu sau o constrngere de sistem pn la o specificare matematic detaliat. Aceast situaie este inevitabil deoarece ele au dou funcii

Pot sta la baza unei licitaii deci trebuie s fie uor de interpretat; Pot sta la baza unui contract deci trebuie definite n detaliu; Ambele descrieri sunt numite cerine.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 5

Abstractizarea cerinelor (Davis)

Dac o companie dorete s iniieze dezvoltarea unui proiect software mare


d e f i n e a s c c e r i n e l e n t r u n m o d s u f i c i e n t d e a b s t r a c t c a s o l u i a s n u f i e C e r i n e l e t r e b u i e s c r i s e a s t f e l n c t d i f e r i t e f i r m e s p o a t e l i c i t a p e n t r u c o n t r a

dodumente pot fi numite document de cerine pentru sistem.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 6

Tipuri de cerine

Cerine utilizator
Sunt fraze n limbaj natural plus diagrame ale serviciilor pe care le ofer sistemul i constrngeri de operare. Ele sunt scrise de clieni. Sunt structurate ntr-un document cu descrieri detaliate ale funciilor sistemului, servicii i constrngeri de operare. Definete ceea ce va fi implementat deci poate fi parte dintr-un contract.
Software Engineering, 7th edition. Chapter 6 Slide 7

Cerine de sistem

Ian Sommerville 2004

Definiii i specificaii
Definiie de cerin utilizator

1. Programul trebuie s ofere mijloace de reprezentare i accesare a 1. fiierelor externe create de alte instrumente

Specificaie de cerin sistem 1.1 Utilizator trebuie s aib mijloace de a defini tipul fiierelor externe 1.2 1.2 Fiecare tip de fiier exterior poate avea un instrument asociat cu care 1.2 poate fi deschis acel . fiier 1.3 Fiecare tip de fiier exterior poate fi reprezentat cu un icon specific 1.2 pe ecran 1.4 Trebuie oferite mijloace ca pozele ce reprezint tipurile de fiiere 1.2 externe s poat fi definite de utilizator 1.5 Cnd utilizatoru selecteaz o poz ce reprezint un fiier, efectul 1.2 seleciei este aplicarea instrumentului asociat acelui tip de fiier 1.2 asupra fiierului selectat

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 8

Cine citete cerinele?


Cerine utilizator

Manageri ai clientului Utilizatori finali de sistem Ingineri si clientului Manageri de dezvoltare Arhiteci de sistem

Cerine sistem

Utilizatori finali de sistem Ingineri ai clientului Arhiteci de sistem Dezvoltatori software

Specificaii de proiectare

Ingineri ai clientului (posibil) Arhiteci de sistem Dezvoltatori software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 9

Cerine funcionale i ne-funcionale

Cerine funcionale
Descrieri ale serviciilor pe care trebuie s le ofere sistemul, cum trebuie s reacioneze i s se comporte sistemul n situaii particulare. Constrngeri asupra serviciilor sau funciilor oferite de sistem cum ar fi constrngeri de timp, constrngeri ale procesului de dezvoltare, standarde, etc. Cerine ce provin din domeniul de aplicaie al sistemului.

Cerine ne-funcionale

Cerine specifice domeniului problemei

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 10

Cerine funcionale

Descriu funcionalitatea sau serviciile sistemului. Depind de tipul de software i de tipul de utilizator ce vor folosi sistemul. Cerinele funcionale pot fi fraze abstracte de descriu ceea ce face sistemul dar ele pot descrie sistemul n detaliu.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 11

Sistemul LIBSYS (exemplu)

Este un sistem tip bibliotec ce ofer o interfa unic la un numr de baze de date de articole din diferite biblioteci. Utilizatorii pot cuta, aduce i tipri aceste articole pentru studiu personal.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 12

Exemple de cerine funcionale

Utilizatorul trebuie s poat cuta articole n toate bazele de date sau ntr-un subset selectat.

Sistemul trebuie s ofere instrumente vizualizare potrivite pentru citirea articolelor.

de

Fiecare comand trebuie s aib alocat un identificator unic (ORDER_ID).

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 13

Imprecizii ale cerinelor

Problemele apar atunci cnd cerinele nu sunt enunate precis. Cerinele ambigue pot fi interpretate diferit de utilizatori i dezvoltatori. De exemplu termenul instrumente de vizualizare potrivite

Intenia utilizatorului instrumente de vizualizare speciale pentru fiecare tip de document; Interpretarea dezvoltatorului oferirea unui editor de text care s prezinte coninutul documentului.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 14

Completitudinea i consistena cerinelor

n principiu, cerinele trebuie s fie complete i consistente. Complete Trebuie s includ descrieri ale tuturor facilitilor. Consistente Nu trebuie s existe conflicte sau contradicii n descrierea facilitilor sistemului. n practic, este imposibil realizarea unui document de cerine complete i consistente.
Software Engineering, 7th edition. Chapter 6 Slide 15

Ian Sommerville 2004

Cerine ne-funcionale

Acestea definesc proprietile i constrngerile sistemului cum ar fi fiabilitate, timp de rspuns i cerine de stocare. Constrngerile sunt proprieti ale componentelor de stocare de date, reprezentri ale sistemului, etc. Pot fi specificate cerine de proces care impun un anumit sistem CASE, un limbaj de programare sau o metod de dezvoltare. Cerinele ne-funcionale pot fi mai critice dect cele funcionale. Dac primele nu sunt ndeplinite, sistemul este inutilizabil.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 16

Clasificarea cerinelor ne-funcionale

Cerine de produs
Sunt cerine care specific lucruri pe care produsul trebuie s le ndeplineasc legat de viteza de execuie, fiabilitate, etc. Cerine care sunt consecine ale politicii i procedurilor organizaiei cum ar fi standarde de proces folosite, cerine de implementare, etc.

Cerine de organizare

Cerine externe
Cerine care provin din factori externi sistemului i procesului de dezvoltare cum ar fi cerine de interoperabilitate, cerine legislative, etc.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 17

Tipuri de cerine ne-funcionale


Non-funct ional re quir e me nts

Product re quir e me nts

Organisa ti onal re quir e me nts

E xt erna l re quir e me nts

E ffi ci ency re quir e me nts

Re liabili ty re quir e me nts

Porta bili ty re quir e me nts

Inte r ope r a bili ty re quir e me nts

E thic al re quir e me nts

Usa bili ty re quir e me nts

Del ive ry re quir e me nts

Imple menta ti on re quir e me nts

Standar ds re quir e me nts

L egislative re quir e me nts

Pe rformanc e re quir e me nts

Spa ce re quir e me nts

Pri va cy re quir e me nts

Safe ty re quir e me nts

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 18

Exemple de cerine ne-funcionale

Cerine de produs
8.1 Interfaa cu utilizatorul pentru sistemul LIBSYS trebuie s fie implementat ca pagini HTML simple fr cadre (frames) sau Java applets.

Cerine de organizare
9.3.2 Procesul de dezvoltare i documentele rezultate se vor conforma celor definite n XYZCo-SP-STAN-95.

Cerine externe
7.6.5 Sistemul nu trebuie s ofere alte informaii personale legate de clieni n afar de numele lor.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 19

Cerine i scopuri

Cerinele ne-funcionale pot fi foarte greu de exprimat ntr-un mod precis iar cerinele imprecise pot fi greu verificate. Scop
O intenie general a utilizatorului cum ar fi uurina n utilizare. O cerin ce folosete un sistem de msur pentru a putea fi obiectiv testat.

Cerin ne-funcional verificabil

Scopurile sunt utile dezvoltatorilor n msura n care cuprind inteniile utilizatorilor de sistem.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 20

Exemple

Un scop al sistemului
Sistemul trebuie s fie uor de utilizat de operatori experimentai i trebuie organizat astfel nct erorile de utilizare s fie minimizate. Operatorii experimentai trebuie s poat folosi funcionalitatea sistemului dup un total de dou ore de nvare. Dup aceast perioad numrul mediu al erorilor fcute de operatorii experimentai nu trebuie s depeasc dou pe zi.

O cerin ne-funcional verificabil

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 21

Uniti de msur pentru cerine


Proprietate Viteza Unitate de m
s u r

Tranzacii/secund procesate
T i m p d e r s p u n s T i m p d e m p r o s p t a r e p e e c r a n

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 22

Interaciunea cerinelor

Conflictele dintre diferite cerine ne-funcionale sun un lucru obinuit n sistemele complexe. Sistem folosit n navete spaiale
Pentru a minimiza greutatea, numrul de cipuri separate din sistem trebuie minimizat. Pentru a minimiza consumul de putere, trebuie folosite cipuri cu consum redus. Totui, folosirea cipurilor cu consum redus poate nsemna c vor fi folosite mai multe cipuri. Care cerin este mai important (mai critic)?

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 23

Cerine din domeniul aplicaiei

Descriu caracteristici ale sistemului i faciliti care reflect domeniul specific de lucru al aplicaiei. Ele pot fi cerine funcionale, constrngeri asupra altor cerine sau pot defini calcule specifice. Dac aceste cerine nu sunt ndeplinite, sistemul poate fi inutilizabil.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 24

Cerine din domeniul aplicaiei LIBSYS

Trebuie s existe o interfa utilizator standard pentru toate bazele de date interfa bazat pe standardul Z39.50. Datorit restriciilor de copyright, unele documente trebuie terse imediat dup ce au fost aduse. n funcie de cerinele utilizatorului, aceste documente pot fi doar printate local sau pe o imprimant de reea.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 25

Probleme ale cerinelor din domeniul aplicaiei

nelegerea cerinelor
Cerinele sunt exprimate ntr-un limbaj specific domeniului aplicaiei; Acest limbaj nu este ntotdeauna neles de inginerii software ce dezvolt sistemul. Specialitii domeniului neleg domeniul att de bine nct nu se gndesc c este nevoie s exprime explicit aceste cerine.

Cerine implicite

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 26

Cerine utilizator

Trebuie s descrie cerine funcionale sau nefuncionale ntr-un mod care s fie neles de ctre utilizatorii sistemului care nu au cunotine tehnice de detaliu. Cerinele utilizator sunt definite folosind limbajul natural, tabele i diagrame n msura n care pot fi nelese de ctre toi utilizatorii.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 27

Probleme legate de exprimarea n limbaj natural

Lipsa de claritate
Este greu s obii precizie fr s faci documentul dificil de citit. Cerinele funcionale i cele ne-funcionale tind s fie amestecate. Diferite cerine pot fi exprimate mpreun.

Confuzia cerinelor

Amalgamarea cerinelor

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 28

Cerine utilizator LIBSYS

4..5 Sistemul LIBSYS trebuie s ofere un sistem de contabilitate care s tin nregistrri ale tuturor plilor fcute de utilizatorii sistemului. Managerii sistemului pot configura acest sistem de contabilitate astfel nct utilizatorii frecveni s poat beneficia de reduceri.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 29

Sfaturi pentru scrierea cerinelor

Inventeaz un format standard i folosete-l pentru toate cerinele. Folosete limbajul ntr-un mod consistent. Folosete trebuie pentru cerinele obligatorii i ar trebui pentru cerinele de dorit. Scoate n eviden prile cheie ale cerinelor. Evit folosirea jargonului informatic.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 30

Cerine de sistem

Sunt specificaii mai detaliate ale funcionalitii sistemului, ale serviciilor sau constrngerilor. Ele vor fi baza pentru proiectarea sistemului. Pot fi ncorporate ntr-un contract. Cerinele de sistem pot fi definite sau ilustrate folosind diferite modele de sistem.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 31

Cerinele i proiectarea

n principiu, cerinele trebuie s exprime ceea ce va face sistemul iar proiectarea tebuie s descrie cum va face sistemul aceste lucruri. n practic, cerinele i proiectarea sunt inseparabile
O arhitectur de sistem poate fi proiectat pentru a structura cerinele; Sistemul poate inter-opera cu alte sisteme care genereaz cerine de proiectare; Folosirea unei proiectri specifice poate fi o cerin din domeniul aplicaiei.
Software Engineering, 7th edition. Chapter 6 Slide 32

Ian Sommerville 2004

Probleme ale specificrii n limbaj natural

Ambiguitate
Cititorii i scriitorii de cerine trebuie s interpreteze aceleai cuvinte n acelai fel. Limbajul natural este ambiguu ceea ce face lucrurile dificile. Acelai lucru poate fi spus n mai multe feluri n specifiaie. Structurile limbajului natural nu sunt adecvate pentru a structura cerinele de sistem.

Flexibilitate prea mare

Lipsa modularizrii

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 33

Alternative la specificaii n limbaj natural


Notaie Limbaj natural structurat
L i m b a j e d e D e s c r i e r e

Aceast abordare depinde de definirea unor abloane standard pentru exprimarea


c e r i n e l o r .

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 34

Specificaii n limbaj structurat

Libertatea scriitorului de cerine este limitat de un ablon predefinit pentru cerine. Toate cerinele sunt scrise ntr-o manier standard. Terminologia folosit n descrieri poate fi limitat. Avantajul este c se menine expresivitatea limbajului natural dar este impus un grad de uniformizare a specificaiilor.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 35

abloane de specificaii

Definirea funciei sau a entitii. Descrierea intrrilor i a provenienei lor. Descrierea ieirilor i a destinaiei lor. Indicarea altor entiti necesare. Pre i post condiii (dac este necesar). Efecte secundare (laterale) ale funciei.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 36

abloane de specificaii
Insulin Pump/Control Software/SRS/3.3.2 Funcie Descriere
z o n a d e s i g u r a n

Calculeaz doza de insulin: Nivelul sigur de zahr Cacluleaz doze de insulin ce trebuie administrat cnd nivelul msurat de zah este n
n t r e 3 i 7 u n i t i .

Intrri Surs Ieiri Destinaie Aciune:


e s t e n c r e t e r e D o z a C a l c u l a t s

Citirea nivelul curent de zahr (r2), i precedentele dou citiri (r0 and r1) Nivelul curent de zahr de la senzor. Alte citiri din memorie. DozaCalculat
d o z a d e i n s u l i n c e t r e b u i e a d m i n i s t r a t

Bucla principal de control DozaCalculat este zero dac nivelul zahrului este stabil sau n cdere sau dac nivelul
d a r r a t a d e c r e t e r e s c a d e . D a c n i v e l u l c r e t e i r a t a d e c r e t e r e c r e t e i e a , a t u n c i e o b i n e m p r i n d d i f e r e n a d i n t r e n i v e l u l c u r e n t a l z a h r u l u i i n i v e l u l p r e c e d e n t l a 4 i

Necesit Pre-condiie Post-condiie

Dou citiri precedente pentru a putea fi calculat rata modificrii nivel Rezervorul de insulin conine cel puin doza maxim de insulin.. r0 este nlocuit de r1 apoi r1 este nlocuit de r2 Nici unul

Efecte-secundare

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 37

Modele grafice

Modelele grafice sunt foarte utile cnd trebuie s ari cum se schimb starea sistemului sau cnd trebuie specificate secvene de aciuni.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 38

Diagrame de secven

Arat secvena evenimentelor care apar n timpul unei interaciuni a utilizatorului cu sistemul. Se citesc de sus n jos pentru a nelege ordinea n care apar aciunile. Scoaterea banilor dintr-un ATM
Validarea cardului; Prelucrarea cerinei; Completarea tranzaciei.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 39

Diagram de secven pentru scoaterea banilor dintr-un ATM


ATM Card PIN request PIN Option m enu <<exception>> invalid card Withdraw request Amount request Amount Debit (amount) <<exception>> insuf ficient cash Card Card rem oved Cash Cash rem oved Receipt Complete transaction Debit response Balance request Balance Handle request Validate card Database Card number Card OK

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 40

Documentul de cerine

Documentul de cerine este exprimarea oficial a ceea ce se cere de la dezvoltatorii sistemului. Trebuie s includ att definiii ale cerinelor utilizator ct i specificaii ale cerinelor de sistem. NU este un document de proiectare. Pe ct este posibil, trebuie s exprime CE trebuie s fac sistemul i nu CUM trebuie s fac

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 41

Utilizatorii documentului de cerine


S ystem customers Specify the requirements and read them to check that they meet their needs. T hey specify changes to the requirements

Managers

Use the requirements document to plan a bid for the system and to plan the system development process

S ystem eng ineers

Use the requirements to understand what system is to be developed

ystem S test eng ineers

Use the requirements to develop validation tests for the system

S ystem maintenance engineers

Use the requirements to help understand the system and the relationships between its parts

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 42

Standardul IEEE pentru cerine

Definete o structur generic pentru documentul de cerine ce trebuie creat pentru un sistem specific.
Introducere. Descriere general. Cerine specifice. Apendice. Index.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 43

Structur propus pentru documentul de cerine


Prefa Introducere Glosar Definirea cerinelor utilizator Arhitectura sistemului Specificarea cerinelor de sistem Modele de sistem Evoluia sistemului Apendice Index

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 44

Concluzii

Cerinele exprim ceea ce trebuie s fac sistemul i definete constrngerile asupra operrii sau implementrii. Cerinele funcionale exprim serviciile pe care le va oferi sistemul. Cerinele ne-funcionale constrng sistemul sau procesul de dezvoltare. Cerinele utilizator sunt exprimri de nivel nalt a ceea ce trebuie s fac sistemul. Cerinele utilizator trebuie scrise n limbaj natural, eventual folosind tabele i diagrame.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 45

Concluzii
Cerinele de sistem trebuie s descrie funciile oferite de sistem. Un document de cerine software este o exprimare oficial a cerinelor sistemului. Standardul IEEE este un punct de start pentru definirea unor standarde mai detaliate de specificare a cerinelor.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 6

Slide 46

You might also like