软件复用与构件技术简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件复用与构件技术简介
李 戈
北京大学 信息科学技术学院 软件研究所 2008年10月16日
北京第三届优秀软件构件评选
支持单位: 北京市科学技术委员会 主办: 北京软件行业协会 北京软件与信息服务业促进中心 北京软件产业基地公共技术支撑体系 承办: 北京软件产品质量检测检验中心 北京大学
北京第三届优秀软件构件评选
z
提升北京市软件企业的核心竞争力 –帮助企业提高软件开发技术与研发能力,提 高软件开发效率,降低软件开发成本 推动以企业为主体、产学研相结合的技术创新体 系的建设 促进北京软件产业的变革,使软件产业走上工程 化、工业化的发展轨道
z
z
软件企业的现状与问题
z
现状:
– 软件系统的规模和复杂度不断提高 – 对生产效率和产品质量的要求不断提高
z
问题 问题:
– 如何提高软件生产的效率? – 如何掌控软件产品的质量? – 生产效率 与 产品质量 怎可得兼?
为什么需要软件复用
z
应用软件系统的一般开发模式
设计 实现 测试 运行
需求分析
z
基本特征:应用系统的开发总是从头开始
– 每个应用系统的开发均涉及大量的重复劳动
¾ ¾ ¾ ¾ ¾
用户需求获取的重复 需求分析、设计的重复 编码实现的重复 测试工作的重复 文档工作的重复
为什么需要软件复用
z
应用系统的构成成分分类
– 探讨应用系统的本质,其构成成分可分为:
¾ ¾ ¾
特定于计算机系统的构成成分 应用系统所属领域的共性构成成分 每个应用系统的特有构成成分
系统专用的构成成分 软件系统的 构成成分 领域共用的构成成分 通用的系统构成成分
什么是软件复用
z
避免重复劳动的解决方案--软件复用 避免重复劳动的解决方案 软件复用
– 应用系统的开发不再采用一切“从零开始”的模式 – 充分利用过去应用开发中积累的知识和经验: 充分利 去应 发中 的知
¾
需求分析结果、设计方案、源代码、测试计划及 案例等
– 以已有的工作为基础,重点关注应用的特殊性
z
软件复用
– 重复使用“为了复用目的而设计的软件”的过程 复使 为 复 的 计的软件 的
软件复用的历史
z
软件复用概念的提出
– 1968年NATO软件工程会议
z
之前 子程序的概念也体现了复用的思想 之前,子程序的概念也体现了复用的思想
– 目的,是为了节省当时昂贵的机器内存资源 ¾ 并不是为了节省开发软件所需的人力资源 – 然而,子程序的概念可以用于节省人力资源的目的 – 从而,出现了程序库——将一些通用子程序收集到程 序库中,供其他程序员在编程时使用 – 例如,数学程序库就是一个成功的子程序复用
软件复用的历史
z
在其后的发展过程中
– 有许多复用技术的研究成果和成功的复用实践活动 – 但是,复用技术在整体上对软件产业的影响却并不尽 如人意 ¾ 这有技术方面和非技术方面的种种因素 ¾ 其中技术上的不成熟是一个主要原因
z
近十几年来,面向对象技术的出现并逐步成为主 十几年来 面向对象技术的出现并 步成为 流技术
– 为软件复用提供了基本的技术支持 – 软件复用研究重新成为热点 – 被视为解决软件危机,提高软件生产效率和质量的现 实可行的途径
软件复用的历史
z
复用的发展反映出复用的不同层次
– 低级的复用(被动的复用) – 高级的复用(主动的复用) 高级的复 主动的复
z
软件复用包括两个相关的过程 件 个
– 开发可以复用的软件成分 – 利用可复用的软件成分构造新的应用系统
z
软件复用是必然
– 实践证明,软件复用是解决软件危机,提高软件生产 效率和软件产品质量的现实可行的途径。
如何进行软件复用
z
软件复用的基本原则
– 必须有可以复用的对象 – 要复用的对象必须是有用的 复 的对象 有 的 – 需知道如何去使用被复用对象
z
需要解决的问题:
– 可复用的对象是什么? – 如何构造具有良好可复用性的复用对象? – 如何管理可复用对象?如何管理软件开发的过程?
如何进行软件复用
z
传统工业的复用方式
– 如汽车 如汽车、飞机、船舶制造业,建筑业 飞机 船舶制造业 建筑业 – 其成功的基本模式是 ¾ 符合标准的构件生产 ¾ 基于标准构件的产品生产(组装) – 其中构件是核心和基础,复用是必需的手段 其中构件是核心和基础 复用是必需的手段
阶段1:符合 标准的零部件 (构件)生产
阶段2:基于 标准零部件的 产品生产
软件产业的工业化生产模式
z
实践 明 实践证明
– 这种模式是产业工程化、工业化的必由之路 – 是软件产业发展的良好借鉴 – 这正是软件复用受到高度重视的根本原因
z
借鉴传统产业的工业化生产模式,被认为是解决“软件 危机”,提高软件开发效率和质量,实现软件产业工业 化生产方式的重要途径
软件复用过程:
阶段1:可复 用软件资产的 生产 阶段2:基于可 复用软件资产的 应用系统开发
基于构件的软件开发
z
CBSD
– Component Based Software Development
z
基于构件的软件开发
– 生产具有良好可复用性的构件 – 利用已有的构件资源进行组装
z
软件复用的有效途径
– 重复使用“为复用目的而开发的软件构件” – 生产模式:从传统的软件编码工作转换为以软件构件为基础的 系统集成组装
z
软件工业化生产的必然
– 软件的复杂性、构造性、演化性使之成为必然