Software reusability: vol. 2, applications and experience