Software Reuse: Domain Analysis and Design Processes