Software project management (intro) Quality assurance.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Quality Assurance Plan
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Chapter 17 I.Omaima Al-Matrafi
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
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
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Factor Of Software Quality
Software Project Management Fifth Edition
Chapter 7 Software Engineering Objectives Understand the software life cycle. Describe the development process models.. Understand the concept of modularity.
Extreme Programming Software Development Written by Sanjay Kumar.
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.
Software System Engineering: A tutorial
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.
Chapter 6 : Software Metrics
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Copyright © Jerzy R. Nawrocki ISO 9126 and Non-functional Requirements Requirements.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
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.
University of Sunderland COM369 Unit 6 COM369 Project Quality Unit 6.
Code Complete Steve McConnell. 20. The Software-Quality Landscape.
Chapter 3: Software Project Management Metrics
Software quality factors
Quality Factors Chapter Three. Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software.
Chapter 13: Software Quality Project Management Afnan Albahli.
SEN 460 Software Quality Assurance
Program Development Cycle
Test Strategy Best Practices By Gabriel Rodriguez.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Principles of Information Systems Eighth Edition
TOTAL QUALITY MANAGEMENT
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
The Development Process of Web Applications
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
CIF301 Project Quality Unit 6
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Quality Assurance
Software Testing and 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
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
20. The Software-Quality Landscape
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Software project management (intro) Quality assurance

Software quality Of increasing concern e.g. because of safety critical systems e.g. because of safety critical systems Project control concerns: need to make project progress visible need to make project progress visible every task has a deliverable – to make task tangible every task has a deliverable – to make task tangible errors accumulate with each stage errors accumulate with each stage errors become more expensive to remove the later they are found errors become more expensive to remove the later they are found it is difficult to control the error removal process (e.g. testing) it is difficult to control the error removal process (e.g. testing)

quality specification each project has three sets of requirements functional requirements: what the system is to do functional requirements: what the system is to do quality requirements: how well it is to do it quality requirements: how well it is to do it resource requirements: how much it is going to cost resource requirements: how much it is going to cost

Defining Software Quality There are product qualities appropriate to software. McCall grouped software qualities into: 1. Product operation qualities 2. Product revision qualities 3. Product transition qualities

Product Operation Quality Factors Correctness The extent to which program satisfies its specification and fulfill the user’s objective The extent to which program satisfies its specification and fulfill the user’s objectiveReliability The extent to which program can be expected to perform its intended function with required precision The extent to which program can be expected to perform its intended function with required precisionEfficiency The amount of computer resources required The amount of computer resources requiredIntegrity The extent to which access to software or data by unauthorized person can be controlled The extent to which access to software or data by unauthorized person can be controlledUsability The effort required to learn, operate, prepare input and interpret output The effort required to learn, operate, prepare input and interpret output

Product revision quality factors Maintainability The effort required to locate and fix an error in an operational program The effort required to locate and fix an error in an operational programTestability The effort required to test a program to ensure it performs its intended function The effort required to test a program to ensure it performs its intended functionFlexibility The effort required to modify an operational program The effort required to modify an operational program

Product transition quality factors Portability The effort required to transfer a program from one hardware configuration and/or software system environment to another The effort required to transfer a program from one hardware configuration and/or software system environment to anotherReusability The extent to which a program can be used in other application The extent to which a program can be used in other applicationInteroperability The effort required to couple one system to another The effort required to couple one system to another

ISO 9126 software qualities

sub-characteristics of functionality suitabilityaccuracyinteroperability ability of software to interact with other software components ability of software to interact with other software componentscompliance degree to which software adheres to application-related standards or legal requirements e.g audit degree to which software adheres to application-related standards or legal requirements e.g auditsecurity control of access to the system control of access to the system

sub-characteristics of reliability maturity frequency of failure due to faults - the more the software has been used, the more faults will have been removed frequency of failure due to faults - the more the software has been used, the more faults will have been removedfault-tolerancerecoverability note that this is distinguished from ‘security’ - see above note that this is distinguished from ‘security’ - see above

sub-characteristics of usability understandability easy to understand? easy to understand?Learn-ability easy to learn? easy to learn?operability easy to use? easy to use?

sub-characteristics of efficiency time behaviour e.g. response time e.g. response time resource behaviour e.g. memory usage e.g. memory usage

sub-characteristics of maintainablity analysability ease with which the cause of a failure can be found ease with which the cause of a failure can be foundchangeability how easy is software to change? how easy is software to change?stability low risk of modification having unexpected effects low risk of modification having unexpected effectstestability

sub-characteristics of portability adaptabilityinstallabilityconformance standards that have bearing on portability (compare to ‘compliance’) - e.g. use of high-level language standards that have bearing on portability (compare to ‘compliance’) - e.g. use of high-level languagereplaceability factors giving ‘upwards’ compatibility - ‘downwards’ compatibility is excluded factors giving ‘upwards’ compatibility - ‘downwards’ compatibility is excluded

the relationship between any two qualities may be: indifferent one has no effect on the other one has no effect on the othercompetitive a system can only be good in respect to one quality at the expense of another a system can only be good in respect to one quality at the expense of anothercomplementary a system which is good in respect to one quality is likely to be also good in respect to the other a system which is good in respect to one quality is likely to be also good in respect to the other

internal versus external qualities External quality changeability changeability testability testability Internal qualities modularity generality expandibility self-descriptiveness simplicity modularity instrumentation self-descriptiveness

internal versus external qualities portability modularity self-descriptiveness machine independence software system independence

using ISO 9126 quality standards Judge the importance of each quality for the application for example, safety critical systems - reliability very important for example, safety critical systems - reliability very important real-time systems - efficiency important real-time systems - efficiency important Work out ways of measuring quality for example, mean-time between failures for reliability for example, mean-time between failures for reliability response-time for efficiency response-time for efficiency

using ISO 9126 quality standards map measurement onto ratings scale to show degree of satisfaction

using ISO 9126 quality standards Work out how ratings are to be combined

software measurement may apply to: final products final products intermediate products (predictive metrics) intermediate products (predictive metrics) may be: relative or binary (does it/ does it not exist?) relative or binary (does it/ does it not exist?) direct or indirect direct or indirect tightly or loosely coupled tightly or loosely coupled

quality specification e.g. ‘ease of installation’ definition of attribute the amount of effort needed to install the package for a new customer the amount of effort needed to install the package for a new customer measurement scale hours hours how tested time needed to install system at three different sites time needed to install system at three different sites

quality specification e.g. ‘ease of installation’ -continued worst acceptable limit 4 hours 4 hours planned limit 1 hours 1 hours best achievable 30 minutes 30 minutes Define these for ‘user-friendliness’

how do we achieve product quality? the problem: quality attributes tend to retrospectively measurable need to be able to examine processes by which product is created beforehand the production process is a network of sub-processes output from one process forms the input to the next errors can enter the process at any stage

correction of errors errors are more expensive to correct at later stages need to rework more stages need to rework more stages later stages are more detailed and less able to absorb change later stages are more detailed and less able to absorb change Barry Boehm error typically 10 times more expensive to correct at coding stage than at requirements stage error typically 10 times more expensive to correct at coding stage than at requirements stage 100 times more expensive at maintenance stage 100 times more expensive at maintenance stage

Process requirements for each activity, define: entry requirements these have to be in place before an activity can be started these have to be in place before an activity can be started example: ‘a comprehensive set of test data and expected results be prepared and independently reviewed against the system requirement before program testing can commence’ example: ‘a comprehensive set of test data and expected results be prepared and independently reviewed against the system requirement before program testing can commence’

Process requirements (2) for each activity, define Implementation requirements these define how the process is to be conducted these define how the process is to be conducted example ‘whenever an error is found and corrected, all test runs must be completed, including those previously successfully passed’ example ‘whenever an error is found and corrected, all test runs must be completed, including those previously successfully passed’

Process requirements (3) for each activity, define exit requirements an activity will not be completed until these requirements have been met an activity will not be completed until these requirements have been met example: ‘the testing phase is finished only when all tests have been run in succession with no outstanding errors’ example: ‘the testing phase is finished only when all tests have been run in succession with no outstanding errors’ software quality plan these requirements may be laid down in site standards, or a quality plan may be drawn up for a specific project these requirements may be laid down in site standards, or a quality plan may be drawn up for a specific project

inspections - general principles when a piece of work is completed, copies are distributed to co-workers time is spent individually going through the work noting defects a meeting is held where the work is then discussed a list of defects requiring re-work is produced

inspections (2) – advantages of approach an effective way of removing superficial errors from a piece of software motivates the software developer to produce better structured and self-descriptive code spreads good programming practice enhances team-spirit the main problem maintaining the commitment of participants

Techniques to enhance quality Increase the visibility of software put method into processes of development check intermediate stages