T3 - Tagged Object Finder
From SoftwarePractice.org
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
|
Use-Case Diagram
Software Prototype
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 Diagram
Final Class Diagram
|
Initial Class Diagram
Sequence Diagram
Final Sequence Diagram
Search and Store ID Tag
Edit/Deletes ID Tag and Display Item
Initial Sequence Diagram
Search and Store ID Tag
Edit/Deletes ID Tag and Display Item
GUI
Prototype Screen Shoot
Main GUI
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
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
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
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
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
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
List GUI
Edit GUI
Initial Draft
Test Cases
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.




