Software Architecture Document

Home Schedule Policies Resources Design Notebooks

Notebook section:  Software technical documents
Purpose: Specify the software necessary for your product to operate.

Please review the PowerPoint presentation on software architecture before writing this document.

Your software architecture document must include the following five sections:

Introduction

Explain the role of software in your product by giving an overview of the main functions that will be provided by software.

Context Diagram

Draw a diagram showing how the hardware components of your system are connected with the major software components of your system. Include main routines, device drivers, and interrupt handlers. Please see the PowerPoint presentation on software architecture for examples.

Software Structure Overview

Describe the major control flow of your product. Explain if it uses polling, interrupts, or a combination. Be sure to include rationale for your choices. Show flow diagrams for the main control flow and each main software routine.

Main Software Routines

Describe the main software routines for your system. A main software routine is any major component that is built on top of your device drivers (each box in your context diagram that isn't a device driver). For each routine, describe:

bullet

Purpose

bullet

Inputs and Outputs

bullet

Effects (pre- and post-conditions)

bullet

Algorithm

bullet

Constraints (memory/timing/etc. limitations on this routine)

You should include diagrams to help explain the main software routines when they are useful.

Device Drivers

Device drivers will be specified in a separate Device Driver Specification document. You do not need to include information on your device drivers in the software architecture document.

 

Kevin Bolding September 22, 2009