Professional Documents
Culture Documents
Documentation V 6.8 Beta-Mobile App
Documentation V 6.8 Beta-Mobile App
We would also like to acknowledge and express our gratitude to our advisor Mr. Endale Aragu
for his magnificent support and contributions by providing necessary template documents and
hand-outs for the project to go as planned.
Finally, a great appreciation to the university and the department that gave as the chance to
develop our computing skills.
ii
Table of Contents
List of Figures ........................................................................................................................ v
List of Tables ........................................................................................................................ vi
Chapter One......................................................................................................................... 1
1.1 Introduction ......................................................................................................................1
1.2 Background .......................................................................................................................1
1.3 Statement of the Problem ..................................................................................................3
1.4 Purpose of the project........................................................................................................4
1.5 Team composition .............................................................................................................4
1.6 Objectives of the project ....................................................................................................5
1.6.1 General Objective.................................................................................................................. 5
1.6.2 Specific Objectives ................................................................................................................ 5
1.7 Feasibility ..........................................................................................................................5
1.7.1 Technical feasibility .............................................................................................................. 5
1.7.2 Operational feasibility .......................................................................................................... 5
1.7.3 Economical Feasibility .......................................................................................................... 6
1.8 Scope and limitation ..........................................................................................................6
1.8.1 Scope ....................................................................................................................................... 6
1.8.2 Limitation............................................................................................................................... 6
1.9 Significance of the project ..................................................................................................7
1.10 Methodology .....................................................................................................................7
1.10.1 Interviewing....................................................................................................................... 7
1.10.2 Practical observation ........................................................................................................ 8
1.11 Development tools ............................................................................................................8
1.12 Testing procedure ..............................................................................................................9
1.12.1 Requirement testing .......................................................................................................... 9
1.12.2 Unit testing......................................................................................................................... 9
1.12.3 Integration testing ............................................................................................................. 9
1.13 Overview of Project Phases ................................................................................................9
1.14 Required resources with cost ........................................................................................... 10
1.15 Task and schedule ............................................................................................................ 11
Chapter Two ...................................................................................................................... 12
2 Description of the existing system ............................................................................... 12
2.1 Major function of the current system ............................................................................... 12
2.2 Users of the current system.............................................................................................. 13
2.3 Drawback of the current system ....................................................................................... 13
2.4 Business rule of the current system .................................................................................. 14
Chapter Three:................................................................................................................... 15
3 Proposed System ......................................................................................................... 15
3.1 Proposed system (Overall description of the proposed system) ......................................... 15
3.2 Functional requirement.................................................................................................... 15
3.3 Non-functional requirement............................................................................................. 17
3.4 Performance Requirements.............................................................................................. 17
iii
3.4.1 Performance consideration................................................................................................. 18
3.5 System model .................................................................................................................. 20
3.5.1 Scenario ................................................................................................................................ 20
3.5.2 Use case model ..................................................................................................................... 23
3.5.3 Use case description ............................................................................................................ 23
3.6 Object Model ................................................................................................................... 28
3.6.1 Data dictionary .................................................................................................................... 28
3.6.2 Class diagram ...................................................................................................................... 29
3.7 Dynamic model ................................................................................................................ 30
3.7.1 Sequence diagram ............................................................................................................... 30
3.7.2 Activity diagram .................................................................................................................. 35
3.7.3 State Diagram ...................................................................................................................... 38
3.7.4 User interface ....................................................................................................................... 40
Chapter Four ..................................................................................................................... 43
4 System Design ............................................................................................................. 43
4.1 Overview ......................................................................................................................... 43
4.1.1 Purpose of the system.......................................................................................................... 43
4.1.2 Design Goal .......................................................................................................................... 43
4.2 Proposed system architecture .......................................................................................... 45
4.2.1 Overview .............................................................................................................................. 45
4.2.2 System process ..................................................................................................................... 50
4.2.3 Request Processor ............................................................................................................... 51
4.2.4 Subsystem Decomposition .................................................................................................. 52
4.2.5 Hardware/ Software mapping ............................................................................................ 53
4.2.6 Persistent Data management .............................................................................................. 53
4.2.7 Component diagram ........................................................................................................... 56
4.2.8 Deployment diagram ........................................................................................................... 58
4.2.9 Boundary condition ............................................................................................................. 59
4.2.10 Database design ............................................................................................................... 61
4.2.11 Access controlling ........................................................................................................... 62
Reference .................................................................................................................................... 63
iv
List of Figures
Figure 1-0-1 Task and schedule .................................................................................................... 11
Figure 3-1 Use case model ............................................................................................................ 23
Figure 3-2 Class diagram .............................................................................................................. 29
Figure 3-3 Sequence diagram: Get my location ........................................................................... 30
Figure 3-4 Sequence diagram: Search .......................................................................................... 31
Figure 3-5 Sequence diagram: Browse category .......................................................................... 32
Figure 3-6 Sequence diagram: Browse map ................................................................................. 33
Figure 3-7 Sequence diagram: About ........................................................................................... 34
Figure 3-8 Activity diagram: Category browse ............................................................................ 35
Figure 3-9 Activity diagram: Search............................................................................................. 36
Figure 3-10 Activity diagram: About ........................................................................................... 37
Figure 3-11 Category browse state diagram ................................................................................. 38
Figure 3-12 Search state diagram ................................................................................................. 38
Figure 3-13 Description state diagram .......................................................................................... 39
Figure 3-14 get my location state diagram ................................................................................... 39
Figure 3-15 Interface: Home ......................................................................................................... 40
Figure 3-16 Interface: Menu ......................................................................................................... 41
Figure 3-17Interface: Category View ........................................................................................... 42
Figure 4-1 System Tire Architecture ............................................................................................ 45
Figure 4-2 General System Architecture ...................................................................................... 46
Figure 4-3 Client Server Communication ..................................................................................... 47
Figure 4-4 System process ............................................................................................................ 50
Figure 4-5 Request Processor ....................................................................................................... 51
Figure 4-6 Subsystem Decomposition Diagram ........................................................................... 52
Figure 4-7 Class to Table mapping ............................................................................................... 53
Figure 4-8 class to database table ................................................................................................. 53
Figure 4-9 LocalCategoryDatabase mapping ............................................................................... 54
Figure 4-10 SearchCategory mapping .......................................................................................... 54
Figure 4-11 GetRoute mapping .................................................................................................... 54
Figure 4-12 LocationManager mapping ....................................................................................... 55
Figure 4-13 CurrentLocation mapping ......................................................................................... 55
Figure 4-14 CategoryList mapping ............................................................................................... 55
Figure 4-15 Component Diagram ................................................................................................. 56
Figure 4-16 Hardware components ............................................................................................... 57
Figure 4-17 : Software Components ............................................................................................. 57
Figure 4-18 Deployment Diagram ................................................................................................ 58
Figure 4-19 Database Design ........................................................................................................ 61
v
List of Tables
Table 1-0-1 2007 E.C Statistics of services in Adama city ............................................................ 2
Table 1-0-2 Team composition ....................................................................................................... 4
Table 1-0-3 Development tools ...................................................................................................... 9
Table 1-0-4 Required resources with cost .................................................................................... 10
Table 2-1 Business rule of the current system .............................................................................. 14
Table 3-1 Map in Functional Requirements ................................................................................. 16
Table 3-2 Information Retrieval in Functional Requirements ...................................................... 16
Table 3-3 Non-Functional Requirements...................................................................................... 17
Table 3-4 search use case description ........................................................................................... 24
Table 3-5 browse service use case description ............................................................................. 24
Table 3-6 view description use case description........................................................................... 24
Table 3-7 get direction use case description ................................................................................. 25
Table 3-8 plot on map use case description .................................................................................. 25
Table 3-9 get location use case description .................................................................................. 26
Table 3-10 create service use case description ............................................................................. 26
Table 3-11 view service use case description ............................................................................... 26
Table 3-12 login use case description ........................................................................................... 27
Table 3-13 Data dictionary ........................................................................................................... 28
Table 4-1 Design Goal Priority ..................................................................................................... 44
Table 4-2 Design Goal Priority ..................................................................................................... 60
Table 4-3 Access control table ...................................................................................................... 62
vi
Acronyms
App-application
Os-operating system
E.C- Ethiopian calendar
ATM - Automated teller machine
GPS – Global position service
HTML- Hypertext markup language
Org –organization
Mac
SQL-structured query language
MS-Microsoft
Github
UI- User interface
Pkt - Packet
ID – Identification
SDK-software development kit
BR-Business rule
H- High
M- Medium
L- Low
i.e. - that is
e.g. – example
MB-megabyte
API - Application program interface
RAM- Random access memory
OS – Operating system
ATM- automated teller machine
GPS- global positioning system
UML- Unified Modeling Language
UI- user interface
POI- Point of interest
GSM- Global system for Mobile communication
GPRS- General Packet Radio Service
XML- extensible Markup Language
JSON- JavaScript Object Notation
HTTP- Hypertext Transfer Protocol
CPU- Central processing system
HW- Hardware
DB- Database
vii
Chapter One
1.1 Introduction
Today, people want to adapt their living environment to intelligent environment, which includes
a powerful infrastructure and some intelligent objects. People do their tasks through the
intelligent environment, it could be by using their smart phone apps. A mobile app is a computer
program designed to run on mobile devices such as smartphones and tablet computers.
A city guide system is an interactive and innovative navigation system for users requiring just a
standard mobile phone or handheld computer. With city guide apps users can select a city's
facilities and services purposefully from the complete spectrum offered.
Adama city guide system is a system that enable users to compose services and navigate
different locations that are located in Adama city or surrounding by themselves. The system
brings users in-depth and authentic or genuine guides to some of their favorite services around
the city. Also it provides essential information for the first-time visitor, frequent traveler, or
long-term resident with easy-to-use contact information.
Android platform or mobile opreting system has been chosen to implement this system.
Android is a mobile operating system (OS) currently developed by Google, based on the Linux
kernel and designed primarily for touchscreen mobile devices such as smart phones and tablets.
(wikipedia.org) The project is intended to explore the realization of city guide over Android.
When the application is completed it will be able to provide different functionality like listing in
category based on user preference, guide users to the locations requested and search and find
services.
1.2 Background
The term "Adama" was pointed to have originated from an Oromo word-"Adaamii". It is a name
for plant called "cactus" in English. According to local people, there were plenty of Adaamii
trees in and around old Adama areas. Later, when the settlement moved to the site around the
new railway station, the name Adama also came along with the people, since the settlers were the
same.
Adama, which has been the original name of the town, retained and or remained until it was
renamed "Nazareth" by Emperor Haile Selasse in 1944. However, recently after the
establishment of Regions during the transitional period, the Oromiya Regional State decided to
retain and restate some of the original names of places in the region. As a result, "Adama", the
original and historical name that is believed to preserve the interest and history of the Oromo was
reinstated.
The opening of Finfinne— Djibouti railway in 1917 was another impetus for the emergence of
Adama as an important commercial center. The beginning of the first settlement of indigenous
1
people to exchange goods and services with the railway workers was the embryo of the process
that later brought about the evolution of the area into the focal as an urban area.
Adama City is located at some 100 kilometers from Finfinne, on the southeast along the main
road to Harar. Its grid references point that the City stretches between 80 33' to 80 36' North
latitude and 390 11' 57" to 390 21' 15" East longitude.
Adama is a busy transportation and the leading city in Ethiopia in holding many conferences
making the city to provide lots of international hotels, big conference halls and much more
services. And some tourist sites like the statue of Aba Geda located in the middle of city or the
martyr's monument at Galmaa Abba Gadaa opening the skyline for the city.
Adama cultural and tourism office is located at Franco near the post office at the center of
Adama city. The organization was established in 2003. Though the organization offer and do a
lot of work. It focuses more on tourism and services found in the city. Besides giving tour to the
people it has other works like:
2
The above information source is found from Adama cultural and trousim office and shows only
different services with out their branch.
The organization have a printed map of the city with detailed information that can used manually
to navigate through the city which is published in november 2007e.c. Information Guide is
focus on providing information like restaurants, bars, museums, movies, ATM, parking lots
and so on in the city. And the organization luck to have automated system to guide a visitor and
tourists through the city which makes it difficult for them to promote the city more.
People, mostly tourists and visitors face with the difficulty of finding services they need to use or
they need to find. Which leads them for excessive cost, energy loss leading them for exhausted
and finally wasting their valuable time.
The current system that can be used to guide a user is only available in manual and it does not
provide enough location information and it’s hard to come by. Due to this reason the existing
manual processing has the following problems.
Cost Problem
Lack of location information and hard to keep it up-to-date since its paper based
User might not get genuine guides information
Poor time management
It takes exesisive time to find the a location on aprinted map compered to Adama city
guide system
Therefore, Adama city guide system is important to over come all the problems that are listed
above and with much more added features and services included in the system like users can
know where they are located and easy search and find functions.
3
1.4 Purpose of the project
Team Composition
Name Responsibility Main Activity Other
Kaleb Girma Team Leader Coordinate and lead the Participate all
Members, Design, activity
Architecture,
implementation and
Documentation
Hanna Abeje Member Requirement Analysis, Participate all
Design, Architecture, activity
implementation and
Documentation
Kalkidan Mulugeta Secretary Requirement Analysis, Participate all
General Design, Architecture, activity
implementation and
Documentation
Mahider Abebe Secretary Requirement Analysis, Participate all
General Design, Architecture, activity
implementation and
Documentation
Mappy Mesfin Member Requirement Analysis, Participate all
Design, Architecture, activity
implementation and
Documentation
Table 1-0-2 Team composition
4
1.6 Objectives of the project
1.6.1 General Objective
The genral objective of this project is to design and develop a dynamic city guidance mobile
application system which allows the user to access the location, direction and contacts of the
city. It gives good services to new visitors in the city and allow them to get the chance to visit
places they would like to see.
Develop a system that shows major services with their location and contacts in the city.
Design and develop a database to store location and information of a certain place.
Develop a mobile app that gives the path to the places they wanted to go.
Develop a system that gives dynamically updated location information to the user.
Allow the service providers to insert new notifications through the backend database
server.
Develop an application that sorts the services in catagories.
1.7 Feasibility
The feasibility studies an evaluations and analysis of the potential of the project. Where
feasibility assessment unveils the economic, technical and operational areas. And risks that are
involved in the implementation of the project. The following are major feasibly concerns that a
business must be in clear light about.
1.7.1 Technical feasibility
Technical Feasibility study is about testing if the existing technology has a potential to develop
or unable to acquire the proposed system. Implementation of the proposed system will use and
run on Android smart phone operating system. Assuming required hardware and software
resources are available for the development and implementation of proposed system. Therefore
we can say the project is technically feasible.
Operational feasibility is a measure of how well a proposed system solves the problems, and
takes advantage of the opportunities identified during scope definition and how it satisfies the
requirements identified in the requirements analysis phase of system development.
Process – Usually the main inputs from the users are simple and easy. So users and also
the system won’t have the difficulty of processing.
Evaluation – The system will benefit anybody who uses it. There might be a miner
threat for tour guide services because users of this system might not need a tour guide.
5
Implementation – implementation will be simple because all resource from inside and
outside will be available will low cost and miner energy. The project will affect how the
current system works; by current we mean the manual guidance system.
Resistance – Since the system will be available only on android mobile operating system
other mobile phone operating system users won’t be able to run the system on their
devices. And the system will support only the English language and some peoples might
fine that difficult.
Adaptation– Users won’t need much time to adapt the system because the system is
much user friendly and adaptable.
Therefore the advantage of the system is it makes the city guide process affordable and time
saving with simple point-to-point direction and navigation.
Some features of the application are dependent on internet connection so in order to get a
dynamic system we need to have an internet connection.
Our system gives services only for Adama city only.
This project might not include services like ATM, pharmacy, Parking, police station,
Church and mosque due to time limitation.
6
1.9 Significance of the project
Minimizing the time wasted to find different services by tourists and other visitors.
Providing information for users about the variety of services found in the city
Promoting services for many service providers and also promoting the city and the
surroundings.
Minimizing the cost for users that are egger to find service inside the city.
Providing the user where they are currently located with their exact GPS location.
Since Adama is the leading city in Ethiopia for conferences, the system will provide
information about Conference Halls that are located in the city.
Minimizing workloads for the city’s cultural and tourism office.
1.10 Methodology
We have a limited time so we planned to use Agile software development methodology because
it helps us to test and find errors at the lower stage of development and it reduces risk and also
welcome changing requirements even at late in development. It also helps us deliver working
software frequently from a couple of weeks to a couple of months with a preference to the
shorter timescale. Also promotes the teams to meet several days in a week to discuss progress,
identify problems and plan the day’s activities with the goal being able to produce working
software as quickly as possible.
1.10.1 Interviewing
We’ve chosen interviewing technique because we think it is a good way to gather requirement
information for our project easily. The following are some of interviewees that we conducted:
Ato Aman
Ato Aman is the administrator of Adama Administration office he give us basic information
about the city he told us the city don’t have any system that has been developed before that
help visitors and tourists to roam through the city. He suggested us to talk to Adama cultural
and tourism office for more information.
7
Also we’ve interviewd some people that came for meeting in Adama city.
Ato Endalkachew
He was the cordinater of the meeting and he told us the main problem he faced was to find
the place like manly hotel, resturant, bank, hospital, hall, and was asking peoples around to
find the information they want to get. They don’t have any information about printed map
city guidance map.
8
on the project.
Documentation MS Word, MS Excel Application software we used to
Document our project.
Group working platform Github It allows the group members to
acess the sorce code remotely
that will help the development
to be quick.
Table 1-0-3 Development tools
In this phase we have focused on testing approach in which test cases, conditions and data are
derived from requirements. It includes functional tests and also non-functional attributes such as
performance, reliability or usability.
In this phase we have focused on testing the minimal software component, or module. Each unit
(basic component) of the software is tested to verify that the detailed design for the unit has been
correctly implemented. It is done at class level and resolves every missing syntax errors and
semantics errors.
We will use this phase of testing during integration (implementation) of the completed city
guidance system to verify that it meets its requirements. It is used to resolve the readability of the
system. It occurs after unit testing.
Requirements Analysis and Definition (System Overview): This phase begins with
analyzing what exactly the system has to do. The system overview helps see the big
picture of the project and understand which steps need to be carried out. The product of
this stage is the general system requirements. This document will be modified as the
project is undertaken.
9
Software Architecture and Test Plan: In this phase, it is necessary to determine the
system components covering your requirements and the way these components will work
together.
Implementation (Coding) and Testing: The goal of this phase is building the target
system based on the specifications developed in the previous phases. Transferring the
specification algorithms into a programming language
Release and Installation: after the development and testing process is completed the
software will be released
Operation and Maintenance: The task of this phase is the proper functioning of the
software. To improve a product or system, it should be continuously maintained.
Software maintenance involves detecting and correcting errors, as well as extending and
improving the software itself.
10
1.15 Task and schedule
11
Chapter Two
2 Description of the existing system
2.1 Major function of the current system
Based on our conducted interview to Adama cultural and truism office the manager
provided us that the current system in Adama city is based on manual interaction and also
every information is provided to people with printed map and some fliers.
Based on our analysis on some existing smart phone application (system). Their major
functions are only showing offline map and providing some contact information about
some services.
We can take the following android application for example:
App Description by Developer: Get insider tips and recommendations for the best
hotels, restaurants, shops and many more sights in Addis Ababa, Ethiopia. WedeAddis
Ababa: City Guide and Offline Map is designed to connect Hotels, Restaurants, Shops
etc. to the travelers. It works 100% Offline Including Map.
Major Functions:
Viewing offline map: User have a menu icon dedicated to viewing offline map
Services: Some included services in the app are:
o Transport: Some transport organization listed with their contact number
o Clinic & Hospital: Some Hospitals listed with their contact number
These services and contact information are already integrated into the app. Therefore, the
app won’t make any connection with servers.
12
2.2 Users of the current system
Drawbacks of the system provided by the Adama cultural and truism office;
First the cultural and truism office record and retrieve all information manually and
recorded only on printed paper and map.
The information providing about the city is a time consuming process.
It’s hard to retrieve all service information, direction and location from the printed
paper map.
The communication between the cultural and truism office the user is manually which
is verbal and because of this the communication is very slow and it is cost time and
energy consume
13
2.4 Business rule of the current system
The following table illustrates the business rules of our proposed system.
BR-3 The user should have reading and writing Fact Static
places.
14
Chapter Three:
3 Proposed System
3.1 Proposed system (Overall description of the proposed system)
The proposed system aims at developing an Android based mobile application that guides a user
through Adama city. Data’s are recorded in the remote database server and the application syncs
automatically with the internal database and show the current status of the city. The application
needs an internet and GPS to provide accurate and latest information to the user. The proposed
system consists of the following advantages, time saving, provide information, and provide
direction and location of major services in the city.
This chapter presents solution of the project from architecture of solution including general
architecture, components diagram, class diagram, and data model, to implementation details of
functions.
Normally, city guide should have basic functions: showing map and showing points of interest
(POIs) on map, providing some information about sights or events (e.g. when the Hall is
available). In addition to them, we can add telephone function, the function of adding review. As
well, we explore implementation of functionalities as many as possible based on the features of
powerful Android platform since investigating realization of a tailor able City Guide application
on the Android platform is the main purpose in the project.
MAP
ID Requirement
Priority
4 The city guide can show user’s current position on the map H
15
The city guide can show the route from the current location of the user to the
5 M
point of interest
7 The map only shows the points of interest users are interested in M
Table 3-1 Map in Functional Requirements
A point of interest, or POI, is a specific point location that someone may find useful or
interesting.
Information Retrieval
ID Requirement
Priority
The city guide can retrieve information of events, which will happen right
9 M
now.
10 The city guide can retrieve information about reviews of points of interest M
Users can select what kind of POIs to show on map (i.e. different
11 M
classifications. e.g. hotels, museums, restaurants events, and so on).
Table 3-2 Information Retrieval in Functional Requirements
16
3.3 Non-functional requirement
According to the goal of the project, the resulting prototype should be extendible, tailor able, and
explore and put existing innovational technologies as many as possible as building blocks in the
project. And user interface should be readable, easy to understand, and easy to operate.
ID Requirement Priority
17
iv. Documentation
At the completion of the project, every activity of the entire development, design and other
process will be documented for future reference. There will also be a documentation of how to
use the system and how the administrations manipulate data to database.
v. Accessibility
The accessibility degree of this system can be in many directions. First one is for the Adama city
guide users who will interact with the system to get information, services and directions through
the city. Second the administrator of the system who will interact with the backend system to
build and update service information or data. After lunching this mobile application user can
easily download the application and install on their android smart phone device then users can
access and use the application easily and friendly without any kind of difficulty.
For the users the services are available inside Adama city and the system is accessible anywhere
where internet and GPS system available.
The accessibility of the system will also improve by integrating different frameworks.
In general, for this system to comply with accessibility standards, it should at least need to have
or have the following:
The load time for user interface screens shall take no longer than thirty seconds.
Connectivity with satellite should not take more time.
18
Current location should be provided within 15-30 seconds.
Directions should be verified and provided to the user within 15-30 seconds.
The find in information shall be verified within maximum 15 seconds.
Queries shall return results within maximum 15 seconds.
The system shall be easy to install and use.
i. Error handling
When the users interact with the system there’s a possibility that errors may occur or appear. To
control these in accuracies the system will generate different messages. Errors which are entered
into the system may not be completely avoided but they can be minimized. To do this most of
the system execution buttons will be controlled according to the sequence which the user is
expected to follow or this can be done by the generating different system responses to the input
of the users. Therefore, problem that may occur in the interaction of the system will be handled
accordingly in order to make the system more user friendly.
ii. Usability
The extent to which this system or application can be used is mainly by the community of
Adama city and tourist or visitors who come to the city. The usability of the system is
determined by considering the following issues:
Who are the users including the administrator and the user(customer)?
What do the user and the users want or need to do?
What is the general background of the services and the users?
What has to be left to the system?
How much training do users need?
What and how many errors do users make while interacting with the system?
Can the user recover from errors? What do users have to do to recover from errors? Does
the product help users to recover from errors? For example, does the app present
comprehensible, informative, non-threatening error messages?
Answer to these can be obtained by conducting user and task analysis at the start of the project
and through the development life cycle. User focused requirements analysis, building service
profile and usability testing and different evaluation methods will also provide the solution.
19
iii. User Privacy
The system will provide the proper security to the user. Like the current location of the user is
only visible or shared with the user. The system will not track the user’s location while the
application is off and user’s search will not be recorded. Therefore, the users shall not fear about
privacy issues and being exposed by the system.
Users precondition
1. User must have smart phone running Android OS higher than 4.0 (Ice cream Sandwich)
2. The system or the Application must exist or installed on the user’s mobile phone (Smart
phone)
3. The application need Network connection with the internet and with Satellite (GPS).
Flow of events:
Flow of events:
Pre-condition: system must be launched; user must know what he/she want to search, user
should write the right spell of their search
20
Participating instance actors: Ephrem
Flow of events:
Pre-condition: system must be launched; user must know what he/she want to browse
Flow of events:
21
11. System shows direction from Samson’s current location to Adama Germen Hotel.
Pre-condition: system must be launched; user must know what he/she want to browse
Flow of events:
Let say there is an annual conference in Adama city. And Participants named Samson came from
different city in country. The conference finishes on Friday. And he wants to spend the weekend
visiting the city before he leaves. He downloads the Adama city guide app and installs it on his
Android Smart phone. Then plans his route for the next day’s visit.
First he starts the App on his mobile phones. Then he browses through the categories for POIs
that he wants to visit. Then he taps on the Hotel category from the category list, the screen shows
the location of the hotel then he taps on the POIs showed on the map to see detail information.
Then after he taped on the POIs the detail information will open on another activity. Then the
new activity shows Description, contacts and rout icon. If he selects the rout direction, the app
will launch the map activity and show a direction from current position to the points of interest
on the map.
22
3.5.2 Use case model
Use case id 1
Use case name SEARCH
Actor Ephrem
Description Search is to enable users choose what kind of
POIs to show on map such as bank, hotel and
so on, it retrieves POIs data from Database.
Precondition Ephrem should have smart phone that is
running android OS
Ephrem must install the Adama city guidance
If Ephrem must enter the right spelling of his
search on the search space.
Post condition The Search Categories look for the POIs from
the local database in the phone, and opens the
selected POIs on a new activity holding the
route and description about the place.
Normal flow Ephrem opens the application the system
show the browse services, the current location
23
and Ephrem types his search on the search
space
Table 3-4 search use case description
Use case id 2
Use case name Browse services
Actor Ephrem
Description Browse Categories is used to enable users
choose of what kind of POIs or service to
show on the category such as bank, hotel and
list them in catagories.
Precondition Ephrem should have smart phone that is
running android OS. Ephrem must install the
Adama city guide app.
If Ephrem must enter the right spelling of his
search on the search space.
Post condition Browse Services opens the POIs in a new
activity which holds contact and description
of the POIs.
Normal flow Ephrem opens the application; Ephrem select
menu then category. The category shows the
services that include in the system. Ephrem
continue browsing through the service until
he found the one he wants.
Table 3-5 browse service use case description
Use case id 3
Use case name View description
Actor Samson
Description View description helps the user to get the
description of services of their POIs. It could
be to get the description of such as bank, hotel
and so on, it retrieves POIs data (description,
contacts, longitude, latitude) from Database.
Precondition Samson should have smart phone that is
running android OS. Samson must install the
Adama city guide app.
Post condition View description of services will be shown
based on POIs or services that Samson
selected.
Normal flow Samson select menu then category button
The category shows the services. Samson
select his particular service then system views
description.
Table 3-6 view description use case description
24
Use case id 4
Use case name Get direction
Actor Ephrem
Description Get direction helps the user to get the
direction of services and POIs (bank, hotel
…), it shows POIs location on Google map.
Precondition Ephrem should have smart phone that is
running android OS. Ephrem must install the
Adama city guide app.
Post condition Get direction of services will be shown based
on the POIs Ephrem. Ephrem will be routed
to his POI.
Normal flow Ephrem lunches the app and select menu then
category button. The category shows the
services that include in the system. Ephrem
select the service then press the button “Show
on Map” to see the location of the services.
Then Ephrem will tap on the icon to get the
route from his current location to his POI.
Table 3-7 get direction use case description
Use case id 5
Use case name Plot on map
Actor Ephrem
Description Plot on map will pin point the service’s
location that the user selected on the map.
Precondition Ephrem should have smart phone that is
running android OS. Ephrem must install the
Adama city guide app.
Post condition Ephrem will be provided with the location of
his POIs pin pointed on the map.
Normal flow Ephrem select menu then category button
The category shows the services that include
in the system. Ephrem select the service then
press the button “Show on Map” to see the
location of the services on the map plotted.
Table 3-8 plot on map use case description
25
Use case id 6
Use case name Get location
Actor Ephrem
Description Get location helps the user to get his/her
current location and pin point it on the map.
Precondition Ephrem should have smart phone that is
running android OS. Ephrem must install the
Adama city guide app.
Post condition Get location will notify the user his/her
current location. User then can browse their
surroundings for services or POIs.
Normal flow Ephrem lunches the app and then press the
icon that will get his current location.
Table 3-9 get location use case description
Use case id 7
Use case name Create services
Actor Administrator
Description If the new services appear on the city and
have to be added to the system the admin will
create new services on the backend system.
Precondition First admin should have the right
authentication meaning username password.
Post condition New services will be pushed to the system
from the backend.
Normal flow Admin login to the backend and creates
services.
Table 3-10 create service use case description
Use case id 8
Use case name View services
Actor Administrator
Description View services used for viewing the new and
the updated services.
Precondition First admin should have the right
authentication meaning username password.
Post condition View the updated and created services
Normal flow Admin login to the backend and press the
view services button. System will view the
services with their description.
Table 3-11 view service use case description
26
Use case id 9
Use case name Login
Actor Administrator
Description Login page to the backend page
Precondition First admin should have the right
authentication meaning username password.
Post condition login to the data base and can
Update service
Create service
View service
27
3.6 Object Model
3.6.1 Data dictionary
The data dictionary is used to define each class contain in the system and the member of class
like attribute, operation and description about the classes.
28
3.6.2 Class diagram
The figure below presents the class diagram of system; Map is the core and the start of the whole
application. Map extends MapActivity from the library com.google.android.maps. And
MapActivity extends Activity. Activity starts on the method onCreate(), and can creates a
window for you in which you can place your UI with setContentView(View). Map can create
Intent managing interaction between different components such as Activity and
ContentProvider.
Android uses SQLite database system. SQLiteOpenHelper is a helper class to manage database
creation and version management. In the project, we need to build a database class extending
SQLiteOpenHelper which is LocalCategoryDatabase handling POIs data.
29
3.7 Dynamic model
3.7.1 Sequence diagram
GetMyLocation: The message sequence chart below shows implementation of the functionality
of showing user’s current position on map.
30
Search: Users can choose what kind of POIs to show on map. There is a message sequence chart
below showing how to implement the search functionality. From Menu to start Search
component, users choose what kind of POIs, and the Search Component gets selected kind of
POIs data from local sight database, then call MapActivity to update map with the selected
kind of POIs data.
31
Browse category: Users can choose what kind of POIs to show on map, the categories have
Bank, health center, Stadium, hotel, Hall, and other. There is a message sequence chart below
showing how to implement the browse category functionality. First open the Menu then
category component, the category lists the services, the user gets selected based on his/her
POIs data from local sight database, then display the selected POI on the map.
32
Browse map: Users can browse services from the Map then, the LocalSightdatabase give the
detail about the browsed service to the map, after the location is found the user can route the
direction to the specific service location. There is a message sequence chart below showing how
to implement the browse map functionality.
33
About: When the user went to get the information about the mobile application and about the
developer. There is a message sequence chart below showing how to implement the About
functionality. Menu then About component, the user gets information from local sight
database.
34
3.7.2 Activity diagram
Category Browse: the following activity diagram show how the user browses through
the category. First he/she will open the application then the menu and the category.
Finally, user can start browsing.
35
Search: the activity diagram that is shown below illustrates the search activity. After the
user runs the application he can tap on the search bar and input the search that he/she
wants
36
About: The following activity diagram illustrates the about activity. User can see About
the application and the developer team by tapping on the menu and the About tab.
37
3.7.3 State Diagram
Category browse state diagram: The following state diagram shows how the category
browse works when the user interacts with the system. The user can get service list form
the category menu when he/she taps on the menu then the will show the Menu List after
that user will tap on category to view the service list.
Search state diagram: The following state diagram shows how the search process works
when the user interacts with the system. The user can search services by tap on the
search bar. If the user taps on search bar correctly, then the service will retrieve the
services from the database based on POI. Finally, the results will display suitable result
for user.
Description state diagram: The following state diagram shows the states and events that
the user and system will have while trying to view description about services.
o select from particular service of lists from the category list
For example, select hotel service from the category list
o particular service will be listed from category lists
Continue example from hotel services select specific hotel
o Finally display full information of service
Final example gives full information of selected (specific) hotel
38
Figure 3-13 Description state diagram
get my location state diagram: The following state diagram show how to get the user
location. The users tap on the get my location button, then the user’s location is pin
pointed on the map if the process is successful or else error message is displayed.
39
3.7.4 User interface
Home: User run the application Adama City Guide on a smart phone running android.
They start the application Adama City Guide. It shows like Figure 3-1 below: We can see
showing of a Map. And on the map there are some points of interest. We also can see
zooming buttons, current location button is for showing user’s current position on map
and the menu button and the search bar.
40
Menu: User presses the key “menu” on the mobile phone. It shows like Figure 3-2. We
can see that there are 3 options in menu. Search is for choosing what kind of POIs to
show on map, Category is for exploring the variety of services in more user friendly
view, About us is a little detail about the application and the developer team.
41
Category: is for exploring the variety of services in more user friendly view.
42
Chapter Four
4 System Design
4.1 Overview
This is the System Design document for Adama city guide system. The document includes the
design goals, the proposed system Design and the object design.
Performance
In order for the Adama City guidance application to give the user a good service it should meet
the following performance criteria’s.
Response time: the system is going to interact and respond to user’s request in a maximum
of 15 second, like searching for POIs in the category.
Memory: The device needs an average of 10-15 megabits of free memory to be loaded on a
user’s mobile.
Dependability
Adama city Guide system should achieve these dependability characteristics in order to resist
crash.
Robustness: since the mobile system updates the database from a web based database server
there might be an error during the process of updating a data due to server failure, network
failure but the system will provide an error message in synchronizing the data and continue
without crushing.
Maintenance
Extensibility: if it is needed to add new functionality to the system, this must be achieved by
only making the next version of the application.
Modifiability: if some functionality requires to be modified, this modification must be done
specifically to that function without affecting the overall functionality of the system, and the
system automatically updates itself when internet connection is available.
Portability: the system is developed to be viewed in a mobile application that fulfills the
requirement and it can be installed on another device just by sending the apk (Application
Package) file.
43
End user
Users can get their visiting route based on their interests. In addition, the guide can give
information; provide special information to end users according to their personal preference.
From the user point of view, the system should provide the following end user criteria’s so
that the system can achieve At least 90% usability by the user.
Utility: in order to help the user, to easily understand and interact with the system, the
system language must be easy understandable that expresses the function that activity is
giving.
Usability: for the system to be more interactive in order to promote its usability. The
following usability principle has to be considered.
o Learnability: The ease with which new users can begin effective interaction and
achieve maximal performance. Any new user can use the system without any
effect (or any ambiguous). When the application opens the system shows current
location of the user and there is menu and search bar on the above interface.
The system
Has no ambiguous words.
Has clear and easy interfaces.
Does not require additional learning or training to use the system.
o Flexibility: The multiplicity of ways the user and system exchange information
The system
Supports the user to get the services that are stored in the database
by using search.
Supports Multi-threading where users can pertain more than one
task. Like routing and searching at the same time.
Supports the user to get the services using menu then categories,
categories show the list of services.
o Robustness: This process helps the user to achieve his/her goal
Inside the system the user’s goal could be
To get direction.
To get services those are found in Adama city.
Therefore, the system will achieve user satisfaction based on the above usability
principles.
44
4.2 Proposed system architecture
4.2.1 Overview
The system architecture can be represented as the following diagram puts, where the user can on
the smart phone side access the system. Whereas the system will simultaneously be connected to
a satellite using the smart phone’s GPS and connected to the internet to access the database.
45
Figure 4-2 General System Architecture
The diagram above presents the general architecture of the prototype. we build the project based
on the assumption that users use their Android phones in the environment with wireless network
and having the ability of getting GPS data. GPS will be used for automatic localization since
android phones are usually equipped with GPS. MapActivity is the core and the start of
application. MapActivity imports Google Map as the map, and retrieves information of POIs
from remote Server. MapActivity calls MapOverlay to add POIs mark to Google Map.
Google Map is chosen as the map of Adama city guide; we consider it is easy to be implemented
on the platform of Android. Both Android and Google Map are released by Google. And we can
provide the most recent updated map since Google Map is frequently updated.
Server is responsible for providing points of interest (POIs) information or service information
including location, name, description, and category. The responsible that can feed this
information could be Adama cultural and tourism office. Adama city guide application visits
Server to get this information, which could be provided in the way of XML like below.
46
<sight>
<name>Adama German Hotel</name>
<description>Adama German Hotel is a large, luxury hotel situated in Franko
</description>
<address>http://Adamagerman.com</address>
<category>Hotel</category>
<latitude>63.4267</latitude>
<longitude>10.3964</longitude>
</sight>
The name is the name of POI or service, the description is little information about the service,
the link is the website of the service if available and users can get more information about
service. The category is the category of POIs such as bank, hotel and so on. The latitude and
longitude is the location of POI. When the application starts, it retrieves POIs data from XML
document and stores the data in the local sights database.
The android app make a request to a server php script using a class, Which handles
communication, opens a connection and receives a json string which it then processes into a
JSON object.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
47
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
// Method to issue HTTP request, parse JSON result and return JSON Object
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
try {
// get a Http client
DefaultHttpClient httpClient = new DefaultHttpClient();
48
} catch (IOException e) {
e.printStackTrace();
}
try {
// Create buffered reader for the httpResponceStream
BufferedReader httpResponseReader = new BufferedReader(
new InputStreamReader(httpResponseStream, "iso-8859-1"), 8);
// String to hold current line from httpResponseReader
String line = null;
// Clear jsonString
jsonString = "";
// While there is still more response to read
while ((line = httpResponseReader.readLine()) != null) {
// Add line to jsonString
jsonString += (line + "\n");
}
// Close Response Stream
httpResponseStream.close();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
try {
// Create jsonObject from the jsonString and return it
return new JSONObject(jsonString);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
// Return null if in error
return null;
}
}
}
The php server, open an mySql connection to your SQL database, run an mySql->query() and do
something like the following with the result:
if (mysqli_num_rows($result) > 0) {
// looping through all results
$response["apps"] = array();
$apps = array();
$apps["name"] = $row["name"];
$apps["longitude"] = $row["longitude "];
$apps["latitude"] = $row["latitude"];
$apps["address"] = $row["address"];
$apps["description"] = $row["description "];
49
}
// success
$response["success"] = 1;
This iterates through the database response and encodes it into a JSON string which is sent back
to the android app which can then process it.
50
4.2.3 Request Processor
This section explores how the user and request processor interact using architecture design
diagram. A top-level overview of the system, a brief overview of system processes or
functionality are described in the below section.
51
4.2.4 Subsystem Decomposition
Navigation: one of the subsystems in the Adama city Guide, helps to assess the location of
places. Implements PlotOnMap() and GetDirection() classes, to plot the exact location on map
and get the location of the user at a time.
Service Browsing: it is another subsystem used to search the services and get the full description
of the searched service in Adama city by implementing viewDescription() class. The services
and descriptions get from Service management subsystem.
Service management: The third subsystem of Adama city guide, the manager or someone
authenticated person with login user name and password can create new services, updates the
existing service and can view registered service.
52
4.2.5 Hardware/ Software mapping
The system will have two processes, deployed in single or separate machine, that run in parallel,
namely, web server process and the database process. The database process, which runs on
Server database engine, is responsible for maintaining storing updated map information. Where
us the web server process is responsible to host a restless web service that accepts a request from
the mobile application and send the updated information from the database server.
53
Figure 4-9 LocalCategoryDatabase mapping
54
Figure 4-12 LocationManager mapping
55
4.2.7 Component diagram
The component diagram below contains all the components in the system. The Server will not be
implemented in this project, but we give the idea of implementation as described in last section
and emulate Server for testing the final prototype. The remaining parts will be implemented.
The application starts at the component MapActivity. MapActivity imports Google Map,
retrieves points of interest (POIs) data from Server and store it in LocalSightsDatabase that is
created when application starts and destroyed when application finishes, calls MapOverlay
which is overlay object of Google Map to draw POIs mark on map or further through route
direction is to show route between user’s current location and the service, and create Menu,
which has 3 options.
56
Hardware components
The following figure shows the hardware components regarding the communications between
the components. The user’s smart phone will communicate with the GPS or satellite that
provides the users location.
Software Components
The main SW components building the basis for the Adama City Guide application.
57
4.2.8 Deployment diagram
The following deployment diagram shows the Adama city guide system. In the first node which
is the User’s smart phone with the second node Adama city guide systems pre-installed. The
system contains the following components inside it:
The search: enable user to easily accesses his/her search needs.
The map: contains information, direction and location of services plus its can pin-point
locations of the user.
The category: provides displays services and their information.
The third node show the database server
Is used to store different types of data for the application.
It communicates with the first and second nodes using internet connection.
The forth node is the GPS satellite where is provides the exact location by passing longitude and
latitude coordination to the first node through GPS connectivity. Then the first node which is the
device will pass the coordination to the second node which is the system.
58
4.2.9 Boundary condition
Most of the system design effort is concerned with steady-state behavior. However, the system
design phase must also address the initiation and finalization of the system. This is addressed by
a set of new uses cases called administration use cases
Adama City Guide is a system that runs properly when the user needs to use the system. But the
backend side must always be on the run. Therefore, users of the application (system) must start
the application from their android smart phone when they wish to use the system. After the
application (system) is started up, it is also necessary to connect the Internet and the Satellite.
For administrator to be able to access to the backend system it is also necessary to connect the
Internet through web browser, which must be installed on the machine to start the connection to
the server.
User interfaces of the system are accessed only when the user lunches the application from
his/her device and start using the application. Therefore, user interfaces do not do anything when
the application (system) is on the state of off or pause, because for user interfaces to run the
system must be already started up and running.
Termination
Describes what resources are cleaned up and which systems are notified upon termination
("termination use cases"). If the application or the system is not started to run, then the
application interface will not be visible to the user and application will not be active. After the
user finishes his/her interaction with the system, he/she can terminate or kill the
application(system) from the Android’s multitasking screen.
Failure
There could be many possible causes for failures: Satellite connectivity failure, internet
connection failure, Bugs, errors, external problems (power supply).
59
Error Cause Forecast Solution
Insufficient Space on Device Android allocates fixed Free up space
storage space for apps. Users
can’t expand it. So user might
run into this error even if
his/her device indicates a
great deal of remaining
storage capacity.
System User Interface (UI) Could be many internal restarting the device
not working causes wiping the System UI cache
Internet not working Improperly configured APN Configure APN to get mobile
settings. data. If these settings aren’t
No internet from the user properly configured, user
internet service must manually set them.
provider(ISP). If the first step does not work
user should contact his/her
ISP.
60
4.2.10 Database design
The following database design shows how Adama city guide system’s database structure. The
database contains one table for the services which are hotel, bank, stadium, health center,
university, gas station, hall, super market. The table “POIs_table” contains the service’s name,
longitude, latitude, address information, category and description.
61
4.2.11 Access controlling
The table below shows the global access table, describing the access relation between the actors,
objects and operations in the system:
GetRoute getRoute(decimal,decimal)
LocationManager getMyLocation()
CurrentLocation getLocation
LocalCatagroyDatabase getData(POIs_db)
CategoryList listCategory()
62
Reference
[1] Maps.me, "MAPS.ME (MapsWithMe), detailed offline maps of the World for iPhone,
iPad, iPod, Android, Amazon Kindle Fire and BlackBerry", http://maps.me,
accessed Jan. 7. 2016..
[4]H. [closed], "How can I fetch data from a web server in an android application?",
http://stackoverflow.com/questions/16545378/how-can-i-fetch-data-from-a-web-
server-in-an-android-application, accessed Jan. 7. 2016..
63