- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 并在构件库的说明文档中全面、准确地说明下列内容: 构件的功能和行为; 相关的领域知识; 可适应性约束条件和异常情况; 可以预见的修改部分和修改方法。 如果希望复用那些原先并非为复用而设计的构件,人们必须借助CASE工具对待选构件进行分析。然后回答构件用户的各种查询,进而帮助理解。 * 对于以C或C++源程序形式出现的构件,用户可借助于CASE工具查询标识符的定义和引用。如果源程序中以结构化注解的形式给出函数的前置条件、后置断言、约束与异常情形、算法描述,用户也可以实现对这些信息的直观浏览。 逆向工程是理解构件的另一种重要手段。通过对构件进行分析,结合领域知识,半自动地生成构件的设计信息,然后借助设计信息完成对构件的理解和修改。 * 对软件构件的可复用性进行评价,主要通过收集和分析构件的用户在实际复用构件的过程中所得到的各种反馈信息,按照某种领域模型来完成。这些反馈信息包括: 复用成功的次数; 对构件的修改工作量; 构件的健壮性度量(如出错数量); 性能度量(如执行效率和资源消耗量)等。 * 修改构件 理想的情况是对库中的构件不做修改就可以直接用于新的软件项目。但在多数情况下,需要对构件做或多或少的修改以适应新的需求。 为了减少修改的工作量,要求构件的开发人员尽量使构件的功能、行为、接口抽象化、通用化、参数化。这样,构件的用户可以通过对实参的选择来调整构件的功能或行为。 * 如果这种调整仍不能使构件适应新的软件项目,用户就必须借助设计信息和说明文档来理解、修改构件。 为此,与构件有关的说明文档和抽象层次更高的设计信息对于构件的修改至关重要。 例如,如果需要将用C语言编写的构件(源程序代码)改写为其他语言的形式,构件的算法描述就十分必要。 * 构件的合成 构件合成是指将可复用构件库中的构件相互连接,或将它们与当前软件项目中的软件元素相连接以构成最终的目标系统。 基于功能的合成技术 该技术采用子程序调用和参数传递方式将构件结合起来。它要求库中的构件必须以标准子程序(过程或函数)的形式出现,接口说明必须准确、清楚。 * 基于数据的合成技术 该技术根据当前应用的核心数据结构设计框架,再根据框架中各结点的需求提取构件进行适应性修改,再把它们逐个分配给框架中的适当位置。 构件的合成方式仍然是传统的子程序调用与参数传递。但它所依赖的软件设计方法不再是功能分解,而是面向数据结构的设计方法。 * 面向对象的软件复用技术 由于封装和继承的特性,面向对象方法比其他软件开发方法更适合支持软件复用。构件用户不需了解构件的实现细节。 类库的构造 通常将面向对象的可复用构件库称为可复用类库(简称类库),因为这时所有的构件都是以类的形式出现。 * 可复用基类的建立取决于领域分析阶段对当前应用(族)中具有一般适用性的对象和类的标识。 类库的组织方式采用类的继承层次结构。这种结构与现实问题空间的实体继承关系有某种自然、直接的对应。 类库的文档以超文本方式组织,每个类的说明文档中都可以包含指向其他说明文档的关键词结点的链接指针。 * 类库的检索 类库的组织方式直接决定检索方式。常用的类库检索方法是对类库中类的继承层次结构进行树形浏览及基于类库文档的超文本检索。 借助于树形浏览工具,类库的用户可以从树的根部(继承层次的根类)出发,根据对可复用基类的需求,逐层确定它所属的语法和语义的范畴,然后确定最合适的基类。 * 借助于类库的超文本文档,用户可以 在类库的继承层次结构中查阅各基类的属性、操作和其他特征。 按照基类之间的语义关联实现自由跳转。 对类库的检索并不要求待实现的类与库中的基类完全相同或极为相似,只是希望待实现的类与基类之间存在某种自然的继承关系,或者基类能够提供属性或操作给待实现的子类选用。。 * 类的合成 如果从类库中检索出来的基类能够完全满足新软件项目的需求,则可以直接复用。否则必须以类库中的基类为父类,采用构造法或子类法派生出子类。 需要注意的是,面向对象的复用技术通常不允许用户修改库中的基类,要想对类库进行扩充或修改,应当调整类库的继承结构以把新的子类加入到适当的位置。 * 构造法 为了在子类中使用库中的基类的属性和操作,可以考虑在子类中引进基类的实例作为子类的实例变量,然后在子类中通过实例变量来复用基类的属性或操作。 子类法 把新子类直接说明为库中基类的子类。通过继承和修改基类的属性和操作来完成新子类的定义。子类法利用了面向对象的封装和继承的特性。 * 如果想要构造一个属于某一应用领域的新软件,可先确定它的领域特征,然后进行比较,决定现有的构件是否可以有效地在新应用中复用。 典型的对软件复用有影响的领域特征如下: * * 结构建模 结构建模是基于模式的领域工程方法。 使用该方
原创力文档


文档评论(0)