Assignment 2: SE2-Software Design & Architecture
(CS446/CS646/ECE452) Spring 2011

Main|Schedule|Term Project

Assignment 2: DRAFT (Due on July 6th, 2011)

Marking Scheme:

TOTAL = 10 (marks)
Design details: (5)
  problem decomposition into modules/sub-modules
  module specification & details
  clarity of design
  see detail design section for additional information.	

Use case realizations (1)

System External interfaces/APIs	(2)

Test plan (1)

Format: (1)
  organization, general formatting, quality of written report, value added by diagrams & tables, references	

Goal:

You are to produce a report that documents the Detailed Design of the software that you propose to develop. Your target audience is to be a junior programmer who is to implement your design as well as a manager or developer who is somewhat but not intimately familiar with your project. A junior programmer should be able to correctly implement any package or module given your Detailed Design.

Your report giving the Detailed Design is to be a companion document to go with your report on the Architecture. Ideally, you will repeat little that was already given in your Architecture report. At the same time, your Detailed Design report should, as much as reasonable, be a standalone document that can be read without the Architecture report.

Report:

You report should be in PDF format and should include the following:

Cover matter

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.

Detailed Design:

External Interfaces: Give details of information transmitted to/from the system, such as the Graphical User Interfaces, files, data bases, messages or networks. This should include menu design (if appropriate) and a clear specification of any details by which modules in the system transmit information to/from the external interfaces. If appropriate, give language-level interfaces to specify these methods. You do not need to include a discussion of feasibility studies.

Use Cases Realizations: Give a small number of essential Use Cases that illustrate the use of the your system. Show or explain how each Use Case activates or uses the various major parts of your proposed architecture.

Data Dictionary: Include a glossary that briefly defines the key terms used in your architecture, giving when appropriate, the "type" (such as a class, module, algorithm, subsystem, etc.) of the item being explained.

Naming Conventions: List any naming conventions used in your architecture. Explain any abbreviations that you use.

Test Plan: Provides details on how unit and integration testing is performed.

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.

Constraints


Last updated on: Jun 26th, 2011 by Atif Khan.