Improving the application development process with modular visualization environments

Modular Visualization Environments (MVE) such as the Application Visualization System (AVS TM) are well known in scientific and engineering communities as powerful tools for the visualization and analysis of technical data. More recently, tools such as AVS are gaining broader acceptance for general purpose application development. We believe that in order for MVEs to be successful visualization environments, they must first be good application development systems. This paper will discuss the strengths and weaknesses of Modular Visualization Environments in certain aspects of the application development process. A Brief History of AVS In the late 1980s, advances in computing technology combined interactive 3D graphics with high performance computing and created a new class of workstation capable of handling the intensive demands of scientific researchers using computers for numerical simulation and data analysis. These advances helped instigate the NSF report on "Visualization in Scientific Computing" [2]. For the initial releases of AVS, the product design philosophy was focused on providing the visual computing tools and environments envisioned by the authors of the NSF report" The first version of AVS, released as AVS I in April 1989, consisted of what is today called the Geometry Viewer. AVS I was used primarily as a post-processor to view the results of simulations. Although interactive 3D viewing of results was useful, a production Modular Visualization Environment had to meet a number of other important criteria including: • The need of researchers to exchange software tools. • An extensible and customizable environment. • Support for multi-platform, distributed computing. Initial research into such an environment began in 1988 and culminated in the release of AVS2 in December 1989 [3,1]. Combining the concepts of data flow architectures with visual programming, AVS2 revolutionized the way that researchers ran their simulations and viewed the results. Whereas AVS2 was truly a revolutionary product, AVS3, AVS4, and AVS5 were designed to be evolutionary products. Each of these major releases of AVS incorporated many new features that broadened the scope of use for AVS into a wide variety of disciplines. Additional functionality was added in areas such as: • Advanced 2D and 3D rendering techniques. • Heterogeneous/distributed computing. • Advanced visualization techniques. The need to add graphics and visualization to their applications led a number of software developers to evaluate and use AVS. However, the application development process has requirements that extend far beyond the functionality initially envisioned for a visualization environment such as AVS. These requirements led to a complete redesign of AVS to accommodate the flexibility and configurability that application developers need in their development tools. In June 1994, AVS/Express [4] was released with the charter to provide application developers with an object-oriented, visual programming environment for the rapid prototyping, construction and delivery of technical applications. Strengths within First Generation MVEs Initial feedback from developers working with Modular Visualization Environments indicates significant improvements in the application development process. While, to date no empirical studies have been undertaken to validate this claim, we have witnessed an increased level of developer productivity. Several cases involving large application development projects have been reported where development time has been more than halved. This productivity increase can be attributed to a number of factors. Rapid Prototyping A primary factor in the productivity increase is the visual programming tool that is central to all MVEs. Visual programming assists an application developer with many of the original goals upon which object technology is based. For instance, visual programming helps developers rapidly prototype new designs using existing code "modules" This can be done interactively by simply reconfiguring modules in the application and re-running the appl icat ion. Because visual programming environments such as AVS and AVS/Express are dynamic, changes to an application are seen instantly. The application is always active during the editing process and this leads to optimal prototyping efficien-