Team Projects
Purpose
The purpose of the project assignment and for this course is to give you a very realistic experience in software engineering.
You will be assigned to a team. Teams will be no more than five people and assignments to the teams will be random. You
may not choose which team you will be on nor who you will work with. Your team will be given a programming assignment which
must be completed before the date of the final exam. Final grades will be determined solely on the quality of the software
engineering processes followed and products (documentation and software) produced. Except under very unusual circumstances
one final grade will be assigned to each team and everyone on the team will get that grade. Your final grade then depends,
not only on the quality of the work you do but how well you work with your team.
General Information
Because, theoretically, the organization for which a team project is being developed is a non-profit organization or is
using publicly-owned facilities, it has been decided that the software produced under this "contract" will be made freely
available to anyone (i.e., "freeware") with appropriate notices prohibiting any user of the software from selling it,
although users may embed the software in another product for which they may charge. This effectively means that no
proprietary software may be included in the product. All team members must sign a statement to the effect that they
have not incorporated any components which are not available for free.
The team is expected to develop a preliminary system structure, identify and design interfaces between system components,
incorporate existing interfaces, develop a set of processing requirements for the software and display components,
complete a top level software design and provide a convincing demonstration of a working version of the system.
The team is expected to provide accompanying documents, including an overall project plan, resource estimates, activity
schedule, software requirements specification, design specification, configuration management plan, quality assurance
plan and a testing plan. The team will provide evidence of adherence to these documents during the development process.
A computer-assisted software engineering (CASE) tool will be available from UAH to provide technical assistance for the project.
Team assignments will be made at the first class meeting. A Statement of Work for the
software project will be provided at the second
class meeting. All project requirements and characteristics should be traceable to this project description. Modifications
should be made using an Engineering Change Request Form which will be agreed upon by the team and the customer's technical
representative. An initial requirements elicitation session with the technical representative should be scheduled during
the first or second weeks of the semester.
The customer's technical representative is the CS 499 instructor who will be empowered to make decisions for the user
community. He may put the team in contact with other resource persons.
The software and all accompanying documents must be delivered by the end of the semester.