Agile Systems with Reusable Patterns of Business Knowledge: A Component-Based Approach - Gupta (IEEE, 2005)