版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于构件的软件复用技术研究与应用实践基于构件的软件复用技术研究谷今杰 莫继红 (湖南大学软件学院,长沙410082)通常情况下应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等。当每个应用系统的开发都是从头开始时,在系统开发过程中就必然存在大量的重复劳动,如:用户需求获取的重复、需求分析、编码、测试的重复和文档等。探讨应用系统的本质,发现其中通常包含:通用基本构件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它们可以存在于各种应用系统中;领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;应用专用构件:是每个应用系统的特
2、有构成成分。应用系统开发中重复劳动主要在于前两类构成成分的重复开发。软件复用是在软件开发中避免重复劳动的解决方案。其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分利用已有的开发成果消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率:同时,通过复用高质量的已有开发成果时,避免了重新开发可能引入的错误,从而提高软件的质量。软件复用指重复使用“为了复用目的而设计的
3、软件”的过程。相应地,可复用软件是指为了复用目的而设计的软件。与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统中的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。真正的复用是为了支持软件,使用“为复用而开发的软件(构件)”来更快、更好地开发新的应用系统。复用技术在整体上对软件产业的影响却并不尽如意。这是由于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因。近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。软件复用研究重新成为热点。被视为解决软件危机。提高软件
4、生产效率和质量的现实可行途径。(复用分类)软件复用可以从多个角度进行考察。依据复用的对象,可以将软件复用分为产品复用和过程复用。产品复用指复用已有的软件构件通过构件集成(组装)得到新系统。过程复用指复用已有的软件开发过程使用可复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适应于一些特殊的应用领域。产品复用是目前现实的、主流的途径。依据对可复用信息进行复用的方式。可以将软件复用区分为黑盒(Blackbox)复用和白盒(Whitebox)复用。黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。白盒复用指已有构件并不能完全符合用户的需求。
5、需要根据用户需求进行适应性修改后才使用。而在大多数应用的组装过程中,构件适应性修改是必需的。软件复用按抽象程度的高低, 可以划分为如下的复用级别: (1) 代码的复用, 包括目标代码和源代码的复用。当前大部分编程语言的运行支持系统都提供了连接(L ink) 、绑定(Binding) 等功能来支持这种复用; ( 2) 设计的复用, 设计结果比源程序的抽象级别更高, 因此它的复用受到实现环境的影响较少, 从而使可复用构件被复用的机会更多, 并且所需的修改更少; (3) 分析的复用, 可复用的分析成分是针对问题域的某些事物(问题) 的抽象程度更高的解法。软件复用有三个基本问题一是必须有可一是必须有可
6、以复用的对象。二是所复用的对象必须是有用的。三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复用软件(构件)的开发(Development, for Reuse)和基本可复用软件(构件)的应用系统构造(集成和组装)(Development with Reuse)。解决好这几个方面的问题才能实现真正成功的软件复用。2构件技术21构件技术模型构件复用是软件复用的核心问题,因此有关构件的研究得到日益重视并且形成了软件工程学科的一个分支。在产业界正在逐渐形成一种产业模式,即构件生产商负责生产构件,构件销售商负责构件的销售,构件集成商负责构件集成。目前已经商品化的构件有微软的CO
7、MDCOM、Sun公司的Java Bean和对象管理组织(OMG)的CORBA。构件是一种不透明的功能实现要通过构件模型进行构造,要能够与第三方进行合成,这样就存在构件模型标准化的问题。构件模型的标准化要能同时满足构件生产者和构件消费者需求,学术界普遍接受的是“3C”(Concept,Content,Context)模型2,即component=(Concept,Content,Context),在这个模型中:Concept:概念描述软件完成什么功能。描述构件的接口和语义,概念和内容(Content)能够进行通信;Content:内容,描述如何实现这个构件,一般情况下,构件的内容信息对临时用户
8、是隐藏的。只有需要对构件作修改的用户才是可知的;Context:上下文、组件在其适用领域内的配置,通过对概念、操作和实现特征的详细说明。上下文能够使软件寻找到满足应用需求的组件。22构件的开发构件的开发技术有多种其中比较有代表性的是CBSD技术。CBSD是CMUSEI提出的构件设计参考模式,这种设计模式的原则是:组件具的扩充独立性:组件模型必须给出一些标准以保证独立开发的组件能够配置到公共的环境中,而不会出现不可预知的问题;开发时间短,这样会减少整个开发和维护费用;提高可预知性。基于构件的系统来源于基于构件的设计策略,构件技术包括支持这种设计策略的产品的概念,这种设计策略与组件描述的设计模式和
9、交互模式的构造类型非常相近,组件(即构件)反映的设计模式如图1。图1中,构件实现是能够在物理或者逻辑设备中执行的软件实现。一个构件可以有一个或者多个接口。构件满足一定的规范,这里称为契约,这些契约的作用是保证独立开发的构件符合给定的规则,以便以可预知的方式进行交互并配置到标准的建造环境和运行环境中。基于构件的系统是建立在少数不同的构件类型上。每一个构件的类型在中扮演的一个特定的角色,由接口对其进行描述。构件模型是组件类型、接口和组件间相互作用的模式说明书集合。构件构架提供多种服务来支持和加强构件模型。3 COTS构件当前的软件已不再是一个简单的系统规模越来越大,通常是一复杂的“系统中的系统”。
10、大型软件尤其如此,从头开始做每一件事情来建造系统几乎是不可能的。于是出现了COTS(Commercial Off The Shelf)技术。COTS构件是从市场上采购得到的软件组件,它由第三方开发。系统开发者不能访问源代码,相同的COTS构件可能有很多用户最后才能得到健壮的系统。C0码构件有以下的特征:COTS软件不能被修改,这是COTS软件的固有特性系统集成者购买组件后,不需要对构件作修改:有时为了把所有的构件进行了太多的修改就不再被认为是COTS组件了;系统集成者对COTS构件没有升级和维护控制权,软件升级和维护是COTS组件开发者的职责。依据COTS组件在系统中所起的作用不同。COTS分
11、为两类:一类是一个COTS系统中,不是单一的COTS构件支配整个系统,而是由一组绑定在一起构成的;另一类是在COTS解决方案中。使用一个主COTS构件作为主解决方案。其他的传统的构件作为辅助的软件或者插件加入到系统中。使用COTS构件突出的优点是能降低软件开发的成本购买现有的软件比自己开发所需的成本低,软件的健壮性要高,因为市场上提供的COTS软件使用的是成熟的技术,使用这样的构件往往比自己开发的构件的可靠性要高。但是COTS构件的缺点是以“黑盒”提供给用户,没有源代码,维护困难版本易于变化。不同COTS之间存在潜在的冲突。软件构件提供的功能过少或者过多。4 基于Agent的软件复用技术 Ag
12、ent也被称为软件Agent或智能Agent许多研究人员依据不同的研究内容和目标对术语“Agent”赋予了不同含义。Woodridge和Jennings对“Agent”的不同定义进行了总结,认为“Agent”按其用法可分为两种也就是Agent的两种定义3:弱定义和强定义。Agent的弱定义是指Agent具有的自主性、社会性、反应性、能动性、时间连续性以及面向目标的特性。Agent强定义指Agent除了具有弱定义中的特性以外,通常还具有:可移动性、理性、适应性、协作性。面向对象技术用于对被动实体的抽象较好。但是,它无法实现对活动实体的抽象;而Agent技术能够较好地实现对活动实体的抽象。基于Ag
13、ent的软件复用是软件工程的一个新的研究领域,面向Agent编程AOP(AgentOriented Programming)的概念是Shoham在1993年提出的。因此,软件技术的发展经历00(Object Oriented)技术后。并正在Agent技术方向发展。人工智能专家Guilfoyle在1995年就断言:10年后大多数新兴信息技术的发展将接受:Agent理论与技术手段是解决2l世纪系统建模和网络化协同的重要手段【4】。基于构件的复用必须解决的需求有:用户能对所需要的构件进行搜索;需要有对已有复用该构件的用户版本进行升级机制;对应用该组构件生产商和用户提供一种能够用相同的技术语言交流的工
14、具;构件生产者和构件复用者可以灵活地加入系统和从系统中撤销;Internet上基于构件复用的工具一定是复用者和生产者的环境的集成的部分。要满足以上需求。基于组件复用的软件开发过程实际上成为被多Agent系统理解和操作的过程,这里称为“面向Agent的软件复用”。其基本思想是:在可复用的通用多Agent机构中,对Agent结构中的每一个元素都进行定义,这些元素包括Agent需要的知识、计划、行为和Agent之间的交互等,每一个具体Agent都是在基本Agent结构的基础上进行创建。Internet环境下基于Agent的软件复用的一般结构如图2所示。依据上述结构,构建基于构件的软件复用的多Agen
15、t系统结构时,必须要考虑的因素有:选用哪几种类型的Agent,多Agent人分工与协作,Agent知识库的建立等。构建的方法和步聚包括:识别Agent对任务进行提炼,定义本体(Ontology),定义行为计划,表示行为和定义交互作用,构造原型。使用Java的RIM能够很好地实现通讯模块的功能,这种结构中需要对每一个实例化的Agent定义必需的知识。这些知识概括为:计划、行为、与其他Agent的交互等。5结论不同的复用技术,得到复用构件或软件的粒度大小不一样,其设计方法和模式也不一样。比较常用和成熟的是构件复用。对于大型系统需要更大粒度的软件复用一COTS,但其缺点是不能访问源代码,在Inter
16、net环境下,本人提出了基于Agent的软件复用和方法由Agent在网络环境下自主地进行构件的寻找和匹配,实现软件的复用。软件复用是解决软件危机的有效途径,促进了软件向产业化和健康化的方向发展。参考文献1杨美清软件复用及其相关技术计算机世界19900315:(5)2 Tveit AA survery of agent-oriented software engineeringhttp:/wwweleomagcorn/around/200353齐艳平面Agent与面向对象计算机科学4 Syeara K Desker K,Pannu Aet a1Distributed intelligent ag
17、entshttp:/wwwcseemuEdu/softanents/19965 Sommervile L Software engineering(4th ed)Mass:Addison-Wesley,Reading,19926 Giorgini P,Kolp M,Mylopoulos JMulti-agent and software agentand software architecture:a comparative case studyhttp:wwwcsTorontoend,2003;47 Nwosu I C Workshop on componet based software
18、engineeringprocesseshttp:www11WOUnetpapem,200258 Jennings N RA roadmap of agent a researsh and developmenthttp:citeseernineceomJennings98 roamphtral,2003;10基于构件的软件复用技术应用研究武伟,张明新(1西北师范大学数学与信息科学学院,甘肃兰州730070;2山西大同大学数学与计算机科学学院,山西大同037009)2软件复用的核心技术构件(Component)是指应用系统中可以明确辨识的构成成分而可复用构件(Reusable Componen
19、t)是指具有相对独立的功能和可复用价值的构件软件构件技术(Software Component Technology)是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的一个学科分支其主要研究内容如下:21建立构件库简单来说,构件库是一个对软件构件统一进行形式化包装、分类描述、存储管理、检索浏览的场所软件构件库是大范围内、系统化实施软件复用的必备基础设施要复用软件构件有两个前提条件,一是所需的构件已经存在,二是复用者能方便地找到所需的构件由于软件构件蕴涵了大量的信息,对其准确、简洁地描述极其困难,如果没有一个统一的场所对其进行统一的描述包装,大规模的软件复用是不可能实现的,所以建立大规
20、模的公共构件库是必须的建立自己的构件库是实现复用的基础,可获取的构件有公共构件和商业构件,前者质量无法保障,必须对构件进行测试;后者不能修改源码,只能是黑盒使用此外,可以自己开发一些简单的构件这样通过不同途径不断的积累自己的软构件库,开发的复用率会逐渐提高22构件分类对于一个应用系统通常包插i类成分:1)通用基本构件:是特定于计算机系统的构成成分,如基本数据结构、用户界面元素等,它们可以存在于各种应用系中;2)领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;3)应用专用构件:是应用系统的特有构成成分应用系统开发中的重复劳动主要在于前两类构成成分重复开发其中通用
21、基本构件层为底层,整个集成环境和运行环境都使用的构件,通用性好,粒度最小,可广泛复用,属于黑盒复用;领域共性构件完成系统主要功能,但通用性不如前者,大部分使用前须进行修改和测试,复用方式属于白盒复用23构件管理构件库随着规模的扩大和应用时间的增长,构件的管理难度也越来越大,作者设计一管理工具,在此管理工具中对入库构件需登记以下信息:构件名称、构件序号、制作日期、修改日期、功能分类、功能描述、使用环境、构件名称、版本、保存位置和复用次数管理工具提供了添加、删除、修改、检索、统计等功能,实现了构件的系统管理,通过该工具对构件进行管理基本解决了构件保存、版本和筛选的问题,提高了软件复用的效率24构件
22、组装构件的组装指将构件库中或能直接使用的构件,或经过适应性修改后的构件以及为当前项目新开发的构件进行整合,最终构成新的目标软件的过程基于构件的开发通过构件组装得到最终应用系统,构件组装必须以某个框架或架构为蓝图,实际可以看作是用构件实例将软件构架具体化的过程构件组装技术以构件模型、构件一构架描述盒开放系统技术为基础,成功的组装必须以开放构件模型和规范的构件描述(包括对构件连接和交互协议的严格定义)为基础,构件实例必须符合系统中其他部分的要求分布式软件总线、事件登记和回调、构架描述语言、脚本语言和代码生成技术都为架构组装指出了希望之路;DCO,JavaBean等运行级的分布式构件模型的出现和OR
23、B与Internet的引入,是构件之问的独立性和互操作性变得更强,这些技术为构件组装,尤其是运行级的构件组装提供了有力的支持25构件标准化构件模型的标准化和构件库系统的标准化3基于构件的软件开发基本思想基于构件软件开发方法的思路是借鉴传统工业生产模式,首先是分析消费者需求,设计整体结构框架,根据需要到构件库中选择能完成相应功能的构件,之后组装应用系统如果所需构件不存在,就去购买、定制或自行开发新构件构件生产组和系统开发组问严格按照生产者一消费者关系进行任务分工:经验工厂负责生产、提供构件,项目组不再编程,而是通过从经验工厂中请求所需的构件集成组装而得到最终所需的系统经验工厂的活动分为同步活动和
24、异步活动同步活动指配合项目组的活动,接收构件查找请求或定制请求,为项目组服务异步活动指有目的的构件生产或对同步活动中的构件进行再工程以提高构件的可复用性4软件复用技术的应用作者【本文】把软件复用技术应用在管理信息系统中,简介如下:41系统分析管理信息系统(MIS)包括以下模块:1)信息管理模块实现各类信息的添加、删除、修改、审核等功能;2)信息查询模块实现对各类数据信息的查询功能;3)信息输出模块实现数据的显示,报表生成和打印功能;4)用户管理模块实现对各类用户信息的输入、修改、删除和用户权限分配功能以及用户相关信息统计功能;5)部门管理模块实现各个部门管理的分配、修改,新部门的添加以及老部门
25、的更新功能;6)访问统计模块实现系统访问次数的统计,包括日访问量、周访问量、月访问量和年访问量对来访的IP地址进行统计,并提供查询功能;7)异常处理模块异常处理模块继承了Java自身的异常处理类实现了对自定义异常的处理4.2 软件复用技术在系统中的应用MIS主要是利用已有构件组合集成生成软件产品它的开发过程与传统方法不同,大体分为以下几个阶段:1)需求分析和构件的查找首先要对业务需求进行分析,然后提炼出需要的构件,最后对构件进行检索;2)构件的裁剪有些构件不能直接使用,须对其进行扩张或者修改;3)构件的生成裁剪后得到的构件和新开发的构件,都必须在构造应用工具上进行测试,保证构件功能及接口规范的
26、实现,称之为构件的生成;4)构件的组装构件的组装是把构件装配成一个整体我们需要用开发工具制作一个应用框架,这个框架是整个应用系统的一个骨架,这个骨架在设计时可以通过领域分析方法设计成在某一领域可复用的构架在MIS中底层的通用基本构件包括基本界面以及常用菜单,这些构件不需要修改直接就可以应用到系统中;报表生成、打印、数据库连接池、异常处理和访问统计这些领域共性构件无需修改,几乎每个系统都能用到;信息、部门和用户的添加构件、删除构件、修改构件以及查询构件等领域共性构件实现系统的主要功能,根据应用的不同,需进行修改和调试才能复用用户权限分配对不同的应用系统差别较大,是应用系统的特有构成成分,是应用专
27、用构件,需结合应用重新开发可见随着构件层次的升高,构件的功能越来越强,通用性也越来越差由于应用系统的多样性,有些功能无法用构件实现,可将其制成专用构件,与复用构件一起集成到应用框架参考文献1】杨芙清,梅宏,李克勤软件复用与软件构件技术【J】电子学报,1999,27(2):68752】李海东,杨社堂CS模式应用开发中软件复用的研究【J太原理工大学学报,2006,37(S1):117118【3】张春枝,王弘基于CS与BWS混合模式的MIS系统设计J】计算机应用研究,2001(10):123125【4黎娅基于构件的软件复用技术应用研究D】重庆:重庆大学计算机科学与技术学院,2008【5Pead Brereton,David BudgenComponent-Based SystemsA Classification of
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《优生与产前咨询》课件
- 【MOOC】概率论与数理统计-科技大学 中国大学慕课MOOC答案
- 八年级上学期11月期中语文试题(含答案)-8
- 运输公司车辆挂靠合同范例
- 《无线传播理论》课件
- 钢管架租赁合同(2024)2篇
- 2024年度高考志愿填报信息咨询合同
- 2024年度技术研发与技术转让协议
- 二零二四年度游戏开发定金合同3篇
- 《室内声学原理》课件
- 上海版六年级英语期末试卷(附听力材料和答案)
- 污水处理厂管道工程施工方案1
- 【中医治疗更年期综合征经验总结报告3800字】
- 齿轮类零件加工工艺分析及夹具设计
- 14S501-1球墨铸铁单层井盖及踏步施工
- 人教PEP四年级英语上册 Unit2-A-Lets-spell公开课课件
- 不合格品处理单和纠正措施单
- 人工智能智慧树知到课后章节答案2023年下复旦大学
- 《中央企业合规管理办法》解读与启示
- 高一生物必修1第4单元测试题
- 路面开槽施工方案
评论
0/150
提交评论