Planned or opportunistic, reuse brings benefits in terms of costs, quality, and continuity:
- Cost benefits are most easily achieved for component engineering but may also be obtained upstream with model reuse and patterns.
- Quality benefits are first and foremost rooted at model level, especially when components implementation is supported by automated tools.
- Continuity benefits are to be found both along the business (semantics and business rules) and engineering (functional architecture and platform implementations) perspectives.
Reuse policies may also bring positive externalities by inducing a comprehensive approach to software design.
Yet, those policies will usually entail costs and may as well bear negative externalities:
- Artifacts designed for reuse are usually most costly to develop, even if part of additional costs should be ascribed to quality management.
- Excessive enforcement policies may significantly hamper projects ability to meet business needs in time.
- Managing reusable assets usually induces overheads.
In order to assess those policies, economics of reuse must be set across business, engineering or architecture perspectives:
- Business perspective: how to factor out and reuse artifacts associated with the knowledge of business domains when system functionalities or platforms are modified.
- Engineering perspective: how to reuse development artifacts when business contents or system platforms are modified.
- Architecture perspective: how to use system components independently of changes affecting business contents or development artifacts.
That can be achieved by managing development assets along model driven architecture: CIMs for business and enterprise architecture, PIMs for systems functional architecture, and PSMs for systems technical architecture.