| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html |
| PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html lang="en-us" xml:lang="en-us"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta name="copyright" content="(C) Copyright Eclipse contributors 2005, 2006" /> |
| <meta name="DC.rights.owner" content="(C) Copyright Eclipse contributors 2005, 2006" /> |
| <meta name="security" content="public" /> |
| <meta name="Robots" content="index,follow" /> |
| <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> |
| <meta name="DC.Type" content="concept" /> |
| <meta name="DC.Title" content="Variability" /> |
| <meta name="abstract" content="Variability allows elements in one content package to influence or modify elements in other content packages without actually directly modifying the original content. Variability enables changes to the content while keeping the changes separate and optional." /> |
| <meta name="description" content="Variability allows elements in one content package to influence or modify elements in other content packages without actually directly modifying the original content. Variability enables changes to the content while keeping the changes separate and optional." /> |
| <meta name="DC.Relation" scheme="URI" content="variabilityassociations.html#variabilityassociations" /> |
| <meta name="DC.Relation" scheme="URI" content="contributes.html" /> |
| <meta name="DC.Relation" scheme="URI" content="replace.html#replaces" /> |
| <meta name="DC.Relation" scheme="URI" content="extends.html#extends" /> |
| <meta name="DC.Format" content="XHTML" /> |
| <meta name="DC.Identifier" content="variability" /> |
| <meta name="DC.Language" content="en-us" /> |
| <!-- |
| Copyright (c) 2005, 2006 IBM Corporation and others. |
| All rights reserved. This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License v1.0 |
| which accompanies this distribution, and is available at |
| http://www.eclipse.org/legal/epl-v10.html |
| Contributors: |
| IBM Corporation - initial implementation |
| --> |
| <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> |
| <title>Variability</title> |
| </head> |
| <body id="variability"><a name="variability"><!-- --></a> |
| |
| <h1 class="topictitle1">Variability</h1> |
| <div><p>Variability allows elements in one content package to influence |
| or modify elements in other content packages without actually directly modifying |
| the original content. Variability enables changes to the content while keeping |
| the changes separate and optional.</p> |
| <p>Variability allows you to factor your method content and processes in interrelated |
| units and to architect method content and processes in layers that extend |
| each other with new capabilities. Variability also allows you to extend and |
| tailor method content and processes you do not own and cannot directly modify, |
| and to easily upgrade to newer versions by simply reapplying your personal |
| changes to the upgrades.</p> |
| <p>The use of variability affects two characteristics of a method element: |
| its attributes and its relationships with other content elements. If an element |
| allows variability, the specification is shown at the bottom of the element's |
| description view.</p> |
| <div class="p">For the purposes of variability, there are three groups of information |
| for any element to be considered:<ul><li><strong>Attributes</strong> - pieces of data about an element such as Main Description.</li> |
| <li><strong>Incoming Associations</strong> - associations to other elements where the |
| association reference is held in the other element. In other words, the other |
| element has references to the subject element.</li> |
| <li><strong>Outgoing Associations</strong> - associations to other elements where the |
| association reference is held in the subject element. In other words, the |
| subject element has references to the other element.</li> |
| </ul> |
| In addition, associations can be one-to-one or one-to-many. See <a href="variabilityassociations.html#variabilityassociations">Variability Associations</a> for |
| a full list of the associations for each type of element.</div> |
| <div class="section"><h4 class="sectiontitle">Variability Type</h4><div class="p">Variability |
| type defines the nature of how one element affects another element using variability. |
| The variability types are:<ul><li><strong>Not Applicable</strong> - The element is a base element and does not affect |
| another element through variability. This is the default value of an element's |
| variability type.</li> |
| </ul> |
| <ul><li><strong><span class="keyword">Contributes</span></strong> - |
| A contributing element adds to the base element. Contributes provides a way |
| for elements to contribute their properties into their base element without |
| directly changing any of its existing properties, such as in an additive fashion. |
| The effect, after contribution, is that the base element is logically replaced |
| with an element that combines the attributes and associations of the contributing |
| element with the base element.</li> |
| </ul> |
| <ul><li><strong><span class="keyword">Replaces</span></strong> - |
| A replacing element replaces parts of the base element. Replaces provides |
| a way for an element to replace a base element without directly changing any |
| of the base element's existing properties. This is, in most cases, used for |
| method plug-ins that aim to replace specific content elements such as roles, |
| tasks, or activities with either a completely new variant or to change the |
| fundamental relationships of these elements. The effect of this, is that the |
| base content element is logically replaced with the new replacing element |
| to which all incoming associations still point as before, but which has potentially |
| new attribute values and outgoing association properties.</li> |
| </ul> |
| <ul><li><strong><span class="keyword">Extends</span></strong> - |
| An extending element inherits characteristics of the base element. Extension |
| allows Method Plug-ins to easily reuse elements from a base plug-in by providing |
| a kind of inheritance for the extending element. Attribute values and association |
| instances are inherited from the "based-on" element to the extending element. |
| The result is that the extending element has the same properties as the "based-on" |
| element, but might define its own additions. Extends is not used to modify |
| content of the base plug-in, but to provide the ability for the extending |
| plug-in to define its own content which is a variant of content already defined. |
| For example, a special version of a generic Review Record for a specific type |
| of review. The effect of this is that the base element and any number of extending |
| elements can be used side by side, but refer to each other through the extends |
| relationship. Extends also provides the key mechanism for binding capability |
| patterns to processes: A pattern is applied by defining an extends relationship |
| from an activity of the applying processes to the capability pattern. The |
| activity inherits association instances from the pattern and the pattern appears |
| to be part of the resulting process after interpretation.</li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| <div><div class="relconcepts"><strong>Related concepts</strong><br /> |
| <div><a href="variabilityassociations.html#variabilityassociations">Variability Associations</a></div> |
| <div><a href="contributes.html">Contributes</a></div> |
| <div><a href="replace.html#replaces">Replaces</a></div> |
| <div><a href="extends.html#extends">Extends</a></div> |
| </div> |
| </div> |
| </body> |
| </html> |