Documente Academic
Documente Profesional
Documente Cultură
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
September 2011
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.
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.
ii
Table of Contents
CHAPTER NO. TITLE PAGE NO.
acknowledgement abstract list of tables list of figures list of abbreviations 1. 2. INTRODUCTION LITERATURE SURVEY 2.1 Similar Systems 2.2 Theoretical Background 2.3 Required Components 3. PROPOSED METHOD 3.1 Introduction 3.2 System Requirements 3.3 Main Components and Flow 3.4 Project Plan and Approach 4. 5. 6. 7. 8. DESIGN OF SOFTWARE FABRICATION OF SOFTWARE TESTING AND IMPLEMENTATION RESULTS CONCLUSION AND FUTURE WORK 8.1 CyberGIS GUI Module. 8.2 CyberGIS Mobile Component. 8.3 CyberGIS Service Module. 9. PROJECT CONTRIBUTIONS 9.1 Project Contribution by: M.S.R Perera <209087374> 9.2 Contribution by: D.S Kulasuriya<709087412> 9.3 Contribution by: W.M.D.R Jeewantha<509087436> REFERENCES
I II VI VII VIII 1 2 2 3 3 4 4 4 7 8 11 23 25 35 36 36 37 37 38 38 39 40 41
iii
APPENDIX Appendix A Use case Diagrams Appendix A1 CyberGIS Admin User Use Case Diagram Appendix A2 CyberGIS Operative User Use Case Diagram Appendix B Class Diagrams Appendix B1 CyberGIS Mobile Component Class Diagrams Appendix B1.i GUI Package Appendix B1.ii Service Package Appendix B1.iii . Core Package Appendix B1.iv . Constants And Param Package Appendix B2 CyberGIS Service Module Class Diagrams AppendixB2.i:The RMI DTO Package Appendix B2.ii Service DTO Package Appendix B2.iii Business Logic Package Appendix B2.iv. JPA Package Appendix B2.v .Web Service Package Appendix B2.vi . Utility Package Appendix B3 CyberGIS GUI Module Class Diagrams Appendix B3.i . Logic Package Appendix B3.ii Service Package Appendix B3.iii. Param Package. Appendix B3.iv . MDB package Appendix B3.v . Filter Package Appendix B3.vi Utility Package. Appendix B3.vii . Test Package Appendix C Sequence Diagrams. Appendix C1: Add Domain Map Marker Appendix C2: Close Domain Map Marker Appendix C3: Create Snap shot Appendix C4: Generate CyberGIS Report Appendix C5: Send Operative Location Update Appendix C6: Send Operative Message Appendix C7: View Operative Message History Appendix C8: Send Operative Message Notification Appendix C9: View Current Operative Location On Map Appendix C10: Timeout CyberGIS Operative Message Appendix C11: Add Domain User Appendix C12: Login CyberGIS User Appendix D Activity Diagram Appendix D1: Load Main Console
42 42 42 43 44 44 44 45 46 47 48 48 49 50 51 52 53 54 54 55 56 56 56 57 58 59 59 60 61 62 63 64 65 65 66 67 68 69 70 70
iv
Appendix D2: Display Operative location Appendix D3: Add New Map Marker Appendix D4: Close Map Marker Appendix D5: Edit Map Marker Appendix D6: Send Operative Message Appendix D7: Load Main Console Appendix D8: Add New User Appendix E ER Diagram Appendix F Screen Designs Appendix F1: CyberGIS Main Console Appendix F2: CyberGIS Login Dialog Appendix F3: CyberGIS New Marker Dialog Appendix F4: CyberGIS New User Dialog Appendix F5: CyberGIS Map Marker Panel Appendix F6 : CyberGIS Report Wizard Dialog Appendix F7: CyberGIS Operative Message Dialog Appendix F8: CyberGIS Operative Message History Dialog Appendix F9: CyberGIS Mobile Login Appendix F10: CyberGIS Mobile Main Screen Appendix F11: CyberGIS Mobile Task List Appendix F12: CyberGIS Mobile Task Details Appendix F13: CyberGIS Mobile Task Notification Appendix F14: CyberGIS Mobile Task Status Update Appendix G : Test Cases
70 71 71 72 72 73 73 74 75 75 75 76 76 77 77 78 78 79 79 80 80 81 81 82
List of Tables
Table Description Functional Requirements Project Deliverables Actual vs. Planned Severity Classification
Page No. 5 9 10 27
vi
List of Figures
Figure ID Figure 3.1 Figure 4.1 Figure 4.2 Figure 4.3 Figure 4.4 Figure 6.1
Figure Description CyberGIS System General Architecture CyberGIS Service Module High Level Design CyberGIS GUI Module High Level Design CyberGIS Mobile Module High Level Design Test Deliverables
Page No. 7 11 12 17 20 26
vii
List of Abbreviations
Abbreviations AJAX API DB GIS GUI IDE J2ME JMS JPA JSF mbps ORM OS QA RMI SRS UI URL WTK XML Description Asynchronous JavaScript And XML Application Programming Interface Data Base Geographic Information System Graphical User Interface Integrated Development Environment Java 2 Mobile Edition Java Messaging Services Java Persistent API Java Server Faces Mega Bits per Second Object Relational Mapping Operating System Quality Assurance Remote Method Invocation System Requirement Specification User Interface Universal Resource Locator Wireless Tool Kit Extensible Markup Language
viii
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.
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.
Functional requirements:Title System Customization. Description 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.
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. 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.
DB
Main Console
WEB
Mobile Device
GPS Device
Operative
Code CG1.1.1 CG1.1.2 CG1.1.3 CG1.2.1 CG1.2.2 CG1.2.3 CG1.2.4 CG1.2.5 CG1.3.1 CG1.3.2 CG1.4.1 CG1.4.2 CG1.4.3 CG1.4.4 CG1.4.5 CG1.4.6 CG1.4.7 CG1.5.1
Deliverable Vision document Project structure document Milestone review report Master project plan Functional specification Deployment plan Test plan Test specification Develop internal releases Traceability Audit document Functional testing UI stabilizing System testing Pre-production testing Release candidates User acceptance testing Testing and Bug Report Project Close-Out Report Table 3.2 Project Deliverables
Phase Envision
Code
Deliverable
Planned (hr.)
CG1.1.1 CG1.1.2 CG1.1.3 CG1.2.1 CG1.2.2 CG1.2.3 CG1.2.4 CG1.2.5 CG1.3.1 CG1.3.2 CG1.4.1 CG1.4.2 CG1.4.3 CG1.4.6 CG1.4.7 CG1.5.1
Vision document Project structure document Milestone review report Master project plan Functional specification Deployment plan Test plan Test specification Develop internal releases Traceability Audit document Functional testing UI stabilizing System testing User acceptance testing Testing and Bug Report Project Close-Out Report
10
When designing the CyberGIS System weve 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 weve 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:
11
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 its methods to be called by other modules by using Java RMI and SOAP based Document+Literal Style web services.
12
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 weve 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.
13
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.
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.
14
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.
15
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.
16
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 weve 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.
17
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.
18
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.
19
20
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.
21
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.
22
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.
24
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:
Requirements [PM]
Bug Results
Test Plan
Test Cases
Bugs
Bug Reports
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.
26
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 Severity Severity Description ID 1 Level 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.
27
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 systems 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.
28
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.
29
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
30
Performance Testing Methodology We have followed the following activities to conduct the performance testing:
We have to identify our test environment first. We havent 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 projects life cycle.
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.
31
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.
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.
32
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.
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.
33
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.
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.
34
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 systems functional and non functional requirements are addressed properly.
35
36
dashboard for live monitoring services where the user will be able to monitor live statistics about the current functionality of the system.
37
38
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.
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
Managers request.
40
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/whatgis [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.
41
APPENDIX
Appendix A Use case Diagrams Appendix A1 CyberGIS Admin User Use Case Diagram
42
43
Appendix B Class Diagrams Appendix B1 CyberGIS Mobile Component Class Diagrams Appendix B1.i GUI Package
44
45
46
47
Appendix B2 CyberGIS Service Module Class Diagrams AppendixB2.i:The RMI DTO Package
48
49
50
51
52
53
Appendix B3 CyberGIS GUI Module Class Diagrams Appendix B3.i . Logic Package
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Appendix E ER Diagram
74
75
76
77
78
79
80
81
Expected Result
Auto Navigation to Main Panel
Actual Result
Auto Navigation to Main Panel
02
03
Message saying Incorrect User Name and/or Password. Login Failed. Please try again. Separate Messages for all blank fields indicating Values Required. Clear Username & Password Field Values. Navigation to Reset Password Page
04
05
06-a
Test Forgot Password Link navigates to the Reset Password page Test the Forgot Password component with providing correct Username, Email and Password
1. Visit Login Page 2. Enter Username &/or Password 3. Click Login 1. Visit Login Page 2. Click Forgot Password? Link 1. Visit Login Page 2. Click Forgot Password? Link 3. Enter Username, Email , New Password & Repeat New Password 4. Click Submit 1. Visit Login Page 2. Click Forgot Password? Link 3. Enter Username, Email, New Password & Repeat New Password 4. Click Submit
06-b
Test the Forgot Password component with providing correct Username, Email and Password
82
07
Test the Forgot Password component with providing correct Username, Email. But new password is incorrectly repeated Test the Forgot Password component with providing incorrect Username and/or Email. But new password is correctly repeated. Test the Forgot Password component with providing blank Username, Email, New Password, and Repeat Password. Test the Forgot Password component Cancel Button Functionality.
08
09
1. Visit Login Page 2. Click Forgot Password? Link 3. Enter Username, Email, New Password & Repeat New Password 4. Click Submit 1. Visit Login Page 2. Click Forgot Password? Link 3. Enter Username, Email, New Password & Repeat New Password 4. Click Submit 1. Visit Login Page 2. Click Forgot Password? Link 3. Click Submit
Message appears indicating Either you have entered an invalid User Name or invalid E-Mail address .
10
11-a
Test the link used to navigate to the Login Page, appears after Password Reset. Test the link used to navigate to the Login Page, appears after Password Reset.
11-b
1. Visit Login Page 2. Click Forgot Password? Link 3. Enter Username, Email, New Password & Repeat New Password 4. Click Cancel 1. Visit Password Reset Page 2. Enter correct details. 3. Click Submit 4. Click Cyber-GIS link in appeared page. 1. Visit Password Reset Page 2. Enter correct details. 3. Click Submit 4. Click Cyber-GIS link in appeared page.
Clear Username, Email, New Password & Repeat New Password Field Values.
83
12
Test Add New User Functionality with providing all requested data
1. Visit Domain Message indicating Administration Panel Successfully saved. 2. Click Add Domain User 3. Enter User Name, Email, Contact Mobile, Contact Telephone, Company, Access Level, Password and Repeat Password. 4. Click OK 1. Visit Administration Message indicating Panel Values Required. 2. Click Add New User 3. Click OK without providing values for all fields.
13
14
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. Test Create New User components Cancel Button Functionality.
15
16
17
18
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 Test the Navigation 1. Visit Main Console Button to Go to 2. Go Inside to panels. Home Page 3. Click Home Button Test the Navigation 1. Visit Main Console Button used to Sign 2.Click Signout Button Out from the system 3. Confirm the Logout with User response decision. Confirm. Test the Navigation 1. Visit Main Console Button used to Sign 2.Click Signout Button Out from the system 3. Cancel the Logout with User response decision. Cancel. Test Map Data Panel 1. Visit Main Console for updating with 2. Zoom or Change map map changes view
Clear User Name, Email, Contact Mobile, Contact Telephone, Company, Access Level, Password and Repeat Password Field Values.
Load the Main Console Page. Load the User Login Page.
Zoom Level, Center Longitude and Center Latitude Updated in Map Data Display Section
84
19
Test the functionality of Save Snap Shot Button in Map Data Panel
1. Visit Main Console Save Snap shot data 2. Visit Map Data in to Database Panel 3. Click Save Snapshot Button
20
Test Add New Functionality in Map Markers Section with Providing all data.
21
Add New Marker Location without Providing Data Test Add New Marker Location Component Cancel Button
22
23
24
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. Test Add New 1. Visit Main Console Functionality in Map 2. Click New in Markers Section Map Markers Section without providing all 3. Click OK. data. Test Cancel Button 1. Visit Main Console Functionality of 2. Click New in Add New Marker Map Markers Section Location 3. Enter Marker Title, Component. Marker Address, Longitude, Latitude, Type, Status and Info values 4. Click Cancel. Test Edit 1. Visit Main Console Functionality in Map 2. Double Click on a Markers Section for Marker Icon in the map a selected marker. view. 3. Click Edit in Map Markers Section 4. Modify relevant details in the Dialog Panel Appeared 5. Click Save. Test Edit 1. Visit Main Console Functionality in Map 2. Double Click on a Markers Section for Marker Icon in the map a selected marker view. providing Blank 3. Click Edit in Data. Map Markers Section 4. Clear field details in the Dialog Panel Appeared 5. Click Save.
New record added to the Snapshot Table with the details of Center Longitude & Latitude, Zoom level and makers Dialog Panel will Data saved in Close. Save Data in Marker Location to Database and View Table in Database Marker in the Map. and New Icon Added to the map view.
Separate Messages for all blank fields indicating Values Required. Add New Marker Location Dialog closed and Data entered are cleared without saving.
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.
Message indicating Separate Messages Values Required for all blank fields except Address Field. indicating Values Required except Address Field.
85
25
26
27
28
29
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. Test the Focus 1. Visit Main Console Functionality in Map 2. Double Click on a Markers Section. Marker Icon in the map view. 3. Visit Map Markers Section 4. Click Focus. Test Close Marker 1. Visit Main Console Button Functionality 2. Double Click on a in Marker Icon in the map view. 3. Visit Map Markers Section 4. Click Close Marker Test the Send 1. Visit Main Console Message 2. Double Click on a Functionality to the Marker Icon in the map selected operators of view. Message Mobile 3. Visit Operatives Tasks and Alerts Panel Component 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 Test the View 1. Visit Main Console Message History 2. Double Click on a Functionality of Marker Icon in the map Message Mobile view. Operatives 3. Visit Component Tasks and Alerts Panel 4. Click Message Mobile Operatives 5. Select operatives from the available list 7. Click View History
Edit Marker Location Dialog closed and Data entered are cleared without saving.
Map will focus to the Map focused to the Maker. given Marker by setting the marker longitude and latitude as the center. 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) Message will send to Message sent to the the mobile device of queue of the mobile the selected operators client to send to the operators and saved the message in the Database.
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.
86
30
Test the status auto update Functionality of Message Mobile Operatives Component
31
32
33
34
1. Send a Message to an available operator. 2. View Message History of that operator. 3. View Message History again after 5 minutes. Test the Cancel 1. Visit Main Console Functionality of 2. Double Click on a Message Mobile Marker Icon in the map Operatives view. Component 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 Test the Send 1. Visit Main Console Message 2. Double Click on a Functionality Marker Icon in the map of Message Mobile view. Operatives 3. Visit Component without Tasks and Alerts Panel selecting operators 4. Click Message to send Mobile Operatives 5. Enter Message Header and Content 6. Select NO operatives from the available list. 7. Click Send Message Test the Report 1. Visit Main Console Generation 2. Visit Basic Settings Functionality with of Reports Panel custom selections 3. Select Graph Type, Time Unit, Range Mode, Time Slot and Fact Type from the Lists 4. Click OK Test Marker 1. Report Console by Selection providing selection Functionality of criteria to filter the Report Console markers. 2. Click on a Marker Icon in the Report Map.
Status of the message is changed to Timed Out if not viewed by operator. If viewed Status changed to Completed. Send Operative Messages Dialog closed and Data entered are kept with the dialog without saving.
No message will send No message sent to to anybody and the queue of the dialog will disappear. mobile Dialog closed and Data entered are kept with the dialog without saving to the Database.
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. Details of the selected marker are appeared in the Report Map Fields.
87
35
36
37
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. 1. Report Console by providing selection criteria to filter the markers. 2. Visit Report statistics Panel. 3. Click Export to PDF Link. 1. Report Console by providing selection criteria to filter the markers. 2. Visit Report statistics Panel.
Report Map focused to the given Marker by setting the marker longitude and latitude as the center.
Line graph generated Line graph in the Statistic Graph generated by area. selecting Time Slot as X axis and Fact Type Occurrences as Y axis. Navigation to the Main Console Page. Load the Main Console Page with default settings. User ID and Sub Domain values are Missing. Message appears indicating succeeded and Data saved in Domain Marker Table in Database. Separate Messages for all blank fields indicating Values Required.
38
39
40
41
1. Report Console by providing selection criteria to filter the markers. 2. Visit Report Map. 3. Click Back button. Test Add New 1. Visit Main Console Domain Marker 2. Visit Functionality in Map Map Markers Section Markers Section 3. Enter Marker Type with Providing all and Marker Icon Name data. 4. Click OK. Test Add New 1. Visit Main Console Domain Marker 2. Visit Functionality in Map Map Markers Section Markers Section 3. Click OK. without providing all data. Test Add New 1. Visit Main Console Domain Markers 2. Visit Cancel Button Map Markers Section Functionality in Map 3. Enter Marker Type Markers Section. and Marker Icon Name 4. Click Cancel.
Add New Domain Marker Dialog closed and Data entered are cleared without saving.
88
42
43
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 Test the concurrency 1. Load the application use of the Cyberin Internet Explorer GIS Application. 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
Application loaded in Internet Explorer, Mozilla Firefox, Google Chrome browsers and main console page appeared. (Styles are loaded in slight differently.)
Users can login to the system any time and work separately without having effects or delays. (Same resource can be used concurrently)
89