We take on a wide variety of projects, but a common problem we’re often asked to solve comes under the general heading of “updating legacy systems”. In an earlier post, The Hazards of Updating Legacy Systems, we discussed the challenges involved in this process (the fact that in solving one set of problems you may create others elsewhere in the system) and how to overcome them. In this one we thought we’d share with you a real life project where we had to put all this into practice.
The speed of technological change means that systems date very quickly. Suddenly you find that the language in which the software was written is no longer supported and that you cannot replace the hardware (when the only place you can find spare parts is eBay you know you’ve got a problem!).
Some time ago we were approached by a company that found itself in this uncomfortable situation. They have a contract with the MoD to provide what is known as high-end mission rehearsal – simulating a variety of attacks, from communications jamming to false target generation, so that military personnel can practice for real life situations where they have to defend themselves against incoming missiles.
This involves fitting planes with a number of different electronic systems to simulate attacks on military units. The planes are also fitted with a system to control all these different units, enabling an operator to set up and manage the scenarios required in that particular exercise.
Coming to the end of its life
This system was written in Borland C++ which is no longer supported. This means it would be difficult to further develop the application to allow enhancement of the training schedule. When the multi-million pound contract was recently renewed for a further 10 years, it was decided that the software was approaching a point where it required rewriting in an entirely different language.
They came to us and we were able to provide an effective and reliable solution. By porting the software over into a current language (C# .NET), one that will remain in use for many years, we were able to retain much of the core application code. In the process we also fixed a number of bugs that had either become apparent over time or which we discovered once we set to work. This approach is much more cost effective than a complete re-write and has successfully extended the life of this legacy system and made future enhancements a lot easier.