TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Alan Brain <[log in to unmask]>
Reply To:
Alan Brain <[log in to unmask]>
Mon, 10 Dec 2001 10:34:58 +1100
text/plain (67 lines)
I'm looking for a freeware Ada-95 source code analyser.

Basically, we're at the finishing-up stage of development
for the Spaceflight Avionics Software on FedSat-1, a scientific
research minisat being developed on a shoestring budget.
For my sins, I'm the leader of the on-board software team.

Something like APFAT would be good - but the PAL version is
Ada-83. Is there a -95 version? Since the code's available,
it shouldn't be too hard to modify, but we don't have the resources
available to re-invent the wheel again if someone else's already
done it.

CCCC is specified to have the functionality needed, but can't
parse a lot of the code, alas."Needs Work" to be useful.

For details on FedSat, see
and others.

Environment (for those interested) is an unsupported version
of GNAT running on the open source RTEMS, on an ancient ERC-32
processor at the glacial speed of 8 MHz. It's running 5 different
complex experiments  (GPS propagation Ionosphere research, Star Camera,
Ka-Band Comms/Mail forwarding, High Performance Computing Experiment
using PGAs, Newcastle Magnetometer), plus communicating with a COTS
Attitude Control System from Dynacon, Canada. This last only added
to the requirements about 1 month ago.

The Mass Memory system uses a different memory-map from the rest,
too. Addresses 0, 1 are valid, 2 and 3 aren't, 4 and 5 are valid...
and of course we have bank-switching issues, only 4 MB of it
(8 MB of addresses) is visible at a time. Much of the hardware
was made by SIL when it was going bust, so was incomplete,
undocumented, or just plain shoddy. And the "software emulator"
of the unfinished system was capable of simulating no more than
2.7 secs of real-time - not enough to complete the boot sequence!

Fortunately, Ada has come to our rescue on numerous occasions. For
example, on the Engineering Model using code executed for the first
time, it took less than 2 hours to deduce a hardware failure (stuck bit)
in the mass-storage memory, whose only symptom was the failure of a
complex remote code-patching function on untested payload hardware.
Had we been programming in C++, we'd still be poring over the code
trying to find the bug that wasn't there - or examining the new
hardware, logic probes in hands.

Anyway, we've got the data on how long it took us to make the SW.
Now we need a source analyser to tell us about the sins we've
committed along the way - where the cyclomatic complexity is too
high, faults in the design and architecture that will come to haunt
us in the maintenance phase. Package fan-in and fan-out to show
flaws in coupling and cohesion.

We have the last edition of the Walnut Creek Ada CD-Rom, and
have taken a quick stroll through AdaIC, AdaPower, even HBAP with
little joy. Any suggestions?

Home: mailto:[log in to unmask]
Work: mailto:[log in to unmask]   ______
                                    | Fed  |
 There's no Such      X-------------| Sat  |
 Thing as a                         |  1   |
 Free Launch.                       --------
                                    /      \