Sunteți pe pagina 1din 11

Topic: Software Quality

Term Paper
of Principles of Software Engineering (CSE-318)

Submitted To: - Submitted By:-


Kirandeep Singh Biprajit Bhattacharjee
Dept of Computer Science Section: - RD1801
Roll No: - A22
Regd. No: - 10801010

1
Acknowledgment:-

I take the opportunity to express my gratitude and thanks to our Software


Engineering Sir, Mr. Kirandeep Singh for his helpful nature towards his
Students all the Time.

I would also like to thank my Parents, without whom I would have been
nothing.

Lastly, I would thank some of my friends for their constant support.

Biprajit Bhattacharjee

2
Contents:

1) Introduction.

2) Software Quality.

3) Software Quality Policy Statement.

4) Quality and Dependability.

5) Work of a Software Engineer.

6) Different Quality Factors of Software.

a) Portability.

b) Usability.

c) Reusability.

d) Correctness.

e) Maintainability.

7) Software Metrics.

a) ISO 9000.

b) Capability Maturity Model (CMM).

8) Conclusion.

9) Reference Cited (Bibliography).

INTRODUCTION:

3
Software engineering (SE) is a profession dedicated to designing, implementing,
and modifying software so that it is of higher quality, more affordable,
maintainable, and faster to build. The term software engineering first appeared in
the 1968 NATO Software Engineering Conference, and was meant to provoke
thought regarding the perceived "software crisis" at the time. Since the field is still
relatively young compared to its sister fields of engineering, there is still much
debate around what software engineering actually is, and if it conforms to the
classical definition of engineering.

Software engineering is ever more important as larger, more complex, and life-
critical software systems proliferate. The rapid decline in the costs of computer
hardware means that the software in a typical system often costs more than the
hardware it runs on. Large software systems may be the most complex things ever
built. This places great demands on the software engineering process, which must
be disciplined and controlled.

To meet this challenge, software engineers have adapted many techniques from
older engineering fields, as well as developing new ones. For example, divide and
conquer, a well-known technique for handling complex problems, is used in many
ways in software engineering. The software engineering process itself, for example,
is usually divided into phases. The definition of these phases, their ordering, and
the interactions between the phases specify a software life-cycle model. The best-
known life-cycle model is the waterfall model consisting of a requirements
definition phase, a design phase, a coding phase, a testing phase, and a maintenance
phase. The output of each phase serves as the input to the next.

Software Quality:

One of the challenges of software quality is that "everyone feels they understand
it".

Software quality may be defined as conformance to explicitly stated functional and


performance requirements, explicitly documented development standards and
implicit characteristics that are expected of all professionally developed software.

This definition emphasis from three points:

1. Software requirements are the foundations from which quality is measured.

Lack of conformance to requirement is lack of quality.


4
2. Specified standards define a set of development criteria that guide the
manager is software engineering.

If criteria are not followed lack of quality will almost result.

3. A set of implicit requirements often goes unmentioned, like for example ease
of use, maintainability etc.

If software confirms to its explicit requirement but fails to meet implicit


requirements,software quality is suspected.

Software Quality Policy Statement :

Software Quality activities are conducted throughout the project life cycle to
provide objective insight into the maturity and quality of the software processes
and associated work products. At GSFC, the Office of Systems Safety and Mission
Assurance (OSSMA) is responsible for planning and implementing a Software
Quality Program for all Class A, B, and C mission software (as defined in NPR
7150.2). This entails providing sufficient resources, training staff, managing work
products, and monitoring and controlling our program for continuous process
improvement.

OSSMA Software Quality personnel apply standard procedures, work instructions,


and tools to objectively evaluate processes and work products, provide objective
insight based on those evaluations, and effectively communicate and ensure
resolution of all noncompliance issues with GSFC managers and stakeholders.

Quality and Dependability:

Quality and dependability of large software systems are among the most common
topics in discussions about computers. Organizations, both public and private, have
invested huge sums in research to develop methodologies for producing software of
quality and dependability. Schools have devoted large efforts to curricula in the
5
engineering of software. Yet, many people remain dissatisfied with the progress of
the field over the past decade. The methodologies currently employed to produce
“software of quality” are based on the notion that quality is strongly related to rigor
in the specifications and texts that appear throughout the software design process.
According to this view, quality will be achieved when software is produced by a
process consisting of four stages: obtain a clear and comprehensive requirements
statement, construct a formal specification from the requirements, derive the
programs from the specification, and demonstrate convincingly that the
implemented program meets the specification. Program construction techniques
that maintain tight relationships between program structure and dynamic behavior
are considered to be essential. Readability, modularity, modifiability, style,
adequacy of comments, and good tests are considered to be important guidelines.
Failure to achieve software of quality is attributed not to possible limitations in the
process itself, but to inadequate knowledge. Once the process is completed, the
designer delivers the software to the customer and declares the job done.

Work of a Software engineer:

A good software system designer will bring long experience with many different
customers to a new customer. That designer may propose to include functions that
the customer did not ask for but which will spare the customer unwanted future
problems. The designer will continue to work with the customer after the system is
installed in order to modify the system in case negative consequences are
discovered. These actions -- anticipation and continued availability after delivery --
are essential for a software producer to earn the customer’s satisfaction at the
second level. Very few software systems have produced genuine delight. Some
examples include the second-generation UNIX system, the Apple MacIntosh, Lotus
1-2-3, the Quicken accounting system, Microsoft Excel and Windows, and
PageMaker document system. In each case customers found they could complete
much more work with the system than without, much more than they expected.

Different Quality Factors of Software:

The different quality factors associated are:

1) Portability
6
The cost of product modification.

Over the years as the maintenance function has taken on new meaning the
flexibility quality factor has been fused into maintenance. 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.

2) Usability:

The cost/effort to learn and handle a product.

Usability is by its very name a quality factor in the HCI domain - usable by
humans. Usability in the late 1990s is concerned with a vast number of end-user
issues and learning to use systems now embraces so many topics that some authors
consider learnability to be a quality factor in its own right. Usability topics include
suitability, learnability and adaptability. Usability is an extremely difficult quality
factor to define. The main reason for this is the vast variety of users with their
different needs. Some will be novices while others will be experts and a quality
product will support them all.

3) Reusability:

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. A typical example is writing procedures or routines to receive variable
parameters. The calling code passes the parameters and the called procedure
processes them as appropriate. Any result from the process is returned to the calling
code. The main advantage of using this approach is that once a procedure has been
written and fully tested it can be used with full confidence in its
accuracy thereafter. It should never need to be tested again.

4) Correctness:

A software Product will be correct only if it satisfies every details specified in the
SRS documents.
7
5) Maintainability:

The cost of localizing and correcting errors.

Finding and correcting errors is just one aspect of maintenance. 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.

Adaptive maintenance is concerned with changing the software to reflect changes


in the user’s requirements. For example changes in VAT rates, income tax bands or
income tax rates. Or, a user might wish to add more functionality.

Perfective maintenance seeks to improve the algorithms used in the software to


enhance performance. Perfective maintenance is often influenced by technological
developments. Maintenance starts from the moment a system comes into operation
and continues for the remainder of the product's life.

Software Metrics:

ISO 9000 is a family of standards for quality management systems. ISO 9000 is
maintained by ISO, the International Organization for Standardization and is
administered by accreditation and certification bodies. The rules are updated, as the

8
requirements motivate changes over time. Some of the requirements in ISO
9001:2008 (which is one of the standards in the ISO 9000 family) include

• a set of procedures that cover all key processes in the business;


• monitoring processes to ensure they are effective;
• keeping adequate records;
• checking output for defects, with appropriate and corrective action where
necessary;
• regularly reviewing individual processes and the quality system itself for
effectiveness; and
• facilitating continual improvement

A company or organization that has been independently audited and certified to be


in conformance with ISO 9001 may publicly state that it is "ISO 9001 certified" or
"ISO 9001 registered". Certification to an ISO 9001 standard does not guarantee
any quality of end products and services; rather, it certifies that formalized business
processes are being applied.

The advantages are:

It is widely acknowledged that proper quality management improves business,


often having a positive effect on investment, market share, sales growth, sales
margins, competitive advantage, and avoidance of litigation. The quality principles
in ISO 9000:2000 are also sound, according to Wade and Barnes, who say that
"ISO 9000 guidelines provide a comprehensive model for quality management
systems that can make any company competitive implementing ISO often gives the
following advantages:

1. Create a more efficient, effective operation


2. Increase customer satisfaction and retention
3. Reduce audits
4. Enhance marketing
5. Improve employee motivation, awareness, and morale
6. Promote international trade
7. Increases profit
8. Reduce waste and increases productivity.

9
Capability Maturity Model:

The Capability Maturity Model (CMM) is a service mark owned by Carnegie


Mellon University (CMU) and refers to a development model elicited from actual
data. The data was collected from organizations that contracted with the U.S.
Department of Defense, who funded the research, and became the foundation from
which CMU created the Software Engineering Institute (SEI). Like any model, it is
an abstraction of an existing system.

When it is applied to an existing organization's software development processes, it


allows an effective approach toward improving them. Eventually it became clear
that the model could be applied to other processes. This gave rise to a more general
concept that is applied to business processes and to developing people.

Conclusion:

Software quality definitions as defined by international organizations during the


1970s and 80s have become a little outdated in that they do not reflect the huge
technological developments of the 1990s. Software quality models and factors
which were first defined in the late 1970s have also become outdated as a result of
industry developments. In particular the impact of the microcomputer industry
needs to be reflected in models. Definitions for factors like usability, efficiency and
maintainability are being or need to be redefined while new factors like suitability,
learnability and adaptability are evolving. The interrelationships between quality
factors as set out by Perry needs to be amended to reflect these evolutions and the
impact of human-computer interaction need to be addressed.
The importance of quality for both the supplier and the purchaser was investigated
in the second part of the paper. Issues covered were marketing strategies, tendering
and cost estimation, human resource issues, productivity and system acquisition.

Reference Cited:

1) Fundamentals of Software Engineering by Rajib Mall.

2) An Integrated approach to Software Engineering by P. Jalote.

10
3) R. S. Pressman, Title: Software Engineering - A practitioner's approach.

4) Google Search.

11

S-ar putea să vă placă și