SoftwarePractice.org: Home | Courseware | Wiki | Archive

T3 - Tagged Object Finder

From SoftwarePractice.org

Contents

Group Members

Matthew Yuan Geng Geng's log book

Min-Tsang Hsieh Min-Tsang's log book

Victor George Victor's log book


Ground Rules

1)Ask for help if you're having trouble.

2)Meeting are once a week Thursday 12:00 PM at CB02.06.??

3)Email before hand if you can't make a meeting.

4)Transfer all work to the Wiki as soon as possible.

Discussion board

All the team discussions will be post onto "Team Discussion" by Project Leader after every meeting.

Introduction

In this project, the team is ask to design an application that allows the user to find and locate objects that is tagged with an RFID (Radio Frequency Identification) by useing mobile device in spefic range. It also display any founds objects on the map with detail such as the distance between each object and the device. Then it allows user to save or to update the details for founds objects

Key System Elements

Elements that system requires:

. User

. RFID (Radio Frequency Identification) Tag

. RFID Tag Reader

. Java-enabled mobile device

. System: GUI

. Software: BlueJ,

Stakeholders

Marketers

-Will be incharge of selecting the appropriate distributing channel. Since this the Tagged Object Finder is a piece of software, money can be saved on transport and distribution, as software can be transported in less expensive ways that compared to tangible goods.

-Will also be in charge of the advertising campaign. How to sell the product? They will have to determine the best advertising strategy, and take into consideration the marketing mix. How much should it sell for? Who is the Targeted Buyer? Should we advertise in newspapers or on TV? How can we improve it?

-The success of this new service lies in the way it is marketed, and hence marketers play a vital role.

Shareholders

-Shareholders are the funds behind the project. Without them the project wouldn't have even reached inception phase. The shareholders could numerous people having a stake in the company, it could be the CEO of a multi million dollar organization, or it could even be the government.

-Shareholders have the most to lose, because it is there investment we are using to develop the Project. Therefore in many cases the Shareholders will give the development team direction, with the main aim to produce a profit.

-With that profit-oriented mindset, shareholders rely on the marketers to receive the highest profit margin possible.

Research and Development

-The R&D team of the project are hired to continue to research and improve the product. They are always trying to make the product better, or find new uses for the original product. As it is the common practice in software, the release of program is soon superseeded by the release of an upgraded version.

-The R&D department relies on funding from the shareholders, so the success of the product is vital to there future.

Technical Support

-The Technical Support group exist to assist end user. This can be for something as simple as "how to use it", or it could be something as complicated as "debugging the code". This helps maintains a healthy relationship with the end user, so they will be open to using more of our products in the future.

Mobile Phone Industry

-The mobile phone industry is our target consumer. For the Tagged Object Identifier to be a success it has to follow the laws and syntax of the mobile phone industry. Therefore factors like; screen size, memory restrictions and power usage must be considered in developing the program.

End User

-The End User is the most important Stakeholder. They are the reason why we developed the program, to solve some of the problems they faced, as outlined in the usage scenarios.

Risks

1. Privacy issues, such as a stalker saving the victim's id number.

2. Signal accuracy of the ID tag and the sensor.

Usage Scenarios

Scenario 1:

Jenny, a mother of two children (Bill and Andy), is in a crowded flee market and momentarily loses her children. Her kids carry mobile phones but they are turned off, so she cant contact them.

Jenny turns on the Tagged Object Finder to search for her children, on the map she can see numerous ID tags displayed. She then clicks on each tag to display more detail until she finally finds her children's tag.

Jenny notices that both her children are in different directions, so she selects Bill's ID tag and saves it onto the database so she can review it later.

Jenny searches and finds Andy, she then selects "List" which displays the details of Bill's ID Tag, which can be used to find Bill.

After she is reunited with her family she can now "delete" the stored ID tags from the "List".

Scenario 2:

Michael, a uni student, has misplaced his mobile phone. He knows that it must be in his home somewhere but he has no idea where. Despite his best searching efforts he still can't find the mobile.

Michael turns on the Tagged Object Finder to search for his mobile phone. He uses the "Search" function to produce a map of his house identifying all objects tagged with Radio Frequency Identification. He cycles through the list of devices until he finds his mobile phone.

Using the device as a map he navigates himself around the house "updating position" as he gets closer. He finally pin points the position of the device and finds it his jeans.

Issues

In order to store a selected tagged object, you have to right click it and select store option, first time users may find this not user-friendly.

There have also been issues where we should put the ‘delete’ button. Initially I wanted to place it in the edited detail section where the user can get a clear view of who the tagged object is before delete this is then changed to the view stored list section under the assumption the user could identify by just the name.

In our earlier designs, there was a ‘Recall Stored Data’ option where the last stored object is displayed on the screen at the same location when you saved it but not the current one. We feel this option is redundant because why would the user want to know the old position and there is already an option called ‘Update Position’ which the user could select on an object to get its current position

In the stored list, we have a check box selection for the edit option which the user can select multiple objects by the looks of it, this will soon change to dot selection option where only one object can be selected.

Essential-Use-Case

Search Function

User System
1. Start Program  
  2. Creates Frame And Buttons
3. Click Search  
  4. Hide All Tagged Objects
  5. Reset Index
  6. Reset Flag
  7.Display Method Call

Store Function

User System
1. Click On Tagged Object  
  2.Check Tagged Object
  3. Get Tagged Object Detail
  4. Request Acknowledgement
5. Acknowledge  
  6. Store Tagged Object To List

List Function

User System
1. Click On List  
  2. Creates New List Frame
  3. Pass All Stored Tagged Objects;
  4. Display Selected Tagged Objects

Edit Function

User System
1. Select Desired Tag  
2. Click Edit  
  3. Identifies The Selected Tag;
  4. Creates A Edit Window For The Selected Tag
5. Selects What To Edit  
  6. Identifies What To Edit
  7. Creates An Input Dialog
8. User Enters Changed Details  
  9. Updates Input Details

Delete Function

User System
1. Selects Tag  
2. Click Delete  
  3. Closes Lists
  4. Identifies The Selected Tag
  5. Set The Selected Tag To Null
  6. Display Updated List

Detailed Use-Case


Basic Search & Recall the Stored Tag

User System
1. Initiates the Search  
  2. The system runs the search program

and shows all the ID Tags.

3. User analysis the ID Tags

and selects and stores the desired one.  

  4. The Selected ID Tags is put into

a list and are stored in a database.

5. User views the list, selects the

desired tag and clicks "Delete".  

  6. Removes the Tag from the List.

Use-Case Diagram

Image:Use-Case_Diagram.JPG

Software Prototype

Image:SoftwarePrototype.JPG


CRC Cards

Final CRC Card

Class Name: SampleFrame
Responsibilities Collaborators
Draws GUI Frame List - To create a new frame with the stored string been sent
Draws the buttons and their icons Database - To get the the tag details
Implements the action for each button
Shows the tagged objects on frame
Stores the selected object
Opens the list frame
Exit the program


Class Name: List
Responsibilities Collaborators
Draws Frame SampleFrame - Needed for the parameters for the stored details
Draws Buttons and their icons Edit - Create a new Edit passing the selected object's details
The action for each button
Shows the stored tag details
Deletes the selected tag
Opens the Edit frame
Exit the frame


Class Name: Edit
Responsibilities Collaborators
Draws Frame List - Selected tags current details
Draws Buttons and their icons Database - The new detail is passed
The action for each button
Shows the details for the selected tag
Change the tag selected details
Exit the frame


Class Name: Database
Responsibilities Collaborators
Stored the tag array
Initialize the array
Returning the tag's full details after been given the partial
Change the tag details


Class Name: Tag
Responsibilities Collaborators
Stores all the object methods


Initial CRC Card

Class Name: GUI
Responsibilities Collaborators
Draws Menus  
Draws Buttons  
Draws Windows  



Class Name: Search
Responsibilities Collaborators
Searches the local area for ID Tags GUI - Button is used to activate the search


Class Name: Tag
Responsibilities Collaborators
Stores ID Tag List - stores the Items Database - Details are recorded in the Database
Updates Position of ID Tag Searches the local area for the ID Tags


Class Name: List
Responsibilities Collaborators
Lists the ID Tags that have been stored Details - are given on each Tag when clicked.


Class Name: Display
Responsibilities Collaborators
Draws a map GUI - frame to draw a map on
Shows the position the ID Tags Search - to get the ID Tags position


Class Name: Details
Responsibilities Collaborators
Edits ID Tag Database - Details of ID Tag is edited
Deletes ID Tag Database - ID Tag is deleted
Class Name: Database
Responsibilities Collaborators
Stores ID Tag  
Update Details of ID Tag  
Remove ID Tag  


Class Diagram

Final Class Diagram

Image:Class DiagramT3.gif

Initial Class Diagram

Image:Initial_Class_Diagram.JPG


Sequence Diagram

Final Sequence Diagram

Search and Store ID Tag

Image:SeqDig3.JPG

Edit/Deletes ID Tag and Display Item

Image:SeqDig4.1.JPG

Initial Sequence Diagram

Search and Store ID Tag

Image:SeqDig1.JPG

Edit/Deletes ID Tag and Display Item

Image:SeqDig2.JPG

GUI

Prototype Screen Shoot

Main GUI


Image:Prototype_Main2.JPG


This is our Main screen prototype, the difference to our final design is that this GUI does not contain a radar map, so when the search function is performed the tagged object will be display as a button and contain the details and the distance from the user. We wanted to add as much details as possible by showing the owner's name, the type of device, the device model and finally the RFID. When any tagged object is clicked, system will stored the selected object into database and will be displayed on the List GUI when the List button is clicked. We also decided to add the icon onto each button and the simple message "click the name to store" to make it more user friendly and new user welcome.


List GUI


Image:Prototype_List.JPG


All the stored object will be display in this GUI. This GUI has same function as our final List GUI design. Again the icons and the message for the user friendliness. We wanted to make it easier by making a limit of maximum of five tags can be stored at a time.


Edit GUI


Image:Prototype_Edit2.JPG


In the edit GUI the way of editing is bit different to our Final Edit Design, when the user wants to edit a specific detail first the user needs to select the data that he/she wants to edit then click OK, a friendly dialog box will appear allowing the user to enter the new detail then click OK and the system will update the detail into the database.

Final GUI Design

This is the final GUI design for our tagged reader


Main GUI

Image:Final_Main.jpg

In this GUI it contain three button 'Search', 'List' and 'Exit'. At the center of the screen, it contain a radar map, when the Search is performed all the item within the range will be display on the radar map. When List button is select the List GUI will be display.


List GUI

Image:Final_List.jpg

This is a List GUI which allow user to see the detail of the stored tagged object. In this GUI it has three function 'Edit', 'Delete' and 'Exit'. When use went to edit the tagged object simply select the item the click Edit then the system will show the edit page of specific item, and when the user went to delete an object then just select then click on Delete


Edit GUI

Image:Final_Edit.jpg

In the Edit GUI it contain the input text box that allow user to edit the details of the tagged. When use has finish the editing then simply click on Save button then the system will update the new detail into the database

Fixed Draft

Main GUI

image:Interface2.JPG

List GUI

image:List5.JPG

Edit GUI

image:Edit.JPG

Initial Draft

Image:Initial_Draft.JPG

Test Cases

Image:Red3.JPG


Image:Red4.JPG

Conclusion

From using various design techniques we have worked together to produce a well working product that meets the design specification.

References

- Bennett, S. McRobb, S. Farmer, R. 2006, Object-Oriented Systems Analysis And Design -Using UML, 3rd edn, McGraw Hill, New York.

- Wikipedia(2007)[RFID Definition], last accessed 5th September 2007, http://en.wikipedia.org/wiki/RFID

- C Thomas Wu, "An Introduction to Object Oriented Programming with Java", McGraw-Hill, 3rd edition, 2004.

Personal tools