Professional Documents
Culture Documents
AllinOne-Templet Final
AllinOne-Templet Final
TECHNOLOGY
CENTER OF INFORMATION TECHNOLOGY AND
SCIENTIFIC COMPUTING
DEPARTMENT OF SOFTWARE ENGINEERING
Team Members
Blen Aklilu – ATR/1561/05
Imran Abdulkadir – ATR/4616/05
Samson Tekleab – ATR/5296/05
Zeyneb Abdulkader – ATR/4661/05
March ,2017
Addis Ababa Institute of Technology
Information Technology and Scientific Computing
This Project documentation submitted in partial fulfillment of the requirements for the Degree of
Bachelor of Science in Software Engineering.
March, 2017
i
Declaration of Originality
We declare that this project is our original work and has not been presented for a degree in any
other university.
This project documentation has been submitted for examination with my approval as university
advisor:
March, 2017
ii
ACKNOWLEDGEMENT
Firstly, we would like to thank our department Center for Information Technology and Scientific
Computing for providing the opportunity and infrastructure to do this real project and creating
this chance to demonstrate our skill we gained on our five year stay in the campus.
Secondly, we would like to thank the project coordinating committee for giving us orientation
about the entire project procedure, providing a project guideline and templets for the
documentations.
Thirdly, we would also like to thank our advisor, Mr. Fitsum Alemu for his continuous help and
support throughout the project.
Last but not list we would like to expand our deepest gratitude for all individuals who have
made significant contribution to the success of this project
iii
ABSTRACT
Landmark-based navigation is the most natural concept for humans to navigate themselves
through their environment, especially if the environment is new. It is therefore desirable to
incorporate this concept into mobile systems since the availability of maps in digital form and
since GPS is supported by the current mobile technology. This project is specifically intended for
Addis Ababa Institute of Technology compound that helps newly joining apprentices, guests and
clients to get their way around.
The Navigation System is user friendly with an interactive map which helps all kind of users.
The system is enriched with course mapper, path tracker and continuous update of position by
GPS.
iv
Table of Contents
List of Figures..............................................................................................................................viii
List of Tables..................................................................................................................................ix
ACRONYMS..................................................................................................................................xi
Chapter 1: INTRODUCTION.........................................................................................................1
1.1 Background............................................................................................................................1
1.7 Scope......................................................................................................................................7
1.8 Methodology..........................................................................................................................8
2.1 Introduction..........................................................................................................................14
2.2 Scope....................................................................................................................................14
v
2.3 General Description.............................................................................................................14
2.12.2 Availability.................................................................................................................34
2.12.3 Performance................................................................................................................34
2.12.4 Maintainability............................................................................................................34
vi
3.1 General Overview................................................................................................................36
...................................................................................................................................................45
BIBLIOGRAPHY..........................................................................................................................57
APPENDIX....................................................................................................................................58
List of Figures
vii
Figure 1 - Network Diagram..........................................................................................................11
Figure 2 System Flow Diagram.....................................................................................................16
Figure 3 User Interface for Map view...........................................................................................17
Figure 4 User Interface for Search.................................................................................................18
Figure 5 User Interface for Get Description..................................................................................18
Figure 6- User Interface for Map Information...............................................................................19
Figure 7- Use Case Diagram..........................................................................................................25
Figure 8 - Context diagram............................................................................................................37
Figure 9- Layer 1...........................................................................................................................38
Figure 10 - Layer 2........................................................................................................................39
Figure 11 - Layer 3........................................................................................................................39
Figure 12 - Deployment Diagram..................................................................................................40
Figure 13 - Class diagram..............................................................................................................41
Figure 14 - Get Map Information..................................................................................................42
Figure 15 - Locate User.................................................................................................................43
Figure 16 - Recognize Voice.........................................................................................................43
Figure 17 - Respond with voice.....................................................................................................44
Figure 18 – Search.........................................................................................................................45
Figure 19 - Set Preferences............................................................................................................45
Figure 20 - Set location..................................................................................................................45
Figure 21 - Show Important Landmarks........................................................................................46
Figure 22 - Track User...................................................................................................................47
viii
List of Tables
ix
Table 27- User Class......................................................................................................................49
Table 28 - Attribute Description for User Class............................................................................50
Table 29 - Operation Description for User Class..........................................................................50
Table 30 - Route Class...................................................................................................................51
Table 31 - Attributes description for Route class..........................................................................51
Table 32 - Operation description for Route class..........................................................................51
Table 33 - Location class...............................................................................................................52
Table 34 - Attributes description for Location class.....................................................................52
Table 35 - Operation description for Location class.....................................................................52
Table 36 - Map Information class..................................................................................................52
Table 37 - Attributes description for Map Information class........................................................53
Table 38 - Operation description for Map Information class........................................................53
Table 39 - Speech Recognizer class..............................................................................................53
Table 40 - Attributes description for Speech Recognizer class.....................................................54
Table 41 - Operation description for Speech Recognizer class.....................................................54
Table 42 - Speech Responder class...............................................................................................55
Table 43 - Operation description for Speech Responder class......................................................55
Table 44 - Navigation Class..........................................................................................................55
Table 45 - Attributes description for Navigation class..................................................................56
Table 46 - Operation description for Navigation class..................................................................56
x
ACRONYMS
xi
Chapter 1: INTRODUCTION
1.1 Background
Software Development is becoming one of the key trending problem solving process all over the
world. It has branched into almost all our daily routines starting from the moment we wake up in
the morning to the moment we go to bed. We probably have used an application on our phone or
personal computer to get most of our errands done, whether it's for personal matters like where to
eat or which path to take during traffic jams and so on.
Of the all the paradigms of software development, mobile application has wide uses for its vast
functioning area like calling, messaging, browsing, chatting, social network communication,
audio, video, game etc. Mobile application is easy, user friendly, inexpensive, download able and
can run in most of the mobile phone including inexpensive and entry level phone. The usefulness
of mobile devices has increased greatly in recent years allowing users to perform navigation
tasks in a mobile context. The use of devices such as smart phones and tablets which come along
with the excessive use of mobile applications is becoming more and more common, especially in
the university domain majority of these mobile devices have built-in techniques to determine
geographical position. In the last decade, navigation devices have used digital maps to locate the
position of the user and assist in providing navigational directions. Recently, maps have become
more than just visualization tool in navigation systems; they are now an aiding tool for
enhancing the reliability of the obtained navigation solutions.
A navigation system is an electronic map combined with route instructions, usually displayed on
a dashboard video screen. Global Positioning System (GPS) is one of the commonest navigation
systems in the world. Our information system uses GPS which is usually used by civilians as a
navigation system, for this system to function well there needs to be a computer system on the
ground that triangulates its own position by getting bearings from at least three satellites. The
result is provided in a form of geographic positions – longitude and latitude - to, for most
receivers, within an accuracy of 10-100 meters. Software applications can then use those
coordinates to provide driving or walking instructions [1]. GPS accuracies are generally of two
kinds: static mode, accuracy of positions over known control points and dynamic mode, accuracy
of a traveled route in relation to the actual route [2].
1
GIS is a computer system for capturing, storing, checking, and displaying data related to
positions on Earth’s surface. GIS can show many kinds of data on one map. This enables people
to more easily see, analyze, and understand patterns and relationships from the GPS data. With
GIS technology, people can compare the locations of different things in order to discover how
they relate to each other [3]. Both systems have their own unique capabilities, but when paired
together, they create an invaluable resource for a variety of disciplines, including urban planning,
disaster management, and agriculture [4].
Addis Ababa Institute of Technology, which is the part of Software Engineering Department, is
one of the biggest Institute in Ethiopia with an average of 10,000 graduates per year. AAiT
accepts over 15,000 students with prestigious scores from all over Ethiopia every year [5]. As we
all know being a fresh-student in the 5kilo campus is not an easy walk, knowing where classes
are, where the library is or even where the male and female bathrooms are one of the main
challenges. Noticing these problems that these students face every year we as Software
Engineering Students of AAiT wanted to be the first to offer the campus an Information System
that provides all the needed Information for any campus student or guest that needs navigation
throughout the campus.
2
The AAiT campus is composed of a lot of departments with their respective assigned classes,
offices, common library, cafeteria and so on. With little physical indications, such as signs or
building block numbers, navigating the compound to get a certain location is a huge hustle.
The campus faces daily different customers starting from its main user’s, campus students to its
one-time visitor. Being part of the AAiT campus for five years, it’s been observed repeatedly
that newly joining apprentices, guests and clients face difficulty in identifying their objective
destination. Per the current process one uses by passers of the compound to ask for a specific
information which is time consuming for both parties and at the same time could easily be
misguided depending on the nature of the by passer.
The second problem the compound faces is in relation to disabled people. Visually impaired and
physically disabled people are the most affected in regards to poor directional system as well as
inapt infrastructure.
AAiT campus facing all the above stated problems would greatly benefit if one develops an
application where a certain user would get all the necessary information about the needed
location from their hand-held device. Likely our society is becoming more and more users of
different gadgets, smartphones, tablets etc. These devices combined with the right software can
provide new users with location-based information on buildings and facilities in the university
campus. In this proposal, an android application is presented to assist students, guests,
handicapped people and others for easier, timely and effective navigation.
3
1.4 Objective of the Project
1.4.1 General Objective
The objective of this project is to develop a navigation platform for Addis Ababa Institute of
Technology compound.
In order to achieve the general objective, the following tasks will be done
To begin with, the system will first be integrated with the universities network system to be
downloaded by a user at first connection. The design of this application will be very simple with
understandable user interface that will be easy to use. A user will be able to view a topographic
map of the campus with location areas visible for those who have a rough idea as to where they
want to go. In addition to that, there will be a search bar available at the top of the page that
he/she can use to search for a specific location they want to go to.
4
When a user searches for a location, a location pin will drop on the place where they want to go
and a path way will be drawn on the map. The user can follow this line, which will be
continually be updated with the change of position of the user. A user can also search for
academic staff, if the academic staff have their visibility preferences on.
Finally, the system will have other functionalities that can be accessed from the menu of the
application. These options include a list and location of the major offices of campus staff,
important locations such as where the cafeteria or security can be found and an offering of a
small piece of literature about the campus.
The other factor that must be considered is in case of indoor navigation, Atlas indoor requires
pricing per month as the number of users increase to connect to the system. The pricing is listed
in tabular form below.
5
Table 1- Price List
6
1.7 Scope
The Project will concern itself in the confines of the AAiT campus and will have modular parts
for it to be applicable at other campuses as well as other large institutions. So, it can be built out
to serve others.
7
1.8 Methodology
1.8.1. Data Collection Methods
We will try to filter and perform a rudimentary data analysis on our data collection. With data
gathered from stakeholders we plant to have a clear and well defined requirement.
The Data that we will acquire is that of the most important and essential information that a
student will need during his study at AAiT.
The Library
The Registrar
The Cost-Sharing Office
Classrooms
Department Staff Offices
8
We will also have full information on major procedures that a student is involved in such as
1.8.3. Implementation
For our development process, we plan to use Evolutionary Development Waterfall Model
(EDWM). This model is an evolution of the traditional Waterfall Model. It adds feedback
mechanisms and iterative approaches to software development, that are missing from the
traditional Waterfall Model [6]. Using this model, we will sequentially develop our application.
We may have some uncovered angles in our requirement and this model will help us make up
solutions during the development process. The other strong point of this model is that it
minimizes the risk of our project not fulfilling its objective since we will be developing
incrementally.
9
We plan to have unit test major and essential functions in our applications. We also plan to test it
with different users and get their feedback to make adjustments before we release our final
application.
We created this chart – Activity Network Diagram – where the nodes (the boxes) represent the
nine major steps involved in building this project. Arrows that connect the nodes show the flow
of the process.
Activity Time(days)
A Brainstorming Ideas 2
B Title Approval 6
D Requirement 30
E Data Collection 16
F Design 30
G Implementation 84
H Testing 30
I Finalizing project 30
10
Figure 1 - Network Diagram
Some of the process steps (nodes A and E) run in series, while other process steps (nodes D, E,
F, G and H) run in parallel. Notice that Step B cannot happen until step A has been completed.
Likewise, step C cannot happen until step B has completed. Step H cannot happen until steps D,
E, and F have completed – and ALL need to be completed before Step H. So, nodes A and E are
running in series. Nodes D, E, F, G and H run in parallel. This is important to know because
those steps that are running in parallel most likely will have different expected completion times
The legends that are presented on top of each task present four quadrants: The upper quadrant
present the earliest start (ES), earliest finish(EF). For Example, the earliest start of task C starts
on day 8 which is the earliest possible time task B ends. The lower quadrants present the latest
possible time a task could start and finish (LS, LF).
The number that is on top of each legend is called Total slack. The total slack can be calculated
late finish and subtract early finish.
11
The Critical Path means is that this tasks must be finished on time as regarded as their estimated
time duration for overall project to remain on schedule. As you can see this project has 0 slack
for each task which means every task will be delivered on time.
Literature on navigation system designing are to be read and similar Navigation systems will be
assessed and adapted localizing them to the need of AAIT campus navigation. The formulated
AAIT campus navigation system is to be discussed with friends and advisers for further
development. The AAIT Navigation system will be tested within the campus before it is released
for end users.
The project team will be handling Quality Assurance related issues and tasks in a coordinated
manner. There will be constant dialogue, sharing of information and several ways of
communicating (by phone, MeisterTask, Slack and direct meetings) to keep the quality in what
we do at a satisfying level. By establishing a mutual agreement on roles, routines and
responsibilities we will reach our Quality Assurance goals. The main goal is to develop a system
based on the specifications from the customer.
All the members of the project have different backgrounds, skills and competence. The best way
to bring quality to both product and process in the project will be to establish a good working
environment. This will be important since the process of developing software systems often is
carried out by the means of creativity, skills and experience.
We have agreed upon certain issues that will give us a quality management:
12
1.9.2. Communication Management Plan
13
Chapter 2: Requirement Analysis
2.1 Introduction
requirements analysis encompasses those tasks that go into determining the needs or conditions
to meet for a new or altered product or project, taking account of the possibly conflicting
requirements of the various stakeholders, analyzing, documenting, validating and managing
software or system requirements [9]
2.2 Scope
The Project Navigation System for AAiT will concern itself in the confines of the AAiT campus
and will have modular parts for it to be applicable at other campuses as well as other large
institutions. So, it can be built out to serve others.
14
Navigation system throughout the technological world have been mainly dominated by general
directives to major cities and town.
There are applications like CampusNav, an android application providing navigation for eight
universities located in the United States. The system was designed to navigate to any building,
filed, dining hall and many more location at the school [2]. This application is only providing
navigation for those eight universities and it is fairly unresponsive and unstable, thus making
ineffective. We aim to make our application fairly stable and efficient compared to its peers.
The navigation system for AAiT here at hand specifies the general idea and focuses on detailed
information representation of the AAiT campus, easing the process in terms of time efficiency
and adequacy when it comes to information distribution.
Users with basic linguistic ability of either Amharic or English to navigate through the interfaces
placed within the application and that of a considerable know-how on to work in tandem with
basic website characters and the internet in general.
15
Figure 2 System Flow Diagram
Another constraint that can be mentioned is that Amharic accents are not recognized in android
systems withholding us from being able to assist those using the voice navigation of our system.
We plan to build and train our own model.
16
Mic and GPS capabilities of phones (hardware wise) using our system are assumed to be within
the same range of performance as our testing devices. Newer devices are assumed to have better
results because they use the Wi-Fi and Bluetooth interfaces in addition to the GPS. It is also
assumed the user will have GPS turned on while using the application
17
Figure 4 User Interface for Search
18
Figure 6- User Interface for Map Information
19
2.9.2 Hardware Interfaces
There is no specific hardware requirement
ID FR:01
Name Register
20
Table 5- Functional Requirement 02
ID FR:02
ID FR:03
ID FR:04
Description The user gives the input about the place s/he
21
has to reach using text input
ID FR:05
Description The user gives the input about the place s/he
has to reach using voice input
ID FR:06
22
Table 10 - Functional Requirement 07
ID FR:07
ID FR:08
23
Table 12 - Functional Requirement 09
ID FR:09
ID FR:10
24
3.11 Use Cases
3.3.1. Use Case Diagram
25
3.3.2. Use cases
Table 14 – Register
Preconditions: User shouldn’t already be register, User should connect to a local area network
Extensions
26
Table 15 - UC - 02 Render Map
Preconditions: - The user should approach the AAiT campus and install the application
Extensions
Post-conditions: The user will know where they are in comparison to the compound
Extensions
27
Table 17- UC-04 Vocal Search
Extensions
28
Table 18- UC-05 Text Search
Extensions
Primary Actors: The user can get locations that are important
Post-conditions: The user will get locations without the need for searching
Extensions
29
Table 20- UC-07 Track User
Goal: A path will be drawn on the map along with description of the destination
Post-conditions: User will get the route and detail of their end point
S 1. The system will provide a route and a description about the destination
S 2. The system will draw the route on the map view
S 3. The system will provide direction via voice output
Extensions
30
Table 21 - UC - 08 Set Location
Preconditions: User should connect to Local Area Network, GPS must be on and User
Preference must be visible
Extensions
31
Table 22 - UC – 09 Locate User
Preconditions: User should connect to Local Area Network, GPS must be on and User
Preference must be visible
Extensions
32
Table 23 – UC – 10 Set preference
Preconditions: User should connect to Local Area Network, GPS must be on and User
Preference must be visible
Extensions
33
2.12 Non-Functional Requirements
2.12.1 Error handling
The system is expected to handle errors encountered during run time. If an error occurs, the
system will try to identify the error and notify the user so that he/she can take an appropriate
correction.
2.12.2 Availability
The server should be available 24 by 7 uptime to serve user requests. It will be available any
time with internet connection
2.12.3 Performance
The new system accomplishes tasks within good response time within 100 to 200 milliseconds
and produce output within good throughput time. The application will show a splash screen
while it loads the map view and other slow components or indicate that loading is in progress
and fill the information asynchronously.
2.12.4 Maintainability
The application should be easy to extend. The code should be written in a way that it favors
implementation of new functions.
In order to make maintainability easy for new coders in the future commenting will be included
for the code.
The information provided by the application about certain landmarks’ functions is not absolute.
Many business processes and their associated places are subject to change without regards of the
application, so the information will not be very specific and up to date.
The Voice Recognition is not a dynamic in the sense that it will not support various
commands(inquiries) than more dynamic applications such as google assistant and Siri. The
34
2.14 Design Constraints
Since the application is designated for mobile handsets, limited screen size and resolution will be
a major consideration. Creating a user interface which is both effective and easily navigable will
pose a difficult challenge. Other constrains such as limited memory and processing power are
also worth considering.
35
Chapter 3: SYSTEM DESIGN
This leaves as with “everything is connected with everything” [1], meaning we will have many
and very complex classes that are interconnected. We can list out the difficulties the basic
architecture such as: -
1. Complexities in our Activity classes may lead to God Objects which are untestable and
unmaintainable
2. Restarting Background tasks is often not clearly defined in the basic architecture and
sometimes will result in "progress bar forever" bug [2].
- View is a layer that displays data and reacts to user actions. On Android, this could be an
Activity, a Fragment, an android. View or a Dialog.
- Model is a data access layer such as database API or remote server API.
- Presenter is a layer that provides View with data from Model. Presenter also handles
background tasks.
We choose MVP because firstly we are trying to decouple our application easily and since we
are using multiple API’s the MVP architecture will handle them separately. The presenter class
will take over business logic parts of the view class. Our view layer will become simple and
linear and will only be concerned with the interface.
36
Secondly restart of background tasks in the case of a process restart, the presenter just
remembers which requests it should execute, and if a process restarts during execution, Presenter
will execute them again.
Lastly, we will also make use of an indoor navigation SDK called Indoor Atlas. Indoor Atlas
Android SDK for indoor navigation, which provides an API to create location- aware application
for navigation inside building by using device hardware sensors like compass, gyroscope and
accelerometer.
37
3.3 System Architecture
3.3.1 Subsystem decomposition
Figure 9- Layer 1
38
Figure 10 - Layer 2
Figure 11 - Layer 3
39
3.3.2 Hardware/software mapping
40
4.4 Object Model
4.4.1 Class Diagram
41
4.4.2 Sequence Diagram
42
Figure 15 - Locate User
43
Figure 17 - Respond with voice
44
Figure 18 – Search
45
Figure 21 - Show Important Landmarks
46
Figure 22 - Track User
47
Map Class
-MapFile: File
+MapType:String
-CurrentLocation: Location
-RouteList: <Route>
-MapInfoList: < MapInfo>
+getCurrentLocation()
+getRouteList()
+getMapInfoList()
+getMapFile()
+search()
48
Table 26 Operation Description for Map class
User Class
-lastKnownLocation: <Location>
49
-name: String
-preference: boolean
+staff: boolean
+getPreferences()
+setPreferences()
+getName()
+setName()
+getLastKnownLocation()
+setLastKnownLocation()
50
attribute
getLastKnownLocation( Public Location void Preferences must It returns the
) be set to visible lastKnownLocation
attribute.
setLastKnownLocation() Public void Location GPS must be Sets the last known
turned on. location of the user
Route Class
+pathCoordinates : <Location>
+distance: Long
+calculateDistance()
51
calculateDistance Public Long startingLocation:Long Start and end The distance
endLocation:Long point should be will be
given calculated
Location Class
-Latitude: Long
-Longitude: Long
+getLat()
+getLong()
Map Info
-location: Location
52
-locationName: String
-locationDescription: String
+getLocation()
+getLocationName()
+getLocationDescription()
53
+match()
+startRecognition()
+stopRecognition()
54
+respond()
Navigation Class
+ navigationType: String
+ mapList: <Map>
-currentMap: Map
+showCurrentMap()
+showRoute()
55
navigationType String Public navigationType <> NULL
mapList List Public It should contain a list of maps
BIBLIOGRAPHY
56
[1] http://www.gsmarena.com/glossary.php3?term=gps, last accessed on: November 1, 2016
[2] http://gps.sref.info/course/7a.html, last accessed: November 1, 2016
[3]http://nationalgeographic.org/encyclopedia/geographic-information-system-gis/, last accessed:
November 1, 2016
[4] https://www.fleetmatics.co.uk/resources/articles/the-difference-between-gps-and-gis, last
accessed: November 1, 2016
[5] http://www.aait.edu.et/about-aait, AAiT Website, last accessed: October 29, 2016
[6] https://intland.com/blog/why-upgrade-from-waterfall-to-evolutionary-development-evo/, last
accessed: November 4, 2016
[7] https://www.quora.com/What-are-the-limitations-of-the-PhoneGap-app-development-tool,
last accessed: November 4, 2016
[8] http://www.sixsigmadaily.com/the-activity-network-diagram/ , last accessed: November 2,
2016
[9] Kotonya, G. and Sommerville, I. 1998. Requirements Engineering: Processes and
Techniques Chichester, UK: John Wiley and Sons
APPENDIX
57