As has been discussed in class, you have substantial flexibility in choosing the specific form for the content of your deliverables. Below is a list of items that should be included.
Understanding and Plan (First Phase)
Placing this subject in the title was a way to tell you that one of your major tasks for the current period of time is developing an understanding of the various technologies and tasks concerned wiht your project. This includes the tools and techniques that you will use in accomplishing your task as well as the technologies that you will be extending/enhancing/changing.
In this deliverable you should reflect your newly gained by writing an intrduction to your project that highlights the important points. It should also include
* Sales Brochure - To describe your product to any outside audience.
*Description of activities done in support of understanding - like interviews with the customer, for example.
Hint: One of the best ways to gain an understanding, or re-engineering of a piece of software is to interview the original developer.
You could use a tool like Microsoft Project to help you with this task.
A. Scope and Purpose of Document (overview)
B. Project Objectives
2. Major Functions
3. Performance Issues
4. Management and Technical Constraints
II Project Estimates
A. Historical Data used for the Estimates
B. Estimation Techniques
III. Project Risks
A. Risk Analysis
2. Risk Estimation
B. Risk Management
1. Risk Aversion Options
2. Risk Monitoring Procedures
A. Project Work Breakdown Structure
B. Task Network
C. Time-Line Chart
D. Resource Table
V. Project Resources
B. Hardware and Software
C. Special Resources
VI. Staff Organisation
A. Team Structure
B. Management Reporting
C. Technology Specification
VII. Tracking and Control Mechanisms
As seen above, apart from specifying the team structure (manager, secretary etc.), write the technology specification, i.e. have for each technology that you described in your understanding section, one person who is going to be the team expert in that technology.Similar to how the team organisation provides an internal or external contact point for resolving issues with respect to yoru project, the technology chart provides an internal or external contact point for who is the point man for each technology.
These are the deliverables for the first phase.
Requirements & Documentation ( Second Phase)
This of course , is the full description of what you are going to do. You've done these before, in ICS 52 and ICS 121, so you have plenty of "model documents" to draw from, to help you determine how to structure this statement. Keep in mind that key objectives of a requirements document are
(1) Completeness -- everything is described
(2) Understandability -- the "customer" can read it and be convinced that all his objectives and needs are adequately and accurately described.
(3) Utility -- the information in the document can be used effectively to help in the design phase (eg. an OO requirements analysis can aid in development of an OO design)
(4) No Ambiguity -- every reader will come away with some understanding.
(5) Consistency -- No contradictions
Use diagrams of course , to help give appropriate overviews and understanding. Note that pictures may well be an essential element of the complete description of any graphical inetrface. You could use story board techniques to present usage scenarios.
This section is reserved for documentation you 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 porject, you discovered items that were not documented, but which were important, then you should include that here.
Aditionally you should list here the major sources of information that you will be using during the remainder of the project.
Expand your introduction to discuss your specific approaches to the design of the system.
This will basically be the same as in your previous document. Make sure you describe what steps or actions you took to understand each technology or software. If you make changes to this section, add text describing why the change was necessary, and why it more accurately reflects your new understanding.
2. Project Plan
This will be an iterative expansion of your previous section.Expand your project plan to represent how you have accomplished the work so far. Expand your task network or work breakdown structure to the level of detail needed to complete this task. Based on the work you have done, revise your estimates on how much your team can accomplish and deliver. 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.
This will basically be the same as in your previous document. If any requirements are changed, added or deleted, make this explicit. Describe why the requirement was changed/added/deleted and by whom ( customer, developer, etc. ). Again make sure your requirements meet the objectives of completeness, understandbility, utility, no ambiguity, consistency.
4. Architecture/Module Specifications
A. System Objectives
B. Hardware, Software, and Human Interfaces
C. Major Software Functions
D. Major Design Constraints/Limitations
II. Architecture Overview
A. System Architecture
B. Component Narrative -- what each subsystem means
A. List of Objects within your system
B. For each module/object, provide a Class Specification
2. Definition - what it is/does
3. Narrative/Comment, How it works.
4. What are he object's APIs?
5. Data - What state does it keep, what variables? Who has the access
6. How does it fit into the inheritance/with/uses heirarchy?
7. Constraints - what constraints are there for this object/module?
8. Cardinality - How many will there be?
C. Other useful diagrams : Uses, Composed-of, API's Class-Category Diagrams,
Design Class diagrams, or other useful diagrams.
D. Design Object Scenario. Pick one object/ module and show the complete implementation detail of a key mechanism.
IV. File Structure and Global Data - how will your objects / modules be kept, sub-directories, Makefiles , etc.
V.Requirements Cross Reference - what objects/modules satisfy what requirements? Make a table, make a table, make it complete and consistent.
VI.Testing Plan - How and when will you test it?
VII. Demonstration Plan - How and what will you demonstrate?
I. List the documents you have developed during this phase of the project.
II. Reference Documents
List here the major sources of information that you will be using during the remainder of the project.
Team /Peer Appraisals
The following team/peer appraisals will be used in part to determine appropriate project grades for each team member. Each team member must fill out a team/peer appraisal packet. These packets are dure on the final day of your presentation. All students must email this completed form to both firstname.lastname@example.org and email@example.com to receive a grade for the class.
Please divide 100 points between your teammates according to their level of participation in your team's project. Do not assign any points to yourself -- just to your team members. If you feel all members have contributed equally, then assign each team member 33.3 points ( assuming there are four members). If on the other hand, if you feel that one member did far more work than all others and one member was not helpful, you might give the more active member 45 points, the less active member 20 points , and the other member 35 points. Please try to be fair.
Also comment briefly on each team member's performance. Your evaluation should focus on standard evaluation criteria, such as technical competence, effort, productivity, creativity, quality, dependability, communication, initiative, decision making, and leadership.
Please assign a number between 1-5, 1 being worst, 5 being best for each teammate, for each attribute.
competence : possesses or seeks required knowledge
Effort : tries to accomplish assigned tasks
Productivity : level of work generated
Creativity : conceptualised usful, innovativce approaches
Quality : demonstrates accuracy and thoroughness
Dependability : follows through on responsibilities
Communication : listens, expresses ideas/concepts
Initiative : seeks out new assignments
Decision Making : sets objectives, evaluates alternatives
Leadership : fosters good teamwork, solves team problems
Your Name :
1. Team Member's Name :
2. Team Member's Name :
3. Team Member's Name :
You are also welcome to provide comments about your own performance.