第10章基于组件开发的软件工程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安交通大学 刘海岩 5
组件的技术的关键涉及组件做什么、构建交互的规 则、组件存在的环境等。相应的在实现中有各种支撑性 的技术: • 组件模型。研究组件的本质特征及组件间的关系; • 组件描述语言。以组件模型为基础,解决组件的精 确描述、理解和组装问题; • 组件分类与检索。研究组件的分类策略、组织模式 及检索策略,建立组件库系统,支持组件的有效管理。 • 组件复合组装。包括源代码级的组装和基于组件对 象互操作性的运行级组装; • 标准化。包括组件模型的标准化和组件库的标准化; • 软件架构。研究如何快速、可靠的应用可复用组件 进行系统构造的方式,着重于系统的整体结构和组件级 的关联。
通过研究下列问题确定用例:
针对每个参与者系统将完成哪些任务;参与者需要获知系统哪 些情况;参与者是否将外部的变化通知系统;系统要修改和建立哪 些信息,参与者如何参与其中;用例是否需要支持系统的管理和维 护等等。
仅给出用例的名称和简短描述,细化描述放在后面 分析或高层设计阶段。
西安交通大学 刘海岩 22
“业务组件需求”是指对用户有业务价值的需求, 因此该活动就是将用户需求分配给业务组件,即确保 并验证业务组件对用户有价值。
西安交通大学 刘海岩
24
2、 CBSE过程分析与高层设计
用户交互设计 架构选型
界面设计师
架构设计师
业务组件分析 数据模型设计 业务组件设计
产生: 系统架构文档
确定系统架构 服务组件需求

西安交通大学 刘海岩
17
10.3 CBSE过程
下图是Pressman给出的CBSE过程模型。 该模型强调 CBSE过程是一个并行的轨迹: 即领域工程和基于组件的开发并行的发生。 领域工程创建应用领域的模型,该模型作 为软件工程过程中分析用户需求的基础。领域 工程创建的结构模型为应用的设计提供了输入, 建立的可复用组件可被从事组件开发的软件人 员使用。
西安交通大学 刘海岩 9
需求接口
使用此组件的系统 应该提供的服务 component
服务接口(API)
由该组件提 供的服务
例如:
sensorManagement
addSensor
removeSensor
startSensor
sensorData
Data Collector
stopSensor testSensor
西安交通大学 刘海岩 11
组件关系的建模
该图 显示Order系统组件如何依赖于其他组件
西安交通大学 刘海岩 12
下图 显示Store组件的内部结构:
端口提供一种方法,它显示建模组件的服务/需求接口如何 与它里面的部分相关联 。 13 西安交通大学 刘海岩
基于组件开发的两种思路: 完成高层设计,对设计中的组件给出描述,以便找出 可复用的组件,这些组件可在体系结构层次上加入或 更详细的设计层次上加入。 先根据需求搜寻可复用组件,再将设计建立在获得的 组件基础上。 两种思路可结合起来。
这些与应用无 关的服务可被 不同的组件使 用
由组件模型提供的服务
为利用组件模型所提供的服务,将组件部署在预先定 义的标准的容器中。容器是一组接口,通过这些接口来访 问支持服务的实现。组件本身不能被其他组件直接访问, 8 西安交通大学 刘海岩 它们通过容器进行访问。
10.2 基于组件的开发
对于业务和商业系统,可复用的实体从细粒度的 函数到整个应用系统,而基于组件的开发为进行系统 化的复用创造了机会。 组件有两个关键特性: (1)组件是独立可执行的实体。组件的源代码是不 可能得到的,所以无需编译。 (2)组件所提供的服务可以通过其接口得到,而且 所有的交互都是通过接口实现的。组件接口表现为参 数化的过程,其内部状态是不会暴露出来的。 组件在大多数情况下可被看成有两种关联接口: 需求接口和服务接口。见下图:
设计系统 体系结构
描复用 系统需求 描述 搜寻并验证 可复用组件 对需求作 某些修改 复用驱动设计
西安交通大学 刘海岩 14
体系结构 设计
集成系统
组件合成
组件合成是通过组件组装来创建新系统的过程。 合成的类型包括: • 顺序合成:各个组件的服务接口组合在一起,可 能需要编写一些额外的代码来连接这些组件。 • 层次合成:一个组件直接调用另一个组件所提供 的服务。即由一个 “组合连接器”绑定一个组件的服 务接口到另外的一个组件的需求接口上。 。 • 叠加合成:多个组件接口集中在一起创建一个新 组件。重复操作需要删除。 (见下页图)

可重用资产分析
组件库中所积累的业务组件是经过多次复用并锤炼 的结果,其设计往往是经过优化调整的。上游活动识别 出的业务组件,应充分重视已有的成熟业务组件所提供 的参考意义,因此上游活动的工作成果会有一定的调整。
西安交通大学 刘海岩 23

确定并验证业务组件需求 需求是分层次的,能够体现软件系统将给用户带 来业务价值的需求称为用户需求。而软件为达到用户 需求所必须提供的功能(服务)属于下层的需求,有 时称为服务级需求,服务级需求是软件为达到用户需 求所必须提供的功能,其数量往往比用户需求高一个 数量级,这些需求在软件架构设计时再考虑。
西安交通大学 刘海岩
18
领域分析 领域 工程
软件架构开发
可复用组件开发
领域模型
结构模型
可复用 组件库
组件认证
组件适应
组件更新
分析
体系结构设计
组件组装
组件工程
应用软件
基于组件的应用 系统的开发
测试
一个支持 CBSE的过程模型 西安交通大学 刘海岩
19
1、 CBSE过程的需求阶段

CBSE强调了软件复用,在需求阶段还有一些重要的目 标:识别并找出可复用的组件。主要角色、步骤、主 要文档见下图:
第10章 基于组件开发的软件工程
概念 基于组件的开发 基于组件的软件工程 (CBSE)过程

西安交通大学 刘海岩
1
10.1 有关概念
组件(Component)也称构件,是比对象更高级 的抽象。它是对一组类的组合进行封装,并完成一个 或多个功能的特定服务,并客户提供了多个接口。 因 此组件是可以被直接复用的、由组件接口与组件实现 两部分组成软件实体。 组件技术是应用级别的集成技术,涉及到组件的 描述方法、调用方法和运行体系。组件技术的基本思 想是将应用软件分解成一个个独立的单元,将软件开 发的过程转变成为类似于“搭积木”的搭建过程,通 过组装不同的软件组件来实现软件的集成。应用软件 的开发就成为各种不同组件的集成过程。

识别业务组件
确定业务组件 ,并将捕获的功能需求和非功能需求 分配给每个业务组件。
将用例分组可帮助确定业务组件。业务组件是完成 业务功能的整体,内部封装了展现逻辑、业务行为和数 据管理,实现给用户带来业务价值的用户需求。因此需 要深入考察业务词汇表或业务模型,理清各个业务概念 之间的关系,将需求结构化,使每个用例总是从属于一 个业务组件。
捕捉领域词汇 需求捕获 确定参与者和用例 识别业务组件
需求分析师 领域专家
组件库管理员
可重用资产分析 业务组件 需求规约 可重用组 件列表
西安交通大学 刘海岩
确定并验证业务组件需求
20

捕捉领域词汇 定义系统开发过程中使用的领域词汇表或领域模型, 统一对所处领域的认识。具体方式有两种: ● 词汇表(采用自然语言) 如银行卡的卡号业务规则说明如下:
西安交通大学 刘海岩
15
A
A
A
B
B a)顺序合成
B b)层次合成 c)叠加合成
组件合成的类型
西安交通大学 刘海岩 16

在合成独立开发的可复用组件时,会经常面临接口不 兼容的问题,如:
• 参数不兼容:接口每一边的操作有相同的名字, 但参数的类型和数目不同。
• 操作不兼容:服务接口和需求接口操作名不同。 • 操作不完备:一个组件的服务接口是另一个组件的 需求接口的子集,或者相反。 对所有情况,都必须通过编写适配器组件来解决不兼 容的问题,可将一个组件的接口转换为另一个组件的 接口。
西安交通大学 刘海岩 6
组件模型
组件模型定义了组件实现、文档书写以及部署的 标准。这些标准为开发者确保组件的互操作性而设立。 最重要的模型有:CORBA、Enterprise Java Bean和 COM+。 组件模型的基本要素分类为: • 组件接口要素:规定如何定义组件接口及其包括 的要素,如操作名、参数及异常等。同时还指定接口 定义的语言(IDL)。 • 使用组件的需知信息要素:为使组件远程分布和 访问,需要给组件一个特定的名字。 COM+用128位 标识符, CORBA和EJB用的是“根”为因特网域名 的一个层次化的名字。该类要素中还有反映组件本身 接口和属性信息的元数据,以供用户访问。 • 组件部署要素:定义如何打包为一个可独立执行 的实体、何时和如何替换的控制规则。
西安交通大学 刘海岩 2
软件技术发展过程:
程序 = 算法 + 数据结构 软件 = 程序 + 文档 模块化(构件化)是软件的规模与复杂性 发展到一定程度时产生的必然结果 关注焦点的不同,形成了不同的技术: 数据与操作的封装 面向对象技术 利用网络计算环境 分布计算技术 利用已经开发出的软件 软件复用技术
西安交通大学 刘海岩
7
组件模型不仅是标准,同时还是那些支持组件执行的 中间件的基础。操作系统提供了一组可被应用使用的通用 服务,组件模型的实现提供了类似的共享的服务给组件。
水平服务 组件管理 并发 平台服务 寻址 接口定义 异常管理 组件通信 事务管理 持久性 资源管理 信息安全 这些基本服务 使组件间可以 相互通信
可重用资产分析
可重用服务组 件列表
组件库管理员 西安交通大学 刘海岩
确定服务组件需求
25



用户交互设计 用户界面原型和流程设计,确定和优化交互过程, 提高系统的可用性。可用状态图表达“屏幕”或“页 面”的跳转流程。 架构选定 选择架构风格。利用构件平台提供的技术定义架 构。前期的用例模型通过标明哪些是与本系统交互的 外部系统来明确系统的边界。 业务组件分析 分析的客体是问题域。分析的目的是建立“理想 化”的解决方案,未考虑具体的技术环境。通过对业 务组件“黑盒”进行分析,确定从业务组件(给用户 带来业务价值的用户需求)到服务组件(为达到用户 需求必须提供的服务)的分解方案(用例由多个组件 的协作实现,或一个组件会服务于多个用例)。
Initialise
report listAll
数据采集组件的接口
西安交通大学 刘海岩 10
组件可用两个 区域来描述:
图中额外的区显示Order组件提供的服务接口和需求 接口,提供了名为 OrderEntry 和 AccountPayable 的服 务接口,也要求另外的组件提供名为Person的需求接口。
位数:16位 格式:xxxxxyyyyzzzzzzn 说明:xxxxx为银行卡组织为总行卡机构分配的标识号 yyyy为各银行发卡子机构分配的联行号 zzzzzz为发卡序号 n为检验位

领域模型(采用UML)
西安交通大学 刘海岩 21


需求捕获 捕获系统的功能需求和非功能需求 确定参与者和用例 确定与本系统交互的人或外部系统。 有助于确定系统的边界、有助于理解系统的目标。
西安交通大学 刘海岩 26
数据模型设计 应专人负责持久化机制。 业务组件设计 业务组件白盒化:确定接口、完成业务组件的服 务组件集以及每个服务组件的接口。每个业务组件的 职责可以借助服务组件之间的交互图来辅助发现。 组件的描述: 3C模型:Concept、Content、Context: 概念:描述组件可以做什么,完整的描述组件的 接口。 内容:描述组件是如何实现的,对维护人员才开 放。 上下文:描述组件的应用领域、使用环境,便于 开发人员选择适当的组件以满足应用需求。
西安交通大学 刘海岩 3
不论哪种技术 模块形式及模块之间的协作方式是关键问题
面向对象技术:
分布计算技术: 软件复用技术:
对象 对象之间的关联 不同节点上的运行程序 及程序之间的通讯 软件组件 软件组件的组装
西安交通大学 刘海岩
4
基于组件的软件工程(Component-Based Software Engineering,CBSE)强调使用可复用的组 件来建造软件系统。从“实现”系统转向“集成”系 统,它改变着软件的开发方式和人们的思维方式。它 支持“购买”而非“开发”的思想,真正改变了软件 生产模式。可实现下述要求: • 提供一种手段,使的应用软件可用预先编好的、 功能明确的产品部件定制而成,并可用不同版本的部 件实现应用的扩展和更新。 • 利用模块化方法,将复杂的难以维护的系统分解 为互相独立、协同工作的部件,并努力使这些部件可 重用。 • 突破时间、空间及不同硬件设备的限制,利用客 户和软件之间统一的接口实现跨平台的互操作。
相关文档
最新文档