Our Approach

When engaging with a client we agree a set of objectives and outcomes for each stage of the project, these will include all the required certification evidence. Using this approach means the agreed objectives are delivered within their planned timescales, keeping project costs under control.

Software Design & Implementation

Having an accurate design of a system provides a common understanding between ourselves and the client. This improves dialogue and ensures that the requirements and functionality a client requires are those that will be delivered.

We construct software models and designs using the standard design languages UML and HOOD.

Implementation remains an essential skill in the construction of complex software, and it is one of our core services. Our implementation skills are focused on the main languages used in high integrity and embedded systems, namely Ada, SPARK and MISRA C.

Software Testing

We can undertake all levels of testing, from unit and integration testing, through to full scale acceptance testing.

When testing high integrity software it is mandatory to produce a set of coverage metrics. We generate coverage metrics for all types of testing, so that they can be submitted for certification.

Legacy Systems Development

Legacy systems with little or no documentation are common, even within the domain of safety critical software. In order to update these systems, a thorough understanding of the software is required before any changes can be undertaken.

By fully evaluating these systems we can determine the best route to improve the quality of the software and to produce the documentation required for certification. This includes the creation of formal designs, adding requirements traces to existing software, and generation of regression tests.

Once the software has been analysed, it is then possible to continue the development of the system knowing the effects of future changes will be understood and predictable.