Software Quality
Software Quality
SOFTWARE QUALITY
BACKGROUND
Time, cost and scope can all operate within acceptable ranges, but
quality is a terrible control variable as it only allows very short
term gains at a very high cost to all parties involved.
WHAT IS QUALITY
Fitzpatrick:
Software quality is the extent to which an
industry-defined set of desirable features are
incorporated into a product so as to enhance
its lifetime performance.
MEASURING QUALITY
Users, however, often measure more than reliability. They are also
concerned about usability, including ease of installation, learning
and use.
MEASURING QUALITY –
manufacturer’s view
Manufacturer’s vies of quality suggests two characteristics to measure:
Rework Costs: Defects differ in their effect on the system: some take a
little time to find and fix; others are catastrophic and consume valuable
resources. To monitor the effect of defect detection and correction, we
often measure rework costs-
QUALITY MODEL
He also suggests that there are five different types of control. Manual checks which
are applied to documents before computer processing, data preparation controls,
validation checks, batch controls and file controls. Only the last three of these can be
built into the software to ensure integrity.
McCall’s Quality Model
Reliability: The extent to which a program can be maintained so that it can fulfill its
specific function.
The mean time between failures - under pre-defined conditions, the average time
between consecutive failures over a given period in the life of a system.
The mean time to repair - the average time to repair or maintain equipment.
The mean time to recover - the average time to return a system to operation after a
failure. The time involved should include periods taken to re-instate from previous
checkpoints.
The probability of failure - the use of formal methods to predict the likelihood that a
system will behave in an expected way under certain circumstances. Probability of
failure is most appropriate to safety-critical systems and "continuous running" systems.
McCall’s Quality Model
Usability: The cost/effort to learn and handle a product.
Software ergonomics is concerned with topics like how suitable is the software for the
intended operations. How easy is it for users to learn and to master it.
McCall’s Quality Model
Ghezzi et al. also prefer the term correctness and their definition is "A
program is functionally correct if it behaves according to the specifications of the
functions it should provide".
McCall’s Quality Model
Maintainability: The cost of localizing and correcting errors.
Ghezzi et al. (1991) divide maintenance into three categories: corrective, adaptive and
perfective and only corrective is concerned with correcting errors as suggested by
McCall.
Corrective maintenance is concerned with removing minor bugs left after development
and testing are completed. This process is also involved after other maintenance
activities.
Recent interpretation of flexibility would be more associated with adaptability, ie. being
able to change or reconfigure the user interface to suit users' preferences. This is a
usability quality issue and is better considered in the usability section.
Interface facility (Interoperability): The cost of connecting two products with one
another.
This is the development strategy that encourages product development in a
manner that it can interact with other products.
McCall’s Quality Model
Re-usability: The cost of transferring a module or program to another application.
Re-usability addresses the concept of writing code so that it can be used more than
once.
The modern expression for this quality factor is portability. Portability is the strategy
of writing software to run on one operating system or hardware configuration while
being conscious of how it might be refined with minimum effort to run on other
operating systems and hardware platforms as well.
Usability:
Usability includes looking at, capturing, and stating requirements based around user
interface issues, things such as accessibility, interface aesthetics, and consistency within
the user interface.
FURPS
Reliability:
Reliability includes aspects such as availability, accuracy, and recoverability, for
example, computations, or recoverability of the system from shut-down failure.
Performance:
Performance involves things such as throughput of information through the system,
system response time (which also relates to usability), recovery time, and startup time.
Supportability :
Finally, we tend to include a section called Supportability, where we specify a number
of other requirements such as testability, adaptability, maintainability, compatibility,
configurability, installability, scalability, localizability, and so on
SOFTWARE PROJECT PLANNING
The Project Planning tasks ensure that various elements of the Project are coordinated and
therefore guide the project execution.
Facilitating
communication
Monitoring/measuring the project progress, and
Provides overall documentation of assumptions/planning decisions
SOFTWARE PROJECT PLANNING
Factor Elaboration Focus
People Users, developers, stakeholders, vendors and Environment, communication,
partners. productivity, skills, motivation, and
team management.
Product Deliverables, scope, form and format, Cost, feasibility, quality and risk.
objectives, key functions and objectives
Process The method through which product will be Plan of SP development catering for
delivered - process models, choice of SPM framework made of common
technology, processes of development. umbrella activities like scope
definition, analysis, estimation,
feasibility, risk management, and
quality assurance.
Project Definition, scope, business goal, economics, Key deliverables, cost control, time
resource, budgets, configuration, clear start management, meeting deadlines and
and closure. fulfilling commitments to customer
satisfaction.
SOFTWARE PROJECT
PLANNING – the process
Project Planning spans across the various aspects of the Project.
Generally Project Planning is considered to be a process of estimating,
scheduling and assigning the projects resources in order to deliver an
end product of suitable quality.
NEXT
Planning Change Management:
Analysis of project performance can necessitate
that certain aspects of the project be changed. The
Requests for Changes need to be analyzed
carefully and its impact on the project should be
studied. Considering all these aspects the Project
Plan may be modified to accommodate this
request for Change.
Project Rollout Planning
Whenever a Project is rolled out it may affect the
technical systems, business systems and
sometimes even the way business is run. For an
application to be successfully implemented not
only the technical environment should be ready
but the users should accept it and use it
effectively. For this to happen the users may need
to be trained on the new system. All this requires
planning.
PERT CHART