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 in-house 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 ArcSDE Geodatabases ORACLE
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