are here: Freetutes.com
Analysis and Design
Role of Quality in Software Development
Till now in this chapter we have talked about the testing of the system. Testing
is one process to have a error free system, but it is only a small part of the
quality assurance activities, which are employed for achieving the good quality
and error free system. We have not yet talked about quality of system produced.
Quality enforcement is very important in system development. In this part we'll
study how we can apply quality factors in order to produce a quality system. Here
mainly software system and quality is considered.
We employ software to solve and simplify our real-life problems and it goes
without saying that it should be of high class i.e. quality software, thus here
the software quality and it's assurance come into the picture. Software quality
assurance is an umbrella activity, which must be applied throughout the software
engineering process. But this leads us to few questions such as how to define
quality and what exactly it is with respect to software. Hence it becomes a subjective
issue but then there are some basic do's and don’ts to be taken care of
during the course of software cycle which if applied thoroughly will lead to a
reasonable quality software and that is what the following definition of software
quality states- Conformance to explicitly stated functional and performance requirements,
explicitly documented development standards and implicit characteristics that
are expected of all professionally developed software.
Though this definitions speak a volume about the matter, to further make it
more simple for our understanding we can focus on the points given below.
Software requirements have to be met by the newly developed system and thus
any lack of conformance in them will be serious quality lag.
Specified standards define a development criteria which displays the manner
in which the software is engineered. Any deviation from the given criteria will
result into lack of the quality.
No matter how much vocal, straight, honest and frank the client may be but
then there are always a set of implicit requirements which are not mentioned but
they should be met.
The dominant nature of the software market is its dynamic growth. New application
areas are continually emerging along with birth of new technologies. New methods
of information processing and new programming environments have created a dilemma
in management of software development. For software developers whatever they produce
, it must be sold in order to survive in this dynamic software industry. Also
these companies should always try for continuous improvement in quality.
For quality, Software Engineering Institute Carnegie Mellon University, Pennsylvania
has devised a quality model known as Capability Maturity Model CMM. This model
is based on the principles of Total Quality Management(TQM) for improving the
entire software development process. The goal of CMM is that a firm's process
capability is reflected to the extent to which it plans for and monitors software
quality and customer satisfaction. As organizations grow, software project management
practices are adequately utilized and software development undergoes a more refined
process. In CMM , the process capability of a company is understood in five advancing
maturity levels, a brief overview of them is given below:
LEVEL 1 : Initial - processes are not adequately defined and documented.
LEVEL 2 : Repeatable - implementation of project management tools.
LEVEL 3 : Defined - all projects use an organized, documented and standardized
set of activities that are implemented throughout the project life cycle.
LEVEL 4 : Managed - Specific process and quality outcome measures are implemented.
LEVEL 5 : Optimized - Continuous process improvement is adopted in the entire
organization. Sophisticated methods of defect prevention, technology changes management
and process change management is implemented.
The CMM has become tool to evaluate the potential of an organization to achieve
high quality in software development. Each software company should aim to achieve
high CMM level.
Page | Contents
| Next Page >>