Developing and maintaining a large software package is a complex task. 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.