1. Report
Sherlock Application for Mobile
By Owen Muzi
Student no.: BSC 13010
ZCAS
Introduction
Sherlock android application is the mobile application that should aid investigators to keep track
of the people they are suspecting to be criminals or who can lead to the arresting of the criminals.
The application was implemented using SDK and eclipse. The language is purely java.
This application is able to enter the details in the database keep them until the user deletes them.
The application is able search from database; list the details in the database.
The application is supposed to delete a record. But is feature is not well implemented the button
delete all from the database this is left for future improvement.
Section 1. A concise table containing a checklist of the features I have been able to
implement.
Feature Implementation
a) Fully implemented
b) Fully implemented
c) Implemented but sometimes delete button
deletes all
d) I did not attempt it limited time and knowledge
e) I've tried but it was causing the all app not to
work
f) No additional features implemented
Section 2. A concise list of any bugs and/or weaknesses in my program(s).
1. One weakness with my program is that it cannot delete record by record it delete
all the records in the table.
Section 3. A brief description of special strengths of my program(s).
This app that I have created is able to enter details to the database, search, list persons
in the database and delete all from the database. The user interface is very easy to use
all is well labelled and well placed for the users to see and use.
The inputs are validated one can not enter data with incomplete fields. The system
will remain the user to enter in all fields.
And before it write to the database it will ask in you are sure to click ok and save in
the database.
2. Section 4. Screen shots demonstrating each of the features that I have implemented.
Figure 1. Welcome window
Figure 2. data entering window
3. Figure 3. If anyone wants to save without finishing entering details in the all fields the app will
not save.
Section 5. An evaluation of my app. below is the requirements specifications that I
was given to follow as i develop my app.
Specifications
Below is the application specifications that we were given.
The application should have the following features.
The features are listed in the order of importance with the most important first and you should
implement them in this order.
a) Enter details of people being followed
The minimum details that the user needs to able to enter are given below. Note that the
investigator must be able to enter all of these fields. "Required field" means that the investigator
must enter something in this field otherwise they will get an error message.
Name of the person - required field (if they don’t know the name the investigator will
make up a name based on a description of the person e.g. “tall woman”)
Gender of the person - required field
Estimated height of the person in centimetres – required field
Age range of the person – required field (decide sensible ranges)
This will show to say field
empty
4. Hair colour of the person – optional field (i.e. it may or may not be entered by the
investigator)
Additional comments – optional field (this can be used to record any identifying features
or other information that is deemed important, e.g. “has front tooth missing”)
One or more other fields of your own invention
If the user doesn’t enter anything in one of the required fields or enters an invalid value in a field,
the program should display an error message to the user.
Once the details for a person have been accepted by the program (e.g. no required fields were
missing and all data is valid) it should display the details back to the user for confirmation and
allow them to go back and change any details that they wish.
b) Store and list the details
Details of a person entered by the user should be stored on the device using an appropriate
database (e.g. SQLite if you are using Android).
The user should be able to list all the details of all people that have been entered into the app.
c) Search and delete
The user should be able to search for people in the database by name. At its simplest this could
mean entering a name and displaying the first person that matches, though ideally they should be
able to enter the first few letters of the name and display all matching people.
The user should be able to delete specific people from the application.
EVALUATION
After reading and understanding the requirements specification I came up with the application
that is work as required.
Requirements specification as shown below
Figure 5. The steps to follow.
Tools
To develop this application some tools were used below is a list:
SDK
Eclipse
Word
Enter
Search Can
delete
Report
5. SQLite
Design documentation
Human computer interaction
A solution is needed to the problem of lack of screen space on mobile devices. This is unlikely to
come from larger screens because the devices are physically limited in size to fit into the users
hand. So I made sure that screen space was not so much a problem to the user of this app. If you
look at the layout of the welcome window.
Maintainability
One of the goals of configurability is to improve the maintainability and supportability of a
software application or system. With the proper tools, manageability also can be improved.
Maintainability has been defined as "the ease with which a software system or component can be
modified to correct faults, improve performance, or other attributes, or adapt to a changed
environment" [IEEE 1990]. The keyword here is ease. Tools that were used to develop this app
are eclipse SDK SQLite this are tool that allow maintainability you can always inport the app
and correct or improve the app.
Security
There are few securities implemented in the app because it was going to very diffult for the mark
to open and run it.
Ability to run on a range of devices
Mobility is ubiquitous, and customers ask for impeccable performance, no matter wherever and
whenever they use. This requires complete mobile device/application testing to make sure that
the application is carefully tested for user experience, functionality, hardware requirements and
adaptability.
From the past few years there has been a remarkable growth in the use of the mobile devices and
tablets. This sudden shift has helped organizations in opening up possibilities of integrating the
mobile devices with their enterprise solutions. This extraordinary growth of mobile devices has
opened up possibilities for mobile applications with intricate functionality to run on multiple
platforms with limited computing resources, varied hardware as well as software configurations.
Mobile device testing is one of the most important facets of the mobile application development
lifecycle. Appropriate testing confirms that customer expectations are met and applications run
properly. There are a variety of mobile devices, platforms, and networks available, thereby
increasing the importance of device testing ensuring the consistent performance of the
applications. I have tested this application on the number of devices embedded in the emulator
tablets, 555android e.c.t
6. Databases
The database I used for the application is SQLite the reasons I used this database are:
SQLite is an in-process library that implements a self-contained, serverless, zero-configuration,
transactional SQL database engine. The code for SQLite is in the public domain and is thus free
for use for any purpose, commercial or private. SQLite is currently found in more applications
than we can count, including several high-profile projects.
SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does
not have a separate server process. SQLite reads and writes directly to ordinary disk files. A
complete SQL database with multiple tables, indices, triggers, and views, is contained in a single
disk file. The database file format is cross-platform - you can freely copy a database between 32-
bit and 64-bit systems or between big-endian and little-endian architectures. These features make
SQLite a popular choice as an Application File Format. Think of SQLite not as a replacement for
Oracle but as a replacement for fopen()
SQLite is a compact library. With all features enabled, the library size can be less than 500KiB,
depending on the target platform and compiler optimization settings. (64-bit code is larger. And
some compiler optimizations such as aggressive function inlining and loop unrolling can cause
the object code to be much larger.) If optional features are omitted, the size of the SQLite library
can be reduced below 300KiB. SQLite can also be made to run in minimal stack space (4KiB)
and very little heap (100KiB), making SQLite a popular database engine choice on memory
constrained gadgets such as cellphones, PDAs, and MP3 players. There is a tradeoff between
memory usage and speed. SQLite generally runs faster the more memory you give it.
Nevertheless, performance is usually quite good even in low-memory environments.
SQLite is very carefully tested prior to every release and has a reputation for being very reliable.
Most of the SQLite source code is devoted purely to testing and verification. An automated test
suite runs millions and millions of test cases involving hundreds of millions of individual SQL
statements and achieves 100% branch test coverage. SQLite responds gracefully to memory
allocation failures and disk I/O errors. Transactions are ACID even if interrupted by system
crashes or power failures. All of this is verified by the automated tests using special test
harnesses which simulate system failures. Of course, even with all this testing, there are still
bugs. But unlike some similar projects (especially commercial competitors) SQLite is open and
honest about all bugs and provides bugs lists including lists of critical bugs and minute-by-
minute chronologies of bug reports and code changes.
The SQLite code base is supported by an international team of developers who work on SQLite
full-time. The developers continue to expand the capabilities of SQLite and enhance its
reliability and performance while maintaining backwards compatibility with the published
interface spec, SQL syntax, and database file format. The source code is absolutely free to
anybody who wants it, but professional support is also available.
We the developers hope that you find SQLite useful and we charge you to use it well: to make
good and beautiful products that are fast, reliable, and simple to use. Seek forgiveness for
yourself as you forgive others. And just as you have received SQLite for free, so also freely give,
paying the debt forward.
7. Potential enhancements.
There are a lot of features that can be implemented to enhance the application to be of very good
help to the user.
Some of the enhancements I wanted to add to the app but time and knowledge was limited are;
The app should be able to pick location automatically using GPS so that it can be easier for the
user to track the location of the suspect.
The security feature that needs to be added as an enhancement is the password to open and run
application cause without the password any one can use the phone and open the app and check
the information.
Challenges
Low internet for research and learning new things from cable people.
The coursework specifications were given late to us student we needed more time.
Assumptions
There was no URL given for the web service to work
No usage of the passwords
Can only run on android platforms
References
1. Aliaga, D. G. (1997). Virtual objects in the real world. Communications of the
ACM, 40(3): 49-54.
2. BCS HCI (1997). British HCI Group Workshop on Time and the Web. Staffordshire
University, June 1997.
3. Benford, S., Bowers, J., Fahlen, L., Mariani, J, Rodden. T, Supporting Cooperative Work
in Virtual Environments. The Computer Journal, 1995. 38(1).
4. Cáceres, R., and L. Iftode. "The Effects Of Mobility on Reliable Transport
Protocols." Proc. 14th International Conference on Distributed Computer Systems
(ICDCS), Poznan, Poland, Pages 12-20. 22-24 June 1994.