Suggested Project Proposals: CS 746, Winter 2003 Software Architecture. Prof. Ric Holt, DC 2508,, Comp. Sci., U. Waterloo

The following are some suggested topic proposals for the CS746 course project.

New Tools

Description: build new ones or use existing and integrate into SWAGKit.
Requirements: before implementing anything new, study existing tools that accomplish
similar tasks, and identify the weaknesses that your tool will overcome. 
Must validate usefulness of tool by using it in the study of a system.

	1.  Use/Implement an extraction tool that provides dynamic views.
	2.  Use/Implement an extraction tool that provides views of languages other than
    	    C/C++ (e.g. Java, C#, etc).
	3.  Use/Implement a tool that provides an method of analysis other than visualization.
 	4.  Use/Implement a tool that does automatic layout or clustering.

New Landscapes

Description: produce a landscape of a large piece of software.
Requirements: landscape can't have been done in previous versions of CS746 or CS846.

	1. Extract the architecture of an interesting piece of C/C++ code
	2. Compose a reference archtitecture for a specific domain
	3. Study the dynamic view of a large piece of software
	4. Extract the architecture of an interesting piece of code not written in C/C++

Architectural Repair

Description: We've studied the architecture of many systems, and we saw how 
different the concrete architecure was from
their conceptual architecture.  Take one of these systems, identify why they differ, and repair
both the conceptual and concrete architectures.  Identify possible automated tool support (and
possibly implement) for this process.
Requirements: Any changes to the source code must still be compilable.
	Example systems: Linux, Mozilla, Nautilus, PostgreSQL, Vi, mySQL, Emacs, etc.