CSC/ECE 517 Fall 2009/wiki3 teamhelm: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 22: Line 22:
are the unit of release, they are also the unit of reuse. Therefore architects would do
are the unit of release, they are also the unit of reuse. Therefore architects would do
well to group reusable classes together into packages." [1]
well to group reusable classes together into packages." [1]
=='''''Description'''''==
=='''''Advantages'''''==
=='''''Disadvantages'''''==
=='''''Example'''''==
=='''''Conclusion'''''==





Revision as of 15:37, 14 November 2009

The Release Reuse Equivalency Principle (REP)

Concept

The Release Reuse Equivalency Principle (REP), first introduced by Bob Martin, is described as follows:


"The granule of reuse is the granule of release."


"A reusable element, be it a component, a class, or a cluster of classes, cannot be reused unless it is managed by a release system of some kind. Users will be unwilling to use the element if they are forced to upgrade every time the author changes it. Thus. even though the author has released a new version of his reusable element, he must be willing to support and maintain older versions while his customers go about the slow business of getting ready to upgrade. Thus, clients will refuse to reuse an element unless the author promises to keep track of version numbers, and maintain old versions for awhile. Therefore, one criterion for grouping classes into packages is reuse. Since packages are the unit of release, they are also the unit of reuse. Therefore architects would do well to group reusable classes together into packages." [1]

Description

Advantages

Disadvantages

Example

Conclusion

References

[1] Design Principles and Patterns: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf