Reuse Basic concepts
Rationale for reuse Save calendar time Save person hours Reduce process risk Increased quality Standards compliance
What is re-used? Software: Application reuse Component reuse Object and function reuse Test cases Test data Document content Experience: Design patterns Architectural styles Processes Documents Conventions and standards
Classification of reuse Product Scope Vertical Horizontal Mode Planned Opportunistic Intention Black-box Clear-box Technique Compositional Generative
Techniques Program libraries COTS Design patterns Middle-ware integration frameworks Legacy system wrapping Service-oriented systems Software product lines Commonalities Variation points Program generators Software/Experience Factory
Cost of reuse Development for reuse Long-term increased maintenance costs Lack of tool support Non-invented-here (NIH)-syndrome Creating and maintaining a repository Finding, understanding and adapting reusable components Conflict project and line management