Chapter : 14 Quality Concepts

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

System Integration Verification and Validation
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
Overview Lesson 10,11 - Software Quality Assurance
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Chapter#7.  Part 1: Quality Management ◦ ƒ Understand the definition of quality and the different methodologies to provide quality ◦ ƒ Know quality management.
Software Process and Product Metrics
Non-functional requirements
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Developed by Reneta Barneva, SUNY Fredonia Quality Concepts (Chapter 14)
Software Quality SEII-Lecture 15
Software Project Management Fifth Edition
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Managing Software Quality
COURSE TITLE: 1 Software Quality Assurance. Course Aims Introduction to software quality assurance. Software testing terminology. Role and responsibility.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Chapter 2 The process Process, Methods, and Tools
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
CS3100 Software Project Management Week 26 - Quality Dr Tracy Hall.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software Engineering Software Process and Project Metrics.
Chapter 6 : Software Metrics
Quality Control Project Management Unit Credit Value : 4 Essential
1 Software quality - Definition IEEE 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Software Quality : The Elusive Target
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Testing and Quality Assurance Software Quality Assurance 1.
Software Methods Mö/ slide 1 Methods and Techniques of Software Quality Management ICEL Quality Management Systems: Methods and Techniques of Software.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CSSE Software Engineering Process and Practice Lecture 5 Q UALITY A SSURANCE.
Chapter 13: Software Quality Project Management Afnan Albahli.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Quality Prepared By: Rooshabh Kothari Assistant Professor T & P Co-ordinator CSE/IT Department 1.
Software Project Management
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Software Quality Management
Project Management PTM721S
SEVERITY & PRIORITY RELATIONSHIP
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Quality Assurance
Quality Quality is “a characteristic or attribute of something.”
Software Quality Engineering CS- 449
Software engineering.
مقدمه اي بر مهندسي نيازمنديها
Software Quality Engineering CS- 449
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
How does the “Iron Triangle” relate to project management?
Chapter # 1 Overview of Software Quality Assurance
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Chapter : 14 Quality Concepts

What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view. The transcendental view argues that you immediately recognize, but can not explicitly define. The user view sees quality in terms of an end user’s specific goals. If the product meets those goals, it exhibits quality. The manufacturer’s view defines quality in terms of the original specification of the product. If the product conforms the specification, it exhibits quality. The product view suggests that quality can be tied

to inherent characteristics of the product. The value-based view measures quality based on how much a customer is willing to pay for a product. Quality of design encompasses the degree to which the designer meets the functions and features specified in the requirement model. Quality of conformance focuses on the degree to which the implementation follows the design and the resulting system meets its requirements and performance goals.

Software Quality Software quality can be defined as : “An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce and who those use it.” The definition serves to emphasize three important points : An effective software process establishes the infrastructure that supports any effort at building a high-quality software product. A useful product delivers the content, functions, and features that the end user desires, but as important, it delivers these assets in a reliable,

error-free way. A useful product always satisfies those requirements that have been explicitly stated by stakeholders. It satisfies a set of implicit requirements that are expected of all high-quality software. 3. By adding value for both the producer and user of a software product, high-quality software provides benefits for the software organization and the end-user community.

Garvin’s Quality Attributes David Garvin suggests that quality should be considered by taking a multidimensional viewpoint that begins with an assessment of conformance and terminates with a transcendental view. Following dimensions of quality can be applied when software quality is considered : Performance Quality : Does the software delivers all content, functions, and features that are specified as part of requirements model in a way that provides value to the end user? Feature Quality : Does the software provide

features that surprise and delight first-time end users? Reliability : Does the software deliver all features and capability without failure? Is it available when it is needed? Conformance : Does the software conform to local and external software standards that are relevant to the applications? E.g. does the user interface conform to accepted design rules for menu selection or data input? Durability : Can software be maintained or corrected without the inadvertent generation of side effects? Will change causes the error rate or reliability to degrade with time?

6. Serviceability : Can the software be maintained or corrected in an acceptably short time? 7. Aesthetics : There’s no question that each of us has a different and very subjective vision of what is aesthetic. And yet, most of us would agree that an aesthetic entity has a certain elegance, a unique flow, and a obvious “presence” that are hard to quantify but are evident (clear) nonetheless. 8. Perception : In some situation, you have a set of prejudices that will influence your perception of quality. Apart from this, we need a set of “hard” quality factors that can be categorized into two groups : (1) factors that can be directly measured (e.g. defects uncovered during testing) (2) factors that can be measured indirectly (e.g. usability)

McCall’s Quality Factors Figure 14.1 Software quality factors of figure focus on three important aspect of a software product:- (1)Its operational characteristics (2)Its ability to undergo changes (3)Adptabilty to new environment Correctness:- the extent to which a program satisfies its specification and fulfills the customer’s mission objectives. Reliability :- the extent to which a program can be expected to perform its intended function with required care.

Efficiency :- the amount of computing resources and code required by a program to perform its function. Integrity:- the extent to which access to software or data by unauthorized persons can be controlled. Usability:- the effort required to learn, operate, prepare input for and interpret output of a program. Maintainability:- the effort required to locate error in the program. Flexibility:- the effort required to modify an operational program. Testability:- the effort required to test a program to ensure that it performs its intended function.

Portability:- the effort required to transfer the program from one hardware and/or software system environment to another. Reusability:- the extent to which a program [or parts of program] can be reused in another applications. Interoperability:- the effort required to couple one system to another.

ISO 9126 Quality Factors It was developed in attempt to identify quality attributes for computer software. The standard identifies six key quality attributes. (1)Funcationality:- the degree to which the s.w satisfies needs as indicated by the following sub-attributes: accuracy, suitability, interoperability etc. (2)Relaibilty:- The amount of time that the software is available for use as indicated by the flowing sub attributes : fault tolerance, recoverability (3)Usabilty:- the degree to which s.w is easy to use as indicated by the these attributes: understandability, learnability etc.

(4)Efficiency:- the degree to which the s (4)Efficiency:- the degree to which the s.w makes optimal use of resources as indicated by the following sub attributes: time behavior, resource behavior. (5) Maintainability:- the ease with which repair may be may be made to the software as indicated by the following attributes: changeability, testability, analyzability etc. (6) Portability: the ease with which the software can be transposed from one environment to another as indicated by these attributes: adaptability, replaceability.

Targeted Quality Factors A software team can develop a set of quality characteristics and associated questions that would probe (check out) the degree to which each factor has been satisfied. Intuitiveness : The degree to which the interface follows expected usage patterns so that even a novice can use it without significant training. Does the interface follow the three golden rules? Are the interface operations easy to locate and initiate? Efficiency : The degree to which operations and information can be located or initiated. 1) Are output data or content presented so that it is

understood immediately? 2) Does the interface layout and style allow a user to locate operations and information efficiently? 3) Robustness : The degree to which the software handles bad input data or inappropriate user interaction. 1) Does the interface provides useful diagnosis and guidance when error condition is uncovered? 2) Will the interface recognize common manipulative mistakes and explicitly guide the user back on the right back? 4) Richness : The degree to which the interface provides a rich feature set. 1) Can the interface be customized to the specific needs of a user? 2) Does the interface provide a macro capability that enables a user to identify a sequence of common operations with a single action or command?

The Transition To A Quantitative View The determination of quality is a key factor. Subjectivity and specialization also apply to determining software quality. A more precise definition of software quality and a way to derive quantitative measurement of software quality is needed.

The Software Quality Dilemma Software engineers should strive to produce high-quality software. It’s better to apply good practices in attempt to do so. “Good Enough” Software Good enough software delivers high-quality functions and features that users desire, but at the same time it delivers other more obscure (unclear) or specialized functions and features that contain known bug. The software vendor hopes that the vast majority of end users will overlook the bugs because they are so happy with other applications.

It is true that “good enough” may work in some application domains and for a few major software companies. When you deliver a good enough software, you may risk permanent damage to your company’s reputation.

The Cost Of Quality It can be argued that “quality is important but it costs time and money.” This argument seems reasonable. There is no question that quality has a cost, but lack of quality also has a cost- not only to end users who must live with buggy software, but also to the organization that has built and must maintain it. The cost of quality includes all costs incurred in the pursuit of quality or in performing quality-related activities and the downstream costs of lack of quality . The cost of quality can be divided into costs associated with prevention, appraisal, and failure.

Prevention costs include (1) the cost of management activities required to plan and coordinate all quality control and quality assurance activities, (2) the cost of added technical activities to develop complete requirements and design models, (3) test planning costs, and (4) the cost of all training associated with these activities. Appraisal costs include activities to gain insight into product condition the “first time through” each process. E.g. cost of conducting technical reviews, cost of data collection and metric evaluation, cost of testing and debugging. Failure costs are those disappear if no errors appeared before or after shipping a product to customers.

Failure costs can be subdivided into internal failure costs and external failure costs. Internal failure cost are incurred when you detect an error in a product prior to shipment. It include : Cost required to perform repair to correct an error External failure costs are associated with defects found after the product has been shipped to the customer. E.g. product return and replacement, help line support. Figure 14.2 Example explain

Risks Low-quality software increases risks for both the developer and the end user. A warning for creator of computer programs is – that the quality of software matters, the application must be foolproof, and that - whether embedded in the engine of a car- poorly deployed code can kill. Poor quality leads to risks, some of them very serious.

Negligence (Carelessness) And Liability The customer claims that the developer has been negligent and therefore not entitled to payment. The developer often claims that the customer has repeatedly changed its requirements and has subverted (weaken) the development partnership in other way. In every case, the quality of the delivered system comes into question.

Quality And Security As the criticality of Web-based systems and applications grows, application security has become increasingly important. Software that does not exhibit high quality is easier to hack, and as a consequence, low-quality software can indirectly increase the security risk with all of its attendant costs and problems. To build a secure system, we must focus on quality, and focus must begin during design.

The Impact Of Management Actions Software Quality is often influenced by management decisions. Estimation Decisions : A software team is rarely given luxury of providing an estimate for a project before delivery dates are established and overall budget is specified. In many cases there is time-to-market pressure that forces a team to accept unrealistic delivery dates. As a consequence, short cuts are taken, activities that lead to higher-quality software may be skipped. Scheduling Decision : When software project schedule is established, tasks are sequenced based on dependencies. E.g. because component A depends on processing that occurs within components B,C, and D, component A cann not be scheduled.

D, component A can not be scheduled for testing until components B, C, and D are fully tested. But if time is very short, and A must be available for further critical testing, we might decide to test A without its subordinate components . As a consequence, A may have defects that are hidden, only to be discovered much later. Risk-oriented decisions : Risk management is also one of the key attributes of a successful software project.

Achieving Software Quality Software quality is the result of good project management and solid software engineering practice. Management and practice are applied within the context of four activities : 1. Software Engineering Methods : To build high-quality software, you must understand the problem. A design should be created that conforms to the problem while at the same time exhibiting characteristics that lead to software that exhibits quality dimensions and factors. 2. Project Management Techniques : If (1) the project manager uses estimation to verify that delivery dates are achievable, (2) schedule dependencies are understood and the team resists the temptation to use

short cuts, (3) risk planning is conducted, software quality will increase. 3.Quality Control : It compasses a set of software engineering actions that help to ensure that each work product meets its goals. 4. Quality Assurance : It establishes an infrastructure that supports solid software engineering methods, rational project management, and quality control. It consists of a set of auditing and reporting functions that assess the effectiveness and competence of quality control actions.