Lessons Learned from GIS Application Development in a State Government Context
Yueming Wu, Ph.D.
West Virginia Department of Environmental Protection
2006 West Virginia GIS Forum & Workshop
Morgantown, May 18, 2006
Contents
What is GIS application development?
Why is GIS application development needed?
How is a GIS application developed?
Case study
Lessons
Questions & comments
What is GIS application development?
GIS application development or GIS customization development is not to rewrite a proprietary GIS package, but to incorporate users’ ideas to convert it into a usable and stable product.
Why is GIS application development needed?
There are no truly "off-the-shelf" GIS applications satisfying all organizations due to the variety of organizational business models. Business intelligent GIS applications are needed to address the issue.
Casual users, representing the majority in a government agency, prefer user-friendly and practical GIS applications.
Commercial GIS packages focus on basic and common
GIS functions across industries. Power users need more complex GIS tools than a commercial GIS package could offer.
How is a GIS application developed?
Bell D, Morrey I and Pugh J (1992) Software engineering: a programmingp approach. 2nd edn. Prenctice-Hall, New York
Case study
Establish requirements (use case)
Specify (requirements)
Design
Implement
Operate and maintain
Case study: establish requirements (use case)
West Virginia Department of Environmental Protection
(WVDEP) has been developing an Enterprise Information
System (EIS), involving a variety of spatial and non-spatial databases.
Users in the Mining & Reclamation Program were looking for a convenient way to electronically link GIS data with data in non spatial databases.
Case study: specify (requirements)
Composite query:
Electronically link GIS data with data in non-spatial databases (e.g., ERIS & EQuIS)
Facts:
Available inhouse database applications didn’t offer such a function
Most employees lacked advanced GIS skills to take advantage of GIS packages (e.g., ArcGIS)
Case study: specify (requirements)
Streamline composite query processes
Provide easy access to GIS data
Provide easy access to non-spatial data
Improve spatial operation efficiency
Case study: design -- application model
Client-server architecture
Client side
SQL statements
API calls
Server side
Smart geodatabase
Procedures/triggers/views in databases
Programs to link spatial & non-spatial databases
Case study: design -- application structure
A toolbar integrated into ESRI ArcGIS/ArcMap platform
Four groups of functions
Access GIS data
Perform composite queries
Access non spatial data
Utilities
Case study: implement -- coding
Programming languages/techniques
Microsoft Visual Basic 6.0, Microsoft ActiveX Data Object
(ADO), Microsoft OLE DB provider, Microsoft Component
Object Module (COM), ESRI ArcObjects library, Oracle
SQL statements, etc.
Products
COM based dlls (dynamic link libraries), each of which performs a specific task
Case study: implement – application setting
Toolbar integrated into ESRI ArcGIS/ArcMap platform
ArcMap running via a Citrix metaframe terminal services architecture
Case study: DMR Information Navigator
Case study: implement – application setting
End Users
.
DMR Navigator
ArcMap/ArcGIS
Citrix Server
ERIS/EQuIS/RIMS
Databases
ORACLE
ArcSDE
Geodatabases
Case study: implement – application testing
Functionality
Performance
Flexibility
Case study: operate and maintain
Document
Train users
Provide customer services
Upgrade on user feedback
Lessons
Administrative lessons
Technical lessons
Lessons: administrative lessons
Interaction with end users
Understanding users
From beginning to end
Budget consideration
Tight budget
In-house resources
Intra agency collaboration & cooperation
Across the Mining and Reclamation program
Across the agency
Inter agency collaboration & operation
Between WVDEP & the Feds (e.g. DOI-OSM)
Between WVDEP & universities (e.g. WVU-NRAC)
Lessons: technical lessons
Application development
Code as simple & reusable as possible
User involvement as early as possible
Application testing
Client side testing
Server side testing
Application deployment
Performance
Deployment model
Application maintenance
Customer service
Prompt updates
Questions & comments
Questions
Comments