CS 130 Project, Overview
(updated 11/21/2003)

The CS130 Project is intended to facilitate the learning of software development processes by having you design and implement a significant system.  More importantly, the project will lead you to learn about working in groups, sharing tasks, meeting deadlines, resolving conflicts, writing technical reports, and making presentations.  This project may prove to be the highlight of your resume after you graduate and seek employment in software development.
This document provides necessary details for the completion of your project.  It should serve as the reference source to resolve any questions.  Anything not covered by this document should be brought to the instructor's attention; this document will be updated accordingly. 

Group Organization
It is the group's responsibility to determine and maintain its structure.  That is, you are free to choose the team structure yourselves.  I will evaluate the team on how well it implements the selected structure, not on which structure you select.  However, I will expect a certain level of responsibility rotation (e.g., recording project meeting minutes for the Log Book) regardless of the team organization that you select.

Project Meetings
We will hold weekly project meets during the last portion of class on Thursdays.  The length of these meetings will depend on the agenda.  Prior to some of the meetings, someone from the group will give a presentation related to a particular deliverable or some other topic that becomes relevant to the project.  However, you should also expect to hold additional project meetings outside of class at times arranged mutually by the group. 

Log Book
The group is required to maintain and submit at various intervals a log book reporting on project meetings, topics of debate, decision processes and decisions.  Think of this log as a lab book in which you record your steps and experiments.  You will be graded on completeness and conciseness of the Log Book; you will not be graded on the specific decisions or decision processes, etc.

It is expected that over the course of the semester, everyone in the class will give a presentation on something.  Presentations typically will be 10-15 minutes in length.  The main presentations will be the Project Plan, Requirements Specification, Architecture Design, Implementation, and Integration.  Other presentations will arise as issues and problems reveal themselves as work progresses.  The goal of the presentation is to practice and demonstrate an ability to communicate technical content to a given audience; in the future, you will be making presentations to peers, managers, and customers.  You will be graded individually on your presentations based on coherence, organization, coverage and conciseness.

Project Documents
You will create a series of standard documents as you develop this project: Requirements Specification, Project Plan, Architecture Design, Implementation, and Integration and Test Plan.

Group Assessments
Team structure implementation
Log Book
Document deliverables

Individual Assessments
Peer evaluation

Project Components
Project 0:  Proposal
Project 1:  Requirements Specification
Project 2:  Project Plan
Project 3:  Design Document
Project 4:  Implementation
Project 5:  Final Integration and Acceptance Test

Acknowledgements:  The details of the project assignments are extensively borrowed from Professor Richard Taylor's website for a software engineering class he teaches at UCI.