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

Prof Ric Holt, Department of Computer Science, Waterloo University

Assignments 0 (consisting of parts 0.1 and 0.2): Project Proposal


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

  • Asgn 0.1: Team & Title. Propose a team (ideally 3 people per team) and the title of your software implementation project.
  • Asgn 0.2: Project Proposal.  Propose implementation project.
  • Asgn 1: Architecture.. Create a corresponding software architecture.
  • Asgn 2: Prototype.  Implement and demonstrate key aspects of your system.
  • Asgn 3: Detailed design. Create a detailed design.
  • Asgn 4: Implementation. Implement the design.
  • Asgn 5: 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 DOC, 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.

PART 0.1

Propose a team and a title for your project.  You are to work in teams, ideally with 3 or 4 people per team

PART 0.2

In this assignment (part 0.2) you are to propose an implementation project. 

This proposal must be approved by the Teaching Assistant.

Your report for Assignment 0.2 should answer these questions:

  1. 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 sort of user interface (if any) will you software have?
  2. Demo.  What will you demonstrate (and present) for Assignment 5?
  3. Code size.  Give a rough  estimate of how much code (measured in Lines of Code) you expect your team will produce?
  4. Languages and tools. The project will be written in what language(s)?  What software tools/technology will you use in your project?
  5. Version control.  How will you handle version control?
  6. Related projects.  What is the relationship of this project to any projects you have already done or which you expect to do?
  7. Risk.  What will be the most risky and most difficult parts of carrying out your project?
  8. Architecture.  How/why does your proposed system have an interesting, non-trivial architecture.

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


Last update 1 Sept 2009   RCH