|
|
|
Applications
|
A 1998 framework for multi-participant AM/FM/GIS applications development
Geoffrey B. Ehler* & Rick Petrecca**
*Technical Consultant, Convergent Group
6200 South Syracuse Way, Suite 200, Englewood, CO 80111
Geoff.Ehler@cvg-grp.com
**Systems Analyst, Department of Public Works
City of Indianapolis, 200 East Washington Street, Rm 2441
Indianapolis, IN 46204
rpetrecc@indygov.org
Proiect Overview
Over the past decade, the City of Indianapolis/Marion County has made a substantial investment in
geographic information system (GIS) technology, but has realized only limited benefits from that
investment. In October 1996, the City/County commissioned Convergent Group to develop and deploy
specific applications to demonstrate how to fully leverage the existing GIS technology.
In January 1997, working with Systems and Computer Technology Corporation, the consultant was
selected to provide direction for leveraging and enhancing the existing GIS technology at the City of
Indianapolis/Marion County. Working with city executives and staff, the consultant developed a long
term strategic plan for enterprise-wide municipal GI S, addressing areas such as data update and
maintenance procedures, workflow and business re-engineering, applications development, system
architecture design, and management issues. The plan focuses on the following objectives for the GIS
program:
- Provide an accurate, up-to-date GIS database accessible to all potential users throughout the city;
- Provide easy-to-use desktop access to GIS data and applications across the enterprise;
- Use GIS technology to improve the efficiency of City/County operations and to expand the City/County’s ability to deliver services to the public;
- Provide a common management structure to guide all GIS-related initiatives within the City/County; and
- Develop applications to integrate the GIS with the Internet and provide information for public access.
During the initial stages of the contract, the consultant co-developed with City staff, several “high
return” applications, the goal of which was to demonstrate the benefits of GIS to City executives. The
applications selected for development were chosen for their ability to impact a broad range of end users
while serving to increase productivity through workflow re-design. It was during this applications
development phase that it became clear to software engineers that standard application development
methods and coding standards must be adopted. In addition, the issue of supporting geographically
distributed development teams became apparent, with the bulk of the consultant’s development taking
place at their office in Denver and the City’s taking place in Indianapolis.
The objectives of this paper are to discuss how the standard application development model was
designed, as well as how it was implemented within a proprietary programming language environment.
[n addition, issues such as operational impact, requirements gathering and documentation, coding
standards, multiple developer environments, and deployment considerations will be addressed.
Establishing these standards helps to ensure that user requirements are clearly documented and
understood, allows for consistency between applications, and will reduce development effort.
Approach
Combining the development staff from the consultant and the City into a single team has been a unique
situation for each of the partners. While Indianapolis has worked with contract developers in the past, it
was always for contracts to develop specific applications. Similarly, the consultants’s experience was
either as an outsourcing contractor/consultant or as an appl ication developer for a specific appl ication
from cradle to grave. The challenge presented was to integrate two distinct application development
staffs into a cohesive whole. A whole in which all members of the team could fill in for each other on
development projects and one where a project could be handed off from one member to another with no
loss. An additional goal was to develop an environment where the project team could maximize code
reuse. The team members recognized that the only way to achieve this goal was through efficient
communication; our ability to communicate would be enhanced by the adoption of common standards,
conventions, and methodologies.
Establishing coding standards and practices
Commercial Configuration Management Tools
Software configuration management (SCM) can be defined as a system utility that is able to track issues
such as version control, workspace management, build management, and process control (Babich, 1986;
IEEE, 1987). Version control supports project organization, historic code changes, and parallel
development teams. Workspace management allows individual developers the ability to simultaneously
work on portions of code within a software engineering project. The creation of deliverable code and
install files is addressed by build management. Finally, process control attempts to enforce an
organizat ion’s coding standards within the software development Iifecycle.
The City of Indianapolis currently has an ESR1-based GIS solution which includes ARC/INFO,
ArcView, and MapObjects/Visual Basic as the primary end-user environments. While ARC/lNFO and
MapObjects are directly supported by third party configuration management softwares such as
ClearCase, Visual Basic Enterprise, and LBMS Process Engineer, there are currently no commercially
available SCM tools for ArcView and its proprietary programming language, Avenue. Seeing this as a
shortcoming, the Indianapolis development team deemed it necessary to design the basic SCM functions
to support the large number of software engineers on the project team.
The primary focus of the development team was to set standards for applications coding including not
only the establishment of coding styles, but also developing script libraries for code reuse. Additionally,
the issue of cooperative application development within the GIS programming environment was
addressed. A set of graphical user interface (GUI) standards was also proposed, which will allow each
application to follow a consistent and standard “look and feel”.
Coding Styles
Coding style can be defined as both the informal and formal rules of programming as adopted by
developers. This allows subsequent programmers to easily follow the flow of code written by others. By
setting coding styles, this will aid in the use and reuse of existing code. Coding styles that were
established included standard headers, comments, notation, variable naming, script naming, and code
management. Adherence to these standards wi II promote the open interchange of scripts and code
between on-site and off-site developers.
Cross Referencing of Code
The cross reference and management of scripts within the software development environment allows
programmers to maintain a “clean” application by eliminating unneeded code. This function will allow
developers to search for specific code called by other scripts or linked as the result of an action taken
within the application GUI. This aids in the reuse and customization of enhancements to an application.
|
|
|
|