SE2 (ECE452/SE464/CS446/CS646): Software Design and Architecture Fall 2008

Prof Ric Holt, Department of Computer Science, Waterloo University

Assignment 0: Project Proposal


There is a major software implementation project in this course, organized around the following assignments:

  • Asgn 0: Proposal. Propose a team and software implementation project.
  • Asgn 1: Architecture.. Create a corresponding software architecture.
  • Asgn 2: Detailed design. Create a detailed design.
  • Asgn 3: Implementation. Implement the design.
  • Asgn 4: Presentation. Present and demonstrate the implemented system.

The following constraints are imposed by the management:

  •  Documentation.  All documentation (including the solution to each assignment) is to be web-readable, e.g., in HTML, PDF, or other form conveniently readable from the web. At the same time, your report must be printable, and you are to turn in a hard copy of your reports for marking.
  • Team size. You are to work in teams, ideally with 4 people per team.


In this assignment (Assignment 0) you are to propose an implementation project. 

This proposal must be approved by the Teaching Assistant.

You may (or may not) choose to implement the VOIP project.  See documentation for that project: VOIP Project Information, Overview of VOIP Project and VOIP hardware Interface Description.  Do not expect any special help form the TA if you choose to do the VOIP project.

Your report for Assignment 0 should answer these questions:

  1. Team.  Who are the members of the team (names and student numbers)?
  2. Proposed project.  What is the purpose of the proposed project?  Who will use it?  What equipment will it run on?  On what operating system(s)?  What software will your project use?  What soft of user interface (if any) will you software have?
  3. Demo.  What will you demonstrate (and present) for Assignment 4?
  4. Code size.  How much code (measured in Lines of Code) do you expect your project will produce?
  5. Languages and tools. The project will be written in what language(s)?  What software tools will you use in your project?
  6. Version control.  How will you handle version control?
  7. Related projects.  What is the relationship of this project to any projects you have already done or which you expect to do?
  8. Risk.  What will be the most risky and most difficult parts of carrying out your project?
  9. (New) Architecture.  How/why does your proposed system has an interesting, non-trivial architecture.

Limit your report for Assignment 0 to at most 3 pages.


Last update 8 Sept 2008   RCH