- Introduction
- Purpose
This document is a requirements specification for Bad Coffee by BeanTree Development. It outlines our group's vision for the project, the basic features we hope to implement, and the possible ways the project could be extended. It contains our process model, team organization, detailed vision of scheduling, management reporting and lists people involved as well as the hardware, software and system requirements. This document also includes a Rational Rose use case diagram with use case and user descriptions, and our Gantt chart.
- Project Vision
Although it's been around for a few years now, wireless Internet access is still a maturing technology. Many establishments are trying to gain some form of customer loyalty by providing free Internet access with Wi-Fi access points. Microsoft Windows and Mac OS X provide some excellent tools for easily connecting to these access points. Once connected, a user can access the Internet to check stocks, grades, e-mail, or anything else possible with an Internet connection. Given the growing popularity of this technology, it would be beneficial to have some form of system to track and rate these access points. When Bad Coffee's first release is completed, the system will allow anyone running our program on a Palm OS 5-based device to look up information such as the transmission rate, encryption keys, or past user experiences, for any registered access point. If an access point is not registered, the system will also allow a user to rate the specific access point on a number of criteria and enter some identifying information about it. The system can later be extended to include builds for Wi-Fi enabled cellular phones or laptops, access through a web browser, and the ability to leave "sticky notes" - messages targeted at another user, set to appear when he or she enters a certain access point.
back to top
- Purpose
- Project Outline
- Process model - our plan for finishing the project efficiently
- The project will follow the prototyping development model. Initial prototypes will demonstrate the ability to make a connection to the Internet, send a query to our database, and receive an XML file as a response. Subsequent prototypes will add functionality in order of priority. (see Use case, Feature list)
- Each team member will specialize in one of four areas: front-end design, documentation, back-end/database design, and user interface.
- Front-end design: This person will be responsible for the majority of the initial code involved in the front-end application.
- Documentation: This person will be responsible for the majority of the documentation writing. A reasonable first draft can be expected for most major documents.
- Back-end/Database design: This person will be responsible for the majority of the back-end database work and will also be responsible for the code needed to run the database.
- User Interface design: This person will be responsible for the layout design used on the Palm interface and the website front end (if the website front end becomes a reality).
- Schedule - our plan for finishing the project on time
- Gantt chart (HTML, Excel): Our Gantt chart outlines our rough schedule. With the exception of the major events, such as due dates, this schedule is not necessarily concrete. Given the nature of the project, some areas of development and design may take longer or shorter than initially thought. Adjustments will be made as needed.
- Meetings: Meetings with the customer will happen whenever the customer wants, when the design team has a matter of uncertainty, or when the design team wants a specific opinion from the customer. Team meetings will occur every Wednesday at 3:30 and last until the agenda for the day has been completed or assigned to different days. Team meeting agendas and minutes will be recorded and submitted to the customer weekly.
- Resources - the project will involve the following:
- Team members
- Bob Zeilstra
- Eric Knibbe
- John Van Enk
- Tom Mellema
- Other stakeholders
- Keith Vander Linden - our customer and evaluator.
- Users of Wi-Fi-enabled Palm devices.
- Owners of establishments providing Wi-Fi access.
- Companies interested in statistics culled from our data.
- Advertisers wishing to embrace a wide market.
- Hardware/Software required for development
- A workstation with J2ME development software.
- A wireless-enabled hand held device capable of running J2ME.
- A server for our back-end database and web page.
- Team members
- Risks - problems which could occur during development
- Team Miscommunication: Inadequate communication may result in some of us redoing work already done by another team member.
Response: We will have weekly meetings with a set agenda of items we must cover every week to make sure we are up to task. Items on the agenda should include:
- back-end design
- J2ME Palm application development
- documentation process
- other matters
- Customer Miscommunication: What we build may not be what the customer was expecting to see as a final product.
Response: We will design semi-functional prototypes to display our concept of the product to make sure it matches what the customer is hoping for. We will also carefully document customer meetings and inform the customer of any necessary changes to the project.
- Poor System Design: Our project can be made to work in any number of ways. We may inadvertently use a lot of bad "hacks" instead of proper code to make it work.
Response: We must be sure to explicitly document our planned system design, and bring it before other group members to make sure our work will mesh without a problem.
- Time Constraints: The entire project development time is unfortunately short. If we do not stay on top of the given tasks, there is a good chance that we will be unable to complete on time.
Response: We must parcel out work among group members in portions they can handle and effectively complete. We also must prioritize the features and parts which are most vital to the project's success.
- Lack of Equipment: Because of the type of equipment involved in the project, availability of cheap hardware could be hard to come across.
Response: Our group should be able to acquire the hardware, if only for a short time, so that we can test the system.
- Database Centralization: Since a single database drives the whole system, the loss of that database would bring the entire system down.
Response: We will find a reliable place to host and store the database, and will have backup plans in place.
- Privacy Concerns: Given the nature of the system, it is possible that people could abuse the information provided to do such things as track users, spread viruses, and many other non-desirable actions.
Response: We need to limit the type of data the system keeps track of and also inform users of what that information is. We also need to provide a way for users to use the system anonymously.
- Message Board Abuse: In the event a message board is added to our system, our message system could fall victim to comment spam or used as a covert communications system.
Response: Programs have been made available to block comment spam rather well. Covert use of the system can be avoided by making sure there are no private boards.
- Team Miscommunication: Inadequate communication may result in some of us redoing work already done by another team member.
back to top
- Process model - our plan for finishing the project efficiently
- Use Case - a map of how the system will work
- Image (click image to enlarge)

- Actor descriptions - those involved, in order of importance to the system
- User - someone with a Wi-Fi-enabled device, who will be able to:
- Detect an in-range access point
- View data for that access point
- Add a new access point to the database
- Search for access points within the database
- Update data for an existing access point (i.e. add data, ratings, message board posts etc.)
- View personal stats (i.e. number of access points seen and discovered; etc.)
- Server - our back-end database server, which will:
- Serve requests for data
- Parse incoming data and update the database
- Authenticate users
- Administrator - person responsible for our database, who will:
- Maintain the server and database
- Serve special requests
- Moderate message boards
- Access Point Moderator - any owner of an access point listed in our database, who will be able to:
- View data for their access point
- Update data for their access point
- Request moderation for their access point's message board
- Make a special request
- Researcher - anyone interested in in-depth statistics we'll collect about the system and its users, who will:
- View extended stats
- User - someone with a Wi-Fi-enabled device, who will be able to:
- UML diagram (download)
back to top
- Image (click image to enlarge)
- Feature List - features to be implemented, in order of priority
- Core features - necessary for the system to function
- View access point statistics, location info, technical data, and ratings.
- Add new, unregistered access points to online database.
- Search online access point database for existing access points.
- Main features - necessary for the system to be fairly useful
- Update access point information.
- Post comments and ratings about specific access points.
- Extra features - not necessary, but would be useful if implemented
- User-to-user message system.
- Web interface with all the same functionality as the handheld interface.
- Gather aggregate statistics and information.
back to top
- Core features - necessary for the system to function
- Non-functional Requirements
- The project must be done by Tuesday, December 13, 2005 at 5:00 PM.
- The application will be written in J2ME and run on Palm-based devices running the Palm OS version 5 or later.
- The system will rely on a relational database to keep track of wireless access points and data related to each.
- A person already familiar with computers or handheld devices should be able to use the program.
- The system will be implemented with a pen-based GUI, requiring minimal need for character entry.
back to top
- References
- "Gump Project Requirements" <http://cs.calvin.edu/curriculum/cs/262/private/hall_of_fame/gump-1998/requirements.html>,
The GUMP Group(1998). - "eGroup Requirements Specification" <http://cs.calvin.edu/curriculum/cs/262/private/hall_of_fame/egroup-2004/requirements.html#top>,
eGroup(2004). - "CS 262: Requirements Specification" <http://cs.calvin.edu/curriculum/cs/262/private/requirements.html>,
Keith Vander Linden(2005). - "Gantt Chart" <http://en.wikipedia.org/wiki/Gantt_chart>,
Wikipedia - The Free Encyclopedia(2005).
back to top
- "Gump Project Requirements" <http://cs.calvin.edu/curriculum/cs/262/private/hall_of_fame/gump-1998/requirements.html>,