Software engineering is an art of designing software products for users' consumption. This is an enduring knowledge area due to growing computational needs. Nobody succeed re-inventing the wheel. Re-usability is a key concept in software design. To an extent, the concept of software reuse has helped developers in meeting up with the market demands. Common reuse method includes using developed components, modules etc. to build new products. Yet, the traditional software engineering reuse patterns have not successfully addressed development challenges in terms of delivery time, cost and quality.