Sunday, 7 August 2011

costs of softwalre engineering

There is 110 simple answer to this question as the distribution of costs across the
different activities in the software process depends on the process used and the type
of software that is being develop«::d. For example, real-time software usually
requires more extensive validation and testing than web-based systems. However,each of the different generic approaches to software development has a different
profile of cost distribution across the software process activities. If you assume that
the total cost of developing a complex software system is 100 cost units then Figure
1.2 illustrates how these are spent on different process activities.
In the waterfall approach, the costs of specification, design, implementation and
integration are measured separately. Notice that system integration and testing is
the most expensive development activity. Normally, this is about 40% of the total
development costs but for some critical systems it is likely to be at least 50% of
the system development costs.
If the software is developed using an iterative approach, there is no hard line
between specification, design and development. Specification costs are reduced because
only a high-level specification is produced before development in this approach.
Specification, design, implementation, integration and testing are carried out in parallel
within a development activity. However, you still need an independent system
testing activity once the initial implementation is complete.
Component-based software engineering has only been widely used for a short
time. We don't have accurate figures for the costs of different software development
activities in this approach. However, we know that development costs are reduced relative to integration and testing costs. Integration and testing costs are increased
because you have to ensure that the components that you use actually meet their
specification and work as expected with other components.
On top of development costs, costs are also incurred in changing the software
after it has gone into use. The costs of evolution vary dramatically depending on
the type of system. For long-lifetime software systems, such as command and control
syst,ems that may be used for 10 years or more, these costs are likely to exceed
the development costs by a factor of 3 or 4, as illustrated in the bottom bar in Figure
1.3. However, smaller business sYi,tems have a much shorter lifetime and correspondingly
reduced evolution costs.
These cost distributions hold for customised software that is specified by a customer
and developed by a contractor. For software products that are (mostly) sold
for pes, the cost profile is likely to be different. These products are usually developed
from an outline specification using an evolutionary development approach.
Specification costs are relatively low. However, because they are intended for use
on a range of different configurations, they must be extensively tested. Figure 1.3
shows the type of cost profile that might be expected for these products.
The levolution costs for generic software products are particularly hard to estimate.
In many cases, there is little formal evolution of a product. Once a version
of the product has been released, work starts on the next release and, for marketing
reasons, this is likely to be prei,ented as a new (but compatible) product rather
than as a modified version of a product that the user has already bought. Therefore,
the evolution costs are not assessed separately as they are in customised software
but are simply the development costs for the next version of the system.

No comments:

Post a Comment

Your comments are welcome!