Steven M. Gallo
smgallo@cs.buffalo.edu
http://www.cs.buffalo.edu/~smgallo
Russ Miller
miller@cs.buffalo.edu
http://www.cs.buffalo.edu/pub/WWW/faculty/miller
Charles M. Weeks
weeks@hwi.buffalo.edu
http://www.hwi.buffalo.edu/people/weeks.html
Technical Paper
Developing and maintaining a large software package is a complex task.
Decisions are made early in the design process that affect i)
the ability of a user to effectively exploit the package and ii)
the ability of a software engineer to maintain it. This case study
discusses issues in software development and maintainability of a
scientific package called SnB
, which is used to determine
molecular crystal structures. The design of the user interface is
discussed along with software engineering concepts,
including modular programming, data encapsulation, and internal code
documentation. Issues concerning the integration of Fortran,
a language that is still widely used in the scientific community,
into a modern scientific application with a C-based user interface are
also discussed. Scientific applications benefit from being available
on a wide variety of platforms. Due to the demand, SnB
is available on a variety of sequential and parallel platforms.
Methods used in the design of SnB for such portability are
presented, including POSIX compliance, automatic configuration scripts,
and parallel programming techniques.