SoftwarePractice.org: Home | Courseware | Wiki | Archive

T6 - RFID Tagged Object Finder

From SoftwarePractice.org

Group:

Angus Pickering - 10324655

Peter Nguyen - 10328678

Javier Rodriguez - 10628117

Kim Le - 10169148

Contents

Group Meetings:

We have decided that we shall meet during the tutorial sessions after the lectures. Other group meetings will be arranged via email when the group feels they need to meet up.

Introduction

The purpose of this project is to design an application that will help people to locate objects that are tagged with a Radio Frequency Identification (RFID) called the Tagged Object Finder. The Tagged Object Finder application will be part of a hardware device. It will be able to locate objects within a radius of 10 meters and display this information onto a map. The user will be given the option of browsing for already stored devices, scanning for new devices, adding, editing and saving of device properties.

What is RFID?

Radio-Frequency Identification (RFID) is an identification device that is implanted in a product. It uses transponders to retrieve this data. Accomplished by sending radio waves to identify the different RF that the devices hold. Different tags have different range some are able to be read from several meters away. While others far beyond the reader’s line of sight. The RFID tags have two different parts, one part is an antenna for receiving and transmitting the signal. The second part is a circuit integrated into a chip that contains the ability to analyse information, modulate and demodulate a RF signal. The stored informaion on the RFID card has the ability to be updated automatically.

Requirements

- A handheld device (eg Mobile or PDA) that allows people to search for RFID's that are in the area. Usually placed by that person

- Allows people to view distance and ID's of RFID's in the area.

- Users are able to Select RFID's in range and view/add info.

- New RFIDs are shown if they have never been viewed before and allows them to be added to the database.

MUP Phases


Inception

  • Formed group
  • Decided that we would do the RFID Tagged Object Finder

Deliverables

  • Create wiki


Elaboration

  • Usage scenarios
  • Use cases and diagrams
  • CRC cards
  • Sequence and class diagrams
  • Initial designs

Deliverables

  • Put up work on Wiki


Construction

  • Complete designs
  • Write code
  • Do test cases

Deliverables

  • Finish Wiki


Transition

  • Clean up bugs in code
  • Finalise documentation, Wiki and workbook

Deliverables

  • CD with code
  • Documentation all up on Wiki
  • Workbook

Stakeholders

-Developer: People who do the initial design, implement and test the application

-Investor: The person or company that pays the developmental costs of the project

-Supplier: Mobile companies that decide to sell their hardware with that application installed onto the mobile, websites where it´s possible to download it and companies that send the application via text messages.

-User: One who buys and operates the application

Usage Scenarios

Scenario 1: read & delete objects from stored list (keep track of personal objects)

Lana Lang has a large collection of movie DVD’s. She tends to swap and sell her movies often and finds it hard to keep track of what she still has. She decides to tag each DVD and have its own profile saved in a stored list on her RFID object scanner. Therefore, when being asked if she had a particular DVD for sale, she could just ‘read’ through her stored list to confirm. Also, after she sells a particular DVD, she can now ‘delete’ the DVD profile from her stored list.

Scenario 2: scan for near by objects (locate objects within 10m radius)

Lex Luthor is running late to the airport for his business trip. His wife helps pack his things while he gets dressed. He has finished getting dressed and the bags are packed. Lex walks outside to wait for the taxis to arrive. While he was waiting for the taxi to arrive, he was not sure if his wife remembered to packed everything that he needed. He got out his RFID object scanner to scan for the objects that were inside his packed bags. Once it finished scanning, he could see all the things that were in the bag. He noticed that his ipod was not displayed and quickly ran inside to get it. Once on the plane, he was glad that he had his beloved ipod, all thanks to the RFID scanner for letting him know that it was not packed without having to unpack all the bags while he was already running late.

Scenario 3: edit & save object properties (differentiate objects from each other)

Clark Kent is a dog breeder. There are so many puppies and he cannot tell them apart. He decides to tag each puppy with a RFID tag and customise each puppy’s profile for future references. First, each puppy had to be tagged. Once this was done, he scanned for the puppies with his RFID object scanner and clicked on ‘edit’ to customise each puppy with its own unique ID, name and special notes. He then chooses to ‘save’ these profiles in his stored list for later use.

Prototype

The diagram below shows the overall system elements. It shows how the software and hardware components are linked together.

Image:Prototype A.JPG


USER INPUT:

This is the input entered in by the user.

GUI:

This is the Graphic User Interface in which the user sees and interacts with.

SOFTWARE:

BlueJ

HARDWARE:

Java enabled mobile device

CLASSES:

These are the classes used in BlueJ to create the program

TAG READER:


The reader reads the radio wave sent by the tagged object.

TAGGED OBJECT:

A tagged object transmits information of a device, which is stored on a chip via radio waves to the tag reader.

Use Cases

Finding nearby object if object already exists.

User Action System Responsibility
1. Press "Scan" button. -
- 2. Recognise button has been pressed.
- 3. Send out radio frequency to detect objects.
- 4. Finds object.
- 5. Map drawn to show the location of object.
- 6. Location data is updated with current reading.

Finding nearby object if object does not exist.

User Action System Responsibility
1. Press "Scan" button. -
- 2. Recognise button has been pressed.
- 3. Send out radio frequency to detect objects.
- 4. Finds object.
- 5. Map drawn to show the location of object.
- 6. Location data is stored on the database.

Selecting tagged object for information.

User Action System Responsibility
1. Select menu. -
- 2. Recognise command.
3. Select desired tagged object. -
- 4. Display associated information about object.
5. Reads and takes in the information. -
- 6. Returns to main screen.

Deleting tagged objects from memory.

User Action System Responsibility
1. Select object. -
- 2. Highlight object.
3. Select delete option. -
- 4. Show delete confirmation message.
5. Confirm. -
- 6. Remove object.

Editing tagged objects in memory.

User Action System Responsibility
1. Select object. -
- 2. Highlight object.
3. Select edit option. -
- 4. Show details of object to be edited.
5. Edit object details. -
- 6. Show edit message confirmation message.
7. Confirm. -
- 8. Save new details to memory.

Use Cases Diagrams

Image:Use-case diagram.jpg

CRC Cards

Class Name: RFID_TAGGER Responsibilities: Class RFID_TAGGER has a Frame, on which there are three buttons: SCAN, READ, EXIT

Class Name: RFID_TAGGER
Responsibilities Collaborators
- Scan: To display RFID tagged objects scanned from RFID Reader - Call DISPLAY.object From Reader method to obtain scanned RFID objects
- Read: To display RFID tagged objects saved in RFID store - Call DISPLAY.object From Store method to retrieve RFID objects saved in RFID store
- Exit: To terminate RFID_TAGGER - This also terminates the program

.

Class Name: RFID_OBJECT
Responsibilities Collaborators
- RFID_OBJECT: This is the constructor of the class. It holds all properties of an RFID object - To make an instant of the RFID_OBJECT, all properties of the object must be passed to the constructor.

Class READER will create an instant of RFID_OBJECT for each object obtained from the hardware RFID reader (scan) or from the hardware RFID store (retrieve). Class RFID_MAP also access RFID_OBJECT instants to get or save objects’ information

- EditProperty: This method is called to display editable properties of a selected RFID object

Class Name: DISPLAY Responsibilities: Class DISPLAY is the main class of the RFID Finder project, which has two main methods: objectFromReader, objectFromStore

Class Name: DISPLAY
- objectFromReader: To obtain scanned RFID objects and display them on a map - Call READER.getObjects (int 1) // Reader method to scan nearby tagged objects, and obtain their details

Call DRAW_MAP (Reader) to display on RFID map.

- objectFromStore: to get saved objects from STORE and display on map - Call READER.getObjects (int 1) // (1 = for Reader) method to scan nearby tagged objects, and obtain their details then Call DRAW_MAP (Reader) to display objects on an RFID map

objectFromStore: To retrieve saved objects from an RFID store and display them on a map || - Call READER.getObject (int 2 ) //(2 = for Store method to get all tagged objects in an RFID store, and obtain their details then Call DRAW_MAP (Store) to display objects on RFID map

Class Name: READER (hardware reader) Responsibilities: Class READER is the main interface to RFID hardware reader and store. It has two main methods: getObjects, saveObjects

Class Name: READER
Responsibilities Collaborators
- getObjects: Read ‘simulated Object-file’ for new scanned objects’ information from RFID Reader or saved objects’ information from RFID Store - Note: Use a text file (e.g. objRead.txt, or objStore.txt) to simulate the data source hardware. The method also set the DISPLAY.objFromReader or the DISPLAY.objInStore variable
- saveObjects: to save RFID objects in RFID store - RFID_MAP will use this method to save the information of the objects on the map to the RFID store.

Note: Use the text file objStore.txt to simulate the hardware store

.

Class Name: DRAW_MAP
Responsibilities Collaborators
- DRAW_MAP: This is the constructor of the class. In an instant of DRAW_MAP, a Java frame is created to display an instant of RFID_MAP - An instant of RFID_MAP will be created and displayed on a frame (RFID object map)

.

Class Name: RFID_MAP
Responsibilities Collaborators
- RFID_MAP: This is the constructor of the class. In an instant of RFID_MAP, there are some buttons, including the “Object Property”, “Delete Object”, “Append to Store”, etc - Call RFID_OBJECT.EditProperty to modify properties of a selected object.

Call READER.saveObjects method to append information of RFID objects on a map to RFID store

Class diagram

Image:Cass Diagram.jpg

Sequence diagrams


SCAN


Image:scan.jpg

EDIT & SAVE

Image:Edit save.JPG

READ


Image:read.jpg

Draft Interface Designs

These were our initial designs. After much thought and consideration, we believed the colours used were a bit stressful to the eyes and later decided to make our GUIs of a more simpler design.

Image:Draft 1 .JPG | Image:Draft 2 .JPG

Image:Menu .JPG | Image:Option .JPG

Image:Store list .JPG | Image:Properties .JPG

Final Interface Designs

This is the main menu screen. It is the first screen the user sees when using the RFID Tagged Object Finder.

Image:Rfid tagger.JPG

This is what the user sees to confirm that the device was successfully saved.

Image:Saved.JPG

This is the screen which the user sees once a device is selected. It displayed all the device's properties.

Image:Object property.JPG

This is what the user sees once the RFID finishes scanning for nearby objects. The currently selected object is seen on the screen as a red dot.

Image:Scan1.JPG

Once a device is deleted, the device turns to a black dot on the screen.

Image:Deleted object.JPG

As you can see, our final GUIs retains the original designs however we decided to use colours which were less straining to the eyes.

Test Cases

This test case focuses on the "Scan" function of the program.

Step Description Expected Pass/Fail
1. Press "Scan" button. Dialogue opens up with map drawn with objects found within "ObjReader".
2. Browse objects using "Next" and "Previous" buttons. Scrolls through objects within GUI changing colour to show the selected object.
2.1. When on selected object, press "Object Property". Dialogue box opens and displays objects attributes which can then be modified.
2.2. When "Modify" button is pressed. Dialogue pops up with "Object property has been modified".
3. Press "Append to Store" button. Saves what is in scanning window to "ObjStore" the database which contains all the objects which have been stored there previously.
4. Press "Delete" button. Object is blacked out from the map.
4.1. Press "Undo Delete" button. Object that was just deleted comes back onto the map.

This test case focuses on the "Read" function of the program.

Step Description Expected Pass/Fail
1. Press "Read" button. Dialogue opens up with map drawn with objects stored within ObjStore.
2. Browse objects using "Next" and "Previous" buttons. Scrolls through objects within GUI changing colour to show the selected object.
2.1. When on selected object, press "Object Property". Dialogue box opens and displays objects attributes which can then be modified.
2.2. When "Modify" button is pressed. Dialogue pops up with "Object property has been modified".
3. Press "Append to Store" button. Saves what is in scanning window to "ObjStore" the database which contains all the objects which have been stored there previously.
4. Press "Delete" button. Object is blacked out from the map.
4.1. Press "Undo Delete" button. Object that was just deleted comes back onto the map.

This test case focuses on the "Exit" function of the program.

Step Description Expected Pass/Fail
1. Press "Exit" button. The program terminates.

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], viewed 31 August 2007, < http://en.wikipedia.org/wiki/RFID >
  • C Thomas Wu, "An Introduction to Object Oriented Programming with Java", McGraw-Hill, 3rd edition, 2004.
  • H. Schildt , "The complete Reference Java 2", McGraw-Hill, 5th edition, 2002, New York.

  • R. Lister, "Extracts in Java", McGraw-Hill, New York. 2003.
  • Personal tools