Topics Covered Software Scope: Lesson 2
Topics Covered Software Scope: Lesson 2
LESSON 2:
of verification in the developer’s environment documented development standards, and implicit characteristics
that are expected of all professionally developed software. The
Regression Testing
emphasis in this definition is on three points:
This is an important type of test that is performed when some
corrections or changes are made to an existing system. Changes a. Software requirements are the foundation from which
are fundamental and inevitable in software. Any software must quality is measured. Lack of conformance to requirements is
undergo changes. Usually, a change is made either to correct lack of quality.
detected errors or to add new features and functionality. It has b. Specified standards define a set of development criteria that
been found that whenever such corrections or changes are made. guide the manner in which software is engineered. If the
Some how they result in the propagation of unexpected and criterion is not allowed, lack of quality will almost surely
obviously undesirable side effects. Therefore the purpose of result.
regression testing is to ensure that changes made to the c. There is a set of implicitly requirements that often goes
software have not altered the behaviors or functionality. It has unmentioned.
been found that whenever such corrections or changes are made,
Ex: The desire for ease of use. If software conforms to its
somehow they result in the propagation of unexpected and
explicit requirements but fails to meet implicit requirements,
obviously undesirable side effects. Therefore the purpose of
software quality is suspect.
regression testing is the need for adequate and accurate
documentation at every stage. Of all software re-engineering is an important concept in the
development process, now it’s high time that we know of what
Many of you will not be aware of the term baseline. We’ll see
do you mean by software re-engineering.
what a baseline is?
Baseline Software Reengineering
Software reengineering is the process of examining and altering
A baseline is software configuration management concept that
a software system to reconstitute and re-implement it in a new
helps us to control change without seriously impeding
form. Basically, this means improving the documentation
justifiable change. The IEEE defines a baseline as a specification
(understanding and describing what a system does, its inputs
or product that has been formally reviewed and agreed upon
and outputs, its actions), redesigning and restructuring an
and, that thereafter serves as the basis for further development,
existing system to obtain a core acceptable form of a system.
and that can be changed only through formal change control
The two main sub-processes of a reengineering project are
procedures. In the context of software engineering, a baseline is
reverse engineering and forward engineering. Reserve
a milestone in the development of software that is marked by
engineering starts with an existing system, analyzing a system to
the delivery of one or more software configuration items (SCIs)
identify its components and inter-relationships among
and the approval of these SCIs that is obtained through the
components. A principle benefit of reverse engineering is that it
format technical review. For ex: the elements of a design
results in the recovery of useful information and structures.
specification have been documented and reviewed. Errors are
Forward engineering is the classical software development
found and corrected. Once all parts of the specification have
process where there is a movement from high-level description
been reviewed, corrected. Once all parts of the specification have
of a system (requirements) to identification of software
been reviewed, corrected and then approved the design
structures (architectures), to coding and physical
specification becomes the baseline. Further changes to the
implementation of system design.
program architecture can be made only after each has been
evaluated and approved. The most common software baselines Exercises
are system specification, software requirements, design 1. Assume that you are the manager of a software
specification, source code, test, plans, operational system and development team.
implementation.
Write a description of the software scope and resources
McCall’s Quality Factors required.
The quality factors focus on three important aspects of a 2. Write a paper summarizing recent advances in one of the
software product: it’s operational characteristics, it’s ability to leading edge software application areas. Potential choices
undergo change and it’s adaptability to new environments. The include: advanced Web-based applications, virtual reality,
factors relating to the operational phase are correctness, artificial neural networks, advanced human interfaces,
reliability, usability, integrity, and efficiency. Those relating to the intelligent agents.
revision phase are maintainability, flexibility and testability. And
3. Discuss whether software being developed needs to be
the factors relating to the transition phase are portability,
tested or not.
reusability, and interoperability.
Quality is also a subject for software. Now we will see what is Further Readings and Information Resources
software quality? The current state of the art in software engineering can best be
determined from monthly publications such as IEEE Software,
Software Quality Computers and the IEEE Transactions on Software
Software quality can be defined as conformance to explicitly Engineering.
stated functional and performance requirements explicitly stated