Software Development Plan
Version 1.0
December 09, 2004
- Overview
Team Evolution has been contracted to create a set of controls that will enhance the control for the School of Engineering robot Taz. The project has been named the Robotics Orientation and Mapping Project or R.O.M.P. Our clients have deemed it necessary to add controls to the current user interface that will allow users to zoom, pan, and tilt the front-mounted camera on the robot. In addition they have requested that a mapping feature be added so that users will know the location and orientation of the robot in the engineering building.
Our clients for this project are Dr. Jerry Weinberg, Associate Professor for the Computer Science Department at SIUE, and Andrew Lamonica, Instructional Support Specialist for the Computer Science Department. At their request, we will be developing software that will be integrated into the current system. We must have a software design, complete with prototype by the conclusion of the fall semester 2004, with final delivery scheduled for the conclusion of the Spring Semester 2005.
- High-Level Functionality
The software that we will be developing will consist of a JAVA applet that will be integrated into the Applet portion of the current system. Our software will introduce controls that allow users to tilt, zoom, and pan the front-mounted camera. Their will also be a map display added that will show the robot's position and orientation in the building.
The zoom control will give users the ability to zoom the camera in and out as they navigate through the engineering building. This feature will enhance the overall experience for users giving them added sight distance as they control the robot.
The panning feature that will be added allows users to turn the camera left or right. The purpose of this feature is to give users a better view of the robot's surroundings, as the current camera only allows a straight-ahead view.
The tilt feature allows the camera to tilt up and down up to a specific angle. This feature adds more visibility for the user, and in combination with the zoom, and panning features should allow the user to be able to visualize the robot's surrounding environment in a more complete, and human-like manner than at present.
The mapping feature is an essential addition to the user interface. It allows users to see their location and orientation in the building. This is very important because the users of the system will be school aged children, and these children will not have a familiarity with the building. The mapping feature will allow them to navigate more easily throughout the building.
- Project Staffing
Our design team is composed of five members. The roles that are required for our project are; team leader, two lead programmers, two lead designers, webmaster, documentation specialist and lead tester. The team will double as lead programmer for our camera control subsystem. Our lead designer for the camera control subsystem will also be responsible for maintaining the website. The lead tester will also be in charge of producing and maintaining documentation.
As our project is divided into two subsystems mapping, and camera controls, we have lead programmers and lead designers for each. The lead Designers will be responsible for the design of their respective subsystem, with input from the entire team. Our lead programmers will be responsible for writing the code for the subsystem to which they are assigned
- Software Process
The lifecycle model that we will be following is called Evolutionary delivery. In this lifecycle a version of the product is developed, shown to the customer, and refined based on customer feedback. The model for this lifecycle is shown in Figure 1 below.
Figure 1 The Evolutionary-Delivery model.
In our project the design of architecture and system core will consist of designing and coding the mapping and camera controls. Once we have the basis for these subsystems we will enter into the cycle. What we will be refining in the cycle will be the interfaces for the subsystems. We will deliver interfaces for each subsystem to the client and refine them based on their feedback. We will continue this until the client is satisfied with the interface.
- Software Tools
The primary software tool we will be using to develop our system is the Java editor eclipse. This software was chosen because it is open source and also easy to learn and use. We will develop our prototype and final product using this tool.
- Software Engineering Methods
Our team is required to engineer software that will integrate seamlessly with the current system. The camera controls that we create must be easily understandable since our users will primarily be children. Because of this, we will be doing usability testing with children in order to implement a user interface that is easy to user and understand.
Since the current system uses an applet written in Java, our design will be implemented with Java also. Our design consists of two subsystems one for the camera controls, and another for the map. Our design is modular so that the subsystems can be developed independent of each other. When the modules are completed, they will be tested individually and then integrated and tested together. Once the modules are successfully integrated together we will integrate them with the current system, and test.
We will keep documents detailing project requirements, schedule, and design, in addition to a signed contract between the clients and ourselves. To ensure the quality of our project we will have regular code and document reviews.
- Schedule and Effort
Our project requires a good amount of effort by our team for success. Given the learning curve involved with the Java language, we will be forced not only to develop the software, but learn the language we will be developing it with. These tasks must be done concurrently since we have a deadline to meet. Figures 2, 3 and Figure 4 show our project schedule for the spring 2005 semester.
Figure 2 Project Schedule Part 1.
Figure 3 Project Schedule Part 2
Figure 4 Project Schedule Part 3
Some of our tasks will overlap and run concurrently.
Project Risks
A big risk is the fact that we are all inexperienced in programming in Java. Since this is the language that we will primarily be using we must learn how to use it as we develop our project.
One of the risks we face in our project is working with the streaming video. We must research different methods of streaming video since we are not familiar with this.
Another risk is our software being incompatible with Aria, software that is part of the current system. Aria is software used in the current system that communicates commands to the robot. We must ensure that our software works with Aria since we will need to it to get our commands to the robot.
Hardware Support
All of the hardware necessary for our project is already in place. The robot is already in use by the School of Engineering . The Applet portion of the current system where our code will be integrated runs on a client machine. All that is necessary for the user to use our software is a computer with internet access.
Software Support
There are several software tools that we will be using for support of our project. The following is a list of the tools that we will be utilizing.
- MS Word Used for creating and maintaining documentation.
- MS Project Used for creating the Gantt chart representing our schedule
- MS Power Point Used for creating presentations
- Macromedia Dreamweaver MX 2004 Used to create web page
Personnel Support
For successful completion of our project we will need the support of other groups. These groups will be available to aid our team as necessary. They Are:
- Upper Management Upper management will be available to provide guidance to our team as needed.
- Andrew Lamonica As one of our clients Mr. Lamonica will be available to answer questions and provide assistance to us, as he aided in the design and maintenance of the current system
About Us |Contact Us | ©2004 Team Evolution