⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 200604161439595.html

📁 软件工程的红包书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<TD borderColor=#808080 borderColorLight=#808080 borderColorDark=#808080>例如 UNIX 中的 makefile</TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Verdana><STRONG>使用</STRONG></FONT></P>
<P><FONT face=Verdana>设计中的<a href="200603090857555.html" tppabs="http://www.itisedu.com/phrase/200603090857555.html" target="_new">类</a>和<a href="200603090845215.html" tppabs="http://www.itisedu.com/phrase/200603090845215.html" target="_new">对象</a>被作为部署构件进行实施。您需要确定如何将设计类映射为代码;这应该在项目专用的设计指南中有所说明。</FONT></P>
<P><FONT face=Verdana>有关如何将设计类映射为代码的详细信息,请参见活动:实施构件。另请参见指南:类。</FONT></P>
<P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实施构件与修改构件在项目的<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200602271137552.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200602271137552.html'" tppabs="http://www.itisedu.com/phrase/200602271137552.html" target="_new">配置管理</a>环境中进行。实施员在为他们提供的专用开发工作区(请参见活动:创建开发工作区)中,按照工件:工作单所指定的内容开展工作。在该工作区中,创建源元素并将其置于配置管理之下,或者在通常的检出、编辑、构建、<a href="200602281036115.html" tppabs="http://www.itisedu.com/phrase/200602281036115.html" target="_new">单元测试</a>、检入周期中进行修改(请参见活动:<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604161444295.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604161444295.html'" tppabs="http://www.itisedu.com/phrase/200604161444295.html" target="_new">进行变更</a>)。完成某个构件集(根据一个或多个工作单的定义以及即将生成的工作版本要求)后,实施员将把有关新的和修改过的构件交付(请参见活动:交付变更内容)到<a href="200604161433025.html" tppabs="http://www.itisedu.com/phrase/200604161433025.html" target="_new">子系统</a>集成工作区,以便与其他实施员的工作进行集成。最后,实施员可以在方便的时候对专用开发工作区进行更新(或者重新调整<a href="200603130850315.html" tppabs="http://www.itisedu.com/phrase/200603130850315.html" target="_new">基线</a>),使该工作区与子系统集成工作区保持一致(请参见活动:更新工作区)。</FONT></P>
<P><FONT face=Verdana>当实施类时,应遵循编程指南。</FONT></P>
<P><FONT face=Verdana>实施的主要基础是具有公有操作、属性与关联关系的类。务必要注意,并不是所有公有操作、属性与关联关系都在设计过程中定义。</FONT></P>
<P><FONT face=Verdana>实施的辅助基础是<a href="200604240937105.html" tppabs="http://www.itisedu.com/phrase/200604240937105.html" target="_new">用例</a>实现,用例实现显示了类和对象如何通过交互来执行用例。</FONT></P>
<P><FONT face=Verdana>最好以递增的方式实施类;编译、链接和运行一些<a href="200603120943595.html" tppabs="http://www.itisedu.com/phrase/200603120943595.html" target="_new">回归测试</a>,每天进行三两次。</FONT></P>
<P><FONT face=Verdana>在从零开始实施一个类之前,可考虑修改现有的实施类(一般可通过建立子类或进行实例化来修改)。</FONT></P>
<P><FONT face=Verdana><STRONG>实施操作</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>要实施操作,请执行以下步骤: </FONT></P>
<P><FONT face=Verdana>选择算法 <BR>选择适合算法的数据结构 <BR>根据需要定义新的类和操作 <BR>编写操作代码 <BR>选择算法<BR>许多操作都十分简单,可以从该操作及其规约中立即实施。</FONT></P>
<P><FONT face=Verdana>之所以需要特殊算法,主要是为了实施定义了规约的复杂操作,并优化那些以简单但却低效的算法为定义的操作。</FONT></P>
<P><FONT face=Verdana>选择适合算法的数据结构<BR>选择算法包括选择算法所基于的数据结构。许多实施数据结构是容器类,例如数组、列表、队列、栈、集合、无序单位组,以及这些类的各种不同形式。许多<a href="200603101726185.html" tppabs="http://www.itisedu.com/phrase/200603101726185.html" target="_new">面向对象</a>的语言和编程环境都提供了具有这些可复用构件的类库。</FONT></P>
<P><FONT face=Verdana>根据需要定义新的类和操作<BR>比如,可以使用新类来保存中间结果,也可对类添加新的低级操作来分解复杂操作。通常,这些操作是类的私有操作,所以在类之外看不见这些操作。</FONT></P>
<P><FONT face=Verdana>编写操作代码<BR>要编写操作的代码,可从接口语句开始,例如 C++ 中的成员函数声明、Ada 中的子<a href="200604232224305.html" tppabs="http://www.itisedu.com/phrase/200604232224305.html" target="_new">程序</a>规约或 Visual Basic 中的方法。请遵循编程指南。</FONT></P>
<P><FONT face=Verdana><STRONG>实施构件<a href="200603110944215.html" tppabs="http://www.itisedu.com/phrase/200603110944215.html" target="_new">工作流</a>程明细</STRONG></FONT></P>
<P align=center><IMG src="200641614573697.gif" tppabs="http://www.itisedu.com/manage/Upload/image/200641614573697.gif" border=0></P>
<P><FONT face=Verdana><STRONG>实施状态</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>对象的状态可通过引用其属性值来实施,而不必作特殊说明。这种对象的状态转移将隐含于变化的属性值中,而变化的行为通过条件语句来编程。 但对于复杂行为,该方法不能令人满意,因为它往往会导致复杂的结构;而当添加更多状态或当行为发生变化时,将很难更改这些结构。</FONT></P>
<P><FONT face=Verdana>如果构件(或其组成部分)的行为随状态而定,则通常会有一个或多个<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604161451045.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604161451045.html'" tppabs="http://www.itisedu.com/phrase/200604161451045.html" target="_new">状态图</a>来说明组成该构件的模型元素的行为。这些状态图可用作实施过程中的重要输入。有关详细信息,请参见指南:状态图。 </FONT></P>
<P><FONT face=Verdana>状态图中所示的状态机将表现对象的状态,并详尽说明状态转移及所需的行为。可以通过以下几种方法来实施状态机:</FONT></P>
<P><FONT face=Verdana>对于简单的状态机,定义一项列举可能状态的属性,然后使用该属性在 Java 或 C++ 中的 switch 语句中选择进入<a href="200603090938465.html" tppabs="http://www.itisedu.com/phrase/200603090938465.html" target="_new">消息</a>的行为。但这种方法不太适用于复杂的状态机,它可能会导致运行时性能降低。如需此方法的示例,请参见 [DOUG98],第 4 章 4.4.3 <BR>对于较复杂的状态机,可使用状态<a href="200603061709535.html" tppabs="http://www.itisedu.com/phrase/200603061709535.html" target="_new">模式</a>。有关状态模式的说明,请参见 [GAM94]。[DOUG98],第 6 章 6.2.3 状态模式也说明了这种方法 <BR>表驱动法对于极复杂的状态机十分有效,其特点是易于变更。当使用这种方法时,各个状态在表中都有相应的条目,这些条目将输入映射到后继状态和相关的转移动作。如需此方法的示例,请参见 [DOUG98],第 6 章 6.2.3 状态表模式。 <BR>要实施具有并行子状态的状态机,可以将状态管理委派给主动对象(每个对象都被委派一个并行子状态),因为并行子状态代表了独立的计算(但仍可能进行交互)。每个子状态均可通过上述方法之一来进行管理。</FONT></P>
<P><FONT face=Verdana><STRONG>通过委托关系复用实施</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>如果一个类或一个类的某些部分可通过复用现有类来实施,则应通过委托关系(而不要继承)来实现。</FONT></P>
<P><FONT face=Verdana>委托表示一个类借助于其他类来得以实施。该类通过使用变量来引用其他类的对象。当调用某操作时,该操作将调用被引用对象(属于被复用的类)中的操作,以实际执行该操作。这样,它就将职责委派给了其他类。</FONT></P>
<P><FONT face=Verdana><STRONG>实施关联关系</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>单向关联关系将作为指针(包含对象引用的属性)来进行实施。如果多重性为一,则将单向关联关系当作简单指针来实施。如果多重性为多个,则将其当作指针集来实施。但如果“多”端是有序排列的,则可以使用列表,而不使用集合。</FONT></P>
<P><FONT face=Verdana>双向关联关系将作为属性,使用单向关联关系的技术在两个方向上实施。</FONT></P>
<P><FONT face=Verdana>限定关联关系将作为限定对象中的查询表(如一个 Smalltalk Dictionary 类)来实施。查询表中的选择器值是限定词,而目标值是另一个类的对象。</FONT></P>
<P><FONT face=Verdana>如果必须按顺序访问限定词的值,就应将限定词组织成经过排序的数组或树。在这种情况下,访问时间将与 log N 成比例,其中 N 为限定词值的数目。</FONT></P>
<P><FONT face=Verdana>如果限定词取自于一个紧凑的有限集,就可以将限定词的值映射到一个整数范围,并将关联关系当作数组来有效地进行实施。如果关联关系已基本上填满(而不是稀疏填充),此方法会更加有效;而对于完全填满的有限集,它可以算是理想的方法。</FONT></P>
<P><FONT face=Verdana>许多面向对象的语言和编程环境都提供了具有可复用构件的类库,可用于实施不同种类的关联关系。</FONT></P>
<P><FONT face=Verdana><STRONG>实施属性</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>可以作为内置基本变量、可复用的构件类或定义一个新类来实现属性。定义新类通常是较为灵活的方法,但它却会带来不必要的间接性。例如,实施雇员的社会保障号时,既可将它作为<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">类型</a>“字符串”的属性,也可将它作为一个新类。</FONT></P>
<P align=center><FONT face=Verdana><IMG src="200641614394754.gif" tppabs="http://www.itisedu.com/manage/Upload/image/200641614394754.gif" border=0></FONT></P>
<P align=center><FONT face=Verdana>属性的备选实施。</FONT></P>
<P><FONT face=Verdana>另一种可能的情况是:属性组组成了新类,如下例所示。这两种实施都是正确的。</FONT></P>
<P align=center><FONT face=Verdana><IMG src="2006416143913341.gif" tppabs="http://www.itisedu.com/manage/Upload/image/2006416143913341.gif" border=0></FONT></P>
<P align=center><FONT face=Verdana>将 Line 中的属性当作 Point 类的关联关系来实施。</FONT></P>
<P><FONT face=Verdana><STRONG>向设计提供反馈</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>在以上任何步骤中,如果发现了设计错误,都必须向设计提供返工反馈。如果所需的变更较小,就可以由同一个人来设计并实施类,而无需提出正式的<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604161514015.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604161514015.html'" tppabs="http://www.itisedu.com/phrase/200604161514015.html" target="_new">变更请求</a>。他可在设计中进行变更。</FONT></P>
<P><FONT face=Verdana>如果所需的变更影响到几个类(例如在公有操作中的变更),则应向 CCB(变更控制委员会)提交正式的变更请求。请参见活动:修复缺陷。</FONT></P>
<P><FONT face=Verdana><STRONG>评估代码</STRONG> </FONT></P>
<P><FONT face=Verdana><BR>在开始单元测试之前,可以先作一些检查。测试是一项花费较多的工作,因此最好先执行以下几项检查: </FONT></P>
<P><FONT face=Verdana>始终对代码进行编译。将编译器的警告等级设置到最详细的程度。 <BR>通过想像对操作进行检查。通读代码,尽可能考虑到所有情况,发现各种异常情况。一旦进行了新的实施活动,就需进行此项工作。 <BR>使用工具检查代码中是否存在错误。例如,使用静态代码规则检查程序。 <BR>&nbsp; <BR>&copy; 1987 - 2001 <a href="200604032121225.html" tppabs="http://www.itisedu.com/phrase/200604032121225.html" target="_new">Rational</a> Software Corporation。版权所有。 </FONT></P>
<P><FONT face=Verdana></FONT>&nbsp;</P>
<P>&nbsp;</P></div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -