External Design Documentation

 

CS162 - Introduction to Computer Science II

 

 

DUE with Stage #4

 

 

Objectives

The external design document is a tool for evaluating how close you have come to a marketable product and to honestly examine what is left to be done. It is a tool for explaining to other Software Engineers your design, what works and what doesn’t, and what still need attention. Examine what you would do differently if you had all of the time in the world. Examine what doesn’t work and what why. Think about how you would change the design – knowing what you have learned from this process. Can you come up with some helpful suggestions for other Software Engineers attempting to solve problems similar to this?

 

The objectives also include:

 

a) Determine that the software meets the goals established by the specification. Therefore, discuss in the design document which features are supported, partially support, and not supported. Discuss what still needs to be done to meet the

original requirements.

 

b) Guide programmers responsible for maintaining and upgrading software. Therefore, discuss what outstanding bugs there are in the software. Make suggestions on how to improve the software in the future.

 

c) Assist with quality assurance and the design of test cases. Discuss what has/has not been tested.

 

d) Analyze what you would do differently, if you had all of the time in the world to change the design and implementation.

 

d) Analyze the security of the data.***Important ***

 

 

Outline

The external design documentation should include the following concepts. Items may be left out if they are not necessary and/or if they are redundant:

 

• Purpose and Scope of the Software

(Detailed Specification and Functional Requirements)

- Introduction

- Software Description (functional and operational overview)

 

• Architecture

- Major component architecture (and subcomponents...)

- General structure chart, showing the data flow

- General control flow

- Relationships and interdependencies of components

 

• Interface Requirements and Environment

- User Interface

 

• Common Internal Specification

- Files (type of files, number of files, name of files, etc.)

- Data bases (format of data)

- Modules that need to be imported

- Error formats common to all procedures

• Component Internal Design {for each module and/or function that comprises a component or subcomponent of your architecture}

- Module/Function Name

- Version and date

- Description

- Inputs/Outputs ... arguments

- Errors

- Globals that are used

- Globals that are altered

- Functions that are used

 

• Documentation Requirements

- Users Manual

- Installation Manual

 

• Performance Evaluation {list additional capabilities that need to be added to make this a viable product in each of the following areas}:

- Functionality

- Compatibility

- Extensibility

- Portability

- Reliability

- Maintainability

- Availability

 

• Engineering Log   ***important ***

- Known bugs

- Suggestions for redesign

- Security