Nimrod - Translating Obsolete Design Technologies
Our Client, BAE Systems, was responsible for maintaining and upgrading the Nimrod fuel computer software. The project team realised that it needed to consider more modern ways of working for forthcoming upgrades. The fuel computer software is safety critical with a well maintained static and dynamic design, implemented in SPARK Ada.
The Nimrod fuel computer software design was documented in two separate and now obsolete notations. HOOD was used to capture the static design information whilst the dynamic behaviour was developed in a tool known as BEACON, from which the code was generated.

The project wanted to combine the dynamic and static aspects of the software definition into a single, supportable modelling environment whilst retaining their full code generation capability. To achieve this aim both parts of the software definition were analysed using Objektum Modernization’s Legacy Explorer and Bridge technology to automatically migrate both designs into a single UML model. The migration to UML in Artisan Studio was completed and verified by analysing the code using the SPARK analyser and executing the original unit tests.
Although the existing toolsets supported automatic code generation it was established that there were more efficient ways of working. The two tools worked independently and were not integrated in anyway. HOOD did not support the features of modern OO languages or round trip engineering. BEACON was an internal BAE Systems tool and was no longer supported. After evaluation, it was decided that it was necessary to migrate the static structure and dynamic behaviour into a supportable notation. Consequently, UML was selected as the modelling notation and Artisan Studio as the tool.

BAE Systems enlisted the support of Objektum Modernization to assist with the migration process. Objektum deployed their migration technology to analyse the existing design and automatically construct a model in UML. The resulting model was then compared to the existing implementation to validate its accuracy. The dynamic behavior, described in BEACON, was also analysed and automatically generated into activity diagrams with the same model. This meant that, for the first time, both the static and dynamic designs were modeling in the same environment. It was now possible for the project team to build a code generator that could recreate the entire SPARK83 code base from the model, including all of the headers and indentation, etc. To ensure successful modernization of the fuel computer, the generated code was run through the SPARK83 analyser and the original unit tests re-run.
By employing Objektum Modernization technology the Nimrod fuel computer project experienced the following benefits:
- The perceived decline of the HOOD and BEACON tools was mitigated by the move to a more modern platform and COTS tool, Artisan Studio.
- The migration process allowed existing design errors to be identified and resolved.
- Automation mitigated the risk of manual errors in migration and significantly reduced timescales and cost.
- The static structure and dynamic behaviour were held in same model providing scope and traceability for development.
- The entire SPARK83 code base was generated from the model, including the operation bodies which were modelled using activity diagrams.
- The use of the HOOD-SPARK83 meta-model within the Artisan Studio tool allows automatic correction of errors and inconsistencies in the existing HOOD-Ada83 design during the migration process.
- Once developed, the SPARK83 UML profile is available for re-use across all projects using the same technology.
- The cancellation of the project highlighted the organisational benefit of using a common development standard, such as UML, as this aided resource allocation.