Introducing the Open Source CUAHSI Hydrologic Information System Desktop Application (HIS Desktop)
The U.S. National Science Foundation supported Consortium of Universities for the Advancement of Hydrologic Sciences (CUAHSI) Hydrologic Information System (HIS) project includes extensive development of data storage and delivery tools and standards including WaterML (a language for sharing hydrologic data sets via web services), and HIS Server (a software tool set for delivering WaterML from a server). These and other CUASHI HIS tools have been under development and deployment for several years and together present a relatively complete software “stack”, to support the consistent storage and delivery of hydrologic and other environmental observation data. This paper describes the development of a new HIS software tool called “HIS Desktop” and the development of an online open source software development community to update and maintain the software. HIS Desktop was envisioned as a local (i.e. not server-based) client side software tool that ultimately will run on multiple operating systems and will provide a highly usable level of access to HIS Services. The software will provide several capabilities including data query, map-based visualization, data download, local data maintenance, editing, graphing, data export to selected model-specific data formats, linkage with integrated modeling systems such as OpenMI, and ultimately upload to the HIS server from the local desktop software. As the software is presently in the early stages of development, this paper focuses on design approach and paradigm and is presented to encourage participation in the open development community. Indeed, recognizing the value of community based code development as a means of ensuring end-user adoption, this project has adopted an “iterative” or “spiral” software development approach where 1) the general project requirements and hard boundary conditions are specified at the outset; 2) an initial brief functionality requirements list is developed; 3) the initial limited system is produced primarily by the core funded developer team, but with voluntary external programmer support as it becomes available; 4) testing and bug fixes by the developer team; 5) deployment of an installation package for end-users; 6) collection of bug notices and feature requests from end-users; 7) identification of specific bugs and features to be addressed in a new release; 8) addition of these features by the developer team, etc. This development approach is the most common approach used by open source projects because of its flexible and dynamic nature. This model is well suited to a community project where it is difficult (and often not useful) to fully-specify the functionality set required for a software release (i.e. as in the “waterfall” development approach), but rather it is desirable to maintain an open structure that can easily be extended through the development of third party plug-ins to support as-yet unknown functions and capabilities, as well as a clear policy on how code is moved into the core system, and how external developers are included in the developer team.