The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
201 principles of software development
201 principles of software development
Understanding ADA; A Software Engineering Approach
Understanding ADA; A Software Engineering Approach
Hi-index | 0.00 |
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 important software engineering concepts, including modular programming, data encapsulation, and internal code documentation. Fortran is a language that is still widely used in the scientific community. Issues concerning the integration of Fortran 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 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.