Usage

This section outlines how Signpost works, and how I'd like it to work :) just click on the images to make them big.

Current implementation

Say we have a program. A simple program that writes student information into a database.

All seems to work OK, but when we look at the output some data is missing (the first line is input using access' own data forms to show what correct output should look like)

Must be a problem with our code right? Just as a check we'll fire up Signpost.

Firstly, the user has to run Signpost. As Signpost starts up it loads the behavioral descriptors (see description language) and links to the knowledge base

When Signpost has finished loading. The user has to load the program trace (see runtime monitoring).

Signpost returns pretty quickly as the file is read/parsed whilst searching. The user clicks the magnifying glass button (or the search menu) to start looking for relevant articles in the knowledge base

Once the search is complete, its apparent that we have relevant articles.

The first match is exactly what we are looking for - data is being incorrectly saved. The article gives us the symptoms and code to correct the bug

The second match is a warning. In the application dates are being passed to a database and there is a knowledge base article warning about potential loss of precision when using certain databases. It doesn't affect us (because we are only using day, month and year) but if we were concerned with higher precision (e.g. milliseconds) we might want to do something about it.

Future implementation

Having a separate program and a two stage process gets in the programmers way. The preferred embodiment of Signpost would be incorporated into an IDE so the programmer never has to leave their normal environment. A button where the program can be run inside the debug environment and an output window for the results would be ideal as the following mock-up screen capture shows.

 

 

 

[Back to top]