Combined the design and implementation refactoring guidelines as they were almost identical.
diff --git a/libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/implementation_refactoring.xmi b/libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/refactoring.xmi
similarity index 85%
rename from libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/implementation_refactoring.xmi
rename to libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/refactoring.xmi
index a71d2df..f21400f 100644
--- a/libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/implementation_refactoring.xmi
+++ b/libraries/EPF_Practices_Library/core.tech.common.base/guidances/guidelines/refactoring.xmi
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore"
- xmlns:epf="http://www.eclipse.org/epf" epf:version="1.2.0" xmlns:rmc="http://www.ibm.com/rmc"
- rmc:version="7.2.0" xmi:id="-i7KKltG_fEgqAjlVlIBGFA"
- name="implementation_refactoring,_YNx2sJ05EdyQ3oTO93enUw" guid="-i7KKltG_fEgqAjlVlIBGFA"
- changeDate="2008-02-01T10:51:41.100-0800" version="1.0.0">
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
+ xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.0" xmlns:epf="http://www.eclipse.org/epf"
+ epf:version="1.5.0" xmi:id="-i7KKltG_fEgqAjlVlIBGFA"
+ name="refactoring,_YNx2sJ05EdyQ3oTO93enUw" guid="-i7KKltG_fEgqAjlVlIBGFA" changeDate="2008-08-12T17:00:22.567-0700"
+ version="1.0.0">
<mainDescription><p>
Refactoring involves improving the quality of existing code without changing the system's behavior. It is explicitly
not about adding or changing behavior, but about improving the implementation quality of existing behavior.
@@ -20,7 +20,7 @@
or&nbsp;some other&nbsp;representation of the design. The issues identified are sometimes called "smells."
</p>
<p>
- Here are several smells to look for that might lead to implementation refactoring:
+ Here are several smells to look for that might lead to implementation or design refactoring:
</p>
<ul>
<li>
@@ -34,6 +34,10 @@
<b>Poorly named element:</b> Whether the element be a variable, function, class, or implementation element, its
name should connote what it is so that the code can be maintained.
</li>
+ <li>
+ <strong>Tight coupling:</strong> Each design element should work with minimal concern for the internal aspects of
+ other design elements. Otherwise, changes to one element can have undesirable effects in other elements.
+ </li>
</ul>
<p>
As you can see from this list, refactoring can improve the "internals" of an element or&nbsp;the interface of the
@@ -80,7 +84,7 @@
<p>
For deeper coverage on this topic, including a listing of "smells" and a catalog of refactorings to respond to them,
see [<a class="elementLinkWithUserText"
- href="./../../../openup/guidances/supportingmaterials/references_6CCF393.html#FOW99"
+ href="./../../../core.tech.common.base/guidances/supportingmaterials/references.tech_6CCF393.html#FOW99"
guid="_9ToeIB83Edqsvps02rpOOg">FOW99</a>].
</p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
diff --git a/libraries/EPF_Practices_Library/core.tech.common.base/plugin.xmi b/libraries/EPF_Practices_Library/core.tech.common.base/plugin.xmi
index 4b43d55..c08e6c6 100644
--- a/libraries/EPF_Practices_Library/core.tech.common.base/plugin.xmi
+++ b/libraries/EPF_Practices_Library/core.tech.common.base/plugin.xmi
@@ -2,8 +2,8 @@
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" xmlns:org.eclipse.epf.uma.resourcemanager="http:///org/eclipse/epf/uma/resourcemanager.ecore"
- xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmlns:rmc="http://www.ibm.com/rmc"
- rmc:version="7.5.0">
+ xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.0" xmlns:epf="http://www.eclipse.org/epf"
+ epf:version="1.5.0">
<org.eclipse.epf.uma.resourcemanager:ResourceManager xmi:id="_OOK_8AouEdyhlpBPrduOMw"
guid="_OOK_8AouEdyhlpBPrduOMw">
<resourceDescriptors xmi:id="_m-xmhfL5Edm6Nvont3uinw" id="_zHTQUKYSEdmvhNXG0Oc2uA"
@@ -171,7 +171,7 @@
<resourceDescriptors xmi:id="_wqS44JyJEdy9brKHb521mQ" id="-4HHmcQny_Q08Xj_3Q7Sfig"
uri="guidances/guidelines/mapping_design_to_code.xmi"/>
<resourceDescriptors xmi:id="_YaSosZ05EdyQ3oTO93enUw" id="-i7KKltG_fEgqAjlVlIBGFA"
- uri="guidances/guidelines/implementation_refactoring.xmi"/>
+ uri="guidances/guidelines/refactoring.xmi"/>
<resourceDescriptors xmi:id="_SYfpMK9fEdyltJ0KgEd9WQ" id="-xIKYtygbLRgQBa97lxIYxw"
uri="guidances/termdefinitions/code_instrumentation.xmi"/>
<resourceDescriptors xmi:id="_IFME0JRtEdyrdaw_xGakyw" id="-EOoqKeF2SEXao6XhNXBD-w"
@@ -471,7 +471,7 @@
<presentation xmi:id="-4HHmcQny_Q08Xj_3Q7Sfig" href="uma://-4HHmcQny_Q08Xj_3Q7Sfig#-4HHmcQny_Q08Xj_3Q7Sfig"/>
</contentElements>
<contentElements xsi:type="org.eclipse.epf.uma:Guideline" xmi:id="_YNx2sJ05EdyQ3oTO93enUw"
- name="implementation_refactoring" guid="_YNx2sJ05EdyQ3oTO93enUw" presentationName="Implementation Refactoring"
+ name="refactoring" guid="_YNx2sJ05EdyQ3oTO93enUw" presentationName="Refactoring"
briefDescription="This guideline describes how to apply the refactoring technique to improve the quality of existing code."
conceptsAndPapers="_aGqAsJ01EdyQ3oTO93enUw _Poc7IPDzEdqYgerqi84oCA"
checklists="_etwusJ01EdyQ3oTO93enUw">
diff --git a/libraries/EPF_Practices_Library/meth_mgmt.review_status.base/plugin.xmi b/libraries/EPF_Practices_Library/meth_mgmt.review_status.base/plugin.xmi
index bb11f54..8afec63 100644
--- a/libraries/EPF_Practices_Library/meth_mgmt.review_status.base/plugin.xmi
+++ b/libraries/EPF_Practices_Library/meth_mgmt.review_status.base/plugin.xmi
@@ -409,7 +409,6 @@
<categorizedElements xsi:type="org.eclipse.epf.uma:Concept" href="uma://_Z2cK0LPPEduocbW-TPTq7A#_T9FbYFRFEd2o7OqLaYh8nA"/>
<categorizedElements xsi:type="org.eclipse.epf.uma:Concept" href="uma://_OOB2AAouEdyhlpBPrduOMw#_Poc7IPDzEdqYgerqi84oCA"/>
<categorizedElements xsi:type="org.eclipse.epf.uma:Guideline" href="uma://_Z2cK0LPPEduocbW-TPTq7A#_OlyWoOX7Edu8VZPtlaU33g"/>
- <categorizedElements xsi:type="org.eclipse.epf.uma:Example" href="uma://_Z2cK0LPPEduocbW-TPTq7A#_4pR7MERaEd2eKeXZgLpnkQ"/>
<categorizedElements xsi:type="org.eclipse.epf.uma:Concept" href="uma://_OOB2AAouEdyhlpBPrduOMw#_herrINvTEdyrWIQpneun6w"/>
</contentElements>
<contentElements xsi:type="org.eclipse.epf.uma:CustomCategory" xmi:id="_QPp8AGWLEd2VvssSSHSnIg"
diff --git a/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.ed.xmi b/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.ed.xmi
new file mode 100644
index 0000000..d663498
--- /dev/null
+++ b/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.ed.xmi
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
+ xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.0" xmlns:epf="http://www.eclipse.org/epf"
+ epf:version="1.5.0" xmi:id="-g0jWGmg-E0rCQEmnibTDIA"
+ name="refactoring.ed,_OlyWoOX7Edu8VZPtlaU33g" guid="-g0jWGmg-E0rCQEmnibTDIA" changeDate="2008-08-12T16:58:56.063-0700"
+ version="1.0.0"/>
diff --git a/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.xmi b/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.xmi
deleted file mode 100644
index 0109ae8..0000000
--- a/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/guidances/guidelines/refactoring.xmi
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore"
- xmlns:epf="http://www.eclipse.org/epf" epf:version="1.2.0" xmi:id="-g0jWGmg-E0rCQEmnibTDIA"
- name="new_guideline,_OlyWoOX7Edu8VZPtlaU33g" guid="-g0jWGmg-E0rCQEmnibTDIA" changeDate="2007-07-25T15:51:48.198-0400"
- version="1.0.0">
- <mainDescription><p>
- Refactoring involves improving the design of existing code without changing the system's behavior. It is explicitly not
- about adding or changing behavior, but about improving the design of existing behavior.
-</p>
-<p>
- A full set of developer tests is required before refactoring can be safely applied. It is critical that the system
- behavior be in a known, verifiably correct state before modifying the design so that you can improve the design without
- fear that the modified implementation will break something. Refactoring is a safe transformation to improve code, but
- it is safe only if there are tests that can verify that the system still works as intended.
-</p>
-<p>
- Refactoring is initiated when an area that needs improvement is identified in the system by examining either the code
- or&nbsp;some other&nbsp;representation of the design. The issues identified are sometimes called "smells."
-</p>
-<p>
- Here are several smells to look for that might lead to refactoring:
-</p>
-<ul>
- <li>
- <b>Duplicated code:</b> Duplicated code makes the system harder to understand and harder to maintain.
- </li>
- <li>
- <b>Large design element or method:</b> Large design elements or methods diminish the ability of people to
- understand the design, reduce the potential for reuse, and make developer testing more difficult.
- </li>
- <li>
- <b>Poorly named element:</b> Whether the element be a variable, function, class, or component, its name should
- connote what it is so that the code can be maintained.
- </li>
- <li>
- <b>Tight coupling:</b> Each design element should work with minimal concern for the internal aspects of other
- design elements. Otherwise, changes to one element can have undesirable effects in other elements.
- </li>
-</ul>
-<p>
- As you can see from this list, refactoring can improve the "internals" of a design element, the interface of the
- element, or the relationships and collaboration between elements. Also, many of the smells&nbsp;are characterized as
- making the software more difficult to understand; whereas refactoring is about making the system simpler.
-</p>
-<p>
- After an issue is identified, a refactoring method can be selected that will improve the situation. There are catalogs
- of refactoring methods available that are change patterns that will fix common problems while retaining the behavior of
- the system.
-</p>
-<p>
- These are examples of refactoring methods:
-</p>
-<ul>
- <li>
- <b>Extract Method:</b> Pull out the duplicated code into its own single method or extract part of a large method
- into its own method.
- </li>
- <li>
- <b>Extract Class:</b> Pull some cohesive part of a class into its own class to reduce the size of a design element
- that is too big.
- </li>
- <li>
- <b>Rename Method</b>, <b>Rename Class</b>, or <b>Rename Variable:</b> Give a more meaningful name to an element to
- make it more understandable.
- </li>
- <li>
- <b>Extract Interface:</b> Create a clean interface to an element to reduce coupling.
- </li>
-</ul>
-<p>
- When refactoring has been applied, developer tests are run again to ensure that the system still behaves correctly. It
- is important that the system is working correctly after each small refactoring. Although many refactorings can be put
- together to drive broad change across the code base, the tests should run correctly between each refactoring applied.
- Refactoring must be applied as small behavior-preserving transformations.
-</p>
-<p>
- As mentioned previously, refactoring requires full developer test coverage of the area under consideration. There are
- additional techniques that enable refactoring. Coding standards define a common style and make it easier to refactor
- consistently. An attitude of&nbsp;collective code ownership within the team is important. Each developer should feel
- that refactoring can be applied across the code base to improve the implementation.
-</p>
-<p>
- For deeper coverage on this topic, including a listing of "smells" and a catalog of refactorings to respond to them,
- see [<a class="elementLinkWithUserText" href="./../../../openup/guidances/supportingmaterials/references.html#FOW99"
- guid="_9ToeIB83Edqsvps02rpOOg">FOW99</a>].
-</p></mainDescription>
-</org.eclipse.epf.uma:ContentDescription>
diff --git a/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/plugin.xmi b/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/plugin.xmi
index 4fe2d60..421411a 100644
--- a/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/plugin.xmi
+++ b/libraries/EPF_Practices_Library/practice.tech.evolutionary_design.base/plugin.xmi
@@ -19,7 +19,7 @@
<resourceDescriptors xmi:id="_tCV2gPTfEduDKIuqTXQ8SA" id="-c5Uh71vXTPN-VmrGYVRV7w"
uri="guidances/concepts/design.xmi"/>
<resourceDescriptors xmi:id="_brXFwOX7Edu8VZPtlaU33g" id="-g0jWGmg-E0rCQEmnibTDIA"
- uri="guidances/guidelines/refactoring.xmi"/>
+ uri="guidances/guidelines/refactoring.ed.xmi"/>
<resourceDescriptors xmi:id="_tCiDwPTfEduDKIuqTXQ8SA" id="-1vS_ELnQxGQKwfCrRYrc7w"
uri="guidances/guidelines/analyze_the_design.xmi"/>
<resourceDescriptors xmi:id="_tCoKYPTfEduDKIuqTXQ8SA" id="-8V5osHpRNG6Z7KPy8RGW1w"
@@ -79,11 +79,10 @@
<conceptsAndPapers href="uma://_OOB2AAouEdyhlpBPrduOMw#__O7tAMVvEduLYZUGfgZrkQ"/>
</contentElements>
<contentElements xsi:type="org.eclipse.epf.uma:Guideline" xmi:id="_OlyWoOX7Edu8VZPtlaU33g"
- name="refactoring" guid="_OlyWoOX7Edu8VZPtlaU33g" presentationName="Refactoring"
- briefDescription="This guideline describes how to apply the refactoring technique to improve the design of existing code."
+ name="refactoring.ed" guid="_OlyWoOX7Edu8VZPtlaU33g" variabilityType="contributes"
checklists="_0XSzsMlgEdmt3adZL5Dmdw">
<presentation xmi:id="-g0jWGmg-E0rCQEmnibTDIA" href="uma://-g0jWGmg-E0rCQEmnibTDIA#-g0jWGmg-E0rCQEmnibTDIA"/>
- <conceptsAndPapers href="uma://_OOB2AAouEdyhlpBPrduOMw#_Poc7IPDzEdqYgerqi84oCA"/>
+ <variabilityBasedOnElement xsi:type="org.eclipse.epf.uma:Guideline" href="uma://_OOB2AAouEdyhlpBPrduOMw#_YNx2sJ05EdyQ3oTO93enUw"/>
</contentElements>
<contentElements xsi:type="org.eclipse.epf.uma:Guideline" xmi:id="__MnggPTdEduDKIuqTXQ8SA"
name="analyze_the_design" guid="__MnggPTdEduDKIuqTXQ8SA" presentationName="Analyze the Design"
@@ -164,18 +163,18 @@
<contentReferences xsi:type="org.eclipse.epf.uma:Guideline" href="#__MnggPTdEduDKIuqTXQ8SA"/>
<contentReferences xsi:type="org.eclipse.epf.uma:Guideline" href="#_C4U9QPTeEduDKIuqTXQ8SA"/>
<contentReferences xsi:type="org.eclipse.epf.uma:Guideline" href="#_OlyWoOX7Edu8VZPtlaU33g"/>
- <contentReferences xsi:type="org.eclipse.epf.uma:Example" href="#_4pR7MERaEd2eKeXZgLpnkQ"/>
<contentReferences xsi:type="org.eclipse.epf.uma:Concept" href="uma://_OOB2AAouEdyhlpBPrduOMw#_w2ACwA4LEduibvKwrGxWxA"/>
<contentReferences xsi:type="org.eclipse.epf.uma:Concept" href="uma://_OOB2AAouEdyhlpBPrduOMw#_0LcUkA4LEduibvKwrGxWxA"/>
<contentReferences xsi:type="org.eclipse.epf.uma:Concept" href="#_T9FbYFRFEd2o7OqLaYh8nA"/>
+ <contentReferences xsi:type="org.eclipse.epf.uma:SupportingMaterial" href="#_atpj0GjLEd2PJ-nlV-86WA"/>
</contentElements>
- <contentElements xsi:type="org.eclipse.epf.uma:Example" xmi:id="_4pR7MERaEd2eKeXZgLpnkQ"
- name="using_ed_in_context" guid="_4pR7MERaEd2eKeXZgLpnkQ" presentationName="Using Evolultionary Design in Context"/>
<contentElements xsi:type="org.eclipse.epf.uma:Concept" xmi:id="_T9FbYFRFEd2o7OqLaYh8nA"
name="requirements_realization" guid="_T9FbYFRFEd2o7OqLaYh8nA" presentationName="Requirements Realization"
briefDescription="[** This concept needs to be written - see bugzilla 240040 **]">
<presentation xmi:id="-xsQ27TDaTcUQ1VKUQG_HIQ" href="uma://-xsQ27TDaTcUQ1VKUQG_HIQ#-xsQ27TDaTcUQ1VKUQG_HIQ"/>
</contentElements>
+ <contentElements xsi:type="org.eclipse.epf.uma:SupportingMaterial" xmi:id="_atpj0GjLEd2PJ-nlV-86WA"
+ name="using_ed_in_context" guid="_atpj0GjLEd2PJ-nlV-86WA" presentationName="Using Evolutionary Design in Context"/>
</childPackages>
<childPackages xsi:type="org.eclipse.epf.uma:ContentPackage" xmi:id="_PGDx8PisEdmjyaJMRcPDWA"
name="visual_modeling" guid="_PGDx8PisEdmjyaJMRcPDWA" presentationName="Visual Modeling">