软件工程 第13章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(3) 软件系统应建立在标准的、统一的数据接口上。即 软件系统在建立数据模块进行数据操作时,都要求以标准的 数据模式为依据。这样可以减少系统中模块之间的数据交换 和相互依赖关系,并将数据模块的操作集中在少数几个模块 进行统一管理。
(4) 软件系统应有知识的帮助。这一要求不是必须的, 但在软件系统进行重构、扩充时,知识库系统可以提供并学 习系统组合、生成及复用方面的知识,从而提高工作效率、 改进工作质量。
(6) 逻辑产品。软件产品是一种逻辑产品、精神产品, 它的产生几乎完全是人脑思维的结果,它的价值也几乎完全 在于其中所凝结的思想,它的物质载体的制造过程与价值含 量都是微不足道的。物质产品的生产受到人类制造能力的限 制,现有的一切物质产品的复杂性都没有超过这种限度,软 件却没有这种限制,只要人的大脑能想到的问题,都可能要 求软件去解决,人脑所能思考的问题的复杂性,远远超出了 人类能制造的物质产品的复杂性,因而使软件的复用更为困 难。
基于工作过程的教学任务 通过本章学习,领会如何进行软件复用,掌握软件复用
的技术;理解什么是软件复用,了解软件复用面临哪些困难; 理解什么是构件,了解有哪些主流的构件模型,明确构件是 软件复用的关键;了解设计和实现的复用,了解软件体系结 构、框架、基于构件的软件工程;了解互联网对软件复用的 影响。
据统计,开发一个新的应用系统,40%~60%的代码是 重复以前类似系统的成分,重复比例有时甚至更高。因此, 软件复用能节约软件开发成本,真正有效地提高软件生产效 率。使用软件复用技术可以减少软件开发活动中大量的重复 性工作,提高软件生产率,降低开发成本,缩短开发周期。 同时,由于软构件大都经过严格的质量认证,并在实际运行 环境中得到校验,因此,复用软构件有助于改善软件质量。 此外,大量使用软构件,软件的灵活性和标准化程度也有望 得到提高。
第13章 软件复用和构件技术
13.1 复用的概念 13.2 复用的障碍与复用技巧 13.3 对象和复用 13.4 构件及构件技术 13.5 设计和实现期间的复用 13.6 复用及互联网 13.7 小结 习题13
Leabharlann Baidu
知识点 软件复用,对象和复用,构件及构件技术,构件模型,
复用及互联网。 难点
如何将理论与实践结合。
(1) 知识复用(例如,软件工程知识的复用); (2) 方法和标准的复用(例如,面向对象方法或国家制定 的软件开发规范的复用); (3) 软件成分的复用。
软件复用还涉及如何剪裁和修改可复用部件以适应新的 要求。有下面四种剪裁方法:
(1) 根本不剪裁。如程序设计语言所带的库函数; (2) 手工剪裁法。即手工修改可复用部件的内部细节, 要求用户了解可复用部件的内部详细情况; (3) 模板修改法。按模板修改比手工剪裁方便且安全, 同手工剪裁一样,有可能因修改可复用部件而使其出错。 (4) 类属参数化方法。能保证修改不会使原可复用部件 出错,但对设计和编码有一定要求,可复用技术中一般都采 用此方法。
(2) 人的因素。软件开发是一种创造性工作,长期从事 这个行业的人们形成了一种职业习惯:喜欢自己创造而不喜 欢使用别人的东西,特别是当要对别人开发的软件做一些修 改再使用时,常常喜欢自己重新写一个。
(3) 管理因素。在软件生产的管理中,延续了一些与复 用的目标很不协调的制度与政策,如计算工作量时,对复用 部分大打折扣,甚至不算工作量。另外,不是在项目开始时 自觉地向着打造可复用构件的方向努力,而是在它完成之后, 看看是否能从中找到一些可复用构件。这些弊端妨碍了复用 水平的提高和复用规模的扩大,甚至会挫伤致力于复用的人 员的积极性。
那么,怎样才能复用软件呢?可复用软件应满足下面的 条件。
(1) 软件系统应是模块化结构。只有在模块化结构中, 模块内部的修改和局部系统的重构(部分模块的替换、部分 接口的改动)才不至于影响系统的功能和总体面貌。
(2) 软件系统应不依赖于具体的运行环境。在这种结构 的系统中,依赖于具体运行环境的部分可以集中在少数模块。 一旦系统环境发生变化,就可以用其他模块加以替换。
软件复用包含以下两层意思: (1) 系统地开发可复用的软部件。这些软部件可以是代 码,但不局限在代码,必须从更广泛和更高层次来理解,这 样才会带来更大的复用收益。比如软部件还可以是分析、设 计、测试数据、原型、计划、文档、模板、框架等。 (2) 系统地使用这些软部件作为构筑模块,建立新的系 统。
软件复用可带来很多好处,软部件也有不同的粒度,软 件复用可分为以下三个层次:
13.1 复 用 的 概 念
软件复用(Software Reuse,又称软件重用或软件再用)的 概念对于大家来说并不陌生。软件复用的观念起源于制造业 和土木工程领域,通过配件组装汽车、砖瓦搭建房屋就是很 好的例子,基于配件的产品在市场上已取得了很大的成功。 软件配件叫做构件,一般认为可复用的二进制代码即为构件, 构件观念和面向对象编程的对象思想很相似。
13.2 复用的障碍与复用技巧
1. 复用的障碍 软件复用面临各方面的困难,无论是技术问题还是非技 术问题,都影响着软件复用的广泛实施。
(1) 技术因素。一些开发者开发的构件,要做到在另一 些人开发的系统中使用时正好合适,从内容到接口都恰好相 符,或做很少的修改,不是一件简单的事。构件要达到一定 的数量,才能支持有效的复用,而大量构件的获得需要有很 高的投入和长期的积累。当构件达到较大的数量时,使用者 要从中找到一个自己想要的构件,并断定它确实是自己需要 的,不是一件轻而易举的事。基于复用的软件开发方法和软 件过程是一个新的研究实践领域,需要一些新的理论、技术 及支持环境,这方面的研究成果和实践经验还不够充分。
(4) 教育因素。在软件科学技术的教育与培训中,缺乏 关于软件复用的内容,很少有这方面的专门教材及课程,即 使在其他教材及课程中提到软件复用,其篇幅及内容也相当 薄弱。
(5) 法律因素。在法律上还存在一些问题,例如,一个 可复用构件在某个应用系统中出现了错误,而构件的开发者 和应用系统的开发者不是一个厂商,那么应该由谁负责?此 外,在版权、政府政策等方面也存在一些悬而未决的问题。
相关文档
最新文档