| Sponsor |
Kishore Ramachandran rama@cc 217 CCB |
| Area | Software Methodology |
Problem
Large software projects tend to be multi-person multi-year endeavors.
It is imperative that the code base be constructed with strong emphasis
on software engineering. In particular, the key ingredients of a
well-constructed code base are: modularity, composability of the
functional components of the code base, and a customizable development
environment for users who want to use it for further enhancements.
In addition, the code itself should follow intuitive naming convention
for the function prototypes (often referred to as "application program
interface" - API) exported to the applications, and good documentation.
Your task for this project is to evaluate the Beehive project code base according to the above criteria. You should first understand the API provided by Beehive for application programming on a cluster. You should then understand the organization of the project code base and the location of the various modules that implement the API functions. You should then critique the organization of the project code base according to the criteria mentioned above. You should then develop a source tree reorganizing the code base to be in line with the above criteria. You will use "cvs" to organize the project repository.
Background:
http://www.cc.gatech.edu/computing/Architecture/Beehive/
(for a description of Beehive; note, you do not have to understand
all of Beehive, just the semantics of the API calls it exports not
how it is implemented)
cvs man page on Unix
See Nissim Harel (nissim@cc) for a pointer to the Beehive
project code directory
Deliverables
A short critique (not more than 2 pages) on the deficiency of
the Beehive code base per the software engineering principles.
A pointer to a cvs repository for the re-organized Beehive code base.
Evaluation
Based on the completeness of the report, and the quality of the
reorganized code base.