CS 475: Senior Project

Software Planning Document

>> Introduction


The software being developed, referred to as “Mocoa”, is being developed primarily as an accessibility tool for computing. Mocoa will work in a very similar manner as a mouse by allowing control of software through use of hand motions. The original design will be implemented to work within select games, such as: “Pong” to show Y-coordinate control, “Archanoid” to show X-coordinate Control, and “Snake” to show X- and Y- coordinate hot-spot controls.

This document lays down estimations of cost and time for the Senior Project. We will lay out an outline of the functionality of the software to help explain the time and cost estimations. We will then layout the potential risks with the project, including potential hardware constraints. We will then attempt to break the software into a schedule for the development process. We will end the document with Staff Organization and Tracking mechanisms.

>> Project Estimates


Cost

This project will require little to no cost. All of the libraries and frameworks being used are Open Source Projects released under one of the GPL (or in some cases LGPL). This means that these libraries can be used for no cost in an academic and/or noncommercial setting. The development environment falls under this category as well. We will be developing this for the Linux Operating System using the GNU GCC compiler in the Eclipse CDT IDE with QT plugins. All of these products cost no money to the project.

The little bit of cost to the project lies in potentially purchasing materials for the project. The first purchase will be the Camera that will be used in the development process. As development continues, purchasing books on each of the frameworks may become necessary for a better understanding of the development that is taking place (including algorithms used and API documentation). The table below shows the cost of these possibilities.

Item of Expense Cost Estimate
Creative Live! Notebook Pro $40
C++ GUI Programming using QT4 $70
Learning OpenCV $50
Using OpenMP $40

To estimate this cost, we have simply done some research on the cost of the items. The cost of the Webcam is lower because it could be purchased on sale. We can see then that the overall cost of this project (taking into consideration Books to help learn the libraries more quickly) is approxiamently $200 overall

Time

Despite the fact that very little of the application will need to be built from scratch, it will still take some time to learn the APIs of each of the frameworks being used in Mocoa. For this reason I have to dedicate most of an entire weekend on the development of each individual class in Mocoa. The Primary classes in Mocoa are:

System Architecture of Mocoa

System Architecture of Mocoa

The three primary classes [MainWindow, camWidget, and ObjectDetector] will EACH be developed over a period of a weekend. Since the developer will be fighting with learning the QT API as well as the OpenCV API, camWidget and Object will be estimated at 10-12 hours each. Since MainWindow is the control center of Mocoa, MainWindow will be a much tougher aspect of the application to develop (as it will require a much better understanding of the QT API). Because of this MainWindow will probably take nearly twice as long as the other 2 classes [20-24 hours]. The three games will also be somewhat challenging, but probably not nearly as challenging as the other two. “Pong” and “Archanoid” use the same type of aspects in the games and can most likely be developed simultaneously. For both of these, a single weekend working 10-12 hours will probably be enough to develop the primary classes for these games. “Snake” is different and will probably take another 10-12 hours. Connecting the games to the Motion Controls will take some mathematics that will need to be sat down and written. This portion of the software can likely be written in a full work day [8 hours].

Overall, the estimated time is approxiamently 75 hours of continuous work [with a padding of 7-8 hours]. However, if we include time to compensate for issue that may arise during the development process, the overall development time in hours will probably exceed 120+ hours of continuous development time.

>> Risk Management


There are minimal risks in the development of Mocoa. The primary risk in the development of Mocoa is lack of necessary processing power. Since my primary development environment is a single core Intel Pentium 4M 2.0GHz laptop, there is a high risk [> 80%] that the needed processing power will be much higher than the Laptop will be able to handle. If however, this becomes an issue, my desktop environment will be suitable for the development of this application. The desktop runs an Intel Core2 Quad Core 2.66GHz processor which can be utilized for Multithreading Mocoa to allow better usage of the CPU.

>> Project Schedule


Gantt Chart for Senior Project

Senior Project Gantt Chart of Schedule

Milestone Name Duration Start Date End Date Phase
Propsal 7 days 2009-01-21 2009-01-27 1
Planning 3 days 2009-01-28 2009-01-30 2
Requirements 3 days 2009-01-28 2009-01-30 2
Specifications 3 days 2009-01-28 2009-01-30 2
Build WebCam GUI 7 days 2009-01-31 2009-02-06 3
Build Vector Eval. Engine 14 days 2009-02-07 2009-02-20 3
Build Controllers 2 days 2009-02-21 2009-02-21 3
M1 Admitted Students Day Presentation - 2009-02-22 2009-02-22 3
Testing and Documentation 5 days 2009-02-23 2009-02-27 3
Bug Fixes & Retesting 22 days 2009-02-28 2009-03-21 3
Thesis Paper 52 days 2009-02-23 2009-04-15 4
M2 Paper submission to CGAMES 09 - 2009-04-16 2009-04-16 4
Presentation materials 37 days 2009-04-01 2009-05-07 5
M3 Final Presentation - 2009-05-08 2009-05-08 5


>> Staff Organization and Project Tracking


Kristopher Reese will be the primary developer and designer of this application. Dr. Salem and Dr. Dimitiglou will be the advisors to the project.

Quality Assurance and Control will be very limited in this project, as it is a Proof-of-Concept project. However, ensuring that a User’s experience with the application is good will be essential to selling the ideas of this becoming an accessibility tool in the future. Because of this, Quality Assurance will primarily be done during the testing and fixes phase of the development. It will be essential for the project’s success to get feedback from multiple users of differing computing skills. Many Tests with multiple users will be conducted, and feedback received on what they believe needs to be worked on. During the testing phase of the project, a sort of “Agile” development will be in place.