Towards a Practical and Efficient Process for Software Reuse