Johannes Mayer
On Quality Improvement of Scientific Software
Theory, Methods, and Application in the GeoStoch Development
 
Tenea Verlag, Berlin, 2005
 
br., 237 S., zahlr. sw-Abb.,
ISBN 3-86504-146-9
25 EUR


Homepage zu diesem Buch beim Tenea Verlag

Abstract
Scientific software, i.e. software developed in a scientific environment, is often subject to adhoc programming. Assume, someone wants to verify a new theory or hypothesis and makes an implementation. Reuse is often not possible. Therefore, these developments tend to "reinvent the wheel". How to avoid this? Using a common library and extending it may be a first step towards reuse—given that certain rules are followed to ensure consistency. This, however, does not work for graphical user interfaces (GUIs). However, the plug-in concept—well-known from Internet browsers—can be employed to make a lot of aspects of GUIs independently extensible. A design pattern for the easy application of the plug-in concept is presented. Furthermore, the plug-in concept is also applied to the architecture of applications and, in particular, GUIs. A number of design patterns are given to model many GUI elements using plug-ins. Frameworks for the application of the plug-in concept are given for the general case and also for GUIs. This approach and the frameworks have successfully been applied to the GUI developed in the GeoStoch project. The big advantage of this approach is that plug-ins can be added without modifying already existing code. Therefore, this methodology also allows less experienced users—the usual case in scientific software development—to extend GUIs, which is commonly restricted to those who developed it or is otherwise a very time consuming task. The only requirement is that the plug-ins are well structured in packages. In addition, existing plug-ins can be used as examples for self developed extensions. The core of the GeoStoch GUI is very small. Thus, nearly everything is a plug-in. Deployment is also possible by the end-user in a plug-in-based application in contrast to component-based applications. This gives more flexibility to deploy applications incrementally.

About the author
Johannes Mayer works as a lecturer at Ulm University, Germany. Furthermore, he teaches at the University of Applied Sciences Furtwangen and the Technical Academy Esslingen (TAE) both for academia and industry. He earned a doctoral degree for his work on software quality improvement in the field of scientific software. He received one of the dissertation awards by Ulm University's society in 2005.