Project Deliverables and Work Products

[SRS] [UI Prototype] [Feasibility Prototype]  [Software Design] [Implementation] [Testing]


System Requirements Specification (SRS)

SRS document format
SRS Quality Assurance CheckList
 
Essential Resources
Alternative Resources
  • Introduction to Requirements lecture
  • Use Case HTML Template
  • Practical Guide to Use Cases
  • Use Case Tips

  • Examples:
    Audio Tape Calculator
    Distributed Hangman
  • Basic Requirements Gathering Process
  • Guide to Informal Analysis
  • State Transition Diagram examples
  • Data Flow Diagram Resources
  • Using CRC cards
  • Jotto game applet and Jotto specification
  • Examples of Poor Requirements Statements (humor)
  • Guys: would you reply to this personal ad?
  • If Architects Had to Work Like Programmers (humor)
  • The curse of legacy systems (humor)
  • The Rope Swing Parable (humor)


  • User Interface Prototype

    User Interface Development Process
    User Interface Prototype Document Format
    User Interface Prototype Quality Assurance criteria
     
    Essential Resources
    Alternative Resources
  • Lecture notes: Prototypes
  • UI Design Criteria
  • Ask Tog: First Principles of UI Design
  • Jakob Nielsen's Heuristics for UI Evaluation
  • Writing good error messages
  • Honey, I Forgot the Users!
  • Cognitive Psychology Principles
  • Data Input Verification
  • Review of The Trouble with Computers
  • Paper Prototyping HOWTO video - DVD 005.437 P197P2 2003

  • Feasibility Prototype

    This is a functioning prototype which you build to demonstrate the technical feasibility of your intended product.  For this course, its purpose is to demonstrate that your team has the technical know-how to build the product.  The actual features to be demonstrated will be negotiated with the instructor.  In general, you will probably be asked to write a quick skeleton program which demonstrates the most technically challenging aspects of your intended solution.  For example, if your application is a heavy GUI application and you have no experience with Java Swing classes, your proof of concept would probably demonstrate the key Swing widgets you will need in your UI.  Another example, if your application is to be internationalized for three different countries then your proof of concept would demonstrate the use of Java Resource Bundles.

    The feasibility prototype (aka "proof of concept") is a crucial milestone.  If you can't convince upper management that you can solve all the technical problems in your intended solution, your project probably won't be funded. (You will be assigned a zero on the remaining work products and your team re-assigned to other projects).

    The actual deliverable format of the proof of concept is negotiated with the instructor. In most cases you will simply demo your program in lab.

    Read the requirements for feasibility prototype for Winter 2004.


    "Extended" Prototype

    McConnell defines "extended" prototype on page 120-121 of  Software Project Survival Guide.   Create a functioning prototype that demonstrates every functional and behavioral aspect of the intended software.  In essence, combine your feasibility prototype and your user interface prototype.  The goal is to create something to demonstrate to the customer that will appear to be a finished, fully operational system without doing any actual implementation. The emphasis is still on "quick and dirty" development.  The interaction may be completely scripted. You may use "wizard of oz" or other tricks to simulate actual implementation.

    Not every team will be required to produce an extended prototype.  This requirement will be negotiated with the instructor. 


    High Level Design

    High Level Design document format
    Design Quality Assurance Checklist
     
    Essential Resources
    Alternative Resources
  • Dr. Dalbey's Design lecture
  • Object Oriented Design: How-To
  • UML notation for Class Diagrams
  • Class Diagrams - one page summary
  • Which Software Architecture?
  • How to draw Sequence Diagrams (.pdf)
  • Practical Guide to Sequence Diagrams
  • Design Techniques in java
  • UML Quick Reference
  • Polymorphism and Design Patterns
  • Creating a hybrid design - lecture notes
  • Design by Contract
  • Critique of Inheritance
  • Design and GUI tools

    Detailed Design

    Detailed Design (a.k.a. "Method Designs") document format
    Detailed Design Quality Assurance Checklist
     
    Essential Resources
    Alternative Resources
  • Why Pseudocode?
  • Pseudocode Standard

  • How to draw Sequence Diagrams (.pdf)
  • Practical Guide to Sequence Diagrams


  • Implementation

    CPE 308 Standards
    Implementation Resources
    Implementation Tools Personal Software Process (PSP) Forms and Procedures Java Training Java Resources Ada Resources CASE tools

    IDE's

    Help and Install Tools


    Software Testing (CPE 309)

    CPE 309 Procedures
    Testing Resources
    Test Tools



    CPE 205 Home