Post on 08-Dec-2014
description
transcript
CyberGIS
ECY6489 Group Project
(Final report)
Department of Electrical & Computer Engineering
Faculty of Engineering Technology
The Open University of Sri Lanka
September 2011
CyberGIS
Undergraduate Final project Report
Submitted in partial fulfillment of
the requirements for the
Degree of Bachelor of Software Engineering
in
Department of Electrical & Computer Engineering
The Open University of Sri Lanka
Supervisors Project Group
Dr. L.S.K Udugama M.S.R Perera<209087374>
Dr. Uditha Ratnayake D.S Kulasuriya<709087412>
Mr.Chaminda Anandasiri W.M.DJeewantha<509087436>
September 2011
i
Acknowledgement
We would like to thank our head of department Dr.L.S.K Udugama and our project
supervisor Dr. (Mrs.) Uditha Rathnayake for their valuable guidance & advice. Also we
would like to thank our parents for their support, encouragement and belief. We highly
appreciate the support given by our employers and project heads by providing the
industry exposure and study leaves. Finally we would like to thank all other parties for
their support at least by an encouraging word.
ii
Abstract
The main purpose of this project was to fulfill the credit requirement of ECY6489
module under the Bachelor of Software Engineering Degree. The goal of this project was
to take the existing GIS based solution to the next level by providing more features and
make more beneficial for potential geographically distributed domains. In this CyberGIS
system we achieved this goal by introducing customizable domain maps, reporting and
analysis features, and mobile based capabilities.
iii
Table of Contents
CHAPTER NO. TITLE PAGE NO.
acknowledgement I
abstract II
list of tables VI
list of figures VII
list of abbreviations VIII
1. INTRODUCTION 1
2. LITERATURE SURVEY 2
2.1 Similar Systems 2
2.2 Theoretical Background 3
2.3 Required Components 3
3. PROPOSED METHOD 4
3.1 Introduction 4
3.2 System Requirements 4
3.3 Main Components and Flow 7
3.4 Project Plan and Approach 8
4. DESIGN OF SOFTWARE 11
5. FABRICATION OF SOFTWARE 23
6. TESTING AND IMPLEMENTATION 25
7. RESULTS 35
8. CONCLUSION AND FUTURE WORK 36
8.1 CyberGIS GUI Module. 36
8.2 CyberGIS Mobile Component. 37
8.3 CyberGIS Service Module. 37
9. PROJECT CONTRIBUTIONS 38
9.1 Project Contribution by: M.S.R Perera <209087374> 38
9.2 Contribution by: D.S Kulasuriya<709087412> 39
9.3 Contribution by: W.M.D.R Jeewantha<509087436> 40
REFERENCES 41
iv
APPENDIX 42
Appendix A – Use case Diagrams 42
Appendix A1 – CyberGIS Admin User Use Case Diagram 42
Appendix A2 – CyberGIS Operative User Use Case Diagram 43
Appendix B – Class Diagrams 44
Appendix B1 –CyberGIS Mobile Component Class Diagrams 44
Appendix B1.i GUI Package 44
Appendix B1.ii Service Package 45
Appendix B1.iii . Core Package 46
Appendix B1.iv . Constants And Param Package 47
Appendix B2 – CyberGIS Service Module Class Diagrams 48
AppendixB2.i:The RMI DTO Package 48
Appendix B2.ii Service DTO Package 49
Appendix B2.iii Business Logic Package 50
Appendix B2.iv. JPA Package 51
Appendix B2.v .Web Service Package 52
Appendix B2.vi . Utility Package 53
Appendix B3 – CyberGIS GUI Module Class Diagrams 54
Appendix B3.i . Logic Package 54
Appendix B3.ii Service Package 55
Appendix B3.iii. Param Package. 56
Appendix B3.iv . MDB package 56
Appendix B3.v . Filter Package 56
Appendix B3.vi Utility Package. 57
Appendix B3.vii . Test Package 58
Appendix C – Sequence Diagrams. 59
Appendix C1: Add Domain Map Marker 59
Appendix C2: Close Domain Map Marker 60
Appendix C3: Create Snap shot 61
Appendix C4: Generate CyberGIS Report 62
Appendix C5: Send Operative Location Update 63
Appendix C6: Send Operative Message 64
Appendix C7: View Operative Message History 65
Appendix C8: Send Operative Message Notification 65
Appendix C9: View Current Operative Location On Map 66
Appendix C10: Timeout CyberGIS Operative Message 67
Appendix C11: Add Domain User 68
Appendix C12: Login CyberGIS User 69
Appendix D – Activity Diagram 70
Appendix D1: Load Main Console 70
v
Appendix D2: Display Operative location 70
Appendix D3: Add New Map Marker 71
Appendix D4: Close Map Marker 71
Appendix D5: Edit Map Marker 72
Appendix D6: Send Operative Message 72
Appendix D7: Load Main Console 73
Appendix D8: Add New User 73
Appendix E – ER Diagram 74
Appendix F –Screen Designs 75
Appendix F1: CyberGIS Main Console 75
Appendix F2: CyberGIS Login Dialog 75
Appendix F3: CyberGIS New Marker Dialog 76
Appendix F4: CyberGIS New User Dialog 76
Appendix F5: CyberGIS Map Marker Panel 77
Appendix F6 : CyberGIS Report Wizard Dialog 77
Appendix F7: CyberGIS Operative Message Dialog 78
Appendix F8: CyberGIS Operative Message History Dialog 78
Appendix F9: CyberGIS Mobile Login 79
Appendix F10: CyberGIS Mobile Main Screen 79
Appendix F11: CyberGIS Mobile Task List 80
Appendix F12: CyberGIS Mobile Task Details 80
Appendix F13: CyberGIS Mobile Task Notification 81
Appendix F14: CyberGIS Mobile Task Status Update 81
Appendix G : Test Cases 82
vi
List of Tables
Table ID Table Description Page No.
Table 3.1 Functional Requirements 5
Table 3.2 Project Deliverables 9
Table 3.3 Actual vs. Planned 10
Table 6.1 Severity Classification 27
vii
List of Figures
Figure ID Figure Description Page No.
Figure 3.1 CyberGIS System 7
Figure 4.1 General Architecture 11
Figure 4.2 CyberGIS Service Module High Level Design 12
Figure 4.3 CyberGIS GUI Module High Level Design 17
Figure 4.4 CyberGIS Mobile Module High Level Design 20
Figure 6.1 Test Deliverables 26
viii
List of Abbreviations
Abbreviations Description
AJAX Asynchronous JavaScript And XML
API Application Programming Interface
DB Data Base
GIS Geographic Information System
GUI Graphical User Interface
IDE Integrated Development Environment
J2ME Java 2 Mobile Edition
JMS Java Messaging Services
JPA Java Persistent API
JSF Java Server Faces
mbps Mega Bits per Second
ORM Object Relational Mapping
OS Operating System
QA Quality Assurance
RMI Remote Method Invocation
SRS System Requirement Specification
UI User Interface
URL Universal Resource Locator
WTK Wireless Tool Kit
XML Extensible Markup Language
1
CHAPTER 01
INTRODUCTION
The CyberGIS system is designed based on the vision “make use of existing GIS data
providers and expand that technology into new levels, that the society can make more use
of it in their domains.” So we proposed and developed a web based system that users of
this system can tag their geographically distributed domain entities on a map, customize
these entity details and, store and share them only among other required and authorized
parties within the domain.
At the time when we were proposing the CyberGIS system there were GIS Systems either
that required high GIS and mapping knowledge which bit complex (ESRI ArcGIS) or
very simple with few functionalities (Google Map). Very Complex GIS Systems avoided
the wide and general use by many potential domains as high costs, requirement of GIS
professional and less usability. On the other hand very simple GIS Systems did the same
thing by not providing authorized and secure data access, less customizability and no
reporting and analysis features.
As a solution to this problem we developed the CyberGIS system with capabilities as
mapping entities, manipulating entity data, mobile operative command, reporting and
analysis while ensuring customizability, usability, security and performance.
So we would like to believe the CyberGIS is a concept rather than a system that will
grow into higher levels that will help potential geographically distributed domain to store,
track and coordinate their distributed entities and facts. Also this concept will assist
decision making and planning by providing reporting and analysis capabilities.
2
CHAPTER 02
LITERATURE SURVEY
A GIS is a system that incorporates software, hardware, and data for collecting,
managing, analyzing, and portraying geographically referenced information. It allows the
user to view, understand, manipulate, and visualize data to reveal relationships and
patterns that solve problems. The user can then present the data in easily understood and
disseminated forms, such as maps, reports, or charts (http://www.gis.com/content/what-
gis, 2011).
2.1 Similar Systems
During our literature survey of similar systems we studied about Google Maps
(maps.google.com, 2010) and ESRI ArcGIS (http://www.esri.com/, 2010).
Google Maps is a web based GIS system that built on HTML and Java scripts. They use
spatial map data and satellite imagery that is provided by various authorities such as
NASA, Tele Atlas, Map Link, Europa Technologies, etc… They provide mapping data
free for web based non commercial use, but charged for commercial use. When we
compare CyberGIS system with Google maps, CyberGIS is also developed on Google
Maps API and then inherited the features of it. But in the CyberGIS we tried to overcome
the Google Maps disadvantages by providing features such as private and authenticated
data domains, map data customization, storage and manipulation of offline map data,
time series analysis and reporting of stored map data. But in the CyberGIS we have left to
implement map data search and route finding features which is drawbacks form Google
Maps (http://code.google.com/apis/maps/documentation/javascript/, 2010).
ESRI ArcGIS from the other hand is a complete desktop based GIS suite that provides
very complex functionalities. They also provide private and secure data access,
customization of domains, data analysis and reporting. But ArcGIS has its disadvantage
by been a very high rated license product and required specialized GIS professionals to
map data in to the system and design and customize the system for private domain use.
3
But it has advantages over the CyberGIS by having a high feature set, engineering and
architect level standards and its offline map storage (ESRI, 2002).
But the CyberGIS system introduces a new level of features by providing mobile
operative command and feedback, and real time mobile operative tracking which makes
this a unique product.
2.2 Theoretical Background
During the literature survey of the theoretical background we did look into mainly two
GIS information providers and they are:
1. Open Street Map: http://www.openstreetmap.org/
2. Google Maps: http://maps.google.com/
After reviewing the above two external GIS providers we decided to go with Google Map
V3 API due to their reliability, quality of map imagery /choices of different map image
types as : hybrid ,satellite and their array of functions provided by them Free or charge
(http://code.google.com/apis/maps/documentation/javascript/, 2010).
We studied time series analysis techniques used in Statistics for the implementation of
the CyberGIS analysis features (SPIEGEL, 1961).
2.3 Required Components
During the literature survey of the required software components of the project we‟ve
decided to choose the spring framework as our base enterprise we framework for building
our business logic on. Other than spring we will be using the Java Persistence API (JPA)
and Oracle (toplink) ORM for database access and database manipulation. For the mobile
operative end user component of the CyberGIS system we‟ve used the Java J2ME
technology. Also we used Primefaces API to use with JSF because of its easy and high
end look and feel UI component set (www.Primeface.org, 2010). Also in combination
with that we used Java managed beans to implement the CyberGIS GUI module
4
CHAPTER 03
PROPOSED METHOD
3.1 Introduction
The CyberGIS system is basically provides the GIS solution with extended
functionalities. The system will provide customizable web based domain maps. The
system creates domains for separate users which are working with controlled and highly
secured access to the CyberGIS web service. So a particular user can only access to their
domain and view maps for their domain. Users can manage their domains as they want
using granted access rights and customized capabilities. As any other GIS system,
CyberGIS will provide the basic map operations like Search for locations, Find location
using latitude and longitude, Zoom In and Zoom Out, Scroll the map, View location
names and tags, Show Roads and Railways. Other than to these, users can create any
tags, markers and locations as related to their business requirements. Those remarks are
only visible to those particular domain users only. Past records are kept with the system
for each user and can be retrieved as statistics in any situation. Those details are highly
secured and provide controlled access. Those statistics are available to management
decision making and planning processes of the clients.
3.2 System Requirements
System requirements for the CyberGIS system basically divided into two categories as
functional requirements and non functional requirements. More details can be found in
CyberGIS System Requirements Specification document.
5
Functional requirements:-
Title Description
System Customization. User of the CyberGIS system will have
private domains. So the users should be able
to customize these domains as they want by
defining data within it.
Provide Map Information. CyberGIS system should provide basic map
information as map details, marker details.
Live and Updated Information. CyberGIS system should display live data
feed by the domain users and mobile
operatives as well as updates from map data
providers.
Statistics and Historical Data Analysis. CyberGIS system should support statistical
analysis of stored data in the domain
databases.
Data Archival and Retention. Data input by the domain users as well as
mobile operatives should be stored within the
domain databases. Also transaction history
should keep in the DB.
User Profiles, Roles and Privileges. Domain user should be divided into several
access levels on their roles and privilege.
These access levels should be authenticated in
order to access to the system.
Reporting. CyberGIS system should support generation
of reports based on stored data in the domain
databases.
Mobile Operative Command CyberGIS system should be capable of
communicating with mobile operative using
CyberGIS mobile component via internet.
6
Table 3.1 – Functional Requirements
Non Functional Requirements:-
Non functional requirements are discussed under following categories. Please refer
CyberGIS System Requirements Specification document.
Performance and Load Requirements.
Compatibility Requirements.
External Interface Requirements.
User Interfaces Requirements.
Communications Interfaces Requirements.
Security and Authentication requirements.
Quality Assurance Requirements
Development Requirements.
Deployment Requirements
Special Documentation Requirements
Applicable Standards Requirements.
Usability Requirements.
This includes sending messages with map
data to the operatives as well as gets
feedbacks from them.
Real-time Operative Tracking. CyberGIS system should be capable of
tracking mobile operatives using built-in GPS
devices on their mobiles.
7
3.3 Main Components and Flow
The work flow of the CyberGIS system is illustrated in the following Figure 3.1.
According to that there are main two components of the system.
1. Main console.
2. Mobile Device.
The main console will get the map data by an existing map data provider like Google
Maps. Those map data are displayed on the main console. Users can add customized
domain markers on the map by specifying marker details. Those markers represent
some domain entity or fact and marker data are saved on a database.
So users can view saved markers on the map, manipulate marker details, generate
historic trend reports and pattern analysis using stored data.
There are registered domain operatives with the system and as they login with their
mobile devices main console users can retrieve details of those operatives on the main
map. This also allows the users to send messages to a selected operative via web with
map instructions. So operatives can view those messages and send response
feedbacks to main console that can be view by the users.
Figure 3.1 – CyberGIS System
GIS Map
provider
Main
Console
Mobile
Device GPS Device
User Operative
DB WEB
8
3.4 Project Plan and Approach
The project approach is based on the agile methodology and MSF (Microsoft
Framework) and it allows requirement, environment and technological changes to reflect
within product releases.
CyberGIS is developed using the various tools chose by us and we consider free and open
source software and tools. These tools include Eclipse and NetBeans IDEs for
development, Tomcat server technology for deployment, MySQL for DB deployment and
various 3rd
party java tools, plug-ins and web services as required. Also JAVA and JSF
with Primefaces API are used as the programming technologies. Then Google Map API
and services are used for GIS manipulation. Also SVN is used for release management
and version control. The project team consists of 3 members with initial roles but all were
working on each role as required.
Project plan consists all the project activities, schedule and deliverables of the project.
Project activities are basically encapsulated as project deliverables and delivered in
several phases. Also project plan is subdivided into several sub plans for each category.
More details on this topic can be found in CyberGIS Master Project Plan document.
Development Plan.
Test Plan.
Communication plan.
Deployment plan.
Training plan.
Support plan.
Purchasing & Facilities Plan.
Budget plan.
9
Code Deliverable Phase
CG1.1.1 Vision document Envision
CG1.1.2 Project structure document „‟
CG1.1.3 Milestone review report „‟
CG1.2.1 Master project plan Plan
CG1.2.2 Functional specification „‟
CG1.2.3 Deployment plan „‟
CG1.2.4 Test plan „‟
CG1.2.5 Test specification „‟
CG1.3.1 Develop internal releases Build
CG1.3.2 Traceability Audit document „‟
CG1.4.1 Functional testing Stabilize
CG1.4.2 UI stabilizing „‟
CG1.4.3 System testing „‟
CG1.4.4 Pre-production testing „‟
CG1.4.5 Release candidates „‟
CG1.4.6 User acceptance testing „‟
CG1.4.7 Testing and Bug Report „‟
CG1.5.1 Project Close-Out Report Close out
Table 3.2 – Project Deliverables
10
Code Deliverable Planned
(hr.)
Actual
(hr.)
Variance
(hr.)
CG1.1.1 Vision document 5 6 +1
CG1.1.2 Project structure document 15 13 -2
CG1.1.3 Milestone review report 5 6 +1
CG1.2.1 Master project plan 15 14 -1
CG1.2.2 Functional specification 120 100 -20
CG1.2.3 Deployment plan 10 8 -2
CG1.2.4 Test plan 5 4 -1
CG1.2.5 Test specification 40 44 +4
CG1.3.1 Develop internal releases 520 535 +15
CG1.3.2 Traceability Audit document 15 13 -2
CG1.4.1 Functional testing 40 43 +3
CG1.4.2 UI stabilizing 30 38 +8
CG1.4.3 System testing 40 29 -11
CG1.4.6 User acceptance testing 5 3 -2
CG1.4.7 Testing and Bug Report 20 16 -4
CG1.5.1 Project Close-Out Report 10 31 +21
Totals 895 903 +8
Table 3.3 – Actual vs. Planned
11
CHAPTER 04
DESIGN OF SOFTWARE
Figure 4.1 – General Architecture
Overview of the CyberGIS General Architecture
When designing the CyberGIS System we‟ve decided to choose the spring framework as
our base enterprise we framework for building our business logic on. Other than spring
we will be using the Java Persistence API (JPA) and Oracle (toplink) ORM for database
access and database manipulation. For the mobile operative end user component of the
CyberGIS system we‟ve used the Java J2ME technology. The two web modules of the
Cybergis GUI module and the CyberGIS service module will be hosted in the Apache
Tomcat server 7.0.12 and the J2ME application will be run (for the development phase)
on the sun java j2me standard development kit version 3.0. If the take the individual
components of the cybergis system they could be mainly divided into 03 major modules.
They are:
12
1. CyberGIS Service Module.
2. CyberGIS GUI Module.
3. CyberGIS Mobile Component.
CyberGIS Service Module – High Level Design
Figure 4.2 – CyberGIS Service Module High Level Design.
The CyberGIS Service Module is the Heart or the Central Hub of the entire cybergis
application. It contains all the business logic classess, the JPA layer classes used to
perform database operations using the ORM framework and manages the three JMS
messages queues. The CyberGIS Service Module exposes it‟s methods to be called by
other modules by using Java RMI and SOAP based Document+Literal Style web
services.
13
If we take a closer look at the CyberGIS Web Service Module It Consist of several
packages and each of those packages consist of several classes. Therefore for us to be
able to explain the entire system in a simple manner we‟ve divided the class diagrams by
their packages and presented below using their class names. For detailed information of
each of the classes in the packages mentioned below please refer the appropriate
appendix mentioned beside the classes.
i. The RMI DTO Package
These are the DTO classes that are responsible for transporting data via Java RMI
between the CyberGIS GUI module and the CyberGIS Service Module. These classes are
all serializable classes that support sending data through the wire/network in distributed
applications. For a detailed inside look at these classes please refer to the diagram on
Appendix B2.i.
14
ii. Service DTO Package
This set of classes is the DTO classes that are used to transfer data between the CyberGIS
Service module and the CyberGIS mobile component using DOCUMENT+LITERAL
style web services. These classes are all serializable classes that support sending data
through the wire/network in distributed applications. For a detailed inside look at these
classes please refer to the diagram on Appendix B2-ii.
iii. Business Logic Package
The Classes in this package are responsible for implementing the business logic of the
CyberGIS system. The following diagrams show those classes with their respective
hierarchies. For a detailed inside look at these classes please refer to the diagram on
Appendix B2-iii.
15
iv. JPA Package.
These are the classes responsible for performing the database related operations using the
JPA through the toplink ORM framework. Each of the following classes represent a
single database table in the cybergis system. For a detailed inside look at these classes
please refer to the diagram on Appendix B2-iv.
v. Web Service Package
These are the set of classes responsible for implementing the web service component of
the CyberGIS service module. This service module is mainly responsible for operations
that occur between the cybergis mobile client and the cybergis web service module. For a
detailed inside look at these classes please refer to the diagram on Appendix B2-v.
16
vi. Servlet Package.
This is the package where the servlet responsible for retrieving the messages in the
message queue by the mobile client. Due to the limitations in the J2ME web services api
the J2ME mobile component of the cybergis system used this servlet to retrieve the
messages in the cybergis operator message queue in xml format.
vii. Utility Package
This is the package where all the utility classes responsible for all the cybergis operations
are found. These classes are centrally defined in the utility package as the functionality of
the classes are universally accessed by almost all the other classes in the cybergis service
module packages. For a detailed inside look at these classes please refer to the diagram
on Appendix B2.vi.
17
CyberGIS GUI Module – High Level Design
This module provides the HTTP web interface of the cybergis system. This module
allows the cybergis administrative user to centrally administer the cybergis system using
a web based gui interface. As depicted in the above diagram the CyberGIS GUI module
has its own business logic calling/processing classes for the GUI level rendering and
calling the business logic in the CyberGIS Service module via RMI. The CyberGIS GUI
module also has the receiving ends of two JMS messaging queues to receive CyberGIS
Operative Location updates and CyberGIS Message Status Updating JMS Queues.
If we take a closer look at the CyberGIS GUI Module It Consist of several packages and
each of those packages consist of several classes. Therefore for us to be able to explain
the entire system in a simple manner we‟ve divided the class diagrams by their packages
and presented below using their class names. For detailed information of each of the
classes in the packages mentioned below please refer the appropriate appendix mentioned
beside the classes.
Figure 4.3 – CyberGIS GUI Module High Level Design.
18
i. Logic Package
This package contains cybergis business logic that has no database interaction what so
ever and have been implemented on the GUI side in order to reduce the response time
due to RMI call delays. For a detailed inside look at these classes please refer to the
diagram on Appendix B3-i.
ii. Service Package
This package consist of the CyberGIS GUI module classes that are used to communicate
with the service module and call the business logic method of the cybergis service
module via RMI calls. For a detailed inside look at these classes please refer to the
diagram on Appendix B2-ii.
iii. Param Package.
This package consists of the parameter classes used in the cybergis gui module. For a
detailed inside look at these classes please refer to the diagram on Appendix B3-iii.
19
iv. MDB package
This package consists of the JMS message queue front end classes that receive messages
from the JMS queues and process them. For a detailed inside look at these classes please
refer to the diagram on Appendix B2-iv.
v.Filter Package
This package consists of the classes that are used for user authentication and
authorization filtering done throughout the application. For a detailed inside look at these
classes please refer to the diagram on Appendix B3-v.
vi. Utility Package.
This package contains the classes with the utility functions that are used throughout the
cybergis gui application. For a detailed inside look at these classes please refer to the
diagram on Appendix B3-vi.
vii. Test Package.
This package consists of the unit testing classes used for unit testing the CyberGIS GUI
module level business logic implementations. For a detailed inside look at these classes
please refer to the diagram on Appendix B2-vii.
20
CyberGIS Mobile Component – High Level Flow
Figure 4.4 CyberGIS Mobile Module High Level Design
This is the natively running J2ME application component of the CyberGIS System. The above
diagram shows the basic flow of this mobile application. This component will communicate with
the Cybergis service module using the HTTP and via DOCUMENT+LITERAL Style web service
calls. If we take a closer look at the CyberGIS Mobile Componet It Consist of several packages
and each of those packages consist of several classes. Therefore for us to be able to explain the
entire system in a simple manner we‟ve divided the class diagrams by their packages and
presented below using their class names. For detailed information of each of the classes in the
packages mentioned below please refer the appropriate appendix mentioned beside the classes.
21
i. GUI Package.
This package contains the main GUI design class of the Mobile Application. For a
detailed inside look at these classes please refer to the diagram on Appendix B1.i.
ii. Service Package
This package consists of the classes that the CyberGIS mobile component uses to
communicate with the CyberGIS web service via web service and HTTP calls. For a
detailed inside look at these classes please refer to the diagram on Appendix B1-ii.
iii. Core Package
This package consists of the core business logic classes that implement the business logic
inside of the CyberGIS mobile component. For a detailed inside look at these classes
please refer to the diagram on Appendix B1-iii.
22
iv. Constants Package.
This package consists of the constants class used right throughout the cybergis mobile
application component. . For a detailed inside look at these classes please refer to the
diagram on Appendix B1.iv.
v. Param Package
This package consists of the parameter classes used by the CyberGIS Mobile application
component. . For a detailed inside look at these classes please refer to the diagram on
Appendix B1.iv.
23
CHAPTER 05
FABRICATION OF SOFTWARE
For the development of the software we‟ve used java as the core development language.
All the components & technology frameworks used are mainly core java based
implementations.
When writing the software the 03 main software components of the system we‟re used
the following technologies and software to come up with a distributed web based
cybergis software solution.
Client Browser
We could use any type of latest client browser like google chrome or IE7 to use the
administrative web component of the cybergis system.
HTTP/HTTPS Network
The CyberGIS system is currently available via both HTTP network. And in the future it
will support HTTPS based networking.
Web Application Server
The web application server used in developing the CyberGIS system is the apache tomcat
7.0.12 web application server. For our system we‟ve configured this application server to
have ActiveMQ embedded inside the application server.
Database Server
The Database server used in the CyberGIS system is the mysql database server.
Integrated Development Environments
The Intergrated Development Environments.NetBeans with J2ME development plugn &
Eclipse have been for developing the cybergis system.
Web Framework
The Web framework used is the Spring Web framework to develop this system.
24
GUI Development Framework
The GUI development framework used in the CyberGIS is called the primefaces
(www.primefaces.org). This is a is a lightweight open source component suite for Java
Server Faces 2.0 featuring 100+ rich set of JSF components.
ORM Framework
The ORM framework used in developing the CyberGIS System is the toplink oracle orm
with the Java JPA framework.
25
CHAPTER 06
TESTING AND IMPLEMENTATION
Test Objectives
A primary objective of testing the system is to assure that the system meets the full requirements,
including quality requirements (Non-functional requirements) and fit metrics for each quality
requirement and satisfies the use case scenarios and maintain the quality of the product. At the
end of the project development cycle, the user should find that the project has met or exceeded all
of their expectations as detailed in the requirements.
Any changes, additions, or deletions to the requirements document, Functional Specification, or
Design Specification will be documented and tested at the highest level of quality allowed within
the remaining time of the project and within the ability of the test team.
The secondary objective of testing the system will be to identify and expose all issues and
associated risks, communicate all known issues to the project team, and ensure that all issues are
addressed in an appropriate matter before release. As an objective, this requires careful and
methodical testing of the application to first ensure all areas of the system are scrutinized and,
consequently, all issues (bugs) found are dealt with appropriately.
Assumptions for the Test Execution
For User Acceptance testing, the Developer team has completed unit, system and
integration testing and met all the Requirement‟s (including quality requirements) based
on Requirement Traceability Matrix.
User Acceptance testing will be conducted by End-users
Test results will be reported on daily basis using reports.
Failed scripts and defect list from reports with evidence will be sent to Developer
directly.
Use cases have been developed by Adopters for User Acceptance testing.
Use cases are approved by test lead.
Test scripts are developed and approved.
26
Test Team will support and provide appropriate guidance to Adopters and Developers to
conduct testing
Major dependencies should be reported immediately after the testing kickoff meeting.
Test Deliverables
Testing will provide specific deliverables during the project. These deliverables fall into three
basic categories: Documents, Test Cases / Bug Write-ups, and Reports. Here is a diagram
indicating the dependencies of the various deliverables:
Figure 6.1 Test Deliverables
As the diagram above shows, there is a progression from one deliverable to the next. Each
deliverable has its own dependencies, without which it is not possible to fully complete the
deliverable.
Bug Classification Strategy
Bug Severity and Priority fields are both very important for categorizing bugs and prioritizing if
and when the bugs will be fixed. The bug Severity and Priority levels will be defined as outlined
in the following tables below. Testing will assign a severity level to all bugs. The Test Lead will
be responsible to see that a correct severity level is assigned to each bug.
Require- ments [PM]
Project Plan [PM]
Functional Spec [PM]
Test Plan Test Spec. / Outline
Detailed Design [Dev]
Test Cases
Bugs
Bug Results
TC Coverage Reports
Bug Reports
Test Case Results
27
The Test Lead, Development Lead and Program Manager will participate in bug review meetings
to assign the priority of all currently active bugs. This meeting will be known as “Bug Triage
Meetings”. The Test Lead is responsible for setting up these meetings on a routine basis to
address the current set of new and existing but unresolved bugs.
Severity
ID
Severity
Level
Severity Description
1 Critical The module/product crashes or the bug causes non-recoverable
conditions. System crashes, GUI Faults, or database or file corruption,
or potential data loss, program hangs requiring reboot are all examples
of a Severity. 1 bug.
2 High Major system component unusable due to failure or incorrect
functionality. Severity. 2 bugs cause serious problems such as a lack
of functionality, or insufficient or unclear error messages that can have
a major impact to the user, prevents other areas of the app from being
tested, etc. Severity. 2 bugs can have a work around, but the work
around is inconvenient or difficult.
3 Medium Incorrect functionality of component or process. There is a simple
work around for the bug if it is Severity. 3.
4 Minor Documentation errors or signed off severity 3 bugs.
Table 6.1 – Severity Classification
Test Coverage
Unit Test
Unit testing was carried out for each component in the CyberGIS GUI application and
Mobile Client Application and for each service module in the web service.
28
Regression Test
Regression testing was carried out to verify that any changes done as a bug fix will not
affect the functionalities of the working components. Every time when we make bug fix
we did the regression testing to all the system components.
System Test
The System tests will focus on the behavior of the CyberGIS system. User scenarios will
be executed against the system as well as screen mapping and error message testing.
Overall, the system tests will test the integrated system and verify that it meets the
requirements defined in the requirements document.
Performance Test
Performance test will be conducted to ensure that the CyberGIS system‟s response time
meet the user expectations and does not exceed the specified performance criteria. During
these tests, response times will be measured under heavy stress and/or volume.
Compatibility Test
Compatibility testing was carried out to check the application compatibility with the
browsers since the application is fully web based and check other software and hardware
compatibility constraints.
Stress and Volume Test
We will subject the CyberGIS system to high input conditions and a high volume of data
during the peak times. The System will be stress tested using twice (5 users) the number
of expected users.
Security Test
Security tests will determine how secure the new CyberGIS system is. The tests will
verify that unauthorized user access to confidential data is prevented.
29
Test cases are written and executed manually for the GUI and Mobile applications and
automated test cases are used to test the service module. As results of the testing phase
we generated the Test Case documents with the results and identified bugs.
Implementation of the system mainly focuses on database implementation and
application implementation. We used MySQL server as our database engine. So we need
to implement the database in either the application server or a separate server.
Application server needs tomcat server service to implement the Cyber GIS application.
For the mobile clients we provide a separate executable .jar file to install in to the mobile
device which may implement the CyberGIS application in the devices. When the tomcat
server which contains the application and web service started, Users are imposed to the
CyberGIS application. They can access the application console through any web browser
through a provided URL. (i.e. http:// 127.0.0.1:8080/gis-app/)
System Performance
In software engineering, performance testing is testing that is performed, to determine
how fast some aspect of a system performs under a particular workload. It can also serve
to validate and verify other quality attributes of the system, such as scalability, reliability
and resource usage. With related to performance testing there are few other types of tests
which are correlated with it.
Load Testing
Load testing is the simplest form of performance testing. A load test is usually conducted
to understand the behavior of the application under a specific expected load. This load
can be the expected concurrent number of users on the application performing a specific
number of transactions within the set duration. This test will give out the response times
of all the important business critical transactions. If the database and application server
are also monitored, then this simple test can itself point towards any bottlenecks in the
application software.
30
Stress Testing
Stress testing is normally used to understand the upper limits of capacity within the
application landscape. This kind of test is done to determine the application's robustness
in terms of extreme load and helps application administrators to determine if the
application will perform sufficiently if the current load goes well above the expected
maximum.
Endurance Testing (Soak Testing)
Endurance testing is usually done to determine if the application can sustain the
continuous expected load. During endurance tests, memory utilization is monitored to
detect potential leaks. Also important, but often overlooked is performance degradation.
That is, to ensure that the throughput and/or response times after some long period of
sustained activity are as good as or better than at the beginning of the test. It essentially
involves applying a significant load to a system for an extended, significant period of
time. The goal is to discover how the system behaves under sustained use.
Spike Testing
Spike testing, as the name suggests is done by spiking the number of users and
understanding the behavior of the application; whether performance will suffer, the
application will fail, or it will be able to handle dramatic changes in load.
Performance Measures
Concurrency/Throughput
Server response time
Render response time
Performance specifications
31
Performance Testing Methodology
We have followed the following activities to conduct the performance testing:
Identify the Test Environment.
We have to identify our test environment first. We haven‟t hosted the site in a real
time application server. So we are unable to test some parts of the application
with real working environment. So need to use simulators to simulate the system
and test those components. Apache tomcat 7.0.12 is our application server.
CyberGIS GUI module and web service modules are deployed on apache tomcat
server. To test the CyberGIS mobile client we have used Remote Device Access
provided by Nokia Developers as the simulator for mobile device.
(http://www.developer.nokia.com/Devices/Remote_device_access/ ) As the
network connection, mobile broadband connection is used with 3.2 mbps
bandwidth. All types of web browsers available are taken as software. We used
the available resources up to maximum level for testing.
Having a thorough understanding of the entire test environment at the outset
enables more efficient test design and planning and helps you identify testing
challenges early in the project. In some situations, this process must be revisited
periodically throughout the project‟s life cycle.
Identify Performance Acceptance Criteria.
The acceptance criteria for the CyberGIS are to provide a response time less than
30 seconds for any operation of functionality, allow concurrency access to the
system for 100 mobile users and 10 administrative users. Message queue should
capable of handling 1000 messages in the queue till message delivery. Expected
throughput for the mobile operative message sending should be delivering 30
messages per minute. Zero down time should be maintained to provide efficient
performance.
32
Plan and Design Tests.
Tests should design to check the following:
- Check the loading time of any web page
- Allow concurrency access of 10 administrative users and 100 mobile users
- Send operative messages to the concurrent users within 30 seconds
- Check the network delays
- Stress handle In message queue
- Hardware or software failure handling
- Load balancing
For the above tests we defined the test data with 12 operative users, 36 mobile
users, 840 map markers, 8 snap shots and 1290 operative messages with 210
responses. All administrative users and mobile operative users are going to use
the system concurrently, 840 markers to be located in the map, 1290 operative
messages to be delivered to mobile users and 910 feedbacks to be received during
tests. There should be metrics to collect the responses for the page loading time,
operative message delivery time, operative response receiving time, network
delays and load and stress measures.
Configure the Test Environment.
To prepare the test environment, first we have to start the Apache tomcat
application server and start the CyberGIS web module, GUI module and mobile
client module. Then we need to start the web browsers and navigate to the
application. Meanwhile the simulator should be started to test the mobile client.
To measure the response time and other measurements we have to equipped with
timers and calculators. Also other required resources should be properly allocated
before executing the tests.
33
Implement the Test Design.
To measure the system performance we need to carry out the above mentioned
Load testing, Stress testing, Soak testing and Spike testing. The goal is to identify
the performance measures by conducting tests and measuring results and response
times. We need to write a proper set of test cases to execute while testing. There is
a set of manually written test cases and automated test cases (implemented using
JUnit component) designed to test the system performance. Refer Appendix F for
details.
Execute the Test.
We start the Apache tomcat server and deploy all three modules and create the
test environment first. Administrative user login function for 12 users was carried
out through several web browser instances. For mobile operative user login
function, remote device access simulator was used provided by Nokia developers.
Using several simulator instances we create 36 concurrent operative user logins.
The logged in administrative users are assigned to add 840 map markers to make
a huge load, stress and network traffic. Administrative users need to login again
and load the added map makers. That is to check the page loading time. Also
report generation wizard used to test the web page loading time. More
administrative users are logged in to system and load the main panel at the same
time to test the load balancing. 1290 operative messages were sent to 36 logged in
mobile operative users by 12 administrative users consecutively within minutes.
That is related to spike testing and stress testing. To check the response time
mobile users are instructed to accept the messages and send responses.
While running the above test items we monitor outcomes and following results
are observed:
- It is possible to concurrently use the system for more administrative users
and operative users than expected.
- Simultaneous operations done by the administrative users were holds the
maximum network bandwidth.
34
- Same operation by multiple users at the same time (more than 10
occurrences) will cause to network delays exceeding 30 seconds.
- Web page load gives immediate response within 08 seconds and takes 40
seconds to finish loading all components of the map. (840 map markers)
- Report generating wizard takes 24 seconds to respond with such amount
of markers and 12 concurrent requests.
- While increasing the concurrent users than the expected level, page load
time increases than performance specifications. (Load balancing takes
place)
- Operative message takes 05 seconds to reach the destination.
- Responses for the operative messages received in 03 seconds.
- Message queue was able to handle 15 messages per minute when it
exceeds expected queue length.
- Messages without accepted by mobile users are waiting in the queue more
than 15 minutes and holds the resources.
- Throughput for browsing a web page with concurrent access is around 25
seconds.
- Failure in application software (web browser) will lose all non saved data
with it.
Analyze Results, Tune, and Retest.
After collecting results for the tests, we have to analyze them and make some
adjustments to improve the performance of some sections. Obviously we have to
do a code change since we are unable to go beyond the recommended hardware or
software configurations. To provide a response within 30 seconds, we changed
the map zoom level in 12 as default. We have to timeout the mobile operative
messages in the message queue if they are not accepted by mobile operators. This
is to maintain the throughput. Providing a faster internet connection will keep the
response time reduced. After doing changes we have to retest the functionality to
check the improvements.
35
CHAPTER 07
RESULTS
As the results, we include the test results here.
In all the test cases conducted through the testing phase about 85% of the tests are
succeeded and only 15% of the tests come up with bugs. Please refer the table in
Appendix F for details. Expected results of the test cases are appeared as the actual
results. So the status of the test is „Pass‟. Out of the bugs found, we have immediately
fixed 80% of bugs which are highly related to functional and performance indices of the
application. We are more focused on test results which are in „Fail‟ status with having
high test priority when resolving the bugs immediately. There are few things remained
found as minor issues and we need to address those as future works since those are
currently not affected to the system performance and functionalities.
At the end we found that all Unit testing, System Testing, Regression Testing,
Performance Testing, Compatibility Testing and Security Testing which we have
completed are succeeded. With the test results we can come to a conclusion that system‟s
functional and non functional requirements are addressed properly.
36
CHAPTER 08
CONCLUSION AND FUTURE WORK
8.1 CyberGIS GUI Module.
The following features and functionalities have been identified as future works under the
CyberGIS GUI module.
Marker Proximity Ruler and Alerter :-
By the "Ruler" feature CyberGIS main console users will be able to measure the
distance to each marker (including mobile markers) from a specified central origin
point. So CyberGIS main console users will be able to specify the central point and
get updated proximity measurement according to that. By the "Alerter" feature
CyberGIS main console users will be able to view the details of markers, within a
specified proximity circle from a specified central origin point. Both these features
will work as a single unit.
Automatic Real Time Operative Tracking :-
Currently operative tracking is not fully automated and the CyberGIS main console
users have to refresh the operative location in order to get the update location. By this
proposed feature operative tracking will be fully automated and updated locations
will be refreshed on the CyberGIS main console map in a specified time intervals.
Hardware Sensor Based Real Time Telemetry :-
By this functionality it is proposed to gather various data required by domain users
through hardware sensors, attached to CyberGIS Mobile component and send them to
the CyberGIS main console for real time monitoring. So the CyberGIS GUI module
will include a dashboard component in order to support this feature.
37
8.2 CyberGIS Mobile Component.
In the future the system is expended to be expanded by porting the J2ME client software
to newly available high end mobile phone operating systems like: Android & iPhone.
Currently it supports all Symbian OS based mobile phones like S40 6th
Edition & S60 3rd
Edition Phones. Other than this we wish to expand the service end by adding a
dashboard for live monitoring services where the user will be able to monitor live
statistics about the current functionality of the system.
8.3 CyberGIS Service Module.
As a conclusion we can say that, CyberGIS Service Module maintains the connectivity
between Cyber GIS application and database. All user requests and operations are
addressed through service methods provided in this module.
Code optimization and further expansions of the available services can be done as the
future works. The objective of this is to reduce the resources usage by the application
during the execution. More code level validations can be implemented to provide
additional security to the system.
We are focusing to make the system available with live statistics with the use of service
module improvements.
38
CHAPTER 09
PROJECT CONTRIBUTIONS
9.1 Project Contribution by: M.S.R Perera <209087374>
As the architect of the entire project I‟ve contributed to the CyberGIS project in doing the
following:
1. Using the business scenarios /requirements given by Roshan (The person playing
the project manager role) come up with a suitable architecture for the entire
system.
2. Decide a suitable Java Based Technology stack for the CyberGIS system.
3. Create the initial 03 projects using the decided technology stacks by
configurations and ensure the Spring based web flow between the initially created
03 projects. (i.e.: As the project is distributed system with 03 modules to make
sure the request response flow works correctly via RMI & Web service interfaces
between the modules)
4. Contributed in designing and implementing the CyberGIS Mobile Client Software
from ground up.
5. Contributed in designing and implementing the GUI parts related to sending
CyberGIS operative messages and receiving responses.
6. Contributed in writing all the Web Service Methods and exposing them via
correct document + literal style web services to be called by the mobile client.
7. Provided Technical support and guidance for the team members (Roshan &
Sanjeewa) in configuring the application server, implementing various business
logic related GUI/Service parts & technical advice on the used Java Related
technology stack.
8. Documented the CyberGIS project related architecture design diagrams (general
architecture, ER-diagrams & Class diagrams).
39
9. Did Integration testing & bug fixing on all 03 modules upon various commits on
different modules by the other two team members & ensured that the system was
working smoothly as a whole
10. Facilitated the stream line distributed development process by creating the project
in the Google SVN and providing software and support for the team to work with
the SVN.
11. Prepared necessary project documents under the software architect role for each
milestone.
9.2 Contribution by: D.S Kulasuriya<709087412>
I have contributed to the CyberGIS project as the QA lead for my main role in the project
and as a developer in following areas.
1. Contributed to develop the Login, password resetting and User Administration
parts of the CyberGIS GUI module.
2. Design and implement the changes done to the basic database according to the
Project Architecture‟s requests and generate RMI objects to which are used to
maintain the communication between Web Service and other modules.
3. Implement the service methods according to the requests of the GUI and Mobile
Client developers. Services are developed on demand separately to access the
database and feed or retrieve data according to the user request or operation.
4. Implement test cases to unit test each service methods to verify the operation
results before releasing the service method for use by developers.
5. Improve the session tracking mechanism developed by Shehan, to maintain user
login and domain details. Use the same session tracking mechanism to allow
direct access the password reset component.
6. Completed the project documents related to QA. (Test Plan, Test Specification)
Also contributed to document the SRS document, Functional Specification and
Deployment Plan.
7. Test all the components of the CyberGIS GUI module for unit testing, security
testing, & performance testing and includes the results as the Test Case
40
Document. All the service methods in the CyberGIS Service module are gone
through unit testing before release for use.
8. Contribute to system development and bug fixing activities with Project
Manager‟s request.
9.3 Contribution by: W.M.D.R Jeewantha<509087436>
As the Project Manager I‟ve contributed to the CyberGIS project in doing the following:
1. Played the Project manager role.
2. Proposed the main concept of the CyberGIS system.
3. Developed the vision and goals that the CyberGIS system based on.
4. Designed the conceptual level components and the main workflow of the
CyberGIS system and refined it with system architect‟s technical opinions.
5. Designed GUI Interfaces for both CyberGIS mobile and CyberGIS main console
(CyberGIS GUI module) components and fine-tuned the all GUI
implementations.
6. Developed CyberGIS main console (CyberGIS GUI module) GUI framework
using JSF (Java Server Faces) with Primefaces component library.
7. Implemented the map and marker manipulation functionalities, and reporting and
analysis functionalities on CyberGIS main console as Java Backing Beans and
helper classes.
8. Developed Unit Test cases and performed unit testing for CyberGIS GUI module
class methods using JUnit.
9. Implemented RMI Service module methods for reporting functionalities.
10. Developed Test cases and performed unit testing for RMI Service module
methods for reporting functionalities using JUnit.
11. Prepared necessary project documents under the project manager role for each
milestone.
41
REFERENCES
ESRI. 2010. ESRI home page. [Online]. Available at: http://www.esri.com/ [Accessed 10
October 2010].
Google Maps. 2010. Google Maps home page. [Online]. Available at: http://
maps.google.com/ [Accessed 05 October 2010].
Google Maps API. 2010. Google Maps API home page. [Online]. Available at:
http://code.google.com/apis/maps/documentation/javascript/ [Accessed 20 October
2010].
Wikipedia. 2011. Tracking Analyst and Tracking Server. [Online]. Available at:
http://en.wikipedia.org/wiki/Geographic_Information_Systems_in_Geospatial_Intelligen
ce#Tracking_Analyst_and_Tracking_Server.
GIS.COM. 2011. What is GIS?. [Online]. Available at: http://www.gis.com/content/what-
gis [Accessed 15 August 2011].
Open Street Map. 2010. Open Street Map home page [Online]. Available at:
http://www.openstreetmap.org/ [Accessed 05 October 2010].
Open Street Map. 2010. Open Street Map home page [Online]. Available at:
http://www.Primeface.org [Accessed 15 December 2010].
Spiegel, M.R, 1961.Theory and Problems of Statistics. McGraw-Hill.
42
APPENDIX
Appendix A – Use case Diagrams
Appendix A1 – CyberGIS Admin User Use Case Diagram
43
Appendix A2 – CyberGIS Operative User Use Case Diagram
44
Appendix B – Class Diagrams
Appendix B1 –CyberGIS Mobile Component Class Diagrams
Appendix B1.i GUI Package
45
Appendix B1.ii Service Package
46
Appendix B1.iii . Core Package
47
Appendix B1.iv . Constants And Param Package
48
Appendix B2 – CyberGIS Service Module Class Diagrams
AppendixB2.i:The RMI DTO Package
49
Appendix B2.ii Service DTO Package
50
Appendix B2.iii Business Logic Package
51
Appendix B2.iv. JPA Package
52
Appendix B2.v .Web Service Package
53
Appendix B2.vi . Utility Package
54
Appendix B3 – CyberGIS GUI Module Class Diagrams
Appendix B3.i . Logic Package
55
Appendix B3.ii Service Package
56
Appendix B3.iii. Param Package.
Appendix B3.iv . MDB package
Appendix B3.v . Filter Package
57
Appendix B3.vi Utility Package.
58
Appendix B3.vii . Test Package
59
Appendix C – Sequence Diagrams.
Appendix C1: Add Domain Map Marker
60
Appendix C2: Close Domain Map Marker
61
Appendix C3: Create Snap shot
62
Appendix C4: Generate CyberGIS Report
63
Appendix C5: Send Operative Location Update
64
Appendix C6: Send Operative Message
65
Appendix C7: View Operative Message History
Appendix C8: Send Operative Message Notification
66
Appendix C9: View Current Operative Location On Map
67
Appendix C10: Timeout CyberGIS Operative Message
68
Appendix C11: Add Domain User
69
Appendix C12: Login CyberGIS User
70
Appendix D – Activity Diagram
Appendix D1: Load Main Console
Appendix D2: Display Operative location
71
Appendix D3: Add New Map Marker
Appendix D4: Close Map Marker
72
Appendix D5: Edit Map Marker
Appendix D6: Send Operative Message
73
Appendix D7: Load Main Console
Appendix D8: Add New User
74
Appendix E – ER Diagram
75
Appendix F –Screen Designs
Appendix F1: CyberGIS Main Console
Appendix F2: CyberGIS Login Dialog
76
Appendix F3: CyberGIS New Marker Dialog
Appendix F4: CyberGIS New User Dialog
77
Appendix F5: CyberGIS Map Marker Panel
Appendix F6 : CyberGIS Report Wizard Dialog
78
Appendix F7: CyberGIS Operative Message Dialog
Appendix F8: CyberGIS Operative Message History Dialog
79
Appendix F9: CyberGIS Mobile Login
Appendix F10: CyberGIS Mobile Main Screen
80
Appendix F11: CyberGIS Mobile Task List
Appendix F12: CyberGIS Mobile Task Details
81
Appendix F13: CyberGIS Mobile Task Notification
Appendix F14: CyberGIS Mobile Task Status Update
82
Appendix G : Test Cases
Test
Case
Id
Test Case
Name
Test Case
Description
Test steps
step Expected Result Actual Result
01 Login to System
With Correct
Data
Test Login
Component with
providing Correct
User Name &
Password
1. Visit Login Page
2. Enter Username &
Password
3. Click Login
Auto Navigation to
Main Panel
Auto Navigation to
Main Panel
02 Login to System
With Incorrect
Data
Test Login
Component with
providing Incorrect
User Name or
Password
1. Visit Login Page
2. Enter Username &
Password
3. Click Login
Message indicating
Login Failed
Message saying
„Incorrect User
Name and/or
Password. Login
Failed. Please try
again.‟
03 Login to System
With Blank
Password
Test Login
Component with
providing blank
User Name or
Password
1. Visit Login Page
2. Click Login
Message indicating
Values Required.
Separate Messages
for all blank fields
indicating Values
Required.
04 Login Details
Resetting
Test Login Page
Reset Component
1. Visit Login Page
2. Enter Username &/or
Password
3. Click Login
Clear Username &
Password
Fields.
Clear Username &
Password
Field Values.
05 Test Forgot
Password Link
Test Forgot
Password Link
navigates to the
Reset Password page
1. Visit Login Page
2. Click Forgot
Password? Link
Navigation to Reset
Password Page.
Navigation to Reset
Password Page
06-a Password Reset
with Correct
Data
Test the Forgot
Password
component with
providing correct
Username, Email
and Password
1. Visit Login Page
2. Click Forgot
Password? Link
3. Enter Username,
Email , New Password
& Repeat New
Password
4. Click Submit
Prompt a Link to
Navigate to Login
Page again.
Message appears as
Internal Error
Occurs.
06-b Password Reset
with Correct
Data
Test the Forgot
Password
component with
providing correct
Username, Email
and Password
1. Visit Login Page
2. Click Forgot
Password? Link
3. Enter Username,
Email, New Password
& Repeat New
Password
4. Click Submit
Prompt a Link to
Navigate to Login
Page again.
Link appears to
Navigate to Login
page
83
07 Test Password
Reset New
Password not
correctly
Repeated
Test the Forgot
Password
component with
providing correct
Username, Email.
But new password is
incorrectly repeated
1. Visit Login Page
2. Click Forgot
Password? Link
3. Enter Username,
Email, New Password
& Repeat New
Password
4. Click Submit
Message indicating
Password Mismatch.
Message appears
indicating „Password
Mismatch. Please
enter new
Password.‟
08 Test Password
Reset with
Correct
Username and/or
Test the Forgot
Password
component with
providing incorrect
Username and/or
Email. But new
password is
correctly repeated.
1. Visit Login Page
2. Click Forgot
Password? Link
3. Enter Username,
Email, New Password
& Repeat New
Password
4. Click Submit
Message indicating
Incorrect Username/
Email.
Message appears
indicating „Either
you have entered an
invalid User Name
or invalid E-Mail
address .‟
09 Test Password
Reset with blank
details.
Test the Forgot
Password
component with
providing blank
Username, Email,
New Password, and
Repeat Password.
1. Visit Login Page
2. Click Forgot
Password? Link
3. Click Submit
Message indicating
Values Required.
Separate Messages
for all blank fields
indicating Values
Required.
10 Test Forgot
Password
Component
Cancel Button
Test the Forgot
Password
component Cancel
Button
Functionality.
1. Visit Login Page
2. Click Forgot
Password? Link
3. Enter Username,
Email, New Password
& Repeat New
Password
4. Click Cancel
Clear all Fields. Clear Username,
Email, New
Password & Repeat
New Password
Field Values.
11-a Test Password
Reset Message
Link
Test the link used to
navigate to the
Login Page, appears
after Password
Reset.
1. Visit Password Reset
Page
2. Enter correct details.
3. Click Submit
4. Click Cyber-GIS
link in appeared page.
Navigation to the
login page.
Session Expired
Message appears.
11-b Test Password
Reset Message
Link
Test the link used to
navigate to the
Login Page, appears
after Password
Reset.
1. Visit Password Reset
Page
2. Enter correct details.
3. Click Submit
4. Click Cyber-GIS
link in appeared page.
Navigation to the
login page.
User Login Page
Appears.
84
12 Create New User
with Correct
Data
Test Add New User
Functionality with
providing all
requested data
1. Visit Domain
Administration Panel
2. Click Add Domain
User
3. Enter User Name,
Email, Contact Mobile,
Contact Telephone,
Company, Access
Level, Password and
Repeat Password.
4. Click OK
Message indicating
Successfully saved.
Message appears
Indicating
Successfully saved.
13 Create New User
with blank
details.
Test Add New User
Functionality with
providing one or
more blank field
values for User
Name, Email,
Contact Mobile,
Contact Telephone,
Company, Access
Level, Password and
Repeat fields.
1. Visit Administration
Panel
2. Click Add New User
3. Click OK without
providing values for all
fields.
Message indicating
Values Required.
Separate Messages
for all blank fields
indicating Values
Required.
14 Test Create New
User Component
Cancel Button
Test Create New
User component‟s
Cancel Button
Functionality.
1. Visit Administration
Panel
2. Click Add New User
3. Enter User Name,
Email, Contact Mobile,
Contact Telephone,
Company, Access
Level, Password and
Repeat Password.
4. Click Cancel
Clear all Fields. Clear User Name,
Email, Contact
Mobile, Contact
Telephone,
Company, Access
Level, Password and
Repeat Password
Field Values.
15 Test Home Page
Link
Test the Navigation
Button to Go to
Home Page
1. Visit Main Console
2. Go Inside to panels.
3. Click Home Button
Loading Main
Console Page.
Load the Main
Console Page.
16 Test Sign-out
Confirmation
Response
Test the Navigation
Button used to Sign
Out from the system
with User response
Confirm.
1. Visit Main Console
2.Click Signout Button
3. Confirm the Logout
decision.
Navigate to Login
page
Load the User Login
Page.
17 Test Sign-out
Cancel Response
Test the Navigation
Button used to Sign
Out from the system
with User response
Cancel.
1. Visit Main Console
2.Click Signout Button
3. Cancel the Logout
decision.
Remain unchanged in
Main Console.
No Change to the
Current page.
18 Test Map Data
Panel
Test Map Data Panel
for updating with
map changes
1. Visit Main Console
2. Zoom or Change map
view
Update new Details
in Map Data Display
Tab
Zoom Level, Center
Longitude and
Center Latitude
Updated in Map
Data Display
Section
85
19 Test Save Snap
Shot Button
Test the
functionality of Save
Snap Shot Button in
Map Data Panel
1. Visit Main Console
2. Visit Map Data
Panel
3. Click Save Snapshot
Button
Save Snap shot data
in to Database
New record added to
the Snapshot Table
with the details of
Center Longitude &
Latitude, Zoom level
and makers
20 Add New
Marker Location
with Data
Test Add New
Functionality in Map
Markers Section
with Providing all
data.
1. Visit Main Console
2. Click New in
Map Markers Section
3. Enter Marker Title,
Marker Address,
Longitude, Latitude,
Type, Status and Info
values in the Dialog
Panel Appeared
4. Click OK.
Dialog Panel will
Close. Save Data in
to Database and View
Marker in the Map.
Data saved in
Marker Location
Table in Database
and New Icon
Added to the map
view.
21 Add New
Marker Location
without
Providing Data
Test Add New
Functionality in Map
Markers Section
without providing all
data.
1. Visit Main Console
2. Click New in
Map Markers Section
3. Click OK.
Message indicating
Values Required.
Separate Messages
for all blank fields
indicating Values
Required.
22 Test Add New
Marker Location
Component
Cancel Button
Test Cancel Button
Functionality of
Add New Marker
Location
Component.
1. Visit Main Console
2. Click New in
Map Markers Section
3. Enter Marker Title,
Marker Address,
Longitude, Latitude,
Type, Status and Info
values
4. Click Cancel.
Dialog Box will
Disappear.
Add New Marker
Location Dialog
closed and Data
entered are cleared
without saving.
23 Edit Map
Markers with
Data
Test Edit
Functionality in Map
Markers Section for
a selected marker.
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Click Edit in
Map Markers Section
4. Modify relevant
details in the Dialog
Panel Appeared
5. Click Save.
Dialog Panel will
Close and Save Data
in to Database.
Update the Marker
Icon according to
Change.
Data Updated in
Marker Location
Table in Database
and Marker Icon
changed if type
changed.
24 Edit Map
Markers with
Blank Field Data
Test Edit
Functionality in Map
Markers Section for
a selected marker
providing Blank
Data.
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Click Edit in
Map Markers Section
4. Clear field details in
the Dialog Panel
Appeared
5. Click Save.
Message indicating
Values Required
except Address Field.
Separate Messages
for all blank fields
indicating Values
Required except
Address Field.
86
25 Test Edit
Marker
Component
Cancel Button
Test Cancel Button
Functionality of
Edit Map Markers
Component
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Click Edit in
Map Markers Section
4. Modify relevant
details in the Dialog
Panel Appeared
5. Click Cancel.
Dialog Box will
Disappear.
Edit Marker
Location Dialog
closed and Data
entered are cleared
without saving.
26 Test Focus in
Map Markers
Test the Focus
Functionality in Map
Markers Section.
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Map Markers Section
4. Click Focus.
Map will focus to the
Maker.
Map focused to the
given Marker by
setting the marker
longitude and
latitude as the
center.
27 Test Close
Marker Button
Test Close Marker
Button Functionality
in
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Map Markers Section
4. Click Close Marker
Status of the selected
marker will change to
„Closed‟ and Marker
will remove from the
Map
Selected marker
status changed to
„Closed‟
(Need to refresh
the page to remove
the marker from
the Map)
28 Message Mobile
Operatives
Component Send
Message to
selected users.
Test the Send
Message
Functionality to the
selected operators of
Message Mobile
Operatives
Component
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Tasks and Alerts Panel
4. Click Message
Mobile Operatives
5. Enter Message
Header and Content
6. Select operatives
from the available list to
send the message
7. Click Send Message
Message will send to
the mobile device of
the selected operators
Message sent to the
queue of the mobile
client to send to the
operators and saved
the message in the
Database.
29 Message Mobile
Operatives
Component
View History
Button Test
Test the View
Message History
Functionality of
Message Mobile
Operatives
Component
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Tasks and Alerts Panel
4. Click Message
Mobile Operatives
5. Select operatives
from the available list
7. Click View History
Display details of the
Sent Messages to the
selected operators in
a Dialog Panel
Message details
(Status, Time,
Header, Operator)
are listed in to a grid
which are sent to the
selected operators.
87
30 Test Operative
Messages Status
Update
Test the status auto
update
Functionality of
Message Mobile
Operatives
Component
1. Send a Message to an
available operator.
2. View Message
History of that operator.
3. View Message
History again after 5
minutes.
Message status will
change from „In
Queue‟ to „Timed
Out‟.
Status of the
message is changed
to Timed Out if not
viewed by operator.
If viewed Status
changed to
Completed.
31 Message Mobile
Operatives
Component
Cancel Button
Test
Test the Cancel
Functionality of
Message Mobile
Operatives
Component
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Tasks and Alerts Panel
4. Click Message
Mobile Operatives
5. Enter Message
Header and Content
6. Select operatives
from the available list to
send the message
7. Click Cancel
Dialog Panel will
Disappear.
Send Operative
Messages Dialog
closed and Data
entered are kept with
the dialog without
saving.
32 Message Mobile
Operatives
Component Send
Message without
selecting
operators
Test the Send
Message
Functionality
of Message Mobile
Operatives
Component without
selecting operators
to send
1. Visit Main Console
2. Double Click on a
Marker Icon in the map
view.
3. Visit
Tasks and Alerts Panel
4. Click Message
Mobile Operatives
5. Enter Message
Header and Content
6. Select NO operatives
from the available list.
7. Click Send Message
No message will send
to anybody and
dialog will disappear.
No message sent to
the queue of the
mobile Dialog
closed and Data
entered are kept with
the dialog without
saving to the
Database.
33 Test Reports
Generation with
custom
selections
Test the Report
Generation
Functionality with
custom selections
1. Visit Main Console
2. Visit Basic Settings
of Reports Panel
3. Select Graph Type,
Time Unit, Range
Mode, Time Slot and
Fact Type from the
Lists
4. Click OK
Navigation to Report
Console.
Display filtered
markers in the Report
Map and Statistics in
Report statistics area.
Navigated to the
Report Console.
Report Map contains
the markers
according to the
filtration. Report
statistics contains
the tabular and listed
representation.
34 Report Console
Marker Selection
Functionality
Test Marker
Selection
Functionality of
Report Console
1. Report Console by
providing selection
criteria to filter the
markers.
2. Click on a Marker
Icon in the Report Map.
Marker details will
fill to fields
automatically.
Details of the
selected marker are
appeared in the
Report Map Fields.
88
35 Report Console
Focus
Functionality
Test Focus
Functionality of
Report Console
1. Report Console by
providing selection
criteria to filter the
markers.
2. Double Click on a
Marker Icon in the
Report Map.
3. Click Focus.
Report Map will
focus to the Maker.
Report Map focused
to the given Marker
by setting the
marker longitude
and latitude as the
center.
36 Report Console
Export
Functionality
Test Export to PDF
Functionality of
Report Console
1. Report Console by
providing selection
criteria to filter the
markers.
2. Visit Report statistics
Panel.
3. Click Export to PDF
Link.
PDF Document will
Create with Marker
Details.
PDF Document
Created with Marker
Details filled in to a
Data Grid.
37 Report Console
Graph
Generation
Functionality
Test Graph
Generation
Functionality of
Report Console
1. Report Console by
providing selection
criteria to filter the
markers.
2. Visit Report statistics
Panel.
Line graph generated
in the Statistic Graph
area.
Line graph
generated by
selecting Time Slot
as X axis and Fact
Type Occurrences as
Y axis.
38 Report Console
Back Button
Functionality
Test Back Button
Functionality of
Report Console
1. Report Console by
providing selection
criteria to filter the
markers.
2. Visit Report Map.
3. Click Back button.
Navigation to the
Main Console Page.
Load the Main
Console Page with
default settings.
User ID and Sub
Domain values are
Missing.
39 Add New
Domain Marker
with provided
data
Test Add New
Domain Marker
Functionality in Map
Markers Section
with Providing all
data.
1. Visit Main Console
2. Visit
Map Markers Section
3. Enter Marker Type
and Marker Icon Name
4. Click OK.
Message indicating
Successfully saved
and Save Data in to
Database.
Message appears
indicating succeeded
and Data saved in
Domain Marker
Table in Database.
40 Add New
Domain Marker
without
providing Data
Test Add New
Domain Marker
Functionality in Map
Markers Section
without providing all
data.
1. Visit Main Console
2. Visit
Map Markers Section
3. Click OK.
Message indicating
Values Required.
Separate Messages
for all blank fields
indicating Values
Required.
41 Test Add New
Domain Marker,
Cancel Button
Test Add New
Domain Marker‟s
Cancel Button
Functionality in Map
Markers Section.
1. Visit Main Console
2. Visit
Map Markers Section
3. Enter Marker Type
and Marker Icon Name
4. Click Cancel.
Dialog Panel will
Disappear.
Add New Domain
Marker Dialog
closed and Data
entered are cleared
without saving.
89
42 Browser
Compatibility
Test
Test the browser
compatibility of the
Cyber-GIS
Application
1. Load the application
in Internet Explorer
2. Visit the Main
Console
3. Load the application
in Mozilla Firefox
4. Visit the Main
Console
5. Load the application
in Google Chrome
6. Visit the Main
Console
Load the main
console in any of the
browser.
Application loaded
in Internet Explorer,
Mozilla Firefox,
Google Chrome
browsers and main
console page
appeared. (Styles are
loaded in slight
differently.)
43 Test
Concurrency
Access
Test the concurrency
use of the Cyber-
GIS Application.
1. Load the application
in Internet Explorer
2. Login to the system
as User 01
3. Load the application
in Mozilla Firefox
4. Login to the system
as User 02
5. Load the application
in Google Chrome
6. Login to the system
as User 03
All users can work
concurrent-ly
Users can login to
the system any time
and work separately
without having
effects or delays.
(Same resource can
be used
concurrently)