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

Prof Ric Holt, Department of Computer Science, Waterloo University

Assignment 3: Implementation of Voip System


This assignment is a follow-on from Assignment 1, in which the goal was to design a Software Architecture for the information processing layer of the Voip system, and Assignment 2, in which the goal was to produce a corresponding Detailed Design.


The following constraints, previously given in assignment 1, still hold.

For this version of the course, the following constraints are imposed by the management:


You are to do the implementation and functional testing for your system, based on your architecture and detailed design. You are to produce a report describing this work. (Later, in Assignment 4, you will make a presentation of your working program for the management.) Your report should be useful for a number of purposes: help in reading the source programs, help in maintaining the programs to fix problems or add new features, help in clarifying the relations between the Detailed Design and the implementation, etc. Your report should be targetted to be read by programmers and managers.


Your report should include the following:

Title: About 3 to 6 words making clear what your report is about.

Authors: List of authors, their addresses, date, etc.

Abstract: About 2/3 of a page overviewing the key points in your report, targeted to a programmer, developer or manager.

Introduction and Overview: About 1 to 3 pages summarizing the purpose of report, its organization, and its salient conclusions. A person should be able to read just the abstract or just the introduction and have a good idea what is in the rest of your report.

Revisions of Detailed Design: How did the implementation vary from the detailed design, and how was the detailed design updated? Explain any changes in architecture as well.

Status of Project:

Build and Installation Guide: Explain how your system is compiled, installed, deployed and run.

Demonstration of System: Explain how your system will be demo'd. (The demo will be part of Assignment 4.)

Test Suite:

Task/time log: Refer to your time estimates from your Report on your Software Architecture. Give a table showing predicted and actual times. (Note that you are to keep a log of time to do the implementation, on a per-person basis.) Give a discussion of your table.

Directory/File Structure: Give a short, clear description of how your code and your documentation is stored in files and directories.

Recommendations for Future Projects: Give constructive suggestions for how this project might be done differently in future versions of this course, to improve the learning experience.


Do not make your report longer than necessary. In general, shorter reports that contain appropriate information are preferred. Your report must not be longer than 10 pages (in the hard copy version); this limit does not include the source programs or test scripts.

Write clearly. Organize your report so it is easy to find things in it.