Qualitysoftwaremanagement 110821020910 Phpapp01
Qualitysoftwaremanagement 110821020910 Phpapp01
ILAYARAJA.S
Faculty Management Studies
RMD ENGINEERING COLLEGE. Ilasu_jai@yahoo.com
INDEX
Conclusions
Business Process
resources
software product
Software product = computer programs (sources and executables) + associated documentation Software products may be
Custom - developed for a particular customer, according to its specifications Generic (package) - developed for a general market, to be sold to a range of different customers
Embedded software....
Is the definition of a set of activities whose goal is the development or evolution of a software product
To be followed/instantiated in individual software development projects
Its the main business process in a software development business Generic activities in all software processes are:
Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands
The economies of ALL developed nations are dependent on software More and more systems are software controlled
Including an increasing number of safety-critical and mission-critical systems, with high demands on dependability
Software engineering expenditure (in the development and maintenance of software products) represents a significant fraction of GNP (Gross National Product) in all developed countries
Quality attributes are frequently conflicting and increase development costs, so there is a need for weighting and balancing Software engineering is concerned with the cost-effective development of good software
Reliability - The probability of failure-free system operation over a specified time in a given environment for a given purpose Availability - The probability that a system, at a point in time, will be operational and able to deliver the requested services
Its possibly to have high availability with low reliability if failures are repaired quickly
Safety - The systems ability to operate, normally or abnormally, without danger of causing human injury or death and without damage to the systems environment Security The systems ability to protect itself from accidental or deliberate external attack
For critical systems, it is usually the case that the most important system property is the dependability of the system Types of critical systems:
Safetycritical system a system whose failure may result in injury, loss of life or major environment damage
- e.g. an insulin delivery system
Mission-critical system a system whose failure may result in the failure of some goal-directed activity
- e.g. a navigational system for a space aircraft
Business-critical system a system whose failure may result in the failure of the business using the system
- e.g. a customer account system in a bank
Process quality
Product quality
People quality
Process quality
A good process is usually required to produce a good product For manufactured goods, process is the principal quality determinant For design-based activity (like software development), other factors are also involved especially the capabilities of the designers For large projects with average capabilities, the development process determines product quality
People quality
For small projects, the capabilities of the developers is the main determinant Corollary: you need lower quality people (and higher quality process) in larger projects? Project Size x People Quality = Constant ?
Development technology
Is particularly significant for small projects
Quality of service
Verification
- Ensure that we are building the product right, i.e., according to its specification
Validation
- Ensure that we are building the right product, i.e., according to user needs
V & V are integral part of the development process Concerned directly with product quality
- Select applicable procedures and standards for a particular project and modify these as required. Produce a quality plan.
- Ensure that procedures and standards are followed by the software development team. Produce quality review reports
Quality management should be separate from project management to ensure independence of budget and schedule pressures Concerned directly with process quality and, indirectly, product quality
deliverables
D1
D2
D3
D4
D5
Quality plan
Tests
Dynamic technique, concerned with exercising and observing product behaviour to discover defects The system is executed with test data (defined test cases) and its operational behaviour is observed to discover defects (differences between observed and expected) Used mainly for V & V GUI testing difficult to automate; API testing easier to automate
Measurements
The value of defined metrics is automatically measured on selected components of the product, for prediction or control purposes Used mainly for CQ
Standards are the key to effective quality management They may be international, national, organizational or project standards
Product standards define characteristics that all components should exhibit e.g. a common programming style
Process standards define how the software process should be enacted
Importance of standards
Encapsulation of best practice - avoids repetition of past mistakes Framework for quality assurance process it involves checking standard compliance Provide continuity - new staff can understand the organisation by understand the standards applied
Involve too much bureaucratic form filling Unsupported by software tools so tedious manual work is involved to maintain standards
Detailed standards should have associated tool support. Excessive clerical work is the most significant complaint against standards
Documentation standards
Particularly important - documents are the tangible manifestation of the software Documentation process standards
How documents should be developed, validated and maintained
Document standards
Concerned with document identification, structure, presentation, changes highlighting, etc.
Define process
De velop product
Improve process
No
Quality OK
Yes
ISO 9000
International set of standards for quality management (ISO 9000:2000, ISO 9001:2000, ISO 9004:2000, etc.) Applicable to a range of organisations from manufacturing to service industries ISO 9001:2000 specifies requirements for a quality management system for any organization that needs to demonstrate its ability to consistently provide product that meets customer and applicable regulatory requirements and aims to enhance customer satisfaction, in all business sectors
Integrates previous standards ISO 9001, ISO 9002 and ISO 9003 ISO 9001 is a generic model that must be instantiated for each organisation
ISO 9004:2000 provides guidance for continual improvement of a quality management system to benefit all parties (employees, owners, suppliers, society in general,) through sustained customer satisfaction. It should be used to extend the benefits obtained from ISO 9001:2000 to all parties that are interested in or affected by the business operations.
Quality standards and procedures should be documented in an organisational quality manual External body may certify that an organisations quality manual conforms to ISO 9000 standards (namely ISO 9001) Customers are, increasingly, demanding that suppliers are ISO 9000 certified
Supports
The Software Engineering Institute (SEI) Capability Maturity Model for Software (CMM)
Is a model for judging the maturity of the software processes of an organization identifying the key practices that are required to increase the maturity of these processes
Level 5 Optimizing
1) Initial. The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics. 2) Repeatable. Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications. 3) Defined. The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software. 4) Managed. Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled. 5) Optimizing. Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
Optimizing Process change management Technology change management Defect prevention Managed Software quality management Quantitative process management
Defined Peer reviews Intergroup coordination Software product engineering Integrated software management Training programme Organization process definition Organization process focus Repeatable Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management
Initial
There is a clear correlation between the key processes in the CMM and the quality management processes in ISO 9000 The CMM is more detailed and prescriptive and includes a more detailed framework for improvement Organisations rated as level 2 in the CMM are likely to be ISO 9000 compliant
Index
Quality planning
A quality plan sets out (within a particular project) the desired product qualities and how these are assessed and define the most significant quality attributes It should define the quality assessment process It should set out which organisational standards should be applied and, if necessary, define new standards
Quality control
Checking the software development process (within a particular project) to ensure that procedures and standards, as defined in the quality plan, are being followed Two approaches to quality control
(Manual) Quality reviews main approach (Automated) Quality measurement
Index
Software testing
Software inspections and reviews
Black-box testing
An approach to testing where the program is considered as a black-box The program test cases are based on the system specification Test planning can begin early in the software process
White-box testing
Sometime called structural testing Derivation of test cases according to program structure. Knowledge of the program is used to identify additional test cases Objective is to exercise all program statements (not all path combinations)
- Test coverage measures ensure that all statements have been executed at least once
Component testing
Testing of individual program components Usually the responsibility of the component developer (except sometimes for critical systems) Tests are derived from the developers experience
Integration testing
Testing of groups of components integrated to create a system or subsystem The responsibility of an independent testing team Tests are based on a system specification (black-box)
Component testing Software developer Integration testing Independent testing team
Test cases
Test data
Test results
Test reports
Index
Introduction Quality assurance and standards Quality planning and control Software testing
Types of review
Review type Design or inspections Principal purpose program To detect detailed errors in the design or code and to check whether standards have been followed. The review should be driven Part of software verification and validation by a checklist of possible errors. Progress reviews To provide information for management about the overall progress of the project. This is both a process and a product review Part of software and is concerned with costs, plans and project management schedules. Quality reviews To carry out a technical analysis of product components or documentation to find faults or mismatches between the specification and the design, code or documentation. It Part of software quality management may also be concerned with broader quality issues such as adherence to standards and other quality attributes.
Review results
Index
Introduction Quality assurance and standards Quality planning and control Software testing Software inspections and reviews
Software metric
A software metric is a property of a software product, process or related documentation that takes a numeric value that can be measured
Lines of code in a program, number of person-days required to develop a component, etc.
We are interested here in measuring (quantifying) the quality of a software product Main difficulty: distance between what we want to know (usually an external quality attribute) and what we are able to measure (usually an internal attribute)
higher with static metrics see next
Although some companies have introduced measurement programmes, the systematic use of measurement is still uncommon and there are few standards in this area
Dynamic metrics
Are collected by measurements made of a program in execution Are closely related to software quality attributes, such as efficiency and reliability It is relatively easy to measure the response time of a system (performance attribute) or the number of failures (reliability attribute)
Static metrics
Are collected by measurements made of the system representations (source files, documentation, etc.) Have an indirect (and difficult to establish) relationship with quality attributes, such as complexity, understandability and maintainability
Portability
select metrics
collected data
Measurement analysis
Index
Introduction Quality assurance and standards Quality planning and control Software testing Software inspections and reviews
Formal methods
Collection of techniques based on mathematical representation and analysis of software Formal methods include
Formal specification Specification analysis and proof Transformational development Program verification
Algebraic
Model-based
Sequential Larch (Guttag, Horning et al., 1985; Guttag, Horning et al., 1993), OBJ (Futatsugi, Goguen et al., 1985) Z (Spivey, 1992 ) VDM (Jones, 1980) B (Wordsworth, 1996 )
The system is specified in terms of a state model that is constructed using mathematical constructs such as sets and sequences. Operations are defined by modifications to the systems state
Specification
Index
Introduction Quality assurance and standards Quality planning and control Software testing Software inspections and reviews
Conclusions
Key points
Software quality management is concerned with ensuring that software meets its required standards Quality assurance procedures should be documented in an organisational quality manual Software standards are an encapsulation of best practice Reviews are the most widely used approach for assessing software quality
Documentation process