You are on page 1of 27

SOFTWARE QUALITY ATTRIBUTES

Prepared ByNazrana Haque


ID: 151-44-106

Software Quality
Software quality is the degree of conformance to explicit or implicit
requirements and expectations.
Definition by IEEE
The degree to which a system, component, or process meets specified
requirements.
Definition by ISTQB
The totality of functionality and features of a software product that bear
on its ability to satisfy stated or implied needs.

Software Quality Attributes


SoftwareQualityAttributesarethebenchmarksthat
describesystem'sintendedbehavior.
Qualityattributerequirementsarepartofanapplications
nonfunctionalrequirements,whichcapturetheaspectsof
howthefunctionalrequirementsofanapplicationare
achievedeffectively.
Theseattributesaretheoverallfactorsthataffectruntime
behavior,systemdesign,anduserexperience.

Architecting with Quality Attributes


Someofthequalityattributesthatcanbe

addressedbyanapplicationsarchitectureare:
Performance
Modifiability
AvailabilityandReliability
Usability
Portability
Security

Performance
Itrepresentstheresponsivenessofthesystem(e.g.,

thetimerequiredtorespondtoeventsorthenumber
ofeventsprocessedinsomeperiodoftime).
Performancemainlymeasuredintermsofruntime,
responsetimeandthroughput.
Performancehasbeenadrivingfactorinsystems
architectureandoftencompromisestheachievement
ofotherqualityattributes.

Example performance scenario


Users initiate 1000 transactions per minute under normal
operation and these transactions are processed within an
average latency of two seconds.

Source
Users

Stimulus
Initiate
1000
transactions

System
Environment
Under normal
operation

Response
Transactions
are
processed

Measure
With average
latency of
two seconds

Modifiability
Modifiability is a quality attribute of the software architecture that
relates to the cost of change and refers to the ease with which a
software system can accommodate changes.
It is the ability to grow an architecture over time.
A modifiable architecture can have new features added without
requiring architectural rework

Example modifiability scenario

A developer wishes to change the UI code at


design time; modification is made with no side
effects in three hours.

Source
Developer

Stimulus
Wishes to
change UI

Code
Environment
At design time

Response
Modification
is made with
no side effects

Measure
In three hours

Availability and Reliability


Availabilityisanattributethatmeasuresthe

proportionoftimethesystemisupand
running.
Reliabilityisanattributethatmeasures
thesystemsabilitytocontinue
operatingovertime.

Example availability and reliability scenario


An unexpected external message is received by a process
during normal operation. The process informs the operator of
the receipt of the message and the system continues to operate
with no downtime. Availability of the system ensures reliability.

Source
External
to system

Stimulus
Unanticipated
message

Process
Environment
Under normal
operation

Response
Inform
operator,
continue to
operate

Measure
No downtime

Usability
Thistypicallyreferstotheusabilitywith

respecttotheenduser.
Itcanalsoaddressothersystemuserssuch
assystemmaintainers,operators,etc.

Example usability scenario


User inputs invalid data. The process informs the user about the
error in input by the message and gives instruction on how to
solve the error. The user continues to use an user-friendly
system.

Source
Users

Stimulus
Input invalid
data

System
Environment
Under normal
operation

Response
Inform user,
Give instruction Measure
User enters
Data
successfully

Security
Itistheabilitytoenforceauthorization,

authentication,anddeliberatedenialofservice
attacks.
Securityrequirementscanaffectthefunctional
decompositionofthesystem

Portability
Itistheabilitytoreuseacomponentinadifferent

applicationoroperatingenvironment.
Itcanbeconsideredasaspecialkindofmodifiability.
Portabilityrelatedattributesare:

Adaptability
Installability
Conformance
Replaceability

Quality Attributes in Agile Projects


Traditionally,agileapproachesencouragedelivering

productsbyemphasizingonbuildingprioritised
softwarefunctionalityratherthanfocusingonnonfunctionalaspectsofthesystem.
Afewoftherecentresearchesinagiledevelopment
haveproposedmethodsinidentifyingqualityissues
throughcategorisingqualityattributesintheearly
phasesofanagileproject.

Quality Model for Agile Application Development

AVAILABILITY attribute in Agile Projects


Agile application is an iterative process where a
customer or representative of end user is always
present on site and is consistently evaluating the
product.
Therefore, in order to gain customer feedback at any
point of time during the increment, system should be
available and operative all the time.

FLEXIBILITY attribute in Agile Projects


Agile application development is different from traditional
approaches in the essence that it embraces change at any point
of time.
After each increment, product is evaluated and tested by a
customers representative, on site.
Customer recommends changes that are adopted immediately.
Only a flexible application can adopt change in requirements
and functionality; hence, flexibility is a critical quality attribute for
agile application development.

SCALABILITY attribute in Agile Projects


In agile application development, core functionalities with high
priority are developed in earlier iterations
And with the passage of time product evolve and remaining
functionalities are added.
Keeping in view the above scenario it can be inferred that
product needs to scale to the added functionalities in that are
added in each iteration.
Scalability is a crucial quality attribute for agile applications,
since agile applications are based on the principle of
evolutionary development.

PERFORMANCE attribute in Agile Projects


As aforementioned, product is being developed in fast-paced in
agile projects.
Small iteration where performance of the product is crucial in
seamless and flawless execution of the program.
Performance refers to processing capabilities of application with
respect to time constraints and it is one of the key quality
attributes in agile application development.

TESTABILITY attribute in Agile Projects


Agile testing covers two specific business perspectives.
It offers the ability to critique the product, thereby minimizing the
impact of defects being delivered to the user and
On the other, it supports iterative development by providing
quick feedback within a continuous integration process.
This means that agile programs, which sustain testability
through every design decision, will enable the enterprise to
achieve shorter runway for business and architectural epics.

PORTABILITY attribute in Agile Projects


Nothing is constant in agile application development.
Requirement changes, hardware changes and platform changes
occur often.
In such volatile scenario, agile product being developed should
be portable enough to be able to run on versatile platforms .

USABILITY attribute in Agile Projects


A customer is consistently involved in requirement evolution
during agile application development; he consistently evaluates
system and provides his feedback.
For end user to perform better evaluation, application under
analysis must be usable.
Usability is extremely important quality attribute with reference
to agile application development.

UNDERSTANDABILITY attribute in Agile Projects


During agile application development, several cross functional
teams sit together and work at one place.
In order to ensure seamless communication and interaction
between all the teams, product developed should be
understandable.
It signifies that how easy it will be for a user to perform a
specific task and how easily can a tester understand and
perform testing of the application which is a continuous process
in agile applications.

Summary
Qualityattributesaremeasurableorobservable

characteristicsofproductsandprocesses.
Thequalityrequirementsspecificationgives
quantitativeorqualitativevaluesfortheseattributes
thatmustbesatisfiedbytheexecutablesystem.

Any Questions?

Thank You

You might also like