Font Size: a A A

Domain specific software architecture for large-scale scientific software

Posted on:2012-11-08Degree:Ph.DType:Dissertation
University:University of Southern CaliforniaCandidate:Woollard, DavidFull Text:PDF
GTID:1458390008491215Subject:Computer Science
Abstract/Summary:
Scientists today increasingly rely on computers to perform simulations of the physical world that are impractical (in the case of drug discovery), impossible (nano-scale fracture dynamics) or unsafe (nuclear physics). This type of in silico experimentation has taken its place with in vitro and in vivo scientific experiments in helping scientists to understand the world around us.;Scientific software systems, the code that has replaced the test-bench in the scientist's lab, is complex and quite costly to produce. As such, it represents a significant investment on the part of computational scientists. In order to improve upon the state of the art in scientific software development methodologies, we must move from large, monolithic software systems to more modularized systems capable of being evolved and redeployed rapidly at a pace dictated by the evolution of the experiment rather than the rate of code development.;The state of the art methodology today for developing scientific software systems is to produce monolithic systems that, while performant, are difficult to understand, modify, and reconfigure, all necessary activities as the scientist evolves the scientific experiment that the code implements.;This dissertation asks and answers the question of how software engineering can be leveraged to provide improved development support to scientists conducting in silico experimentation.;A modular software system, decomposed into software components with explicit communications through software connectors, is the heart of the software architectural approach, and the first, necessary step toward an architected scientific software system that supports evolution, replication, scaling and third-party validation.;This dissertation presents two thrusts of research developed to support the scientist performing in silico research. The first thrust is to analyze existing scientific code in order to identify snippets that can be encapsulated and modularized. A domain-specific software architectural recovery technique, trained specifically for scientific software, called KADRE, implements this approach.;The second thrust of research presented in this dissertation is the implementation of a domain-specific software architecture for scientific software that orchestrates these identified modules into a software system with explicit software architecture that aids scientists to manipulate the software system at the level of the scientific experiment being conducted while at the same time providing support to the software engineer making decisions to improve the performance of the software system in term of its components and connectors. This architecture is called SWSA, or Scientific Workflow Software Architecture.
Keywords/Search Tags:Software, Scientific, Scientists
Related items