Applying Software Engineering Principles to Large Projects


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.


updated by tucker, 9/7/97, 5:45pm.