Professional Documents
Culture Documents
Report Software
Report Software
Report Software
Verification
Software Engineering
Mr. Manny Lanuang
Group Report
Member:
Darren Laderas
Edison valentino
April Ej Paraiso
Verification
Before proceeding with the technical details we should discuss some issues
regarding terminology. The field of software verification is progressing rapidly
and the terminology is evolving. The term verification and variation in
particular are used with many often inconsistent meaning. We shall avoid the
term validation and only use verification in this chapter, by verification we
mean all activities that are under taken to ascertain that the software meets
its objectives. As we shall see these activities encompasses a wide spectrum
of efforts including testing mathematical proofs and informal.
6.1
Just as a bridge or other engineering works must be verified so must both the
process of software development and all of its products. With small programs
of programmer we write for our own use and with programs that do not have
critical requirements to meet program verification often consist of trying a
sample case to see whether the result of running the code match our
expectations, people are often tempted to carry over the approach to the
verification of software products. Trying a few sample cases hoe ever is to
limited to stills be vide us with any confidence in the software for at least two
reasons. First we shall see later that we can never gain such absolute
confidence in the correctness of software, Second even if we could we would
still be quite far from software that we could trust. The software might
perform poorly its documentation might be adequate preventing its effective
use or its evolution. Furthermore performing verification only after the
running code is available would make it very difficult to repair any defects
that were discovered. Experimental data from industrial projects have shown
that the cost of removing an error after the software has been developed
completely is much higher than if errors are eliminated earlier. In sum the
verification activity like other software design activity must follow rigorous
principles and suitable techniques, it cannot be left exclusively to human
insight experience or luck.
6.1.1
In principles all design process and all of the product of these processes must
be verified. In some sense verification must be verified in fact once we tested
a system for proper behavior, we should check our test were executed
properly themselves. Verifying the validity of experiments is standard practice
established scientific discipline. Also every software quality must be verified,
not only we check through verification of correctness whether the software
we have implemented behaves according to the specification document’s but
also we must certify the software’s portability performance, modifiability etc.
6.1.2
is a typical example of software quality that is seldom explicitly asked for yet
often highly desirable. We also so that it is hardly quantifiable. This not
withstanding a good software engineer should strive not only to design
maintainable software, but also to verify the maintainability of the product
during each step of the design process. For instance for once the
requirements for a user interface are specified one should ask how, when,
and why they are likely to change.
Approaches to Verification
Analysis
1. Informal analysis Techniques
Code walk-throughs
Code inpections
2. Correctness Proofs
Verifying Performance
Performance has always been a major concern in software system whether one is
dealing with strictly real-time system.
Performance can be verified from several standpoints and with several techniques.
Worst case analysis – Which the focus is on proving that the system.
Verifying Reliability
Statistical and probabilistic methods work quite well for measuring system properties
that we cannot measure with absolute certainly.
- Halstead Theory
Software science is approach to measuring software qualities on the basic of objective
code measures.
The Theory due to Halstead and bases on information theory relies on the following
measurable, defined for a given program coded in any programming language.
Although the terms “operator” and “operand” have an intuitive meaning, a precise definition of
them is needed to avoid ambiguities that may arise between different programming
languages.
- McCabe’s Theory
Another source-code metric was developed by McCabe, who observed that the quality
of a program depends on the complexity of its control flow, rather than on operators and
operands, as in Halstead’s theory, McCabe’s complexity metric C is based on the control
flow graph and is defined as.
C = e – n + 2p
Much research and experimental activity has been reported in regard to validating
Halstead’s and McCabe’s theories, as well as other, similar ones. Some experiments seem
to support the theories, while others are inconclusive.
Hints and sketchy solutions 6.10 inputs to a program may have a rich
structure that can be refined by a BNE grammar. For example, consider a
program that uses as input a business from with several (possibly repeated)
fields and several options. One can use the input’s BNF as a driver to
generate test sets.
Billionare Notes