Demeter/Java Hypertext Documentation Project


Goals

The pupose of this project is to develop a tool that provides hypertext documentation of a Demeter/Java adaptive program.


Team Members

Roy Oberhauser


Documentation

README-project
Installation instructions
User Manual


Development Process

Inception Phase

The scope of the project is limited to documenting a Demeter/Java program using hyperlinks, and is time-constrained to the end of the semester.

Elaboration Phase

RISKS Description
Requirements Unclear about how users wish to have the adaptive program presented
Technological I'm not sure how much analysis and hypertext linking
is feasible from a time-to-generate standpoint
Skills I'm not experienced in using Demeter/Java or Class Dictionaries
Political Work assignments may interfere
Schedule I have a hard deadline as to when the project will end,
but am unsure how much can be accomplished given my limited
resources (time, people) and inexperience with Demeter/Java.

USE CASES Description
Browse Program Files The user will be able to browse all related program files
Click on class in Class Dictionary updates related frames The user will be able to click on a class in a Class Dictionary
and related frames will be automatically updated
Click on class in Behavior file updates related frames The user will be able to click on a class in a Behavior file
and related frames will be automatically updated
Optional Extension:
Click on keyword in sentence updates related frames
The user will be able to click on a keyword in an input file
and related frames will be automatically updated
Optional Extension:
Click on class in Java file updates related frames
The user will be able to click on a class in a Java file
and related frames will be automatically updated
Optional Extension:
User can specify the program be run
The user will be able to run the adaptive program and have
the output displayed

A prototype was developed to try to get a better understanding of the requirements and use cases.


Planning

GROWTH PLAN Description
Phase 1 A hyperlinked list of files related to the adaptive program will be
created, allowing the user to click on any filename and see the
related file
Phase 2 The class dictionary and a behavior file will be hyperlinked
via classes, allowing the user to click on any class and see
the corresponding class in the other file
Phase 3 Classes within Java files will hyperlinked to the corresponding
classes within the Class Dictionary and Behavior files.
A class index with references to all occurences in a class will be
generated
Optional Phase 4 A keyword in a sentence will be hyperlinked to the corresponding
class
Optional Phase 5 User can run a demonstration of the program and see the output

Due to my lack of prior experience with Demeter/Java, I cannot say ahead of time how much of each phase will be ready each week.


Construction Phase

STATUS Description
Phase 1 Completed
Phase 2 Completed
Phase 3 Completed

Changes between each growth phase reflected the functionality added due to the Growth Plan. One significant change during development was the realization that it would be better to intergrate it with Demeter/Java then to make a standalone tool since so much code was being duplicated.


Transition Phase

Optimized, fixed bugs, more extensive testing.

Testing: For an extreme test, ran a self-document test on the program itself (demjava is fairly large). On the other extreme, I ran a single class with no beh file test and no visitors. Then I ran a medium test using the visitor-by-hand program.