question to know that quality has improved, it would be helpful to be able to measure quality. how...
TRANSCRIPT
Question
To know that quality has improved, it would be helpful to be able to measure quality.
How can we measure quality?
2
Functional vs. non-functional requirements Examples: Hotel reservation Functional requirements
Reservations and cancellations Meals and extra services Billings
Non-functional requirements Max. time to do reservation < 2 min Downtime < 1% Run on Microsoft Windows + Mac Easy to change DBMS
Seems like in Software Engineering we concentrate on capturing, designing, implementing, and deploying with emphasis on functional requirements.
Little (not none!) emphasis on the non-functional requirements (quality factors).
In the RUP, non-functional requirements are captured in the Software Requirements Specification (SRS); functional requirement usually captured in Use Case stories.
Need for Comprehensive Software Quality Requirements
Need for improving poor requirements documents is widespread
Frequently lack quality factors such as: usability, reusability, maintainability, …
Software industry groups the long list of related attributes into what we call quality factors. (Sometimes non-functional requirements)
Natural to assume an unequal emphasis on all quality factors.
Emphasis varies from project to project Scalability; maintainability; reliability…
Quality factors Quality factors provide :
Goal-oriented methodology for measuring software quality
Another dimension by which Software req (non functional) can be addressed .
Identification of important attributes in the product that will have impact on its life cycle.
A basis for process improvement
Software quality6
Software quality framework Software quality factor
Management-oriented view of produce quality Software quality criteria
Software-oriented attributes which provides quality
Software quality metricsQuantitative measures of those attributesFigure : Software quality framework
Software quality8
Metrics
How to measure software quality? We need some numbers! Metrics are measurements of whether the criteria
exists or not, and to what degree
Example metrics Checklists: Grading the software Inspection guidelines Quantitative measures Table 5. Quality Metrics Summary, page 966-967
McCall’s Quality Factors McCall has 11 factors; Groups them into categories.
1977; others have added, but this still prevail.
Three categories: Product Operation Factors
How well it runs…. Correctness, reliability, efficiency, integrity, and usability
Product Revision Factors How well it can be changed, tested, and redeployed. Maintainability; flexibility; testability
Product Transition Factors How well it can be moved to different platforms and interface with other
systems
Portability; Reusability; Interoperability.
Product operation - Will it work correctly now and in the future?
A customer or user of a newly developed software product is initially
concerned , from quality viewpoint , with how well that product
operates. For example , does it perform the function desired
correctly , reliability , as efficiently as required, and in some case ,
securely ?
Product revision - Can it be changed?
If the product is going to be used for a long time, then the concern
becomes whether it is easy to maintain , change and test to see if
the fixes and changes have been made correctly
Product transition - Can it be used in other contexts?
How easy it is to adapt the software for use beyond its original intended
use.
Software quality factors
Product operation factors
Product revision factors
Product transition factors
Note: not much apparent emphasis on functionality – only in correctness.
Maintainability Flexibility Testability
Can I fix it easily, retest, version it, and deploy it easily?
Portability Reusability Interoperability
Can I move the app to different hardware? Interface easily with different hardware / software systems; can I reuse major portions of the code with little modification to develop new apps?
Define and give example of each Usability Integrity Efficiency Correctness Reliability Maintainability Testability Flexibility Reusability Portability Interoperability
Quality factors and criteria
Quality factors represent a management- oriented view of
software quality, but to introduce a quantitative dimension:
For each factor , we define a set of criteria or attributes .
Criteria are indepenedent attributes of the software , or
the software production process , by which quality can be
judged, defined and measured.
These criteria help describe the relationship between
factors since one criteria can be related to more than one
factor ( factor to factor trade-off)
Operability
Training
Communicativeness
Input/Output volume
Input/Output gate
Access Control
Access Audit
Storage efficiency
Execution Efficiency
Traceability
Completeness
Accuracy
Error Tolerance
Consistency
Simplicity
Conciseness
Instrumentation
Expandability
Generality
Self-Descriptiveness
Modularity
Machine Independence
Software System Independence
Communications Commonality
Data Commonality
Usability
Integrity
Efficiency
Correctness
Reliability
Maintainability
Testability
Flexibility
Reusability
Portability
Interoperability
Factor to factor trade-off
We can not achieve all the quality factors , a compromise
should be done:
A developement for which reliability is important will also
generally result in software that easier to test or vis versa
(light circle).
Sometimes (filled-in circle) , goals can conflict or costly or
difficult to achieve together. For example , highly efficient
software is often achieved using lower level languages ,
making the system hard to understand and therefore to
maintain.
Quality factor specification process Important quality factors are identified.The user must evaluate
the quality requirements and identify which quality factors are
important to specify within the context of the developemnt
methodology. They are related to the system characteristics
Quality factor are specified as requirements.
Identification of supporting criteria (software attributes)
Provision of measurements to assess their attainment.
Guidelines for identifying important quality factors
Table x :Quality factor related to system characteristics