05软件构件技术概述(一)
软件构件技术

软件构件技术软件工程张显良 20081120152随着计算机和互联网的广泛普及和应用,计算机软件已成为信息时代社会的最重要的基础设施。
广大用户对软件的数量与质量的要求也是与日俱增。
那么显然用传统的软件开发方式,显然已经无法满足消费者的需求,在这样的环境下,软件构件技术是必然的选择,它不仅能缩短开发周期也节省了开发的成本,提高了软件的开发效率。
那么什么是构件技术?1、构件技术的背景及提出的目的1968年NATO软件工程会议,Mcllroy在提交会议的论文《大量生产的软件构件》中,提出了“软件组装生产线”的思想。
从那以后,采用构件技术实现软件复用,采用“搭积木”的方式生产软件,成为软件开发人员长期的梦想。
软件复用是指重复使用“为了复用目的而设计的软件”的过程。
就软件开发而言,软件复用包括:早期的函数复用、面向对象言语中的类的复用,以及互联网时代的完整软件体系的构件复用。
1999年2月美国总统 IT 顾问委员会也在一份报告中列举了大量的事实论证 IT 技术对社会和国家以及人民生活的重要作用。
建议美国政府加大对IT 技术发展研究的投入。
在建议重点支持的四大项目中,把软件列在首位。
因为报告认为软件是信息时代社会的最重要的基础设施。
然而现实上这个基础却相当脆弱和不可靠。
软件越来越普及而且越来越复杂,但缺乏开发安全可靠的软件的适用技术。
软件的生产能力远远满足不了飞速发展的实际需求。
为此,报告建议重点支持四个方面的软件技术的发展和研究,第一个就是支持软件开发方法和构件技术的基础研究。
什么是软件构件技术,为什么把它提得这么高,它究竟对软件的开发和应用有些什么作用,构件技术的突破对软件产业的发展会带来什么影响呢?有效的软件复用是可以提高软件开发的效率和质量。
建立在构件复用基础上的软件复用将会带来极大的价值,《Software Reuse》指出很多公司通过复用取得的成就使们坚信,管理层可以期待获得如下优势。
1)投放市场时间:减少为原来的1/2到1/5;2)缺陷密度:降低为原来的1/5到1/10;3)维护成本:降低为原来的1/5到1/10;4)整体软件开发成本:降低大约15%,长期项目可降低高达75%。
设计软件构件(5)-1

• Web服务构件。在局域网成为因特网的分布式环 境下,网络服务被提出作为未来的简单扩充。 应用构件不再只是呆在一个局域网的一个服务 器上,而是放到整个因特网上。网络服务有效 地等同于一个被提供的问题解决方法。不仅是 提供一个完整的应用,人们还能提供个人构 件。
• 商业构件。在20世纪90年代早期,一种新的构 件产生了。它们是市场上可以购买的构件,也 可以称之为开放市场构件。开放市场构件是可 以从货架上买走的可重用构件,可以购买它但 不用购买支持、集成或其他类型的服务,的确 是“即插即用”的构件。
• 构件的装配和集成。构件的装配和集成是把构 件装配成模块或打成包,在模块或包中都可以 有自己的定制描述符。
• 构件的剪裁和扩展。经过评选的构件不可能马 上都能用,有时要对已有构件进行属性扩展或 修改,称之为构件的剪裁和扩展。这常常需要 对构件开发者提出扩展或修改的意见,由构件 开发者去完成。注意只改内部属性,不能改接 口
• 可用性。要求所采用的软件构件技术必须是成 熟的技术,相应的产品也必须是成熟的产品, 在至关重要的企业应用中能够稳定、安全、可 靠地运行。另外,由于数据库在企业计算中扮 演着重要角色,软件构件技术应能与数据库技 术紧密集成。
• 可扩展性。集成框架必须是可扩展的,能够协 调不同的设计模式和实现策略,可以根据企业 计算的需求进行裁剪,并能迅速反映市场的变 化和技术的发展趋势。通过保证当前应用的可 重用性,最大程度地保护企业的投资。
5.3 Java应用构件平台
• Sun公司经过多年努力,在Java应用方面做出了 许多贡献。至今,应用平台共有四种:Java Card、J2ME、J2SE、J2EE,如图13-2所示。
图13-2
• Java Card是最小的应用平台,是为Java Smart 信用卡设置的平台。Java Card 有一组API接 口,运行在卡虚拟机上。Java Card统一了智能 卡的编程接口,提供了强大的安全机制,支持 多次装载 Applet,支持一卡多 Applet 的功 能。
河海大学研究生课程【软件复用技术】05软件构件技术概述(一)

软件复用硕士研究生课程软件构件技术计算机与信息学院软件复用硕士研究生课程声明软件复用硕士研究生课程主要内容一、软件构件二、软件构件模型三、应用框架四、基于构件的软件开发方法软件复用硕士研究生课程一、软件构件软件复用硕士研究生课程一、软件构件1、构件的概念软件复用硕士研究生课程对软件构件概念的理解狭义的构件广义的构件软件复用硕士研究生课程软件复用硕士研究生课程构件的表现提交的单位。
强调构件是一组单元,可以作为整体被复用;(2)服务角度(Service ):将构件作为功能的提供者,看成向消费者提供服务的软件实体。
同时强调了提供者和消费者之间的协议概念。
(3)完整性角度(Integrity ):将构件看成一组软件共同维护它所操作数据的完整性,独立于其它构件的执行。
这一标准是构件易于更新的必要条件。
这里强调的是软件替换的概念包装包装构件模型元素服务构件独立构件构件规格说明接口**服务完整性***1软件复用硕士研究生课程实例•包装部分是:excel.exe•提供服务的构件:如应用程序、图表、表格。
每一个都是独立的构件,提供了一个包装界限.每个都可独立替换•构件之中还有子构件.如表格构件包括“范围”和“单元”构件,但它们在实现和数据上存在共享,因而不能独立替换软件复用硕士研究生课程构件的分类(1/2)数据库操作系统框架ActiveX 控件Java Applet 应用程序完整的API 函数数据库服务操作系统服务函数库系统实用工具单独的API 函数COM 类文件、文档、目录源代码文件类库模板、表可执行文件动态链接库完整性服务包装软件复用硕士研究生课程构件的分类(2/2)•纯计算构件:具有简单的输入/输出关系,无运行状态的变化。
如数值计算、过滤器、转换器等•存储构件:存放共享的、永久性的数据。
如数据库、文件、符号表、超文本等•管理构件:执行的操作与运行状态紧密耦合。
如抽象数据类型、服务器、对象•控制构件:管理其他构件运行的时间、时机及次序。
PKPM(2005)结构设计软件应用教程第1、2章.ppt

模块介绍
• • • • • • • • • • • • • • • • BOX JCYT STAT-S EPDA PMSAP SLABCAD SLABFIT STPJ STXT STSL GSCAD PREC QITI JDJG CHIMNEY SILO 箱基 基础与岩土工具箱 工程量统计设计院版 弹塑性动力时程分析 特殊多高层分析与设计 复杂楼板分析与设计 楼板舒适度分析 钢结构重型工业厂房 钢结构详图设计 钢结构算量 温室结构设计 预应力混凝土结构 砌体结构 建筑抗震鉴定加固设计 烟囱分析设计 筒仓结构设计
PKPM功能介绍 建模
1、重新编排PKPM主界面,项目清晰,操作方便。 2、 仿Auto CAD全新操作界面,动态查询构件及菜单信息。 3、 改进正交轴网对话框,可以定义、标注上下开间不对称建筑, 任意拼接轴网。 4、 采用对话框方式对构件边定义边布置,可以对构件排序、检 索、查询。 5、 增加通过抬高上节点标高,按斜率成批输入斜梁功能。 6、 将次梁、层间梁布置提前到与主梁一同布置,使用更便捷。 7、 增加楼板自重计算功能,由用户选择使用。 8、 将梁、柱、墙、节点、次梁的荷载输入修改,前移到与建模 同时进行。 9、 完善了原有的楼层拼装拷贝、工程拼装拷贝功能。 10、 可以随时动态观看全楼模型三维渲染造型效果。 11、 可以转换DWG图形为PKPM模型数据及录入异形柱截面。
基础
1、 完善了基础计算文档中基本参数的输出,增加局部承 压计算书。 2、 增加筏板和弹性地基梁的平面钢筋表示法。 3、 增加筏板基础剖面画法,并可以复制其他图形。 4、 增加基础三维动态显示功能。 5、 增加用于沉降计算的筏板反力计算,并考虑主体和裙 房之间反力的差异。 6、 梁元法计算增加了考虑基础刚度和上部结构刚度,并 考虑分层综合总和法的地基刚度变化影响的沉降计算功能。 7、 梁元法增加地梁、筏板人防计算,可计算5、6级人防 荷载下的梁板内力与配筋,并与非人防计算结果综合配筋。 8、 增加梁的裂缝宽度计算。 9、 解决了梁下桩基的计算问题,计算结果更加合理明确。 10、 改进有限压缩层模型的计算方法,结果更加合理。
软件构件技术研究及应用

软件构件技术研究及应用随着信息技术的快速发展,软件已经成为了现代社会最重要的基础设施之一。
软件构件技术作为一种重要的软件工程实践已经引起了广泛的关注。
软件构件指的是那些可以被复用的软件模块,它们可以在软件系统的设计、开发和维护过程中被重复利用。
软件构件技术研究及应用已成为软件工程领域中的热点话题。
一、软件构件技术的定义软件构件技术是一种将软件系统划分为独立、可组装的模块的方法。
软件构件是指一些可以被复用的、相对独立的、可组装的软件实体。
软件构件可以拥有自己的属性和行为,与其他构件之间通过明确定义的接口来交互。
软件构件技术提倡以构件为中心的开发方式,并倡导构件复用、构件库管理、构件代码管理等软件开发实践。
二、软件构件技术的特点1. 独立性软件构件必须具备完整、相对独立的功能,即它们可以独立地使用和维护,具有单一的功能,并且在不同的系统中能够重复使用。
2. 可组装构件是可以自由组合的,这使得不同的应用程序可以使用相同的构件,从而提高了软件系统的可重用性。
3. 易于开发和维护构件开发和维护工作只需要集中在构件本身上,从而提高了软件的可重用性和开发效率。
三、软件构件技术的研究进展1. 构件标准化软件构件标准是确保构件复用的重要手段,它包括构件的描述标准、接口规范、构件库管理规范等,以及构件评价标准。
这些标准化工作可以保证构件的复用性和互操作性。
2. 构件构建和优化构件构建过程中的缺陷可能会带来各种各样的问题,因此对构件构建的优化也成为软件构件技术研究的热点之一。
目前的主要研究方向包括:构件构建过程的自动化、构件构建过程中的缺陷检测和修复、构件构建过程中的测试等。
3. 构件库管理构件库是软件构件技术中重要的组成部分,它可以提高软件系统的可重用性和开发效率。
为了更好地管理构件库,研究人员提出了一些方法,如分布式构件库、元构件库等。
四、软件构件技术的应用1. 软件开发软件构件技术可以极大地提高软件的开发效率和质量,尤其对于大规模的、复杂的软件系统开发尤为重要。
构件式软件技术课程设计

构件式软件技术课程设计1. 简介构件式软件技术是一种新型的软件开发方法,它将软件系统分解为多个独立的构件,通过构件之间的接口实现系统的组装,提高了软件开发的灵活性、可维护性和可重用性。
本文将介绍构件式软件技术的基本原理和实践经验,并结合一个小型项目进行课程设计。
2. 构件式软件技术原理构件式软件技术基于组件和接口,将软件系统分解为多个独立的、可重用的构件,构件之间通过接口连接起来,形成一个完整的软件系统。
构件式软件技术的主要特点包括:2.1 构件构件是构件式软件技术的基本单位,它是一段具有独立功能的软件模块,可以由不同的开发者开发、测试和维护。
构件具有封装性,即外部无法访问其内部实现细节;同时也具有可重用性,可以被多个系统或项目共享使用。
2.2 接口接口是构件之间互相连接的桥梁,它定义了构件之间的通信协议和数据格式,保证了不同构件之间的协同工作和无缝衔接。
接口也具有可重用性,可以被多个构件共用。
2.3 组装不同的构件可以通过接口连接起来,形成一个完整的软件系统。
这种组装过程可以在开发、部署或运行时进行,提高了软件系统的灵活性和可配置性。
同时,由于构件之间具有独立性,系统的维护和升级也更加方便。
2.4 优点构件式软件技术的优点包括:•高度模块化,提高了软件系统的可维护性和可重用性。
•灵活性强,构件可以在不同的系统或项目中被共用。
•易于配置,构件之间的组装可以在运行时进行,提高了系统的可配置性。
•降低了系统的复杂性,因为构件之间具有独立性,系统的维护和升级更加方便。
3. 课程设计为了更好地理解构件式软件技术的实践应用过程,本文结合一个小型项目进行课程设计。
该项目是一个简单的企业管理系统,主要功能包括员工管理、部门管理、工资管理等。
3.1 构件设计首先需要将系统分解为不同的构件,例如员工管理、部门管理、工资管理等构件。
每个构件都需要具有独立的功能,同时也需要定义与其他构件交互的接口。
比如,员工管理构件可以提供员工信息的增删改查操作,同时也需要接受其他构件的员工信息查询请求。
软件构件知识点

(一)绪论P2:软件复用是在软件开发过程中避免重复劳动的解决方案。
通过软件复用,可以提高软件开发的质量和效率。
P3:基于软件构件的开发有哪些好处?●开发工作构建在已有的成果的基础上。
●可以控制开发复杂性。
●可以控制软件系统部署复杂性。
●简化整个软件需求和开发周期内的工作。
●便于系统升级。
●较好地利用本组织的最佳方法。
●降低开发费用。
●缩短产品投放市场所需的时间。
P4:软件工厂的两个要素(软件“元器件”技术;软件“元器件”的组装)。
(二)构件的基本思想构件与面向对象技术中的对象概念之间的关系。
P5构件的概念:所谓构件,是指可以被独立部署的结构单元,表示构件时基于某种结构与运行模型的,独立于具体应用系统的,可以被另外发布或交付的功能单元,是系统的一个物理的、可单独替换或升级的部分,是对一系列软件操作或实现的包装,这种包装可以用来构造应用程序或更大的构件。
P6构件的要素:1、规范说明2、一个或多个实现3、受约束的构件标准4、包装方法5、部署方法P7 构件的来源:1、从现有的构件中获取符合条件的构件,直接使用或者作适应性修改,得到可复用的构件。
2、提取现有遗产系统的有用功能,这些功能可以包装成构件以在未来使用。
3、从第三方市场上购买现成的商业构件。
4、为满足现有的业务需要从头专门开发的构件。
P7 构件的分类:1、从构件性质来看,构件可以分为抽象构件和具体构件。
①抽象构件:该类构件是适应领域要求,对同领域一族具有共性和变化性的构件进行的抽象。
在抽象构件的接口中有描述领域变化性的成分。
抽象构件一般是不够完整的,在使用之前必须具体化。
②具体构件:该类构件是相对于抽象构件而言的,具体构件描述应用系统固定的构成成分,其接口不具有描述变化性的成分,它可以不加修改地直接复用。
使用具体构件,需要做的只是输入该构件和它所依赖的其他构件。
2、根据构件重用的方式,通常可以分为白匣子、灰匣子和黑匣子三类。
①白匣子:提供构件的同时也提供实现构件的全部源代码。
构件的软件开发技术和方法

38 •电子技术与软件工程 Electronic Technology & Software Engineering软件开发• Software Development【关键词】构件 软件开发 技术构件的软件开发流行于20世纪90年代,一个软件构件是可执行软件的一个可分离的单元。
构件可以提高软件开发中构件复用成度,缩短软件的开发周期,提高系统的稳定性,软件构件是软件复用的基本单元,为了实现软件的复用,必须不断地积累软件部件,并将其组成软件库。
了解构件的软件开发技术和方法可以从构件的概念及应用优势、构件的主要内容和构件的软件开发过程来了解。
1 构件的概念及构件的应用优势构件是软件的构成元素,它几乎是独立并可被替换的一部分。
其可以明确辩识,可以通过构件接口访问它所提供的服务。
而且构件和语境有明显依靠关系,是可以组装的软件实体。
从广义上讲构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用例等。
软件构件是由第三方提供的可组装软件实体,软件构件都承载着一些有用的功能,并且遵循某种构件模型。
可复用构件则是指具有可复用价值的构件。
当前我国软件企业方面面对着日益增加的竞争压力,在国际市场上稍不注意就有可能会被淘汰,角逐愈激烈愈能促进软件这个行业的发展。
传统软件开发方式仅仅是通过软件开发人员手工设计的模式,如果稍有变动就必须重新开发系统。
这样很难跟得上现在软件行业的发展。
然而现在的构件软件技术在碰到业务流程发生变化或系统升级等情况时,不需要全盘推翻重新开发,只需要增加新的构件或改动原来的构件即可完成。
这样不仅节省时间和成本,还大大提升了软件开发的效率。
相比于传统的软件开发技术,构件的软件开发的软件产品更能吻合客户的需求,上市时间和软件质量也是遥遥领先于传统的软件开发。
2 构件的主要内容构件的主要内容可以从构件的基本特点、构件的软件开发技术和方法文/车雪构件的要素和常用构件的基本模式进行大致的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程软件构件技术计算机与信息学院2010.12程声明•本课件为计算机与信息学院2010级硕士研究生课程《软件复用》专用;•本课件为非正式出版物,仅供选课同学参考,不得外传。
如有不当之处,欢迎指正、交流;•在制作本课件的过程中,参阅了大量的学术论文、论著和教材,有些没有一一列举,对它们的作者表示真诚的感谢。
程主要内容一、软件构件二、软件构件模型三、应用框架四、基于构件的软件开发方法软件复用硕士研究生课程一、软件构件1、构件的概念定义1:一个软件构件是一个可独立交付的软件单元,封装了设计和实现的内容,并向外提供接口,通过接口与其它构件组装成更大的整体;定义2:一个软件构件是一个仅通过契约化的接口和显式的语境依赖进行组装的单元,能够被独立地部署和由第三方组装;定义3:一个构件是体现一个目标问题域的语义,并独立于复杂的实现技术;定义4:一个构件代表一个自包含(Self-Contained)的实体,能够向其环境输出功能并可通过定义明确的开放的接口从环境输入功能;定义5:一个构件由一个动态变化的对象集组成,这些对象既可以在构件的内部也可能是其接口的一部分。
构件间既可以直接交互,也可以通过独立的对象进行胶合。
这是从对象实现技术的角度给出的构件定义;定义6:一个通过接口向外提供服务的软件包。
这是Microsoft 的技术文档给出的定义。
软件复用硕士研究生课程上述定义的共同要素是:软件构件是可以独立交付、发布的二进制功能单元,符合构件模型(或具有规范接口),不同构件开发机构开发的构件能够按应用的需要进行组装。
构件具有多种形态类、类树、框架、构架等构件具有多种层次分析件、设计件、代码件、运行件等构件需要多方面描述名称、属性、对外接口、所需接口等软件复用硕士研究生课程构件的表现(1)打包角度(Packaging ):将构件作为发布、提交的单位。
强调构件是一组单元,可以作为整体被复用;(2)服务角度(Service ):将构件作为功能的提供者,看成向消费者提供服务的软件实体。
同时强调了提供者和消费者之间的协议概念。
(3)完整性角度(Integrity ):将构件看成一组软件共同维护它所操作数据的完整性,独立于其它构件的执行。
这一标准是构件易于更新的必要条件。
这里强调的是软件替换的概念打包Packaging Component服务完整性Component Specification Service Component Model ElementIndependentComponent Interface*****1图4.1从三个角度表示构件程•软件构件是一个可以独立开发与交付的软件单位,符合构件模型(或具有规范接口),向外界(如应用框架、其他构件或最终用户)提供服务。
不同的构件开发机构开发的构件能够按需要进行组装。
•构件应该具有以下属性:有用性、可用性、质量、适应性、可移植性。
•构件应该具备以下几个特征:自描述可定制可集成连接机制构件必须能够识别其属性、存取方法和事件,这些信息可以使开发环境将第三方软件构件无缝地结合起来提供一个典型的图形方式环境,软件构件的属性只能通过控制面板来设置构件必须可以被编程语言直接控制。
构件也可以和脚本语言连接或者与从代码级访问构件的环境连接构件必须能产生事件或者具有让程序员从语义上实现相互连接的其他机制程程程2.软件构件及性质构件是一个可独立开发和交付的软件单位,其设计和实现封装在一起,通过接口向外界(应用框架、其它构件或最终用户)提供服务。
(1)复用(reusability),复用是构件存在的意义,也是构件技术的目的和发展驱动力;(2)封装(capsulizability),构件是一个自包含的实体,封装了设计和实现细节,仅通过接口与外界交互;(3)定制(customizabiltiy),构件可按照不同的应用需求进行定制,定制是构件组装必不可少的步骤。
(4)组装(compositability),构件通过组装可以形成更大的整体(应用系统),组装是实施复用的手段。
软件复用硕士研究生课程 2 主要研究内容(1)构件获取,是从事有目的的构件生产的第一步,对已有系统进行分析和研究,从中挖掘提取有复用价值的构件;(2)构件模型,研究构件的本质特征和内部组织结构及构件间的关系,指导构件及构件系统的实现,如3C 模型;(3)构件描述语言,以构件模型为基础,解决构件的精确描述、理解及组装问题,如构件描述语言、构件组装描述符等;(4)构件分类与检索,研究构件分类策略、组织模式及检索策略,建立构件库系统,支持构件的有效管理;(5)构件组装,在构件模型的基础上研究构件的组装机制,包括利用特定组装工具进行的静态组装和基于构件互操作性的运行级组装。
(6)标准化,包括构件模型的标准化和构件库系统的标准化。
标准的建立和实施是构件技术得以充分发挥其优势的前提条件。
软件复用硕士研究生课程3.构件的表示与检索•W.Frakes从构件表示方法出发,将已发表的构件表示与检索方法分为人工智能(AI)方法、超文本方法和信息科学方法三类。
•i则按照构件表示的复杂度和检索效果的递增关系将已发表的构件表示与检索方法分为基于文本的、基于词法描述子的和基于规约的三类。
•W.Frakes重点讨论了应用信息科学的编目方法来实现构件的表示与检索的方法。
在信息科学方法中以枚举、刻面、属性值、关键词和正文等分类编目与检索方法最为常用,其中又以关键词(Keyword)分类和刻面(Faceted)分类两种方法应用最为常见。
(1)构件的分类软件复用硕士研究生课程•关键词分类方法原理简单,操作方便,易学易用。
构件按一组与之相关联的关键词进行编目,查询者通过给出关键词来查找所需构件。
关键词对相应构件的描述不够准确时,缺少上下文语境,容易产生歧义,因而查询效率较低。
•刻面分类方法选择能准确描述构件本质特征的一组特定视角,并将这些特定视角称为构件的刻面(Facets),然后在刻面中定义一组术语(即关键词),并据此对构件进行分类。
各个刻面的术语共同构成结构化的术语空间。
术语仅限于在给定的刻面之中取值(也就是取自受控的词汇表)。
这一做法将关键词(术语)置于特定语境之中,从而提高构件的查询效率。
刻面的选择和术语空间的建立主要取决于构件库的领域特征和软件复的需求。
如REBOOT构件库中定义了抽象(Abstraction)、操作(Operations)、操作对象(OperatesOn)和依赖(Dependencies)四个刻面程根据构件形态分类:运行态目标码代码软件程根据构件功能分类:•每个应用系统的特有构成成分专用构件•应用系统所属领域的共性构成成分领域构件•特定于计算机系统的构成成分基础构件程使用环境应用领域功能表示方法层次...程构件之间的关系精化关系版本关系包含关系协作关系等1.01.11.4(2)构件检索软件复用硕士研究生课程•基于词法描述子的编码与信息科学编目方法中“基于受控词汇表”的表示方法类似。
必须在构件生产与应用的各个环节参与者间建立和维护公共词汇表。
在这一方法类中,最具特色是近似匹配算法。
近似匹配算法将基于偏序关系的检索扩展为基于距离的检索,从而可以利用带权语义网、模糊逻辑触发器和带权的术语空间•基于规约的编码和检索方法基于形式化的构件规约,排除了一般检索可能存在的编码二义性,具有良好的理论背景。
构件规约通常能够保证构件被准确找到和正确使用。
4 构件的组装软件复用硕士研究生课程•构件组装技术是基于构件的软件开发的核心技术。
构件必须经过组装才能形成应用系统,才能实现构件的价值。
因为构件的组装从构件生产与服务的反方向对构件技术的发展形成强大的约束。
构件本身的编程技术并不是难点,如何将构件组装成应用却受到构件模型与体系结构、构件粒度、运行环境、接口等要素的制约。
反过来,使这些因素尽可能地有利于构件的组装,则更为关键和重要。
•按其特征分为黑盒(Black-box)组装方法、白盒(White-box)灰盒(Grey-Box)组装方法,灰盒方法介于“黑”“白”之间,是当前技术发展的合适选择。
“灰盒”通过调整构件的组装机制而不是修改构件来达到应用系统组装的需求,在一定程度上保证了构件的“黑盒性”,同时又不要求构件集合的高度完备化。
因此,近来对构件组装技术的研究主要集中在灰盒方法方面。
1、灰盒组装(也称为灰盒复用)方法软件复用硕士研究生课程•基于框架(framework)的组装•基于连接子(connector)的组装•基于粘连码(glue code)的组装基于框架的构件组装技术软件复用硕士研究生课程Guijun Wang等提出了一个构件组装框架,框架分别在体系结构层、构件层和分布式对象基础设施三个独立的层次上考虑构件的组装问题,然后再将这三个层次连接起来形成构件组装框架。
在组装框架的基础上,还提出了基于Port和Link的构件组装方法。
使用这个方法,先定义各类Port和Link,并通过各种Link来组装带有各种Port的构件。
A.P.Barros等提出工作流构件框架(Workflow component framework)。
针对异构环境下不同工作流的互操作问题,定义了抽象通信(abstracted communication)和抽象服务接口(abstracted service interface)的概念,从而构造多工作流构件集成组装的体系框架。
在该体系框架下,各工作流构件只是一个个插件(plug-in),它们的组装通过抽象通信和抽象服务接口进行。
John Penix提出的构件自动自适应(adaptation)和集成的框架——Rebound。
由于其核心思想是通过构件规约及应用需求规约的匹配来选择构件的自适应策略,因而被称为“基于理解的复用”。
Rebound主要考虑了类型(type), 接口(interface)及行为(behavior)三种类型的自适应。
构件组装则通过匹配问题形式规约和已有构件的规约来进行。
基于连接器的构件组装技术软件复用硕士研究生课程Michihiro Matsumoto等从研究构件连接器的可靠性出发,设计了支持高度可靠的基于构件的软件开发工具。
其提高可靠性的方法是自动验证求精后的需求规约和自动生成连接器。
工具以体系树(tree architecture)为基于构件的软件体系结构,用行为规约投影(projection-style behavioral specification)来表示原始需求规约和求精后的描述构件关联的规约,并根据求精后的规约中的连接器部分和原构件连接器之间的对应,自动生成连接器。
Bridget Spitznagel等提出了连接器模型及构造连接器的复合方法。
将连接器模型CM 定义为一个六元组:CM = (C,L,S,T,P,W),C是构件中的应用程序代码,L是应用层下面的通信库、生成的存根等,S是由OS提供的底层服务,T是数据或参数表等,P是有关各部分调用关系的约束,W是有关连接子行为的形式规约。