RENAISSANCE Rationale

Current Position & Market Trends

Rationale

Managing and changing existing systems is critical to industry because more and more of their activities are dependent on their software systems.

As the business environment changes, these systems must reflect these changes. Furthermore, organisations now realise that their software systems are valuable assets and they wish to increase their return on investment in these assets.

This requires the reuse of significant sub-systems across many different applications. These sub-systems must therefore evolve to meet a range of different requirements.

Finally, systems must evolve as new business processes are developed. Indeed, the difficulties of changing existing software is perhaps the most significant barrier to process change in current industrial, commercial and public organisations.

The scale of this problem is immense. It has been estimated (Ulrich 1990, The evolutionary growth of software re-engineering and the decade ahead, W.M. Ulrich, American Programmer, Oct 1990), that there were approximately 120 billion lines of source code in current operational systems which must be maintained. This number has undoubtably increased and is increasing at an accelerating rate. Organisations spend an increasing proportion of their resources (65%+ of software effort) on system evolution so that, in Europe alone, the annual costs of system evolution are of the order of 16 BECUs (based on a Europe-wide software project spend of 25 BECUs).

The market for tool support for software evolution which has resulted has been addressed by a number of research projects and commercial products which have focused on software re-engineering. Software re-engineering is principally concerned with code comprehension and evolution. Tools are available which allow information to be extracted from existing undocumented source code and which reorganise code with a tangled control structure into a more structured form. These products e.g. IBM Cobol SF (IBM), Retrofit (Peat Marwick), have mostly been concerned with COBOL programs in the business domain although language-independent meta-tools, such as REFINE (Reasoning Systems) are also available. There are also tools available, such as Bachman re-engineering Product Set (Bachman Information Systems), which may be used for database re-engineering from hierarchical or CODASYL databases to more modern relational systems.

Some CASE systems (e.g. HoodNICE with the ReverseNICE capability) include reverse engineering facilities where a system design can be recreated (with some manual assistance) from source code. However, we do not know of any current tools which can handle the reverse engineering of system families. System families are created when systems evolve and new versions are created. In source code, these different versions are often represented using conditional compiler directives. The lack of support for system family re-engineering represents a significant gap in the current market for CASE and re-engineering tools.

Most existing re-engineering products are based on source-code analysis and restructuring. However, we perceive a number of market trends which require support which goes beyond the facilities offered by code-oriented re-engineering tools. These trends are:

  1. The move from centralised to distributed systems. Increasingly, companies are moving to client-server systems based on PCs or workstations. This requires existing centralised applications to evolve into a distributed client-server form operating within some object-orientated framework
  2. The trend from internal maintenance to outsourcing of application management. Specialised companies such as Cap Sesa Hoskyns and debis Systemhaus (partners in this project) are taking over the management of applications from the companies which use these applications. These application management companies are dependent for their profitability and even their survival on cost-effective application management.
  3. The need for companies to reduce software costs, reduce time to market and increase product quality. All of these factors mean that more and more companies are realising that software is a very valuable asset and that evolution methods are required to ensure that software can be modified and reused across a range of applications.
  4. Business process re-engineering. As organisations review their business processes and reengineer these processes into more efficient forms, the constraints placed on change by existing software are becoming increasingly significant. In some cases, evolution can be accomplished by software re-engineering. In others, essential business objects must be identified and extracted from that software to be used as a basis for constructing new systems to support the re-engineered business processes.

Current Position & Market Trends

Rationale