CS446/646-Fall 2007

Software Design and Architecture

Assignment 2

(printed copy due from each team at the start of class on October 26th)


Background

This is the second of two assignments that will altogether yield a detailed design and integration test plan for an IP based private branch exchange (PBX) as a consequence of a software design tender by a hypothetical communications startup called SuperTel Ltd. Your target audience is a manager or developer at SuperTel who is familiar with telephone switching and with software architecture.

To proceed with this, you will need to become familiar with the following documents.
The following constraints apply toboth assignments.
Report Format

Your report should be an expansion of your architectural design that includes the following additional information:


Abstract
: About a page that expands on an overview of the key points in your design, targeted to a programmer, developer ormanager.


Introduction and Overview
: Again, about 1 to 3 pages that give a summary of your more in depth report, its organization, and its salient conclusions. A person should be able to read the abstract and introduction and have a good idea of the contents of the remainder of your report.


Detailed Design
: You must specify a detailed design for the subsystems that comprise your architectural design. For each module in your detailed design, you must provide a clear specification for the module such that a junior programmer can implement that module. The detailed design should include a clear description of the behavior of the module and its externally visible interface. It should include a description of algorithms and data structures to be used and will give pseudo code when necessary to describe non-obvious implementation techniques.


You should include appropriate references to the earlier architectural components of the report that concern important abstractions, ADTs, data structures or algorithms that are critical to the successful implementation of your system. Use diagrams as needed for this section, which should include a "dependency diagram" (e.g., structure chart), in which boxes are modules and arrows are dependencies. (A dependency from module M to N could be due to a call from a procedure in M to one in N, or a reference from inside M toa variable in N, etc.) These diagrams can be created using any method you choose.


External Interfaces
: Give details of information transmitted to/from the system, including user interfaces, files, databases, messages or networks. This should include menu design (give example menus) and an unambiguous specification of any details by which modules in the system transmit information to/from the external interfaces.


Integration Test Plan
: Give a design for a selection of integration tests for your modules. An integration test description should include a selection of test data and one test run together with expected results.In addition, you should include an integration test priority chart and a module/integration test matrix.


Cost Estimates and Task Schedule
: Give a design for a selection of builds, unit testing and integration test tasks. A cost/duration estimates table, schedule priority chart, CPM graph and Gantt chart should follow in this section.


Data Dictionary
: Update the glossary as necessary to include any new terms you have defined.


References
: List any documents that your reader may wish to or need to read in conjunction with your report. Since the report is to be web readable, include links to references when appropriate.


Document Style and Length

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 60 pages using 11pt charater size, including all diagrams and appendices.

Write clearly, and organize your report so it is easy to find things.