| <html> |
| |
| <head> |
| <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> |
| <meta name=ProgId content=PowerPoint.Slide> |
| <meta name=Generator content="Microsoft PowerPoint 10"> |
| <link id=Main-File rel=Main-File |
| href="../EclipseCon2008_Tutorial_Creating_Robust_Scalable_DSL_with_UML.html"> |
| <link rel=Preview href=preview.wmf> |
| <meta name=Robots content=NoIndex> |
| <script src=script.js></script><script><!-- |
| if( !(IsWin("PPTOtl")||IsWin("PPTNav")||IsWin("PPTOtlNav")) ) |
| { |
| obj = GetObj("Main-File") |
| parent.location.href=obj.href |
| } |
| var gOtlHiliteClr="#ffffff",gOtlNormalClr="#000000",gOtlActiveClr="#ffff00",gSelected="",gTxtState=false,gChildEntryTable=new Array() |
| function Load() |
| { |
| if( IsWin("PPTOtl" ) ){ LoadOtl(); parent.gOtlLoaded=true; return } |
| if( g_supportsPPTHTML ) { |
| if( IsWin("PPTNav" ) ){ LoadNav("NavObj",UpdNav); parent.gNavLoaded=true; return } |
| if( IsWin("PPTOtlNav" ) ){ LoadNav("OtlNavObj",UpdOtlNav); parent.gOtlNavLoaded=true; return } |
| } |
| } |
| function Upd(){ if( IsWin("PPTNav") ) LoadNav("NavObj",UpdNav) } |
| function LoadNav( oId,UpdFunc ) |
| { |
| document.ondragstart=CancelDrag |
| document.onselectstart=CancelDrag |
| document.body.style.margin=2 |
| UpdFunc() |
| obj=document.all.item(oId) |
| obj.style.display="block" |
| obj.style.visibility="visible" |
| document.bgColor="threedface" |
| if( parent.frames["PPTNts"] ) |
| notesBtn.style.display = "" |
| if( parent.gHasNarration ) |
| nb_voiceBorder.style.display = "" |
| } |
| function LoadOtl() |
| { |
| var otl=GetObj("OtlObj") |
| otl.style.display="block" |
| otl.style.visibility="visible" |
| if( gOtlActiveClr == "" ) gOtlActiveClr=document.linkColor |
| if( gOtlHiliteClr == "" ) gOtlHiliteClr=document.fgColor |
| if( gOtlNormalClr == "" ) |
| gOtlNormalClr=document.bgColor |
| else |
| document.bgColor=gOtlNormalClr |
| InitArray() |
| if( ObjExists( parent.gCurSld ) ) { |
| ChangeState( parent.gCurSld,gOtlNormalClr,gOtlHiliteClr ) |
| gSelected=parent.gCurSld |
| } |
| else gSelected = -1 |
| UpdOtl() |
| } |
| function UpdOtl(){ UpdIdx(parent.gCurSld) } |
| function UpdIdx( idx ) |
| { |
| if( gSelected != idx ) { |
| if( gSelected > 0 ) |
| ChangeState( gSelected,gOtlHiliteClr,gOtlNormalClr ) |
| if( ObjExists( idx ) ) { |
| gSelected = idx |
| ChangeState( gSelected,gOtlNormalClr,gOtlHiliteClr ) |
| } |
| else gSelected = -1 |
| } |
| if( gTxtState != parent.gOtlTxtExp ) { |
| state = "block" |
| if( !parent.gOtlTxtExp ) |
| state="none" |
| for(ii=0; ii<gChildEntryTable.length; ii++) { |
| obj=gChildEntryTable[ii]; |
| if( obj.id == null ) continue; |
| if( obj.id.indexOf("PPTC") >= 0 ) |
| obj.style.display=state; |
| } |
| gTxtState=parent.gOtlTxtExp |
| if( ObjExists( gSelected ) ) |
| ChangeState( gSelected,gOtlNormalClr,gOtlHiliteClr ) |
| } |
| } |
| function InitArray() |
| { |
| count=0 |
| var list=GetTags(document,"DIV"); |
| for(ii=0; ii<list.length; ii++) { |
| obj=list.item(ii) |
| if( obj.id == null ) continue |
| if( obj.id.indexOf("PPTC") >= 0 ) |
| gChildEntryTable[count++]=obj |
| } |
| } |
| function ChangeState( idx,fgColor,bgColor ) |
| { |
| obj=GetObj("PPTL"+idx) |
| obj.style.color=fgColor |
| obj=GetObj("PPTP"+idx) |
| obj.style.backgroundColor=bgColor |
| } |
| function ChgClr( o,clr ){ if( o.id != "PPTL"+gSelected ) o.style.color=clr } |
| function Over( src ){ ChgClr(GetLink(src),gOtlActiveClr) } |
| function Out( src ){ ChgClr(GetLink(src),gOtlHiliteClr) } |
| function Follow(src){ window.location.href = GetLink(src).href; } |
| function ObjExists( ii ) { obj=GetObj("PPTP"+ii ); return( obj ) } |
| function GoToSld( href ){ UpdIdx(parent.GetSldNum(href)); parent.GoToSld( href ) } |
| function CancelDrag(){ window.event.cancelBubble=true;window.event.returnValue=false} |
| function GetLink(src) |
| { |
| if(src.tagName=="A") return src |
| else return GetTags(src,"A").item(0) |
| } |
| function UpdNav() |
| { |
| txt = "<center>"; |
| if( parent.GetHrefObj( parent.gCurSld ).mOrigVis == 1 ) |
| txt += "Slide " + parent.GetCurSldNum() + " of " + parent.GetNumSlds() |
| else |
| txt += "Hidden Slide" |
| txt += "</center>"; |
| nav_text.innerHTML = txt; |
| if( !parent.HasPrevSld() ) |
| gBtnArr["nb_prev"].Enabled(0) |
| else |
| gBtnArr["nb_prev"].Enabled(1) |
| if( !parent.HasNextSld() ) |
| gBtnArr["nb_next"].Enabled(0) |
| else |
| gBtnArr["nb_next"].Enabled(1) |
| gBtnArr["nb_nts"].SetEnabled() |
| gBtnArr["nb_nts"].SetFlag( parent.gHasNts ) |
| gBtnArr["nb_sldshw"].Enabled(1) |
| gBtnArr["nb_voice"].Enabled(1) |
| } |
| function UpdOtlNav() |
| { |
| gBtnArr["nb_otl"].SetEnabled(); |
| if( parent.gOtlOpen ) |
| gBtnArr["nb_otlTxt"].Enabled( true ); |
| else |
| document.all.item("nb_otlTxtBorder").style.visibility = "hidden"; |
| } |
| |
| //--></script> |
| <style> |
| <!--.PTxt |
| {position:relative; |
| width:100%; |
| margin-top:5px; |
| padding-left:2px; |
| font-weight:bold;} |
| .CTxt |
| {position:relative; |
| width:100%; |
| margin-top:5px;} |
| a |
| {color:white; |
| text-decoration:none;} |
| ul |
| {color:white; |
| margin-bottom:0px; |
| margin-left:20px;} |
| .sldNum |
| {margin-top:5px; |
| color:white;} |
| .button |
| {position:absolute; |
| width:32px; |
| height:20px; |
| border-style:solid; |
| border-width:1px; |
| border-color:threedface;} |
| --> |
| </style> |
| </head> |
| |
| <body onload="Load()" style='margin:2px'> |
| |
| <div id=NavObj onload="Load()" onmouseover="BtnOnOver()" |
| onmousedown="BtnOnDown()" onmouseout="BtnOnOut()" onmouseup="BtnOnUp()" |
| onkeypress="_KPH()" style='display:none;visibility:hidden'> |
| <table id="notesBtn" style='position:absolute;display:none;width:70px' align=left cellpadding=0 |
| cellspacing=0> |
| <td nowrap> |
| <div id="nb_ntsElem" align=center style='position:relative;padding:3px; |
| font-family:Arial;color:buttontext;font-size:9pt'><img src="notes_flag.gif" |
| border=0 id="notes_flag" style='display:none'><span |
| style='mso-spacerun:yes'> </span>Notes</div> |
| <div title="Show/Hide Notes" id="nb_nts" style='position:absolute;top:0%; |
| left:0%;width:100%;height:100%'></div> |
| </td> |
| </table> |
| |
| <table style='position:relative;width:70px' align=right cellpadding=0 cellspacing=0> |
| <td nowrap> |
| <div id="nb_sldshwText" title="Full |
| Screen Slide Show" align=center style='position:relative;margin-left:20px;padding:3px; |
| font-family:Arial;color:buttontext;font-size:9pt;cursor:default'>Slide |
| Show</div> |
| <div id="nb_sldshwBorder" title="Full Screen Slide Show" style='position:absolute;top:0%;left:0%;width:100%;height:20px'> |
| <div style='position:absolute;clip:rect(0px, 18px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_sldshw" style='position:relative;left:-254px'></div> |
| </div> |
| </td> |
| <td> |
| <div id="nb_voiceBorder" style='display:none;position:absolute;top:0;left:-40px; |
| width:20px;height:20px'> |
| <div style='position:absolute;clip:rect(0px, 18px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_voice" title="Pause/Play Narration" style='position: |
| relative;left:-290px'></div> |
| </div> |
| </td> |
| </table> |
| |
| <table style='position:relative' align=center cellpadding=0 cellspacing=0> |
| <td nowrap> |
| <div id="nb_prevBorder" class=button style='left:-30px'> |
| <div style='position:absolute;clip:rect(0px, 30px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_prev" title="Previous Slide" style='position:relative; |
| left:0px'></div> |
| </div> |
| <span id="nav_text" style='position:relative;top:3px;width:100px;font-family: |
| Arial;color:buttontext;font-size:9pt'></span> |
| <div id="nb_nextBorder" class=button> |
| <div style='position:absolute;clip:rect(0px, 30px, 18px, 0px)'><img |
| src="buttons.gif" id="nb_next" title="Next Slide" style='position:relative; |
| left:-90px'></div> |
| </div> |
| </td> |
| </table> |
| </div> |
| |
| <div id=OtlNavObj onload="Load()" onmouseover="BtnOnOver()" |
| onmousedown="BtnOnDown()" onmouseout="BtnOnOut()" onmouseup="BtnOnUp()" |
| onkeypress="_KPH()" style='display:none;visibility:hidden'> |
| |
| <table style='position:relative;width:70px' align=left cellpadding=0 cellspacing=0> |
| <td nowrap><div title="Show/Hide |
| Outline" id="nb_otl" |
| style='position:absolute;top:0%;left:0%;width:100%;height:100%;cursor:default'> |
| <div id="nb_otlElem" align=center style='position:relative;padding:3px;font-family:Arial; |
| color:buttontext;font-size:9pt'>Outline</div></div> |
| </td> |
| </table> |
| |
| <table style='position:relative' align=center cellpadding=0 cellspacing=0> |
| <td> |
| <div style='position:absolute;left:-18px;width:24px;height:20px;border-style: |
| solid;border-width:1px;border-color:threedface' id="nb_otlTxtBorder"> |
| <div style='position:absolute;clip:rect(0px, 22px, 18px, 0px)'><img |
| src=buttons.gif id="nb_otlTxt" title="Expand/Collapse Outline" |
| style='position:relative;left:-157px'></div> |
| </div> |
| </td> |
| </table> |
| |
| </div> |
| |
| <div id=OtlObj style='display:none;visibility:hidden;'> |
| |
| |
| <table width="100%" style='font-family:Arial;font-size:9pt'> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>1</font></div> |
| </td> |
| <td width="100%"> |
| <div id=PPTP1 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0001.html');" id=PPTL1>Creating Robust |
| Scalable DSLs with UML</a></font></div> |
| <div id=PPTC1 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Tutorial</li> |
| <li>(172)</li> |
| <br> |
| <br> |
| <li>James Bruck,</li> |
| <li>Christian Damus</li> |
| <li>IBM Rational Software</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>2</font></div> |
| </td> |
| <td> |
| <div id=PPTP2 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0060.html');" id=PPTL2>Agenda</a></font></div> |
| <div id=PPTC2 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsetting</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>3</font></div> |
| </td> |
| <td> |
| <div id=PPTP3 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0061.html');" id=PPTL3>Introduction What is |
| a DSL?</a></font></div> |
| <div id=PPTC3 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>DSL stands for Domain Specific Language.</li> |
| <br> |
| <br> |
| <li>A DSL is created specifically to solve problems in a particular domain.</li> |
| <ul> |
| <li>A language designed to be useful for a specific task.</li> |
| <br> |
| <br> |
| </ul> |
| <li>UML® is a general purpose modeling language.</li> |
| <ul> |
| <li>Large and very expressive.</li> |
| <li>UML 1.x was sometimes criticized for being too large, UML 2.x adds even |
| more concepts.</li> |
| <ul> |
| <br> |
| <br> |
| </ul> |
| </ul> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>4</font></div> |
| </td> |
| <td> |
| <div id=PPTP4 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0091.html');" id=PPTL4>Introduction Why |
| extend UML?</a></font></div> |
| <div id=PPTC4 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>A common end-goal of those wishing to extend UML is to leverage existing |
| tools and conventions defined by UML while making modeling easier for |
| the end user.</li> |
| <br> |
| <br> |
| <ul> |
| <li>Give a terminology that is adapted to a particular domain.</li> |
| <li>Give a different notation for already existing symbols</li> |
| <li>Add semantics that do not exist in the meta-model.</li> |
| <li>Add constraints that restrict the way you use the meta-model.</li> |
| <li>Add information that can be used when transforming a model to another |
| model or code.</li> |
| <ul> |
| <br> |
| <br> |
| </ul> |
| </ul> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>5</font></div> |
| </td> |
| <td> |
| <div id=PPTP5 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0092.html');" id=PPTL5>Introduction |
| Understanding the Options</a></font></div> |
| <div id=PPTC5 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Need to know:</li> |
| <ul> |
| <li>The types of customizations you wish to create.</li> |
| <ul> |
| <li>Add/remove behavior</li> |
| <li>Add/remove properties</li> |
| <li>Add/remove constraints</li> |
| </ul> |
| <li>How the extended meta-model is intended to be used.</li> |
| <ul> |
| <li>How will end user create instances of new meta-types and meta-types |
| from the extended meta-model.</li> |
| </ul> |
| <li>How much overlap exists between new domain and extended domain.</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>6</font></div> |
| </td> |
| <td> |
| <div id=PPTP6 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0093.html');" id=PPTL6>Agenda</a></font></div> |
| <div id=PPTC6 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>7</font></div> |
| </td> |
| <td> |
| <div id=PPTP7 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0136.html');" id=PPTL7>Exploring Extension |
| Mechanisms - Featherweight</a></font></div> |
| <div id=PPTC7 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>8</font></div> |
| </td> |
| <td> |
| <div id=PPTP8 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0137.html');" id=PPTL8>Exploring Extension |
| Mechanisms - Featherweight</a></font></div> |
| <div id=PPTC8 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>9</font></div> |
| </td> |
| <td> |
| <div id=PPTP9 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0138.html');" id=PPTL9>Exploring Extension |
| Mechanisms - Featherweight</a></font></div> |
| <div id=PPTC9 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>10</font></div> |
| </td> |
| <td> |
| <div id=PPTP10 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0095.html');" id=PPTL10>Exploring Extension |
| Mechanisms - Featherweight</a></font></div> |
| <div id=PPTC10 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>11</font></div> |
| </td> |
| <td> |
| <div id=PPTP11 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0133.html');" id=PPTL11>Agenda</a></font></div> |
| <div id=PPTC11 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>12</font></div> |
| </td> |
| <td> |
| <div id=PPTP12 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0067.html');" id=PPTL12>Exploring Extension |
| Mechanisms - Lightweight</a></font></div> |
| <div id=PPTC12 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>A profile defines a limited extension to a reference meta-model.</li> |
| <br> |
| <br> |
| <li>Primary extension construct is the Stereotype.</li> |
| <br> |
| <br> |
| <li>Stereotypes can be used to add:</li> |
| <ul> |
| <li>Keywords</li> |
| <li>Constraints</li> |
| <li>Images</li> |
| <li>Properties</li> |
| <li>Behavior</li> |
| <br> |
| <br> |
| </ul> |
| <li>Profile applications can be used to restrict the meta-types that can be |
| used in the profiled package.</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>13</font></div> |
| </td> |
| <td> |
| <div id=PPTP13 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0125.html');" id=PPTL13>Exploring Extension |
| Mechanisms - Lightweight</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>14</font></div> |
| </td> |
| <td> |
| <div id=PPTP14 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0097.html');" id=PPTL14>Exploring Extension |
| Mechanisms - Lightweight</a></font></div> |
| <div id=PPTC14 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>15</font></div> |
| </td> |
| <td> |
| <div id=PPTP15 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0123.html');" id=PPTL15>Exercise 1 |
| Lightweight Extension</a></font></div> |
| <div id=PPTC15 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Objectives:</li> |
| <ul> |
| <li>Learning how to describe domain specific constructs with a profile.</li> |
| <li>Explore Static Profile Definition.</li> |
| <ul> |
| <li>Generate Java API for the profile.</li> |
| <li>Register the generated profile to make it available at run-time.</li> |
| </ul> |
| <li>Work with your profile.</li> |
| <ul> |
| <li>Apply and use the profile in a UML model.</li> |
| </ul> |
| <br> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>16</font></div> |
| </td> |
| <td> |
| <div id=PPTP16 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0124.html');" id=PPTL16>Exercise 1 <span |
| style='mso-spacerun:yes'> </span>Lightweight Extension</a></font></div> |
| <div id=PPTC16 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <ul> |
| <br> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>17</font></div> |
| </td> |
| <td> |
| <div id=PPTP17 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0139.html');" id=PPTL17>Exercise 1 <span |
| style='mso-spacerun:yes'> </span>Lightweight Extension</a></font></div> |
| <div id=PPTC17 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <ul> |
| <br> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>18</font></div> |
| </td> |
| <td> |
| <div id=PPTP18 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0131.html');" id=PPTL18>Agenda</a></font></div> |
| <div id=PPTC18 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>19</font></div> |
| </td> |
| <td> |
| <div id=PPTP19 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0068.html');" id=PPTL19>Exploring Extension |
| Mechanisms - Middleweight</a></font></div> |
| <div id=PPTC19 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Extension by specialization of UML meta-classes.</li> |
| <ul> |
| <li>Extend by specializing types within UML.metamodel.uml (the merged UML |
| meta-model)</li> |
| <br> |
| <br> |
| </ul> |
| <li>Creating dependencies on a specific version of UML.</li> |
| <br> |
| <br> |
| <li>Implementation classes in the specialized meta-model reference internal |
| UML implementation classes (compiler warnings)</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>20</font></div> |
| </td> |
| <td> |
| <div id=PPTP20 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0098.html');" id=PPTL20>Exploring Extension |
| Mechanisms - Middleweight</a></font></div> |
| <div id=PPTC20 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>21</font></div> |
| </td> |
| <td> |
| <div id=PPTP21 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0132.html');" id=PPTL21>Agenda</a></font></div> |
| <div id=PPTC21 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>22</font></div> |
| </td> |
| <td> |
| <div id=PPTP22 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0072.html');" id=PPTL22>Exploring Extension |
| Mechanisms Heavyweight</a></font></div> |
| <div id=PPTC22 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Reuse by copy instead of reuse by extension as middleweight.</li> |
| <br> |
| <br> |
| <li>Heavyweight extensions involve 2 steps</li> |
| <ul> |
| <li>Select the language units you wish to extend and merge.</li> |
| <li>Add your own domain specific types.</li> |
| <br> |
| <br> |
| </ul> |
| <li>Merging packages forms the basis for constructing UML itself.</li> |
| <br> |
| <br> |
| <li>Have access to all concepts used to create UML</li> |
| <ul> |
| <li>Subset</li> |
| <li>Redefinition</li> |
| <li>Derived unions</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>23</font></div> |
| </td> |
| <td> |
| <div id=PPTP23 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0099.html');" id=PPTL23>Exploring Extension |
| Mechanisms Heavyweight</a></font></div> |
| <div id=PPTC23 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>24</font></div> |
| </td> |
| <td> |
| <div id=PPTP24 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0100.html');" id=PPTL24>Agenda</a></font></div> |
| <div id=PPTC24 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Deciding which Technique to Use</li> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>25</font></div> |
| </td> |
| <td> |
| <div id=PPTP25 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0080.html');" id=PPTL25>Advanced Concepts |
| Subsets</a></font></div> |
| <div id=PPTC25 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>26</font></div> |
| </td> |
| <td> |
| <div id=PPTP26 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0118.html');" id=PPTL26>Advanced Concepts |
| Subsets - Derived</a></font></div> |
| <div id=PPTC26 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>27</font></div> |
| </td> |
| <td> |
| <div id=PPTP27 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0119.html');" id=PPTL27>Advanced Concepts |
| Subsets Non-Derived</a></font></div> |
| <div id=PPTC27 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>28</font></div> |
| </td> |
| <td> |
| <div id=PPTP28 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0081.html');" id=PPTL28>Advanced Concepts |
| Derived unions</a></font></div> |
| <div id=PPTC28 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>29</font></div> |
| </td> |
| <td> |
| <div id=PPTP29 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0120.html');" id=PPTL29>Advanced Concepts |
| Derived unions</a></font></div> |
| <div id=PPTC29 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>30</font></div> |
| </td> |
| <td> |
| <div id=PPTP30 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0121.html');" id=PPTL30>Derived unions: |
| Example</a></font></div> |
| <div id=PPTC30 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>31</font></div> |
| </td> |
| <td> |
| <div id=PPTP31 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0082.html');" id=PPTL31>Advanced Concepts |
| Redefinition</a></font></div> |
| <div id=PPTC31 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>32</font></div> |
| </td> |
| <td> |
| <div id=PPTP32 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0122.html');" id=PPTL32>Advanced Concepts |
| Redefinition</a></font></div> |
| <div id=PPTC32 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>33</font></div> |
| </td> |
| <td> |
| <div id=PPTP33 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0117.html');" id=PPTL33>Advanced Concepts |
| Redefinition: Example</a></font></div> |
| <div id=PPTC33 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>34</font></div> |
| </td> |
| <td> |
| <div id=PPTP34 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0101.html');" id=PPTL34>Exercise 2 Creating |
| Middleweight Extension</a></font></div> |
| <div id=PPTC34 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Objectives:</li> |
| <ul> |
| <li>Explore subsets.</li> |
| <li>Explore extending UML using specialization.</li> |
| <li>Explore code generator options.</li> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>35</font></div> |
| </td> |
| <td> |
| <div id=PPTP35 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0128.html');" id=PPTL35>Exercise 2 Creating |
| Middleweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>36</font></div> |
| </td> |
| <td> |
| <div id=PPTP36 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0140.html');" id=PPTL36>Exercise 2 Creating |
| Middleweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>37</font></div> |
| </td> |
| <td> |
| <div id=PPTP37 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0102.html');" id=PPTL37>Agenda</a></font></div> |
| <div id=PPTC37 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Deciding which Technique to Use</li> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsetting</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>38</font></div> |
| </td> |
| <td> |
| <div id=PPTP38 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0108.html');" id=PPTL38>Package Merge</a></font></div> |
| <div id=PPTC38 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>A directed relationship between two packages which indicates that the |
| contents are to be combined.</li> |
| <br> |
| <br> |
| <li>This mechanism should be used when elements defined in different |
| packages are intended to represent the same concept.</li> |
| <br> |
| <br> |
| <li>By selecting which increments to merge, it is possible to obtain a |
| custom definition of a concept.</li> |
| <br> |
| <br> |
| <li>Package merge allows modeling concepts defined in one package to be |
| extended with new features.</li> |
| <br> |
| <br> |
| <li>UML itself is a merge of a large number of packages.</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>39</font></div> |
| </td> |
| <td> |
| <div id=PPTP39 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0115.html');" id=PPTL39>Package Merge</a></font></div> |
| <div id=PPTC39 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Package merge allows modeling concepts defined at one level to be |
| extended with new features.</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>40</font></div> |
| </td> |
| <td> |
| <div id=PPTP40 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0116.html');" id=PPTL40>Package Merge - |
| Example</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>41</font></div> |
| </td> |
| <td> |
| <div id=PPTP41 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0086.html');" id=PPTL41>Language Units</a></font></div> |
| <div id=PPTC41 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>42</font></div> |
| </td> |
| <td> |
| <div id=PPTP42 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0135.html');" id=PPTL42>Language Units and |
| Compliance Levels</a></font></div> |
| <div id=PPTC42 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>43</font></div> |
| </td> |
| <td> |
| <div id=PPTP43 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0087.html');" id=PPTL43>Compliance Levels L0</a></font></div> |
| <div id=PPTC43 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>44</font></div> |
| </td> |
| <td> |
| <div id=PPTP44 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0088.html');" id=PPTL44>Compliance Levels L1</a></font></div> |
| <div id=PPTC44 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>45</font></div> |
| </td> |
| <td> |
| <div id=PPTP45 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0109.html');" id=PPTL45>Compliance Levels L2</a></font></div> |
| <div id=PPTC45 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>46</font></div> |
| </td> |
| <td> |
| <div id=PPTP46 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0110.html');" id=PPTL46>Compliance Levels L3</a></font></div> |
| <div id=PPTC46 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>47</font></div> |
| </td> |
| <td> |
| <div id=PPTP47 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0104.html');" id=PPTL47>Exercise 3 Creating |
| Heavyweight Extension</a></font></div> |
| <div id=PPTC47 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Objectives:</li> |
| <ul> |
| <li>Explore Package Merge.</li> |
| <li>Explore working with your extension (generating an editor).</li> |
| <br> |
| <br> |
| </ul> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>48</font></div> |
| </td> |
| <td> |
| <div id=PPTP48 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0106.html');" id=PPTL48>Exercise 3 Creating |
| Heavyweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>49</font></div> |
| </td> |
| <td> |
| <div id=PPTP49 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0129.html');" id=PPTL49>Exercise 3 Creating |
| Heavyweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>50</font></div> |
| </td> |
| <td> |
| <div id=PPTP50 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0141.html');" id=PPTL50>Exercise 3 Creating |
| Heavyweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>51</font></div> |
| </td> |
| <td> |
| <div id=PPTP51 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0130.html');" id=PPTL51>Exercise 3 Creating |
| Heavyweight Extension</a></font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>52</font></div> |
| </td> |
| <td> |
| <div id=PPTP52 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0103.html');" id=PPTL52>Agenda</a></font></div> |
| <div id=PPTC52 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Introduction</li> |
| <li>Exploring Extension Mechanisms</li> |
| <ul> |
| <li>Featherweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Deciding which Technique to Use</li> |
| <li>Advanced Concepts</li> |
| <ul> |
| <li>Subsets</li> |
| <li>Derived Unions</li> |
| <li>Redefinition</li> |
| </ul> |
| <li>Meta-model Decomposition</li> |
| <ul> |
| <li>Package Merge</li> |
| <li>Language Units</li> |
| <li>Compliance Levels</li> |
| </ul> |
| <li>Summary</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>53</font></div> |
| </td> |
| <td> |
| <div id=PPTP53 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0069.html');" id=PPTL53>Summary</a></font></div> |
| <div id=PPTC53 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Four basic techniques.</li> |
| <ul> |
| <li>Flyweight</li> |
| <li>Lightweight</li> |
| <li>Middleweight</li> |
| <li>Heavyweight</li> |
| </ul> |
| <li>Favor lightweight extension (use of profiles).</li> |
| <ul> |
| <li>A practical solution for most applications.</li> |
| <br> |
| <br> |
| </ul> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>54</font></div> |
| </td> |
| <td> |
| <div id=PPTP54 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0057.html');" id=PPTL54>"Thank You!"</a></font></div> |
| <div id=PPTC54 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <li>Thank You!</li> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| <tr onmouseover="Over(this)" onmouseout="Out(this)" onclick="Follow(this)" |
| style='cursor:hand'> |
| <td align=right valign=top> |
| <div class=sldNum><font size=2>55</font></div> |
| </td> |
| <td> |
| <div id=PPTP55 class=PTxt><font size=2><a |
| href="javascript:GoToSld('slide0059.html');" id=PPTL55>Legal Notices</a></font></div> |
| <div id=PPTC55 class=CTxt style='display:none'><font size=2> |
| <ul> |
| <br> |
| <li>Copyright © IBM Corp., 2007-2008.<span style='mso-spacerun:yes'> |
| </span>All rights reserved.<span style='mso-spacerun:yes'> |
| </span>Source code in this presentation is made available under the EPL, |
| v1.0; remainder of the presentation is licensed under Creative Commons |
| Att. Nc Nd 2.5 license.</li> |
| <br> |
| <br> |
| <li>IBM and the IBM logo are trademarks or registered trademarks of IBM |
| Corporation in the United States, other countries, or both.</li> |
| <br> |
| <br> |
| <li>Rational and the Rational logo are trademarks or registered trademarks |
| of International Business Corporation in the United States, other |
| countries, or both.</li> |
| <br> |
| <br> |
| <li>UML, Unified Modeling Language, and MOF are trademarks or registered |
| trademarks of Object Management Group, Inc.</li> |
| <br> |
| <br> |
| <li>Java and all Java-based trademarks, among others, are trademarks or |
| registered trademarks of Sun Microsystems in the United States, other |
| countries, or both</li> |
| <br> |
| <br> |
| <li>Eclipse and the Eclipse logo are trademarks of the Eclipse Foundation, |
| Inc.</li> |
| <br> |
| <br> |
| <li>Other company, product, and service names may be trademarks or service |
| marks of others.</li> |
| <br> |
| <br> |
| <li>THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR |
| INFORMATIONAL PURPOSES ONLY.<span style='mso-spacerun:yes'> |
| </span>WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY |
| OF THE INFORMATION, IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, |
| EXPRESS OR IMPLIED, AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES |
| ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, SUCH |
| INFORMATION.<span style='mso-spacerun:yes'> </span>ANY INFORMATION |
| CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM |
| WITHOUT NOTICE.</li> |
| <br> |
| <br> |
| <br> |
| </ul> |
| </font></div> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| </div> |
| </body> |
| |
| </html> |