Industry Publications

Use of Factory Method Design Pattern in the .NET Framework
Published in O'Reilly ONDotNet.com, Republished by MSDN Academic Alliance
Many popular software libraries make extensive use of design patterns so that the APIs can be abstracted out at a high level for the end programmer. The .NET Framework Class Library (FCL) is no exception. Given that the FCL builds on the strengths of Microsoft's experience with developing software libraries, one can assume that instances of design patterns found in the FCL are fairly appropriate usages of these patterns. This article describes some instances of a commonly occurring design pattern in the FCL: the Factory Method design pattern.

Team Development with Visual Studio .NET on a Shared Server
Published in .NET Developer's Journal
Anyone who has created a Web project with Visual Studio .NET 2002 is aware that VS.NET ties the location of the Web project to a virtual directory on IIS, making it impossible for multiple Web projects to share session state. This article offers: (1) the ability to create multi-project Web applications using VS.NET while sharing the same IIS virtual root, hence sharing the same session state; and (2) the ability to support multiple developers using VS.NET for developing Web applications on the same server.

Create Richer Hyperlinks with JSP Custom Tags
Published in O'Reilly ONJava.com
Gone are the days where one destination per link was enough. With mirroring, localization, and internationalization, your readers might want the choice of several different resources for any given link. Until XLink and XPointer are well supported in browsers and authoring tools, most alternatives are clumsy. This article demonstrates a better approach by creating a custom JSP tag to control a dynamic menu of destination links.

Manage Users with JMS
Published in JavaWorld
Many enterprises have a federated set of homegrown and purchased applications that store their own copies of user contact information. In this age of mergers and acquisitions, a company's multiple business units or departments often carry redundant user information. Although most applications only store information about a specific application's users, the same user information is frequently stored in multiple applications. To maintain consistency and avoid customer confusion, these copies need to be synchronized regularly, and can be a challenge to maintain. This article describes a simple solution to this common problem of maintaining consistent user information across various business applications.

Writing Type-Safe Collections in C#
Published in O'Reilly ONDotNet.com, Republished by MSDN Academic Alliance
Statically typed programming languages allow earlier error checking, better enforcement of programming styles, and generation of more efficient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is often the need to deal with data whose type cannot be determined at compile time. This is especially true for the .NET collections framework. This article describes three ways in which you can create compile-time checked collections in C#.

Research Publications

VizCraft: A Problem-Solving Environment for Aircraft Configuration Design
IEEE Computing in Science & Engineering
The VizCraft problem-solving environment aids aircraft designers during conceptual design of a high-speed civil transport (HSCT). It integrates simulation codes that evaluate a design with visualizations for analyzing a design individually or in contrast to other designs. VizCraft provides a graphical user interface to a widely used suite of simulation and analysis codes for HSCT design, and it provides tools for visualizing the outputs of these codes. So, VizCraft provides an environment that combines visualization and computation, encouraging the designer to think in terms of the overall problem-solving task, not simply using the visualization to view the computation's results.

VizCraft: A Problem-Solving Environment for Aircraft Configuration Design
IEEE Computing in Science & Engineering, Vol. 3(1): pages 56-66
VizCraft is a problem-solving environment that aids aircraft designers during the conceptual design of a high-speed civil transport (HSCT). It integrates simulation codes that evaluate a design with visualizations for analyzing a design individually or in contrast to other designs. VizCraft provides a graphical user interface to a widely used suite of simulation and analysis codes for HSCT design, and it provides tools for visualizing the outputs of these codes. In other words, VizCraft provides an environment that combines visualization and computation, encouraging the designer to think in terms of the overall problem-solving task, not simply using the visualization to view the computation's results.

WBCSim: A Prototype PSE for Wood-Based Composites Simulations
Enabling Technologies for Computational Science, Kluwer Academic Publishers, Norwell, MA, pages 187-196
In this chapter, we describe a computing environment named WBCSim that is intended to increase the productivity of wood scientists conducting research on wood-based composite materials. WBCSim integrates Fortran 77-based simulation codes with a graphical front end, an optimization tool, and a visualization tool. WBCSim serves as a prototype for the design, construction, and evaluation of larger scale problem solving (computing) environments. Several different wood-based composite material simulations are supported. A detailed description of the prototype's software architecture and a typical scenario of use are presented. The system converts output from the simulations to the Virtual Reality Modeling Language (VRML) for visualizing simulation results.

VizCraft: A Multidimensional Visualization Tool for Aircraft Configuration Design
IEEE Visualization, San Francisco, CA, pages 425-428,555
In this paper, we describe a visualization tool to aid aircraft designers during the conceptual design stage. The conceptual design for an aircraft is defined by a vector of 10-30 parameters. The goal is to find a vector that minimizes an objective function while meeting a series of constraints. VizCraft integrates the simulation code that evaluates the design with visualizations for analyzing the design individually or in contrast to other designs. VizCraft allows the designer to easily switch between the view of a design in the form of a parameter set, and a visualization of the corresponding aircraft. The user can easily see which, if any, constraints are violated. VizCraft also allows the user to view a database of designs using parallel coordinates.

VizCraft: A Multidimensional Visualization Tool for Aircraft Configuration Design
Technical Report TR-99-02, Department of Computer Science, Virginia Tech, VA
We describe a problem solving environment (PSE) named VizCraft that aids aircraft designers during the conceptual design stage. At this stage, an aircraft design is defined by a vector of 10-30 parameters. The goal is to find a vector that minimizes a performance-based objective function while meeting a series of constraints. VizCraft integrates the simulation code that evaluates a design with visualization for analyzing a design individually or in contrast to other designs. VizCraft allows the designer to easily switch between the view of a design in the form of a parameter set, and a visualization of the corresponding aircraft geometry. The user can easily see which, if any, constraints are violated. VizCraft also allows the user to view a database of designs using parallel coordinates.

WBCSim: A Prototype Problem Solving Environment for Wood-Based Composites Simulations
Engineering with Computers, Springer-Verlag London Limited, Vol. 15(2): pages 198-210
This paper describes a computing environment named WBCSim that is intended to increase the productivity of wood scientists conducting research on wood-based composite materials. WBCSim integrates Fortran 77-based simulation codes with a graphical front end, an optimization tool, and a visualization tool. WBCSim serves as a prototype for the design, construction, and evaluation of larger scale problem solving (computing) environments. Several different wood-based composite material simulations are supported. A detailed description of the prototype's software architecture and a typical scenario of use are presented. The system converts output from the simulations to the Virtual Reality Modeling Language (VRML) for visualizing simulation results.

Visualization in Problem Solving Environments [HTML]
Digital Library and Archives, ETD etd-061899-113642, Virginia Tech, VA
This thesis describes two problem solving environments that integrate visualization and computational tools into a high level user interface. The objective of a problem solving environment is to provide scientists with a complete, usable, and integrated set of high level facilities for solving problems in a specific domain. Integrating visualization tools with computation tools encourages scientists to think in terms of the overall task of solving a problem, not simply using the visualization to view the results of the computation. This increases their productivity by allowing them to focus on the problem at hand rather than on general computation issues.

VizCraft: A Problem Solving Environment for Configuration Design of a High Speed Civil Transport
Multidisciplinary Analysis and Design Center for Advanced Vehicles Center Report 99-06-01, Virginia Tech, VA
In this paper, we describe a visualization tool to aid aircraft designers during the conceptual design stage. The conceptual design for an aircraft is defined by a vector of 10-30 parameters. The goal is to find a vector that minimizes an objective function while meeting a series of constraints. VizCraft integrates the simulation code that evaluates the design with visualizations for analyzing the design individually or in contrast to other designs. VizCraft allows the designer to easily switch between the view of a design in the form of a parameter set, and a visualization of the corresponding aircraft. The user can easily see which, if any, constraints are violated. VizCraft also allows the user to view a database of designs using parallel coordinates.

WBCSim: A Prototype Problem Solving Environment for Wood-Based Composites Simulations
Technical Report ncstrl.vatech_cs/TR-98-25, Department of Computer Science, Virginia Tech, VA
WBCSim is a computing environment that is intended to increase the productivity of wood scientists conducting research on wood-based composite materials. WBCSim integrates Fortran 77-based simulation codes with a graphical front end, an optimization tool, and a visualization tool. WBCSim serves as a prototype for the design, construction, and evaluation of larger scale problem solving (computing) environments. Several different wood-based composite material simulations are supported. A detailed description of the prototype's software architecture and a typical scenario of use are presented. The system converts output from the simulations to the Virtual Reality Modeling Language (VRML) for visualizing simulation results.