中间件技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件复用研究 重新成为热点
软件复用 被视为
解决软件危机 提高软件生产效率和质量 的
现实可行途径
8
h
分析传统工业
如机械、建筑等行业 以及 计算机硬件产业
其成功的基本模式
是
符合标准的零部件(构件)生产、
基于标准零部件的产品生产(组装)
其中: 复用 是 必需的手段
构件 是 核心和基础
这种模式 也
是 产业工程化、工业化的必由之路 是 软件产业发展的必然途径
定义2[ SEI 2001 ]
构件是一个不透明的功能实现体 能够被第三方所组装,且符合一个构件模型
20
h
定义3:
构件是可以被复用的软件构成成分, 由构件规约与构件实现两部分组成
复用 可以发生在不同应用领域的软件系统之间 可以发生在相同领域内的不同系统之间, 可以发生在一个系统在演化过程中的不同阶段之间
21
h
构件规约(specification) 构件规约 用于描述如何对构件进行使用与管理
是对构件外部特征的形式化描述 是关于构件的知识
构件接口(客户合约) 构件规约 构件静态管理信息
构件的运行管理规约
22
h
构件实现(Implementation)
构件实现是构件内部的代码实现体
对于一个面向过程的系统 一个构件由系统的一个或多个紧耦合的模块组成
h
• 产品复用的两种方式 黑盒复用:不需对构件作任何修改即可直接复用 这是理想的复用方式 白盒复用:已有构件并不能完全符合用户需求 需要根据用户需求进行适应性修改
h
• 产品复用的两个过程
可复用软件构件的开发
如何开发出便于复用的软件构件
基于可复用软件构件的应用系统构造
如何利用现有的软件构件开发出目标系统
对于一个面向对象的软件系统 一个构件由系统的一个或多个紧耦合的对象组成
23
h
构件的规约与实现
构件 构件规约
构件规约1 构件规约2
构件实现 (a)
构件实现 (b)
构件规约
构件实现1
构件规约
构件实现2
(c)
24
h
构件分类:
根据构件功能分类:
•每个应用系统的特有构成成分 专用构件
•应用系统所属领域的共性构成成分 领域构件
软件构件
1
h
“管理变化性与复杂性 是基于构件软件开发的动力”
[Booch, 2001]
2
h
内容
一、动因 二、什么是软件构件 三、与软件构件技术相关的过程
3
h
wenku.baidu.com
一、动因
为什么要研究软件构件技术? 软件复用:以构件技术为核心 软件体系结构:构件 + 构件之间的关系 网络环境:软件分布在不同结点上
4
h
互操作基本解决
16
h
二、什么是软件构件
典型的可复用软件成分(制品、资产):
项目计划 成本估计 体系结构 需求模型 系统设计 代码 技术文档 用户界面 数据 测试用例
17
h
从一般意义上讲 构件是 系统中可以明确辨识的构成成分
软件构件则是 软件系统中 具有一定意义的 相对独立的构成成分
由于目前讨论的软件构件 主要着眼于其复用意义 因此软件构件主要是指 可复用软件构件
这是软件复用与软件构件技术受到高度重视的根本原因
9
h
• 软件复用的两种方法
产品复用:复用已有的软件构件,通过集成(组装) 构件得到新系统
过程复用:复用已有的软件开发过程,使用可复用的 应用生成器来自动或半自动生成系统
过程复用 依赖于 软件自动化技术的发展
目前只适用于一些特殊应用领域
产品复用 是
目前现实的、主流的途径
固有级:规范化的复用支持
13
h
•实现软件复用的关键因素 软件构件技术(Software Component) 领域工程(Domain Engineering) 软件体系结构(Software Architecture) 软件再工程(Software Reengineering) 开放系统(Open System) 软件过程(Software Process) CASE技术 非技术因素
例如: REBOOT模型 ALOAF模型 UDM、BIDM模型等
27
h
REBOOT项目的构件模型
REBOOT:REuse Based on Object-Oriented Techniques
•特定于计算机系统的构成成分 基础构件
25
h
构件模型
构件模型 是对构件本质特征的抽象描述 是实现系统化复用的关键因素
由于 面临的问题不同
关注的焦点不同
解决的方式不同
因此 国际上已经形成了许多构件模型
有的属于描述模型
有的属于规约模型
有的属于实现模型
26
h
描述模型(分类):
以综合的方式描述构件 便于构件的管理
12
h
其他分类方式: 从复用程度区分: 个别复用:无目的地 个别地进行复用 系统化复用:有目的地 创建、管理、支持并复用构件
复用成熟度RMM( Reuse Maturity Model:IBM) 初始级:不协调的复用努力
监控级:管理上知道复用,但不作为重点
协调级:鼓励复用,但没有投资
计划级:存在组织上的复用支持
(Reusable software component:RSC)
18
h
软件 = 程序 + 文档
文档
代码(程序)
编译 源代码态
目标码态
加载
存储态
运行态
静态
19
h
定义1[ Szyperski 1996 ]
一个构件是一个组装单元 它具有约定式规范的接口以及明确的依赖环境 构件可以被独立地部署,由第三方组装
6
h
软件复用思想的历史背景
子程序的概念即体现了复用的思想
程序库 将一些通用子程序收集到程序库中 供其他程序员在编程时使用
例如 数学程序库等
在其后的发展过程中
有许多
复用技术的研究成果
和 成功的复用实践活动
但是
技术上的不成熟
7
使得软件复用未得到应有的进展 h
近十几年来 面向对象技术逐步成为主流技术 为软件复用提供了基本的技术支持
The task of the software development team is to engineer the
illusion of simplicity [Booch].
5
h
1968 年 NATO 软件工程会议上 Mcllroy的论文提出了 “大量生产的软件构件”
第一次引入了 软件复用 概念
14
h
应用系统 领域
遗产软件 系统
领域工程 软件再工程 软件构架技术 开放系统技术
软
非
件 过
构件、构架 获取
构件标准 化与描述
构件分类、 存储与检索
构件组装
技 术
程
因
素
软件构件技术
CASE技术
软件构件技术是软件复用的关键技术
15
h
目前得到发展的主要原因
软件开发组织的需求
复用、构件
软件运行环境的支持