清华大学软件工程课程讲义软件复用.pptVIP

清华大学软件工程课程讲义软件复用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1) 与复用是否合适 没有相关性 。 2) 仅在 不寻常的情况下相关 。 3) 相关 。此时可以修改软件构件,使其 可以被复用。 4) 显著相关 ,且若新软件不具有此特征 则复用是低效的。但复用仍有可能。 5) 显著相关 ,且若新软件不具有此特征 则复用是无效的。此时不推荐复用。 31 ? 如果想要构造一个属于某一应用领域 的新软件,可先确定它的领域特征, 然后进行比较,决定现有的构件是否 可以有效地在新应用中复用。 ? 典型的对软件复用有影响的领域特征 如下: 32 产 品 过 程 需求稳定性 过程模型 并发软件 过程符合性 内存限制 项目环境 应用大小 进度限制 用户界面复杂性 预算限制 程序设计语言 生产效率 安全性 / 可靠性 寿命需求 产品质量 产品可靠性 人 员 动机 教育 经验 / 培训 ? 应用论域 ? 过程 ? 平台 ? 语言 开发队伍 生产效率 33 结构建模 ? 结构建模是基于模式的领域工程方法。 ? 使用该方法要求 应用领域有可在应用 软件间重复使用 的模式(功能的、数 据的、行为的)。 ? 结构模型 由少量的结构元素 构成,这 些结构元素用来表示交互的模式。 ? 系统体系结构可以通过由这些模型元 素组成的多声部合唱来描述。 34 ? 每一个应用领域都可以一个结构模型 来描述。在这个领域中所有的现行应 用都有相同的结构模型。 ? 结构点是结构模型中的不同的构成成 分,用于描述系统体系结构中的模式 。 1) 结构点应是一种抽象,它的实例应在 领域的各个应用中重复出现。 2) 使用结构点的规则应是容易理解的, 结构点的界面应比较简单。 3) 结构点的实现应做到信息隐蔽。 35 ? 典型的结构点有 ? 应用前端 即 GUI ,如菜单、面板和 输入及命令编辑工具等; ? 数据库 即存储所有与应用领域有关 的对象的数据仓库; ? 计算引擎 即操作数据的数值或非数 值计算模型; ? 报告工具 即产生各种输出的功能; ? 应用编辑器 即根据特定用户要求定 制应用的机制。 36 8.4 可复用构件的构造原则 和质量标准 ? 一旦确定了某些软件元素可以当作可复 用构件并将要加入到可复用构件库中, 软件人员就需要实际构造它们。 ? 由于软件构件的生存期将跨越开发项目, 甚至应用领域,因此,可复用构件必须 更为通用、更容易组装到新的软件系统 中、在新的运行环境下能表现出更好的 健壮性。 37 1. 需求和设计级的软件构件 ? 需求级软件构件通常包括 ? 问题(及子问题)描述 ? 有关的领域知识 ? 相应的需求规格说明。 问题描述及领域知识均使用领域语言, 必要时可辅以结构化的自然语言。 ? 设计级软件构件包括 ? 设计规格说明(片段) ? 设计决策描述 38 ? 相应的设计文档(如总体设计方案、 抽象算法)。 ? 将需求级软件构件和设计级软件构件 相结合,能够简化对这些软件构件的 理解和组装过程。 ? 开发原则: 1) 严格分离构件应用的上下文与构件; 2) 利用抽象化、参数化等手段提取公 共特征,增强构件对未来不同应用 项目的适应能力。 39 2. 代码级的软件构件 ? 代码级软件构件不仅应包含通常的 程 序代码段 ,还应辅以相应的 注释 和 上 下文环境说明 。 ? 代码级软件构件的主体是 子程序 (过 程或函数)。 ? 在基于对象和面向对象程序设计语言 及相应的开发环境下,软件构件可以 用 Ada 程序包 或 C++ 类 来实现。 40 ? 开发代码级构件时要运用各种抽象化 手段,发掘公共特征,分离构件的应 用环境、功能和行为,提高可复用性。 1) 功能抽象 软件构件的功能 由接口说 明中的输入 ― 输出关系确定 ,实现细 节对构件的使用者隐藏起来; 2) 数据抽象 隐藏除接口参数外的所有 数据 。构件的功能或行为由参数和构 件的内部状态决定。构件的内部状态 可由构件的内部操作来更新。 41 3) 过程抽象 在数据抽象的基础上进一 步实现 在同一软件构件上并发执行的 多个线程的无关性 。软件构件提供端 口,以便为多个用户同时访问软件构 件中的资源进行同步控制。访问请求 首先进入等待队列,软件构件就绪后, 从队

文档评论(0)

sandajie + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档