GIS Application Development
Through time, as users become more experienced with GIS, they require more complex applications. The initial Needs Assessment will contain some applications of a complex nature, however the majority of initial applications will be straight-forward, using the basic functionality that is part of every commercial GIS (e.g., query, display). The more complex applications usually are not supported by the basic functions of a GIS but must be programmed using the GIS macro language or other programming language. This guideline identifies several categories of applications that must be prepared by users and how overall requirements change over time.
Sales brochures, live demos and journal articles touting the impressive and extensive array of GIS capabilities creates the impression that application development is a non-issue. The vendors, it would seem, have already developed fully functional, out-of-the-box, meet-your-business-needs, GIS software. GIS can and should do anything and everything.
So why are we talking about application development?
Applications are the icing on the GIS layer cake; the highest level of customizable software. The underlying "cake" provides the functionality common to all user disciplines. Commercial GIS packages tend to focus on the common or basic applications - the "cake." When it comes to specialized uses, application development fills the needs for functionality. Though there is a great deal of commonalty in the basic spatial query and display functions, there is still a need for other advanced applications. We need additional applications because needs are different between organizations.
Commercial GIS development is driven by market pressure. The software vendors only respond to what makes economic sense for their market share. What's important to your organization may not be important to others. Because of this, there are no truly "off-the-shelf" applications that will match all of your needs. You either have to adapt your uses to their data model and functionality or you develop applications to fit your use environment.
Application development is not rewriting the GIS software, but instead custom applications to meet specific needs. The applications may be as simple as a set of preferences that are stored for each user group or individual and are run as a macro at startup time. Or they may be a very complex query that selects a group of layers, identifies features of interest based on attribute ranges, creates variable width buffers, performs a series of overlays and produces a hard copy map. In either case, an application is required to convert the user's ideas into a usable, stable product.
Applications are not restricted to user-defined needs. One of the short-comings of the needs assessment methodology presented earlier, is the focus on only end-user query, analysis, and display requirements. Collective needs, particularly those related to system-wide functions, are not identified by individual users. The most important of these are the data administration functions for maintaining the quality and integrity of the database, such as quality control, verification, editing, back-up routines, and security.
Database applications fall into the following categories:
- database set-up (described as part of GIS System Integration)
- database management
- database maintenance
- data archiving and retention
Each step needs to be fully defined, as appropriate to the specifics of the GIS program. The main point here is not how these steps are completed but rather to identify all of the necessary steps and to emphasize the importance of planning and executing each one.
The MS Access metadata software tool accompanying these guides sets forth a structure for creating documentation needed for the management and maintenance of the GIS database. Table definitions for the metadata tool are in the appendix to the GIS use and Maintenance Guideline.
Formal Specifications for Advanced Applications
The documentation of applications in the Needs Assessment guideline describes methods suitable for preparing full and formal specifications for all applications. However, most applications in a new GIS will be of the simpler, more basic type (display, query, map overlay). These applications will likely be satisfied by the normal functionality that is included in most commercial GIS.
More complex applications, either database or spatial analysis, will require development using the GIS macro programming language. For these applications the process of preparing formal specifications, similar to what any large programming project uses, should be followed. The techniques recommended in the Needs Assessment guideline are data modeling by application (E-R technique) and data flow diagramming. These techniques are suitable to provide an overview of a complex application. Additional techniques should be used, as appropriate, including:
- structural analysis and programming
- rapid prototyping
As the application development needs increase, there will be a need for additional staff with the appropriate programming skills and experience using the macro programming language of the GIS.