Presentation is loading. Please wait.

Presentation is loading. Please wait.

Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?

Similar presentations


Presentation on theme: "Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?"— Presentation transcript:

1 Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?

2 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

3 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.

4 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…

5 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

6 Software quality 6 Software quality framework Software quality factor  Management-oriented view of produce quality Software quality criteria  Software-oriented attributes which provides quality Software quality metrics  Quantitative measures of those attributes  Figure : Software quality framework

7 Software quality framework

8 Software quality 8 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

9 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.

10 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.

11 Software quality factors Product operation factors Product revision factors Product transition factors Note: not much apparent emphasis on functionality – only in correctness.

12 Correctness Reliability Efficiency Integrity Usability How well does it run and ease of use.

13 Maintainability Flexibility Testability Can I fix it easily, retest, version it, and deploy it easily?

14 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?

15 Quality Factors

16 Allocation of software quality to dev life cycle

17 Define and give example of each Usability Integrity Efficiency Correctness Reliability Maintainability Testability Flexibility Reusability Portability Interoperability

18 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)

19 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

20

21 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.

22 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.

23 Guidelines for identifying important quality factors Table x :Quality factor related to system characteristics

24 Quality factor specification process


Download ppt "Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?"

Similar presentations


Ads by Google