SoftwarePractice.org: Home | Courseware | Wiki | Archive

T5 - Tagged Object Finder

From SoftwarePractice.org

Contents



Group Members

Duy Nguyen 10328401

Timothy Morton 10294256

Kent Nguyen 10296085

Project Introduction

A group of 3 engineers have been given the task of producing the software for a device that will scan for nearby RFID tags and display its information and location. An RFID(Radio Frequency Identification) tag is placed on items and can be detected by the device within a given range. This project will include a user interface and will include a map which will show the locations of the RFID tags in the area.

Miniature Unified Process

An outline of the processes we went through in designing this project are listed below. Most of the related materials were also included for reference.

Inception

Formed Team 5 and decided on chosing the Tagged Object Finder project.

Decided to collaborate over MSN and during tutorial sessions.

Identified system elements, stakeholders and risks shown below.


Stakeholders

Device Users

  • User friendly
  • Working as intended
  • Cost effective

Software Developers

  • Cost of development
  • Time allowed to develop
  • Meet requirements of project

Device Maintenance

  • Maintenance costs
  • Complexity of device parts


Manufacturer

  • Manufacturing costs
  • Manufacturing time needed
  • Profitability of device
  • Demand for this type of device

Risks

The risks involved with this device are:

- Demand in the market. It is possible that there are many types of products similar to this.

- Cost. The device itself may have a heavy cost for the hardware needed to manufacture.

- Accuracy. It is possible that the signals produced by this device can be interfered by other signals and so disrupt the accuracy of this device.

Usage Scenarios

  • Bill turns on the device and does a scan for all nearby items. There was a list of several nearby objects displayed on a map on the screen of the device for Bill to choose from.
  • Bill notices an item called "Bob" and decides to select it to view its details. The details on the screen indicate that the item was infact his mate Bob and that he had an RFID tag in his pocket.
  • Bill selects "Bob" and chooses the function "Edit". Bill then sees a list of details that he may edit. He changes the cost of the item to $2.00c and selects "Save". Bob's details are then saved.
  • Bill selects "Bob" once again and chooses the function "Delete". Bill does another scan for all nearby items. "Bob" is no longer found on the list and Bill is happy.

Elaboration


Essential Use Cases

User Action System Responsibilities
1. Turn on device  
  2. System turns on
3. Start scan  
  4. Scans all nearby tags
  5. Adds tags to list
  6. Displays list


User Action System Responsibilities
1. Select an item  
  2. System displays details
3. Edit  
  4. System displays edit functions
5. Edits details  
  6. Change details


User Action System Responsibilities
1. Select an item  
  2. System looks up tag
  3. System displays details


User Action System Responsibilities
1. Select an item  
  2. System displays details
3. Deletes an item  
  4. System removes item from list


Use-Case Diagram

Image:usecaseT5.jpg


GUI Design

Preliminary designs of the GUI


Map View View details
Edit details screen Delete confirmation screen


Final concept design of the handheld device

Concept design of the handheld device


CRC Cards

Class Name: GUI
Responsibilities Collaborators
- Draws a frame  
- Buttons  
- Menus  


Class Name: Scan
Responsibilities Collaborators
- Scans for RFID tags - GUI button needs to be pressed for scan to begin
- Adds new tags to list  


Class Name: List
Responsibilities Collaborators
- List of all current RFID tags - Scan adds new items to the list
- Sorts the list  


Class Name: Display
Responsibilities Collaborators
- Draws a map - GUI to draw map
- Indicates where items are - Scan to get locations

- List to obtain old locations

- Displays distance of items - Details to display distances


Class Name: User Functions
Responsibilities Collaborators
- Selects details - GUI needs to display menu functions
- Edits details
- Deletes an item - Details is needed to edit or delete


Class Name: Details
Responsibilities Collaborators
- Displays details Scan - get locations to calculate distances
- Details of each item - GUI needs to display details
- Calculates distances of each item  




Class Diagram

Image:classdiagramT5.jpg


Sequence Diagram

Sequence Diagram for scanning for nearby RFID tags

Image:sequenceT5.jpg

Image:Sequence DELETEMENU.gif

Image:Sequence EDITMENU.gif

Image:Sequence SELECTAG.gif



Construction

Each group member was given a class to work on throughout the construction phase. Our group held discussions on how to go about creating some classes, referring to the class diagrams and sequence diagrams we sketched previously.

Once each member completed their class, we put the program together and made sure everything was tested and working properly. During this period, a number of classes were renamed/re-worked/merged into other classes.


Design Assumptions

  • the device will be used inside a warehouse
  • since the demo was only a simulation of the device we decided to omit the "Add tags" feature. The tags will be set to be randomly generated.


Design Decisions

  • The device will be at origin location (0,0) at all times, relative to the user.
  • The functions are Scan and Edit/Delete details.
  • GUI will need to be small since the device will be small and portable (similiar to a PDA).
  • Each RFID tag will display a name, description, ID, location and distance from device.
  • There is no limit on how many tags can be found.
  • Due to the device being portable and relatively small the GUI will be simple and will be in black and white. This will also reduce the manufacturing costs of the device.
  • No buttons will be used. User input is detected from the position of where they touched the screen. This simplified the process to create a keyboard in Java.

Additional Features

Select Nearest Tag

This feature wasn't originally planned and happened to come about while we were designing the code. When the user taps a location on the map, the program will find the nearest tag from the location tapped and select it.

Map Zoom

Upon completion of the program, we decided to add in a zoom feature which allowed the user to see tags located further away from the device. The user would be able to zoom in and out from the current location of the device.

Transition

We tested the code as a whole and fixed any remaining bugs (there wern't many to begin with). The randomly generated tags for the demo was extensively tested to ensure everything had worked.

Personal tools