ICSE 2011 Workshops
33rd International Conference on Software Engineering
Powered by
Conference Publishing Consulting

Fourth International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 2011), May 28, 2011, Waikiki, Honolulu, HI, USA

SE-CSE 2011 – Proceedings

Contents - Abstracts - Authors

Fourth International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 2011)

Preface

Title Page


Foreword


Full Papers

A Literature Review of Agile Practices and Their Effects in Scientific Software Development
Magnus Thorstein Sletholt, Jo E. Hannay, Dietmar Pfahl, Hans Christian Benestad, and Hans Petter Langtangen
(University of Oslo, Norway; Simula Research Laboratory, Norway; Lund University, Sweden)
The nature of scientific research and the development of scientific software have similarities with processes that follow the agile manifesto: responsiveness to change and collaboration are of the utmost importance. But how well do current scientific software development processes match the practices found in agile development methods, and what are the effects of using agile practices in such processes? In order to investigate this, we conduct a literature review, focusing on evaluating the agility present in a selection of scientific software projects. Both projects with intentionally agile practices and projects with a certain degree of agile elements are taken into consideration. In the agility assessment, we define and utilize an agile mapping chart. The elements of the mapping chart are based on Scrum and XP, thus covering two of the most prominent agile reference models. We compared the findings of the literature review to results of a previously conducted survey. The comparison indicates that scientific software development projects adopting agile practices perceive their testing to be better than average. No difference to average projects was perceived regarding requirements-related activities. Future work includes an in-depth case study to further investigate the existence and impact of agility in three large scientific software projects, ultimately aiming at a better understanding of the particularities involved in developing scientific software.

Supporting the Testing of Scientific Frameworks with Software Product Line Engineering - A Proposed Approach
Hanna Remmel, Barbara Paech, Christian Engwer, and Peter Bastian
(University of Heidelberg, Germany)
Testing scientific software involves dealing with special challenges like missing test oracle and different possible sources of a problem. When testing scientific frameworks, additionally a large variety of mathematical algorithms and possible applications for the framework has to be handled. We propose to use concepts of software product line engineering to handle this variability. The contribution of this paper is a two-step process for reengineering a variability model out of a framework for scientific software. This process is explained with a real case study. Furthermore, we sketch how the variability model can be used to systematically derive system test applications for the framework.

On the Object-oriented Design of Reference-counted Shadow Objects
Karla Morris ORCID logo, Damian W. I. Rouson, and Jim Xia
(Sandia National Laboratories, USA; IBM Toronto Lab, Canada)
The object-oriented programming (OOP) constructs of Fortran 2003 facilitate an elegant memory management solution of particular value when Fortran drives a second language that does not provide automatic garbage collection. More specifically, when Fortran derived types shadow a companion language’s objects, safe and economical execution requires destroying the companion objects when and only when all corresponding shadows have expired. This paper focuses on the object-oriented design (OOD) of reference-counted shadow objects. The presented class structure automatically controls the lifetimes of any shadow objects that extend a universal parent class. The paper also discusses a relevant use case in ForTrilinos, a set of object-oriented Fortran interfaces to C++ packages in the Trilinos parallel numerical solver library.

Improving CSE Software through Reproducibility Requirements
Michael A. Heroux
(Sandia National Laboratories, USA)
It is often observed that software engineering (SE) processes and practices for computational science and engineering (CSE) lag behind other SE areas. This issue has been a concern for funding agencies, since new research increasingly relies upon and produces computational tools. At the same time, CSE research organizations find it difficult to prescribe formal SE practices for funded projects.
Theoretical and experimental science rely heavily on independent verification of results as part of the scientific process. Computational science should have the same regard for independent verification but it does not.
In this paper, we present an argument for using reproducibility and independent verification requirements as a driver to improve SE processes and practices. We describe existing efforts that support our argument, how these requirements can impact SE, challenges we face, and new opportunities for using reproducibility requirements as a driver for higher quality CSE software.

Velo: Riding the Knowledge Management Wave for Simulation and Modeling
Ian Gorton, Chandrika Sivaramakrishnan, Gary Black, Signe White, Sumit Purohit, Michael Madison, and Karen Schuchardt
(PNNL, USA)
Modern scientific enterprises are inherently knowledge-intensive. In general, scientific studies in domains such as geosciences, climate, and biology require the acquisition and manipulation of large amounts of experimental and field data in order to create inputs for large-scale computational simulations. The results of these simulations must then be analyzed, leading to refinements of inputs and models and additional simulations. Further, these results must be managed and archived to provide justifications for regulatory decisions and publications that are based on these models. In this paper we introduce our Velo framework that is designed as a reusable, domain independent knowledge management infrastructure for modeling and simulation. Velo leverages, integrates, and extends open source collaborative and content management technologies to create a scalable and flexible core platform that can be tailored to specific scientific domains. We describe the architecture of Velo for managing and associating the various types of data that are used and created in modeling and simulation projects, as well as the framework for integrating domain-specific tools. To demonstrate a realization of Velo, we describe the Geologic Sequestration Software Suite (GS3) that has been developed to support geologic sequestration modeling. This provides a concrete example of the inherent extensibility and utility of our approach.

Reengineering a Scientific Software and Lessons Learned
Yang Li
(TU München, Germany)
SeisSol is a scientific software for the numerical simulation of seismic wave phenomena. However, there are three main problems in the SeisSol project. First, the project documentation is incomplete. Second, the source code comprehensibility is low. Third, the dependencies between the modules in the system are complicated. To solve the problems and to enhance the software quality, we perform a reengineering process on SeisSol. The process contains four steps, reverse engineering, requirements reengineering, redesign and source code refactoring. In the requirements reengineering step, we employ a novel approach to elicit requirements efficiently for such a scientific computing project.
Through the reengineering process, the documentation of source code, requirements and the improved design is generated, the system is more modularized and easier to be extended, as well as the source code are more comprehensible. We also discuss the lessons learned during the reengineering process.

Mind the Gap! Bridging the Dichotomy of Design and Implementation
Donna Kaminskyj Long, Liam Kiemele, Celina Gibbs, Andrew Brownsword, and Yvonne Coady
(University of Victoria, Canada)
This paper presents a revamping of a sparse linear algebra design pattern, targeting parallelization within scientific and engineering applications. A proof of concept implementation is developed to compare actual software practices and optimizations with those described in the original design pattern. The case study reveals that the design pattern did not tightly coincide with the design decisions in the implementation. The proposed revised pattern takes these decisions into account more explicitly, refining the structural representation of the pattern to make it more accessible to scientific developers attempting to achieve the benefits of parallelization now available in commodity systems.

Short Paper

Towards Production Monitoring of Application Progress
Jonathan Cook, Hadi Sharifi, and Amir Farrahi
(New Mexico State University, USA)
We present here a vision for better information-based management of high-performance computing resources and the long-running scientific applications that use them.

proc time: 0.59