You are on page 1of 5

Strategies to Engineer Quality Software

While developing any kind of software product, the first question in any developer's mind
is, What are the qualities that good software should have?" Well before going into technical
characteristics, I would like to state the obvious expectations one has from any software. First
and foremost, a software product must meet all the requirements of the customer or end-user.
Also, the cost of developing and maintaining the software should be low. The development of
software should be completed in the specified time-frame.

Well these were the obvious things which are expected from any project (and software
development is a project in itself). Now lets take a look at Software Quality factors. These set of
factors can be easily explained by Software Quality Triangle. The three characteristics of good
application software are

1) Operational Characteristics
2) Transition Characteristics
3) Revision Characteristics

Software Quality Triangle with characteristics

Importance of any of these factors varies from application to application. In systems where
human life is at stake, integrity and reliability factors must be given prime importance. In any
business related application usability and maintainability are key factors to be considered.
Always remember in Software Engineering, quality of software is everything, therefore try to
deliver a product which has all these characteristics and qualities.
High-quality software systems

Operate safely and dependably


Have a high degree of availability
Required to support the fields of
Air traffic control
Nuclear power
Automobile safety
Health care
Military and defense
Space exploration

Software defect is any error that, if not removed, would cause a system to fail to
meet the needs of its users. Its impact may be trivial or very serious; and patches
may contain defects

Software quality is the degree to which the attributes of a software product


enables it to meet the needs of its users.

Quality management address how to define, measure, and refine the quality of
the information systems development process and products

Deliverables are the items developed during the development process.


Products such as:
Statements of requirements
Flowcharts
User documentation
Why is software quality important?

Errors in software design take on many forms and happen to even the most
successful businesses. Apple, for instance, suffered considerable embarrassment in
2012 when it botched an upgrade to the Apple iOS 6 and released a map app whose
maps were all incorrect. More problems emerged over the next few years with
Apples follow-up iOS 8.2, 8.3 and 8.4.

It can affect your bottom-line Software quality can have a serious effect on
the bottom-line. The global economy loses around $3 trillion a year due to
malfunctions caused by defective software. Transnational organized crime, by
comparison, only takes around $870 billion a year from the global economy.
Cybercrime only costs the world economy $445 million a year. Not to downplay the
menace that criminal elements (organized or not) really do pose to businesses. But
think about these numbers. If botched software projects were a business, it would
be the largest enterprise on Earth.
It can delay your project launch At the very least, having software quality
issues will force you to go back and redo work on the product. The backtracking and
the fixing is the most problematic part. It will be more expensive depending on how
late in the process the software error emerges. Do you spot it at the very beginning,
in the design phase? Or do you only catch it in later on?

For your sake (and your customers), it had best be the very first phase when
youre setting the requirements. With each following phase, the cost of fixing a
software error rises fast. If a problem is identified in the early stages, then majority
of the product can still be built with using the correct specs. There will be some
extra work involved, but its better than the problem only becoming known after the
product has already gone to market. Thats when customer complaints, order
returns, product recalls happen, and your reputation takes a sudden dip.

How to avoid these costs?

If you put in the necessary time and effort up front to monitor your software
development processes and methods from start to finish, you can avoid the costs
associated with bad quality. Proper methods for quality assurance and software
testing are all vital parts of the equation.

These efforts cost extra investment of time and resources:

Understand how to measure software quality,


Measure quality as you develop,
Get the right tools to do it
Work with QAs that know what theyre talking about

Do these things and they will save you money in the end: They will ensure that you
dont have to spend larger sums going back and fixing a defective software product
after development. Creating a high-quality software product isnt always cheap. But
it is definitely less costly than creating a poor-quality one.

What Is Software Quality Assurance?

When we talk about software quality, we are actually talking about the evaluation of
the software based on certain attributes. A software quality is defined based on the
study of external and internal features of the software. The external quality is
defined based on how software performs in real time scenario in operational mode
and how useful it is for its users. The internal quality on the other hand focuses on
the intrinsic aspects that are dependent on the quality of the code written. The user
focuses more on how the software works at the external level, but the quality at
external level can be maintained only if the coder has written a meaningful good
quality code.

As mentioned before anything that is not in line with the requirement of the client
can be considered as a defect. Many times the development team fails to fully
understand the requirement of the client which eventually leads to design error.
Besides that, the error can be caused due to poor functional logic, wrong coding or
improper data handling. In order to keep a track of defect a defect management
approach can be applied. In defect management, categories of defects are defined
based on severity. The number of defects is counted and actions are taken as per
the severity defined. Control charts can be created to measure the development
process capability.

Primary cause for poor software quality


Developers do not know how to design quality into software
Or do not take the time to do so
Developers must
Define and follow a set of rigorous engineering principles
Learn from past mistakes
Understand the environment in which systems operate
Design systems relatively immune to human error

Business information systems are a set of interrelated components


Including
Hardware
Software
Databases
Networks
People
Procedures
Business information system examples
Order-processing system
Electronic-funds transfer system
Airlines online ticket reservation system
Decision support system (DSS)
Used to improve decision making
Software for industrial use
Software controls the operation of many industrial and consumer products

http://www.ianswer4u.com/2011/10/characteristics-of-good-software.html?
m=1#axzz4ZgOXQNVh

http://intetics.com/blog/why-is-software-quality-important/

http://www.test-institute.org/What_is_Software_Quality_Assurance.php

You might also like