Term Project
All students are expected to perform a term project for the class, which may be done either individually, or in a small group (larger groups have larger expectations). The project involves a significant investigation into some aspect of Software Configuration Management or content management systems. The goal of the project is to permit a more in-depth exploration of SCM systems than is possible from just the in-class disucssions.
The output from the project is a written report, appx. 7-20 pages in length (whatever length is appropriate for adequately describing the project), written in the form of a research paper.
There is a broad range of possible projects. Below is a list of some project suggestions, though you should feel free to suggest your own project idea.
- Integrate the Eclipse SDE with the DeltaV protocol (Difficult). Eclipse is an open source software development environment written in Java. DeltaV is a network protocol with capabilities for versioning, configuration management, workspaces, and logical change tracking. The goal of the project is to make it possible to use a DeltaV server, such as Catacomb, to support work in Eclipse.
- Perform containment modeling on previously unmodeled systems. At present, over 27 SCM, hypertext, and hypertext versioning systems have been modeled using containment models. The goal of this project is to model a set of additional systems (around 4-7, depending on complexity) that have not yet been modeled. These could be SCM, Web content management, VLSI CAD, digital libraries, or document management systems.
- Develop a novel way to perform merges. When multiple people work on a file at the same time, they need to merge their results at some point in the future. Merging remains one of the most complex activities in SCM, and as a result is very error prone. Improvements in visualizing merges might help. Alternately, it might be possible to inform developers about where other developers are making changes in a given file, thereby allowing developers to avoid overlapping changes. Or perhaps a sub-file locking scheme might help by eliminating overlapping changes.
- Develop a novel way to visualize change. All versioning systems provide a way to see the version history of a file. This is usually either a graph, or a tree view, and doesn't provide much insight into what changes were made for each revision. Ideally, an improved visualization would give significantly improved understanding of inter-version changes, perhaps by giving condensed views of changes, or animation of changes.
Project work will have three deliverables. You will need to decide on a project topic and project partners early in the quarter. A rough draft of your project report will be due later in the quarter, with the final report due the final week. Consult the syllabus for exact due dates.
Last modified: 9/25/2003