TOWARDS A FORMAL APPROACH TO THE CONSTRUCTION OF LARGE-SCALE SCIENTIFIC APPLICATIONS SOFTWARE