The Component Structure of a Self-Adapting Numerical Software System