Informatics 117: Project in Software System Design

Winter Quarter 2013


Due Date

March 8, 2013 24:00 Pacific Time


Implement your system according to its design and requirements. This implementation will be handed in in two parts. This assignment corresponds to the initial coding phase, unit testing, and debugging. The next assignment corresponds to final integration, testing, debugging, and enhancements.  In conjunction with coding each unit, your team must develop unit test plans covering each of the implemented units.

For this assignment, you must turn in both a descriptive document and code listings as described below. The source code should be documented with sufficient, informative comments. The unit test plans and test execution histories should functionally test each unit in the implementation. You should organize the unit test plans and test history documentation in much the same way as the units themselves are organized in the implementation. You do NOT need to print out the results of all testing activity, but should show enough results of executing your unit test plans to convince us that your units are ready for integration.

Specify the correspondence between your software design and the implementation. Show this correspondence any way you feel is appropriate (e.g., make notations throughout your document or in your minutes), but by all means include some discussion in the overview section. Implementing the software will undoubtedly reveal inadequacies in previous documents. Please note these problems and what was done to solve them.

Don't forget to include your meeting minutes and performance appraisals with your document; refer to the syllabus for the complete check-list of what has to be turned in.

Deliverable Objectives/Quality

Recall that key objectives of the implementation are to: In addition, keep in mind that an implementation document should satisfy the following qualities:

Document Contents

1. Introduction (Update)

Expand your introduction to discuss your specific approaches to the implementation of the system and the organization of this document. This description is essentially just an updated version of the introduction you included in your previous deliverable. This description should guide the reader.

2. Understanding (Update)

If needed, expand the understanding section of your previous document. Make sure to add descriptions of what additional steps or actions you took to understand each technology or software during this phase. If you make changes to this section, add text describing why the change was necessary, and why it more accurately reflects your new understanding. This section need not be different if your understanding hasn't changed.

3. Project Plan (Update)

This will be an iterative expansion of your previous submission. Expand your project plan to represent how you have accomplished the work so far. Reassess the project risks. Expand your task network or work breakdown structure to include the effort expended to complete this task. Based on the work you have done, revise your estimates on how much your team can accomplish and deliver. Update your time estimates for the remaining work.

If you make changes, add text describing why the change was necessary or why it will improve the ability of your team to accomplish the work you have proposed.

5. Implementation

6. Unit Test Plan/Test History

Includes unit test plans capable of demonstrating that each unit meets the design and requirements traceable to that unit. The unit test plans should be based on functional test heuristics based on the functional description of the unit (black box).

Show selected results of your testing activity, enough to raise our confidence in your software and to show that it is ready for integration and final testing. In particular, you should show a representative selection of test results for each unit test plan. The test results should show the test case executed, whether any failures were detected, what faults were debugged, and (hopefully) that it eventually passed.

7. Demonstration Plan

How and what will you demonstrate?

8. Tracking and Control Mechanisms (Update)

8.1 Configuration Management: how are your modules/objects maintained?

8.2 Design Cross Reference: what files contain what modules/objects from your design?

9. Modifications to Prior Documents (Update)

If any modules/objects or interactions are changed, added or deleted, make this explicit. Highlight why the design was changed/added/deleted and by whom (customer, developer, etc.). If your design has not changed, then so state.
If any requirements are changed, added or deleted, make this explicit. Highlight why the requirement was changed/added/deleted and by whom (customer, developer, etc.). If your requirements have not changed, then so state.

10. Glossary (Update)

Defines any terms used in the specifications above.

11. Documentation (Update)

This section is reserved for any additional documentation you may have developed during this phase of the project. Specifically, if during the course of developing the your understanding of the various technologies involved in the project, you discovered items that were not documented, but which were important, then you should include that here.

Implementation Presentations

Week 9 and/or Week 10. To be discussed in class.

Each team should prepare a 10 minute presentation. (Note: this presentation is distinct from your final demonstration.) Your presentation should include the following: