Project_17
Computational Software:
Writing Your Legacy


Project 17 explores the problems that arise when software needs to be reused, verified, or modified. In some cases, the original author is re-examining the software, trying to explain the underlying algorithm or improve it. It's even possible that the original author can't actually remember what some of the program's arguments do, or even what exactly the program does!

A more common instance occurs when a programmer writes code that is to be passed on to a user. The user needs documentation, test cases, and performance data that will ensure that the purpose of the code is clear, the code is used correctly, its results can be interpreted, the limits of its accuracy or allowed input types are known.

If possible, the program should do what it can to alert the user to illegal input or unexpected occurrences in the computation.

As a real life case study for this project, you are given a piece of code that "does something". You are asked to figure out what it does, to explain the algorithm, to come up with accuracy tests, to modify the algorithm so it is more reliable, and to add enough documentation so that the next person won't have so much trouble with this code!

Reference:

  1. Dianne O'Leary,
    Computational Software: Writing Your Legacy,
    Computing in Science and Engineering,
    Volume 8, Number 1, January/February 2006.
  2. Dianne O'Leary,
    Scientific Computing with Case Studies,
    SIAM, 2008,
    ISBN13: 978-0-898716-66-5,
    LC: QA401.O44.


You can go up one level to the Computational Science Projects page.


Last revised on 10 February 2009.