S E S P

Software Analysis

The Software
Engineering Group

Computational Science & Engineering
CLRC Rutherford Appleton Laboratory


There are many languages being used in computational science and engineering applications and many target hardware systems. In the same way the are a host of compilers on these systems.

Modern computational software is complex and is the product of many years of effort. Ensuring that software has a long life time become increasing important. Consequently the design and implementation of these systems must be best possible. This will help
ensure a long development life time and improve the maintainability of the system.

The software engineering community has develop a variety of analysis tools to help the developer assess the quaility of their software and their test data. Four main areas addressed are:

  • Standards conformance - does my software conform to the standard?
  • Call tree generation - what is the call structure of code?
  • Coverage analysis - does my test data cover all the possibilities?
  • Dynamic analysis - is my software efficient?
  • Software metrics - is my software of a good quiality?

A major difficult in software development and deployment is the portability and the maitainability of the programs being developed. Ensuring the software is well design and that the implementation conforms to an agreed standards is a good starting point. This coupled with a good set of test data that generates good coverage will make transporting the program to a new system a great deal easier.


  • Types of Analysis
    • Call tree generation
    • Coverage analysis
    • Dynamic analysis
    • Software metrics

SESP Homepage

SEG Homepage