Software Engineering Tools - can they be of any practical use?, Professor Chris Greenough, Software Engineering Group, Rutherford Appleton Laboratory.

In computational science and engineering the development of software has become an essential activity. For most application areas the use of analytical methods to find closed-form solutions is long gone. Computational methods and software development dominate most research activities. In many areas the software being used for computational experiments and being developed to provide new capabilities has had a long life-time and is the result of the endeavours of numerous research students. Life-times of 10 to 15 years are becoming quite common. A consequence of this is that the software is implemented in a variety of dialects of the implementation language and the design has involved. What we are often left with is a body of very important and well used software that is poorly designed, poorly documented and very difficult to development and maintain.

Re-writing from scratch is an ideal but not often available approach to this problem. In most situations rescuing the software by transformation and re-engineering is the only possible option.

In this presentation we will describe some of the experiences that we have had with software engineering tools in a variety of areas ranging the rescue of large legacy systems through to the gradual improvement of software practices. We will comment on some of the issues and describe some of the tools and methods we have been attempting to use in this process.
View slides as pdf