|Column Tag:||Kelly's Corner
Aranda on the CASE
By Dave Kelly, MacTutor Editorial Board
The Ideal Programming Environment
The ideal programming environment doesnt exist. That is, as hard as they try, programmers are not perfect. Im not talking about what compiler is used, or even which language. Im 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 Joes 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 dont 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 elses (or even your own source code) and it isnt 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 doesnt generate any code and it doesnt 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 programmers 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 routines name, its input and output parameters, what uses it, and what it imports. The form is automatically filled out. Whats 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.
Arandas 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 SoftSETs 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. Arandas Classes tool generates a class hierarchy for object oriented code. This may be the first CASE application that addresses object oriented code. SoftSETs 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 wont 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.
Arandas 80 page manual includes a reference section and a quick guide. A short tutorial gives users a quick overview of all of Arandas functions. The tutorial doesnt 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 Apples MPW Pascal, and Symantecs THINK Pascal. Aranda runs under both Finder and Multifinder. 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
fax: (604) 733-5294
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.