Académique Documents
Professionnel Documents
Culture Documents
Unit 2
Unit 2
Structure
2.1
2.2
2.3
Software reliability
2.4
2.5
2.6
Requirements
2.6.2
Design
2.6.3
Programming
2.6.4
Testing
2.6.5
Runtime
2.7
2.8
2.9
User's perspective
2.10
Review questions
Page No: 11
Unit 2
Readability
Low complexity
Page No: 12
Unit 2
Page No: 13
Unit 2
Page No: 14
Unit 2
D1
D2
D3
D4
D5
Quality
management
process
Standards
and
procedure
Quality
plan
Page No: 15
Unit 2
Page No: 16
Unit 2
Page No: 17
Unit 2
2.6.4 Testing
Given a whole or partial program, it is possible to perform manual or
automated tests to determine if the program fulfills its behavioural
requirements.
Unit tests are tests which are created to be run on small sections of code,
usually one or another form of sub-routine, and usually in the context of
abstract data types, to ensure the operations on those types proceed as
desired.
Integration tests are meant to prove or disprove that larger modules of code
work correctly with one another. These tests are often performed with the
help of a harness, which is a piece of software which imitates a code
module in shape, but which contains only testing code for the purpose of
interfacing with another real module to evaluate its operation in a setting one
step closer to the intended final production environment.
2.6.5 Runtime
Runtime reliability determinations are similar to tests, but go beyond simple
confirmation of behaviour to the evaluation of qualities such as performance
and interoperability with other code or particular hardware configurations.
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Learnability
Page No: 18
Unit 2
Page No: 19
Unit 2
complex, and should have spare capacity for memory usage and processor
speed.
A software product possesses the characteristic testability to the extent
that it facilitates the establishment of acceptance criteria and supports
evaluation of its performance. Such a characteristic must be built-in during
the design phase if the product is to be easily testable - a complex design
leads to poor testability.
A software product possesses the characteristic usability to the extent that
it is convenient and practicable to use. This is affected by such things as the
human-computer interface. The component of the software which has most
impact on this is the graphical user interface (GUI).
A software product possesses the characteristic reliability to the extent that
it can be expected to perform its intended functions satisfactorily. This
implies a time factor in that a reliable product is expected to perform
correctly over a period of time. It also encompasses environmental
considerations in that the product is required to perform correctly in
whichever conditions it finds itself this is sometimes termed robustness.
A software product possesses Structuredness to the extent that it
possesses a definite pattern of organisation in its constituent parts. A
software product written in a block-structured language such as Pascal will
satisfy this characteristic.
A software product possesses the characteristic efficiency to the extent that
it fulfills its purpose without waste of resources. This means resources in the
sense of memory utilisation and processor speed.
A software product possesses the characteristic security to the extent that it
is able to protect data against unauthorized access and to withstand
malicious interference with its operations. Besides presence of appropriate
Sikkim Manipal University
Page No: 20
Unit 2
Page No: 21
Unit 2
Conciseness
Is all code reachable? Is any code redundant? How many statements within
loops could be placed outside the loop, thus reducing computation time?
Are branch decisions too complex?
Portability
Consistency
Is one variable name used to represent different physical entities in the
program? Does the program contain only one representation for physical or
mathematical constants? Are functionally similar arithmetic expressions
similarly constructed? Is a consistent scheme for indentation used?
Maintainability
Has some memory capacity been reserved for future expansion? Is the
design cohesive, i.e., each module has recognisable functionality? Does the
software allow for a change in data structures (object-oriented designs are
more likely to allow for this)? If a functionally-based design (rather than
object-oriented), is a change likely to require restructuring the mainprogram, or just a module?
Testability
Are complex structures employed in the code? Does the detailed design
contain clear pseudo-code? Is the pseudo-code at a higher level of
abstraction than the code? If tasking is used in concurrent designs, are
schemes available for providing adequate test cases?
Sikkim Manipal University
Page No: 22
Unit 2
Usability
Is a GUI used? Is there adequate on-line help? Is a user manual provided?
Are meaningful error messages provided?
Reliability
Are loop indexes range tested? Is input data checked for range errors?
Is divide-by-zero avoided? Is exception handling provided?
Structuredness
Is a block-structured programming language used? Are modules limited in
size? Have the rules for transfer of control between modules been
established and followed?
Efficiency
Have functions been optimized for speed? Have repeatedly used blocks
of code been formed into sub-routines? Checked for any memory leak,
overflow?
Security
Does the software protect itself and its data against unauthorized access
and use? Does it allow its operator to enforce security policies? Are
appropriate security mechanisms in place? Are those security mechanisms
implemented correctly? Can the software withstand attacks that must be
expected in its intended environment? Is the software free of errors that
would make it possible to circumvent its security mechanisms? Does the
architecture limit the impact of yet unknown errors?
Page No: 23
Unit 2
Also, the availability of (free or paid) support may determine the usability of
software.
Page No: 24
Unit 2
ISO Standard
ii)
Quality
iii)
ISO 8205
iv)
Software
a. iii only
b. ii only
c. i only
d. iv only
2. Which of the following is not considered among the Software Quality
Factors?
i)
Understandability
ii)
Completeness
iii)
Conciseness
iv)
Portability
Security
ii)
Resilience
iii)
Robustness
iv)
Adaptability
Page No: 25
Unit 2
a. ii only
b. iii and iv only
c. ii and iii only
d. i, ii, iii and iv only
4. Which of the following are considered as the general guidelines for a
good quality of Software Code?
i)
Readability
ii)
Low complexity
iii)
Robustness
iv)
a. ii only
b. i, ii and iv only
c. ii and iii only
d. i, ii, iii and iv only
5. While requirements are meant to specify what a program should do,
is meant, at least at a high level, to specify how the program
should do it.
i)
Quality
ii)
Software Code
iii)
Design
iv)
a. i and ii only
b. iii only
c. i only
d. i, ii, iii and iv only
Answer:
1. b
2. c
3. d
4. b
5. b
Sikkim Manipal University
Page No: 26