Software Design and Architecture
(printed copy due from each team at the start
of class on October 26th)
This is the second of two
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
- Submissions must be individual efforts for the first
assignment and be group efforts
for the remaining assignments.
- Submissions must be
(The instructor strongly prefers that you use Microsoft Word to prepare
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
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
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
Write clearly, and organize your report so it is easy to find things.