|
These trends constitute the fundamental
rationale for the work which we propose here.
While code analysis tools are important, they
provide only a partial solution to the problems of
evolution. Organisations urgently need support and
guidance on how to improve their evolution
processes. They are reluctant, however, to make
large capital investments in specialised tool
support which may have a limited lifetime and
applicability as they may have already invested in
CASE tools and code re-engineering support.
The application partners in the RENAISSANCE
project are already involved in providing
re-engineering solutions but they identified a
number of key problems which they face and which
are not addressed by current technology:
- Most re-engineering support is tool-based
with no supporting evolution method.
- Adapting existing systems to a client-server
architecture is an ad-hoc process with little or
no method or tool support.
- Current tools for design recovery work only
with single systems. Most systems exist in
multiple versions or system families. Currently,
these have to be analysed and understood
individually.
- Most re-engineering tools are based on COBOL
or FORTRAN. Now, applications written in the
1980's using 4GLs are become more and more
expensive to maintain.
- Software reuse is becoming increasingly
widely accepted but it remains difficult to find
large-scale reusable components. Potential
benefits from sub-system reuse are very high.
- Technical managers are faced with different
evolution options such as re-engineering,
recycling (where some code is reused), continued
maintenance or refurbishment where part of the
system is replaced. They have no means of
choosing which option offers the lowest costs
and risks.
We strongly believe that the most cost-effective
way to address these problems is to provide an
evolution method which addresses these problems.
This should exploit existing CASE support and
should not require high capital investment in new
tools.
Because of the very high costs of evolution,
even a 5% reduction in costs from such a method
would be very significant. Of equal importance, the
use of an evolution method will speed up the
evolution process thus allowing software
development groups to be more responsive to their
customers' needs.
|