10.0
Updates:
  1. none

CSC394 / IS376 Capstone Project
Design notes

Elliott

Overview

  1. Show the states, transitions, data flow, logic, database design, distributed systems architecture, protocols, hardware, security models, and etc. for the core working modules of your system.

  2. Your documentation manager should consider now how this design will be formalized in your final project manual. It is a non-trivial task.

  3. It is assumed that design has been covered in other classes. This is just a summary/refresher overview.


Content of the design document

  1. The technical details of how your project is going to work.

  2. A COMPLETE listing of the modules specified to the "five hour" level of detail. Everything should be specified except the actual code. Give the number of hours it will take to complete the task of implementing the code should be given for each piece of the design.

  3. A diagramatic representation of the functional relationship between modules.

  4. Representation of the flow of the data between the modules.

  5. For object systems, the objects, the interfaces, and the methods exposed.

  6. A COMPLETE mapping of files, and database records, stored permanently on disk.

  7. (Older style, but often useful) A data dictionary (identification and meaning of all data that moves through your system).

  8. A listing of class members or data structures.

  9. A description of the logic for handling run-time errors that occur.

  10. A complete listing of the programming languages to be used, software packages, database systems, GUI development packages, browsers supported, smartphone software development packages and so on.

  11. A complete listing of the hardware to be used: computers, smartphones, networks, specialty devices, and so on.

  12. A statement about network protocols used, if appropriate.

  13. A statement, and/or details, about security, and privacy.

  14. A statement, and/or details, about the handling of multiple users, transactions, and requests.

  15. Clarity about design aspects that pertain to specific applications, such as, e.g., where cookies are stored, or how scripting is used.

  16. A total number of hours for the project, given as a cumulative sum of the "five hour" modules, and at each intermediate node.

  17. The name of the person responsible for writing the code next to each module.


Review of design

Here is an example of a student Level 0 document. (Citation unknown.) Level 1 documents would expand each of these top-level modules into a full page of specifications. Level 2 documnents, if needed, would expand the sub-modules. Each of the leaf-node modules will ultimately be represented as sections of code, hardware file systems, network transport lines, monitors, user input, and so on.

Use the web to retrieve information on design techiques if you do not have notes from previous classes.

The group's design manager is in a position thought by many to be the most important for any large project. An elegant design will be the engine that drives smooth functioning in all other parts of the project; a poor design, in the worst case, can guarantee failure.

The designer must at least do the following, listed here in no particular order:

The designer must address the specified problem by designing all facets of the running programs that comprise the software and hardware systems.

Answer the following questions: