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
User Interface Prototype
User Interface Development Process
User Interface Prototype Document Format
User Interface Prototype Quality Assurance criteria
User Manual
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.
"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. In some cases, 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.
Functional Prototype
A functional prototype is a working version of the software that exhibits
all major functional requirements including the GUI. It does not have to
meet the non-functional requirements: reliability, maintainability, etc.
So the code doesn't have to meet the coding standard. There doesn't have
to be any design - all the code could be in one monolithic class.
It doesn't have to handle exceptional conditions. Some minor requirements
may be stubbed out. The goal is to produce working software that can
be demonstrated to the customer (but that you wouldn't want the customer
to actually use because it's too fragile).
High Level Design
High Level Design document format
Design Quality Assurance Checklist
Design and GUI tools
Detailed Design
Detailed Design (a.k.a. "Method Designs") document format
Detailed Design Quality Assurance Checklist
Implementation
CPE 308 Standards
Implementation Resources
Implementation Tools
Personal Software Process (PSP)
Forms and Procedures
Java Training
Java Resources
IDE's
Help and Install Tools
- Help Expert
WYSIWYG documentation tool for JavaHelp, PDF and HTML. Create platform
independent documentation the easy way.
- JavaHelp
(tm) is a platform-independent, extensible help system that enables
developers to write online help for applications.
- ZeroG Home of InstallAnywhere
Software Testing (CPE 309)
CPE 309 Procedures
Testing Resources
Test Tools
Automated Swing GUI testing with Dr. Dalbey's
Swing Robot
Abbot:
automated GUI testing
Thin GUI testing strategy
Emma coverage tester. (Here's a Emma walkthrough).
Open Source Testing Tools
Test Resource Center (lots of test tools!)
Windows Application AutoMate playback tool
WinDiff (Microsoft Visual Studio Tool) is a file
comparator for windows that is useful for comparing test case output
against the test oracle.
CPE 308 Home