next up previous contents_motif.gif
Next: 2.2 Programming language: Python Up: 2 Philosophy and basic Previous: 2 Philosophy and basic


2.1 Philosophy

BoA is designed with essentially two goals in mind: a) to provide a most comprehensive tool for the reduction and analysis of data from the new generation of bolometer arrays and b) to facilitate the extension and modification of the software by any user. BoA is intended to combine a simple and intuitive usage with the coverage of all aspects of data reduction from raw data to final images. It shall provide the possibility to insert new functionalities as well as to be included in other software contexts. This also results in a facile maintenance by others than the developers.

The natural choice for the creation of BoA is object oriented programming. A simplistic approach of object orientation would be to glue everything together: data and methods. Nevertheless, the large variety of required functionalities would result in data objects containing a huge amount of methods, either by definition within the data class or by inheritance. This would lead to a rather complex structure and inhibit easy extension of the software. Moreover, some functionalities need to work on a whole set of data while others do not have any relation to these at all. The chosen approach is therefore to use a data class containing some basic methods for filling the resulting objects while the remaining functionalities are merged in a set of classes with a straightforward subdivision of responsibilities.


next up previous contents_motif.gif
Next: 2.2 Programming language: Python Up: 2 Philosophy and basic Previous: 2 Philosophy and basic
Frank Bertoldi 2005-11-10