CS 4970 – Capstone Design

     

*    Syllabus

*    Assignments

*    Schedule

*    Resources

*    Projects

*      Staff

*      Contests

 

3.0 Design Specification

3.1 Introduction

3.2 System Design Overview

3.3 Data requirements
        - Methodology for collection, building, storage
        - File formats, Data formats
        - I/O Requirements
        - Digital Archives, databases

3.4 Software Design
        - Class/ Object diagrams (UML, Rational Rose, Visio)
        - Block diagrams
        - Interface diagrams
        - Functional performance/ Dynamic diagrams
        (Flowcharts, state transition diagrams)
        - Data flow diagrams (Directed Acyclic Graphs)
        - ER diagrams
        - Web Layout hierarchies
        - GUI / WUI graphs (for describing interconnections)
        - Algorithm details pseudo code
        - Major difficulties encountered
        - Several alternatives evaluated and selected


3.5 Hardware Design
        - Interface requirements
        - Wiring Diagram / schematics
        - Component Description
        - Timing diagrams
        - Circuit simulations
        - VHDL layout
        - SoC Design layout
        - FPGA interfaces

3.6 Testing Methods

3.7 Scheduling Diagrams with Task Assignments

3.8 Design Implementation Costs


        A software design specification lists each function and data prototype with appropriate documentation.  The specification section defines in high-level terms and in the implementation language the items that constitute the entire design.  In the requirement analysis section you determined each datum and function to be used in your design.  Now you must convert that designed to a set of prototypes expressed in the high level language that you will use for your program.

        Programs written in an object oriented language must express each class, with its associated data and functions.  In the language of choice, write the specifications or prototypes for each class, functions and data. For any non-object oriented procedural language each function must be specified as a prototype within the organizational structure for the program.  For example C language prototypes included in the appropriate file.  This is a high-level specification of your final program.  You will also want to include initial documentation such as specific instructions for implementing a function or creating a class.  I suggest that you compile these prototypes.  This will insure that you have reduced syntactical errors.

       Discuss in detail the testing required to assure you (and the customer) that the system works as required, How will you test each function, each set of functions and finally the entire system. What testing will you do to make sure the system works. If you are doing an AI project what training sets do you need and what will be the testing data.

       The resources needed: List the timeline, the equipment or materials necessary, the cost of the project in terms of student hours as well as out of pocket expenses, list the equipment or resources that you will need to carry out the project. Indicate how you expect to have access to those resources.

        The documentation to be included should be a message to the person implementing the function from the prototype.  For example a straightforward sort (list A) may need special instructions. Such documentation will help you three months from now when you are implementing your functions.

        This document is to be generated by the team and there should be one copy for each team.  The grade will be given to the team.

Finally, you may find the following system diagrams useful:

1) Example of formal design reviews

2) The software acquisition process.