Quality Management. What is a software product? Software product = computer programs (sources and...

18
Quality Management

Transcript of Quality Management. What is a software product? Software product = computer programs (sources and...

Page 1: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Quality Management

Page 2: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

What is a software product?• Software product = computer programs (sources and

executable) + 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• Types of software products– Business support software

• Includes software engineering tools in the software engineering business

– Personal productivity software• spreadsheets, word processing tools, …

– Embedded software– …

Page 3: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

What is a software development process?• 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

• It’s 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

New or changedrequirements

(problem)

New or changed software product

(solution)

Software DevelopmentProcess

Page 4: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

The importance of software• 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

• More and more businesses depend on software for their success– Software and Information Systems are critical success

factors in an increasing number of businesses and organizations

• Software engineering expenditure (in the development and maintenance of software products) represents a significant fraction of GNP (Gross National Product) in all developed countries

Page 5: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

what is product quality?

• Quality, simplistically, means that a product should meet its

specification

– The software product should deliver the required functionality

(functional requirements) with the required quality attributes (non–

functional requirements)

• This is problematical for software systems

– Tension between customer quality requirements (efficiency,

reliability, ...) and developer quality requirements (maintainability,

reusability, ...)

Page 6: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

What is product quality?

– Some quality requirements are difficult to specify in an

unambiguous way

– Software specifications are usually incomplete and often

inconsistent

– The quality compromise: we cannot wait for specifications to

improve before paying attention to quality, and procedures must be

put into place to improve quality in spite of imperfect specification

• Quality attributes are frequently conflicting and increase development

costs, so there is a need for weighting and balancing

Page 7: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Software qualities ?

• Different users may have different opinions

about what constitutes software

quality(impossible to satisfy all the

stakeholders)

• Depending on a software project , some may

be important than others.

• Software qualities need to be identified ,

defined and classified

Page 8: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Correctness

Correctness is the degree to which the software

product performs the required functions

accurately.

Problem : it is possible to have correct software

for incorrect requirements as these

are rarely defined precisely

Page 9: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Reliability= Dependability

Reliability is the degree to which the software

product is trusted and believed in by the users

because it behaves well and in the way the users

expect( include correctness)

A reliable software may contain “known bugs”

Page 10: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Robustness

Robustness implies that the software is unlike to

fail or break.

Correctness + reliability + robustness define

whether the software product performs its

designated functions as expected

Page 11: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Performance

Usually performance relates to the response time

of the software system, it specify how long time the

user is prepared to wait for the system to respond

to the user´s request.

Page 12: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Usability

Usability relates to the user friendness of the

software, how easy it is for the users to make the

software work for them.

Usability is subjective property.

Usability is a feature of the UI design

Page 13: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

UnderstandabilityEase with which internal structure and behaviour of the system is comprehended by the maintainer. Understandability is a condition for maintainability

Page 14: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Maintainability • Correcting software errors and deficiencies

( repairability )• Adapting software to new requirements• Perfecting the software to give it new qualities

Page 15: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Scalability

Ease with which the software can be scaled up or evolved in response to the growth in demand for its functionality.

Require clear , understandable architectural design.

Scalability diminishes with architecture deterioration during repair of the software

Understandability + maintability + scalability = supportability

Page 16: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Reusability

Defines the level to which the software components

can be used for construction of other products ( as

component of another product or framework to

create another product

Page 17: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Portability ( crucial)

Can software run on various hardware/software

platforms without any modifications or after

undergoing minor customization or

parameterization ?

Page 18: Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.

Interoperability (open systems)

Crucial in software system , it defines the ability to coexist or work together with other software ( even non existant ones)