Page 22 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 22
Principles of Software Engineering
Notes of these attributes are therefore efficiency, reliability, maintainability, robustness, portability,
and so on.
The relative importance of these characteristics obviously varies from system to system. However,
optimizing all of these attributes is difficult as some are exclusive. For example, providing a
better user interface may reduce system efficiency. All are subject to the law of diminishing
returns. The relationship between cost and improvements in each of these attributes is not a
linear one. Small improvements in any of the attributes can be expensive. A great deal of effort
must be devoted to optimizing a particular attribute.
As an example of this, Figure 1.9 shows how costs may rise exponentially as efficiency
improvements are required.
Figure 1.9: Costs vs. Efficiency
For some kinds of system, such as avionic systems, efficiency is a prime consideration. The
software may have to run on a computer where weight and size considerations restrict the
power of the hardware which can be used. It may have to run in a relatively small memory
with no associated disks. It may be necessary to optimize efficiency at the expense of the other
system attributes. Where this is necessary, the design decisions for efficiency should be explicit
and the consequences of these decisions carefully analyzed.
1.10.3 Process and its Approach
The software process is the set of activities and associated results which produce a software
product. These activities are mostly carried out by software engineers. CASE (computer-aided
software engineering) tools may be used to help with some procedure activities.
There are four fundamental process performances which are common to all software processes.
The activities are:
• Software Specification: The functionality of the software and constraints on its operation
must be defined.
• Software Development: The software to meet the specification must be produced.
• Software Validation: The software must be validated to ensure that it does what the customer
wants.
• Software Evolution: The software must evolve to meet changing customer needs.
16 LOVELY PROFESSIONAL UNIVERSITY