<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- 
    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
-->

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 {font-family: "Courier New", Courier, mono}
-->
</style>
</head>

<body>
<h2><a>Exercise 6: Extending base method content associated with a Task using <u>Extends</u> </a></h2>
<p>The purpose of this exercise is to extend a base method task using extends variability. </p>
<ol>
  <li>
    <p> Create a new <strong>task </strong> in the Extends Test content package called <span class="style1">my_extends_design_user_interface</span>, with presentation name, <span class="style1">Extends Design User Interface. </span></p>
  </li>
  <li>
    <p> In the <strong>Variability Type, </strong> select <strong>extends </strong> and choose the base task design_user_interface. </p>
  </li>
  <li>
    <p> Add a <strong>Brief Description </strong>: <span class="style1">Extends Task Brief Description</span>. </p>
  </li>
  <li>
    <p> Add <strong>Steps </strong>: <span class="style1">Extend Step 1, Extend Step 2 </span></p>
  </li>
  <li>
    <p> Add the <strong>Role </strong> created in exercise 4: <span class="style1">my_extends_ui_designer</span>, as Primary Performer. </p>
  </li>
  <li>
    <p> Add the Work Product created in exercise 5: <span class="style1">my_extends_rup_navmap</span>, as an Output. </p>
  </li>
  <li>
    <p> Add <strong>Guidance </strong>(choose any guidance) </p>
  </li>
  <li>
    <p> Add the <strong>task </strong> to the appropriate Standard Category: <span class="style1">rup_analysis_design_discipline</span>. </p>
  </li>
  <li>
    <p> Save and then switch to the <strong>Browsing </strong> perspective. </p>
  </li>
  <li>In the <strong>Configuration View</strong>, select the <span class="style1">Extends Design User Interface</span> task under the <strong>Disciplines </strong> folder in the <span class="style1">Analysis &amp; Design</span> discipline. You will see in the html page that method content and relationships have been inherited from the base task and extended by the plug-in extending content and relationships. Note that the extended task remains unchanged.</li>
</ol>
</body>
</html>
