PrePrint: Mutation Sensitivity TestingIn the process of testing their codes, computational scientists frequently encounter challenges that are not typically encountered by software engineers who develop testing techniques. In response to this oversight, we have developed a research technique, called Mutation Sensitivity Testing. Using this technique we found that a few well-designed tests were able to detect a high percentage of the code faults that were introduced into small MATLAB functions. Our experiments also showed that it is often more effective to reduce error tolerances than to conduct more tests. These results suggest that, in the field of testing, software engineers and computational scientists have much to offer each other.
PrePrint: Introducing: The libflame Library for Dense Matrix ComputationsAs part of the FLAME project, we have been dilligently developing new methodologies for analyzing, designing, and implementing linear algebra libraries. While we did not know it when we started, these techniques appear to solve many of the programmability problems that now face us with the advent of multicore and many-core architectures. These efforts have culminated in a new library, libflame, which strives to replace similar libraries that date back to the late 20th century. With this paper, we introduce the scientific computing community to this library.
PrePrint: Automated Software Testing for MATLAB®This paper describes the basic mechanics of automated unit testing for a general scientific and engineering audience. Using MATLAB xUnit, a unit test framework for MATLAB, the paper illustrates how to write and run tests, construct test cases, organize test files, and deal with the special issue of floating-point representation and arithmetic. The paper discusses the framework's design and architecture, including how various xUnit principles have been implemented and how procedural test-writing has been accommodated. The paper concludes with a brief introduction to test-driven development.
PrePrint: Evaluating the ecological suitability for Olive tree in Sichuan using GIS and comprehensive fuzzy method: Methodological development and applicationWe have used the Geographic Information System’s (GIS) spatial analysis functions and comprehensive fuzzy sets to evaluate and analyze the ecological suitability of the olive trees in Sichuan, China. The over-years experience of olive planting and amelioration data has also been used as an aid to this analysis taking consideration of climate, soil, and topography which are closely related to the olive growing habit. The results are representing the actual distribution of olive while providing alternative adaptive regions for olive growing, thus we are able to offer guidance for the olive cultivation in the region.
PrePrint: Engineering the Software for Understanding Climate ChangeClimate scientists build large, complex simulations with little or no software engineering training, and do not readily adopt the latest software engineering tools and techniques. In this paper, we describe an ethnographic study of the culture and practices of climate scientists at the Met Office Hadley Centre. The findings show that climate scientists have developed customized techniques for verification and validation that are tightly integrated into their approach to scientific research. Their software practices share many features of both agile and open source projects, in that they rely on self-organisation of the teams, extensive use of informal communication channels, and developers who are also users and domain experts. These observations suggest that domain-independent software development process models are unlikely to be useful for this type of scientific software development.
PrePrint: Managing Chaos: Bridging the cultural divide between engineers and scientists working within the life sciencesWithin the rather chaotic atmosphere of scientific research the adoption of a software process, and the structured development of software, can be out of place. It is important to realize that the advancement of science is paramount, and so a balance must always be drawn between the cost and the benefit of the introduction of process into a research environment. This necessity presents a unique set of challenges to software development within the life sciences. These unique challenges are due to the cultural disconnect between life science research and software engineering. This paper outlines these challenges, and also discusses the software process used by the Institute for Systems Biology (ISB) to address them.
Computing in Science and Engineering - September/October 2009 (Vol. 11, No. 5)Computing in Science and Engineering