CS446 [CS646] Software Design and Architecture Fall 1997

Prof Ric Holt, Department of Computer Science, Waterloo University

Assignment 3: Implementation for SX4 System


This assignment is a follow-on from Assignment 1, in which the goal was to design a Software Architecture for the OAM layer of the SX4 telephone switching 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 (web-readable) report describing this work. Later, you are to run a demo 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. The readers will include 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, linked, installed and run.

Demonstration of System: Explain how your system will be demo'd. The demo should be 15-30 minutes, showing the system in action, with its salient features shown working.

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 Structure: Your code and associated documentation should be stored in a directory structure that is very easy to browse. Each directory must contain a README file that clear tells a programmer or manager the contents and purpose of the directory. Describe the organization of your directory structure.

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, which should be appendices to the report.

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


The next assignment, number 4, is to extract the concrete architecture of your program. Each implemented module is to include as comments its specification (given in the Detailed Design report). Write your software such that it is a mechanical process (or nearly so) to extract these specifications from your programs.