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