{Project Name - Sub-Project}

Functional System Design

{Draft Number}

Italicized comments within this template should be removed from the final document

INDEX

CONTACT & DISTRIBUTION
REVISION HISTORY
QUALITY CONTROL
Development Methodology
Change Control
Audit
EXECUTIVE SUMMARY
System Overview
Scope
MANAGEMENT FRAMEWORK
System Overview
Business Objectives
Scope
Assumptions
Constraints
Roles & Responsibilities
FUNCTIONAL SYSTEM DESIGN
Infrastructure
Platform
Operating System
Languages
Database
Network
Development Tools
Operational Support
Process Design
Data Model
APPENDIX A - WORK PLAN
APPENDIX B - OTHER SUPPORTING DOCUMENTS
APPENDIX C - GLOSSARY

CONTACT & DISTRIBUTION

Prepared by:

Include the name of the documents' author and an email link.

Contributors:

List contributors to this document, and the nature of their contributions.

Primary Contact:

All questions and comments about the project should be addressed to the primary contact.  It will be the responsibility of the primary contact to answer or direct the questions or comments to the appropriate parties.

Usually the Project Leader.  Include email link.

Distribution:

list mailing list, Usenet group, web address, or other method of intended distribution.

REVISION HISTORY

Date of Revision Revised By Description of Revision Affected Modules

QUALITY CONTROL

Development Methodology

For the purposes of this project, we are using a simplified Project Life Cycle, the details of which can be found at http://www.cratchit.org/dleigh/plc/plc-index.htm.

Change Control

Detail the change control plan in two contexts:
  1. The context of changes to the SPECIFICATIONS and DESIGN.  These should be discouraged severely and made as difficult as possible to encourage up-front thinking.
  2. The context of change control for documentation, source, and resources.  List how revision control will be accomplished, where the revision control is located, who has access, etc.

Audit Plan

How do we know we did a good job?  Testing and Peer Review should be addressed here.

EXECUTIVE SUMMARY

The intent of this page is to give a high level overview of the project, directed to upper management, financial backers, etc.  Should be limited to one page.  A good bit of this information will be summarized from the BP, so don't overdo it, except where changes have occurred..

System Overview

Scope

MANAGEMENT FRAMEWORK

System Overview

Narrative of what the system does or is supposed to do.  Identify processes and functions, both automated and manual,  that are being replaced or eliminated as a result of this project.

Business Objectives

  1. Describe what is to be accomplished with this project.  Usually it simply is to take advantage of the opportunity specified above (or fix the problem).
  2. If no changes from the BP, include hypertext link to the proper target in BP.HTM.

Scope

Specifically state what the boundaries of the project will be. List what's NOT included as well.  (example "effect Y2K repairs on our accounting system.  Repair of existing bugs fall outside the scope of this project.").  It is possible to piggyback new requirements onto problem solutions, but I don't recommend it.

If no changes from the BP, include hypertext link to the proper target in BP.HTM.

Assumptions

  1. Enumerated List of the circumstances that exist that will affect the outcome of this project (such as the availability of a specific personnel or resources)
  2. If no changes from the BP, include hypertext link to the proper target in BP.HTM.

Constraints

  1. List the factors that are outside of the project's control, but to which the project must conform, such as the need to conform to particular interface specifications.  This may seem like "Requirements", but it's different in that these are not functional requirements of the project itself but are externally imposed limitations
  2. If no changes from the BP, include hypertext link to the proper target in BP.HTM.

Roles and Responsibilities

  1. If no changes from the BP, include hypertext link to the proper target in BP.HTM.
  2. If you have names at this time, include them and any e-mail addressses or contact information.
  3. Show an organization chart, if appropriate, and state clearly who has responsibility for managing the project and coordinating effort.

FUNCTIONAL SYSTEM DESIGN

This section of the template is deceptively short.  It should include the entire functional specification of your system.  However, as this is highly variable, I can't tell you specifically what to do.  But the guidelines are:

Infrastructure

Include items that you aren't directly developing, but are required for your project to work as planned.  This includes, but is not limited to:

PLATFORM

Hardware platform.  This may or may not be important.

OPERATING SYSTEM

This is important no matter what.  If the development is to be platform-independent, that's an extremely important design criterion that can get overlooked if it's not spelled out.

LANGUAGES

Languages selected for the project, and for what each language was selected.

DATABASE

Was an external database engine used?  If so, what?  Why?  Is it portable, or is that not a consideration?

NETWORK

What is the topology to be used.  Is this app to be limited to a single machine? LAN? WAN? Internet-enabled?

DEVELOPMENT TOOLS

List specific development tools not otherwise listed.

OPERATIONAL SUPPORT

What else will you need to implement and support this program?  Object Brokers?

Process Design

Include Data Flow Diagrams (DFDs)

Data Model

Include Entity Relationship Diagrams (ERD)
Entity and Attribute Descriptions

APPENDIX A - WORK PLAN

I recommend linking to an external schedule.  This should be kept in revision control.

APPENDIX B  - OTHER SUPPORTING DOCUMENTS

Reference via hypertext link.

APPENDIX C  - GLOSSARY

Reference via hypertext link.