Aranda
Volume Number: 6
Issue Number: 8
Column Tag: Kelly's Corner
Aranda on the CASE
By Dave Kelly, MacTutor Editorial Board
The Ideal Programming Environment
The ideal programming environment doesn’t exist. That is, as hard as they try,
programmers are not perfect. I’m not talking about what compiler is used, or even
which language. I’m talking about the software development process.
In the typical programming scenario, Joe Programmer has a defined objective to
accomplish. The specifications are clear, precise and there are no last minute changes.
He knows his job and how to do it.
Joe begins his program with a plan. He plans his programming task in advance
and flow charts the entire program. The flow chart is documented well so that another
programmer, the one that will later provide support to Joe’s program, can understand
how the program works.
Joe documents his source code and keeps accurate notes describing the function of
each part of the source code. He writes a detailed user manual which describes how to
use his program.
Sounds far fetched, huh? Whether your name is Joe or not, sooner or later
someone is going to try to understand your work. You should want to make it as easy as
possible. Organization is the key. The problem is that many programmers don’t take
the time to plan their program before they start and document their work as they go
along. So, what do you do when you come across someone else’s (or even your own
source code) and it isn’t documented well.
Aranda™ from Soft-SET™ (version 1.01 is referred to here) is designed to help
you understand existing code making it easier to reuse, modify, and maintain. It is the
latest in computer-aided software engineering (CASE) products for the Macintosh. It
doesn’t generate any code and it doesn’t write your program for you. As a matter of
fact, you must provide the source code before Aranda will even do anything.
Aranda parses source code and builds an abstract syntax tree (AST) of the source
code information. This tree allows Aranda to provide context sensitive information
about the source code. For example, you can apply a Used By tool to a global variable
and Aranda will produce a listing of only those identifiers that use this global variable
even if another variable has the same name. Identifier names that are used in source
code comments are not reported in the usage analysis report.
Aranda allows you to selectively hide source code detail and graphically
summarizes identifier relationships. Each identifier in the tree has its own unique
symbol: shadow boxes for routines, ovals for variables, layered boxes for methods, etc.
You can trace your way through a routine by applying the Used By tool to get a list of
all the other identifiers that use the routine. A new chart comes up that shows the
identifiers that use that routine. By using other tools you can get a report that shows
where variables get set and which routines call a particular routine. If you
double-click on a symbol in the tree, you can show/hide detail.
If you are interested in studying the logic of a particular routine, you can use the
Flow Chart tool to generate a flow chart. If you hold down the command key and
clicking on a block of the flow chart then Aranda will display the full source code
statement to clarify the block. Tools like this one let you explore the source code and
help you to develop a better grasp of how the program is put together.
Traditionally, documentation has been on the bottom of the list of the
programmer’s priorities. Aranda has made it much easier to document a program. As
you explore different parts of the source code, Aranda builds a collection of reports
which can be the basis for all of the documentation for the project. Aranda supplies
documentation templates called Notes that automatically extract identifier information
and organize it onto a note that has a hypertext link to the identifier.
Notes templates are provided for routines, variables, data types, constants, and
units. The Notes tool for a routine creates a form listing the routine’s name, its input
and output parameters, what uses it, and what it imports. The form is automatically
filled out. What’s more, the identifier names are active and can be queried just like in
the other Aranda charts. There is room on the Notes form to add your own remarks,
such as design diagrams, system requirements, task descriptions, comments about the
use of a routine, or even add other Aranda charts or your own PICTs.
Aranda’s greatest strength is its ability to help a programmer get familiar with
code that someone else wrote. There are several ways that this strength helps the
programmer. Often, when a programmer is given code to work on it is to make changes
or additions. Aranda helps the programmer analyze existing code in order to document
how they are to integrate new units into the code. Aranda helps new program team
members to get up to speed on a project. One of SoftSET’s beta tests sites said that it
cut the learning time for their new programmer in half.
Aranda is a great way to learn about MacApp. Aranda’s Classes tool generates a
class hierarchy for object oriented code. This may be the first CASE application that
addresses object oriented code. SoftSET’s beta test sites have used Aranda to learn
MacApp and the integration of MacApp into their project.
One feature that was left out in version 1.01 is multiple windows. Currently,
each report or chart uses the same window to display in. This makes it difficult to
view two parts at the same time. Soft-SET has assured me that multiple windows will
be included in the next update which hopefully will be in August. Since they plan to
update this feature I won’t complain about, but it is something that would make Aranda
considerably better.
Another feature of the product that was not ready for the initial release is the
ability to edit your source code within Aranda. Soft-SET is currently working on this
and it will be included in an update which should be available by the time you read this.
This editor is not meant to replace the text editor you are already using, but as people
use Aranda more and more they want to be able to do more of their work in the Aranda
environment. Also, the update will give the capability to showing you graphically (and
almost instantly) how the procedure you wrote (for example) affects the rest of the
project. Multiple windows and editing will be updated for no additional charge. They
also plan to update the printing and layouts. There needs to be more flexibility for an
organization to format their output to match company procedures and formats.
Along these same lines, the C version is in work should be in beta-test about the
time you read this. It will also handle C++. The release date for this version will be
September/October In early 1991, Aranda will support COBOL
Other than enhancements to the basic functionality of Aranda (more code analysis
tools, page layout, etc.) and some metrics tools such as McCabe and Halstead metrics,
the next major area of functionality for Aranda in 1991 will be testing tools with two
planned. (1) a profiler-branch coverage tool and (2) a test driver generator that
automatically generates a scaffolding so that the tester can exercise their code.
Aranda’s 80 page manual includes a reference section and a quick guide. A short
tutorial gives users a quick overview of all of Aranda’s functions. The tutorial doesn’t
go into much depth about how you can apply Aranda to source code documentation.
Soft-SET is working on application notes which will eventually be included in an
application users guide. The manual leads the user (step-by-step) through each
function/tool.
Aranda is now available for Apple’s MPW Pascal, and Symantec’s THINK Pascal™.
Aranda runs under both Finder and Multi finder. A 68020 or 68030 based Macintosh
with a minimum of two megabytes of RAM is required. The other requirement is
money. Aranda is designed for programming teams which need to work together and
keep their work organized and easy for each other to understand. If you are a small (1
or 2 programmers) developer then Aranda is probably too pricey.
[Aranda, I would hope, will no doubt be essential to every developer no matter
how small the project or the development group. As compilers make increasingly
smaller advances in code generation quality, they will begin competing on features and
ease of use. The use of tools, such as Aranda, will benefit everyone.-ed]
Aranda is available from:
Soft-SET Technologies, Inc.
1847 W. Broadway, #301
Vancouver, B.C. V6J 1Y6
phone:(604) 734-1622
fax: (604) 733-5294
AppleLink: SOFTSET
PRICE: $995 first unit
$750 unit 2-10
$675 unit 11-25
$495 unit 26-50
Education discounts apply to bonafide educational institutions at 66% off the
regular list price. A special student version of Aranda limited to projects less than
5000 lines of source code is available for $50 which must be purchased through the
institution.
Technical Support: free updates to Pascal version for 12 months after purchase
and 30 days of free technical support. The annual rate for technical support will be
$150 which will be provided free of charge to Aranda buyers who make their purchase
prior to August 1.