Software Quality Seung Yang CS 525 Software Engineering II Dr. Sheldon X. Liang.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Chapter 17 I.Omaima Al-Matrafi
Software Engineering Software quality. Software quality characteristics:  External: user is aware of. User cares about.  Internal: programmer is aware.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
1 Quality Assurance in Construction and Maintenance (Section 13.4 of Maintenance Text; Chapter 20 of Code Complete) Steve Chenoweth CSSE 375, Rose-Hulman.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Process and Product Metrics
Software Quality Assurance For Software Engineering && Architecture and Design.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
SOFTWARE QUALITY ASSURANCE SOFTWARE QUALITY ASSURANCE  DEFINITIONS OF SQA  SOFTWARE STANDARDS  Process Quality Assurance  Product Quality Assurance.
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Lecture 3.
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.
Systems Analysis and Design
Managing Software Quality
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation Team Leader, Team Pulse, Team Leader, Team Pulse, Telerik Corporation,
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Software Testing and Quality Assurance Software Quality Assurance 1.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Code Complete Steve McConnell. 20. The Software-Quality Landscape.
Formal Methods in Software Engineering
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Software quality factors
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD.
Software Engineering Lecture 8: Quality Assurance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Software Quality Control and Quality Assurance: Introduction
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
McCall’s Quality Factors
Introduction SOFTWARE ENGINEERING.
Software Quality Assurance
Software engineering.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software Quality Assurance
Baisc Of Software Testing
20. The Software-Quality Landscape
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Software Quality Course 1 Introduction.
Presentation transcript:

Software Quality Seung Yang CS 525 Software Engineering II Dr. Sheldon X. Liang

Sources Steve McConnell’s Articles Upstream Decisions, Downstream Costs Teaching Programming Principles, Not “Tools and Tips” The Power of Process Software Quality at Top Speed Code Complete (Ch 20)

Agenda Characteristics of Software Quality Techniques for Improving Software Quality Relative Effectiveness of Quality Techniques When to Do Quality Assurance The General Principle of Software Quality

Characteristics of Software Quality External Quality Characteristics - Characteristics that a user of the software product is aware of Internal Quality Characteristics - Characteristcs that programmers care about

External Quality Characteristics Correctness - Free from faults in its specification, design and implementation Usability - Easy to learn and use Efficiency - Minimal use of system resources Reliability - A long mean time between failures

External Quality Characteristics - Continued Integrity - Security, preventing unauthorized access Adaptability - The extent to which a system ca be used, without modification Accuracy - Free from errors (outputs) Robustness - A system continues to function in the presence of invalid inputs or stressful environmental conditions

Internal Quality Characteristics Maintainability - Easy to change and add capabilities Flexibility - The extent to which you can modify a system for uses or environments other than those for which it was designed Portability - The ease with which you can modify a system to operate in a different environments. Reusability - Can a part of system be used in other systems?

Internal Quality Characteristics - Continued Readability - Easy to read and understand the source code of a system Testability - The degree to which you can unit-test and system-test a system Understandability - The ease with which you can comprehend a system at both the system-organization and detailed-statement levels

Relationships among the Quality Characteristics

Techniques for Improving Software Quality Software-quality objectives - Set explicit quality objectives from characteristics Explicit quality-assurance activity - Set explicit activities to achieve the Software-quality objectives (ex. No short-cut when coding) Testing strategy Software-engineering guidelines - Control the technical character of the software

Techniques for Improving Software Quality - continued Informal technical reviews - desk-checking the design or dode or walking through the code with a few peers. Formal technical reviews - Is it “good enough” for next stage? “Good enough” means the most critical 20% of the requirements or architecture has been sketched out. External audits

Techniques for Improving Software Quality - continued Development Process Change-control procedures -Uncontrolled requirements changes can result in disruption to design and coding Measurement of results - Measurement tells you whether your plan is a success or a failure and allow you to vary your process in a controlled way to see how it can be improved. Prototyping

Relative Effectiveness of Quality Techniques Percentage of Defects Detected - Cumulative defect-detection efficiency is significantly higher than that of any individual technique.

Relative Effectiveness of Quality Techniques - continued Cost of Finding Defects Cost of Fixing Defects

When to Do Quality Assurance Defects creep into software at all stages Emphasize quality assurance work in thee early stages and through the rest of the project

The General Principle of Software Quality The industry-average productivity for a software product is about 10 to 50 of lines of delivered code per person per day (including all non-coding overhead) A study at IBM “Software projects with the lowest levels of defects had the shortest development schedules and the highest development productivity…. Software defect removal is actually the most expensive and time- consuming form of work for software (Jones 2000)”

The General Principle of Software Quality - continued Higher quality (in the form of lower defect rates) and reduced development time.

Summary Quality assurance in the software area is process-oriented. Process reduces cost, and increases productivity.