(计算机软件与理论专业论文)软构件获取技术的研究.pdf_第1页
(计算机软件与理论专业论文)软构件获取技术的研究.pdf_第2页
(计算机软件与理论专业论文)软构件获取技术的研究.pdf_第3页
(计算机软件与理论专业论文)软构件获取技术的研究.pdf_第4页
(计算机软件与理论专业论文)软构件获取技术的研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机软件与理论专业论文)软构件获取技术的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨工程人学硕士学位论文 摘要 软件复用的核心技术是软构件技术,软构件技术中的最基本也是最重要 的一项技术就是构件获取技术。本文对于构件获取技术进行了一定的研究。 本文概述了构件获取的两种途径。针对构件获取的第一种途径基于 构件的软件开发的相关问题进行一定的研究,并给出了软件框架结构和构件 模型。之后,重点分析了构件获取的第二种途径基于遗产软件系统的构 件获取,给出一个基于面向对象的构件标识算法,经过分析后提出优化该算 法的设想并针对一个实例进行研究;然后又在构件修改的适应性问题上进行 了探讨;接下来,针对候选构件质量评价的难点,给出了八个构件质量的评 价指标;最后,给出一种三层可复用度量模型,并提出一个构件可复用度的 分析方法,为定量分析构件的可复用度给出了一条思路。 在本文的结尾部分,以两个项目为实例阐述了构件获取技术的实际应 用,为构件获取技术在目前的实际应用方式提供了一些经验。 关键词:软件工程;软件复用;软构件技术;构件获取技术;构件标识算法 可复用度量模型 氅j 鎏:;堡盔耋鎏圭耋堡生兰 a b s t r a c t s o f t w a r ec o m p o n e n tt e c h n o l o g yi st h ek e r n e li ns o f t w a r er e u s et e c h n o l o g y w h i l e ,c o m p o n e n ta c q u i r e m e n tt e c h n o l o g yi st h em o s tb a s i ca n di m p o r t a n ti n c o m p o n e n tt e c h n o l o g y t h ep a p e ri ss e tf o c u so nt h er e s e a r c ho ft h ec o m p o n e n t a c q u i r e m e n tt e c h n o l o g y t h i sp a p e rp r e s e n t st w oa p p r o a c h e st oc o m p o n e n ta c q u i r e m e n t a i m e da t o n e a p p r o a c h ,s o m em a t t e r sr e l a t e dc b s da r es t u d i e da n das o f t w a r ef r a m e s t r u c t u r ea n dac o m p o n e n tm o d e la r ep r e s e n t e d t h e nt h eo t h e ra p p r o a c ht o c o m p o n e n ta c q u i r e m e n tf r o ms o t t w a r es y s t e m sa tp r e s e n ti sa n a l y s e d a n da n o b j e c t o r i e n t e d c o m p o n e n t i d e n t i f i c a t i o n a r i t h m e t i ci s g i v e n t h e a r i t h m e t i c o p t i m i z e dp r o p o s a l sa r eg i v e na f t e ra n a l y z i n ga r i t h m e t i ca n d a n e x a m p l ei ss t u d i e d b e s i d e s ,c o m p o n e n ta d a p t a b i l i t yw h i l em o d i f i e di sd i s c u s s e d t h e na i m e da tt h ed i f f i c u l t e so fc o m p o n e n tq u a l i t ye v a l u a t i o n ,e i g h tc o m p o n e n t q u a l i t ye v a l u a t i o ni n d e x e sa r ep r e s e n t e d :i nt h ee n d ,ac o m p o n e n tr e u s a b i l i t y m e t r i c sm o d e li sg i v e n a na n a l y z i n gm e t h o di s p r o p o s e ds ot h a tc o m p o n e n t r e u s a b i l i t yd e g r e ec a nb em e a s u r e dq u a n t i f i c a t i o n a l l y a tt h ee n do ft h i s p a p e r , t h ea p p l i c a t i o no fa c q u i r e m e n tt e c h n o l o g yi s d i s c u s s e dw i t ht h ep r a c t i c eo ft w op r o j e c t s a c q u i r e m e n tt e c h n o l o g ys t u d ya b o v e a c t sa st h ef o u n d a t i o no f t h ea p p l i c a t i o na n ds u p p l i e sad i r e c t i o nf o rp r a c t i c e k e y w o r d s :s o f t w a r ee n g i n e e r i n g ;s o f t w a r er e u s e ;s o f t w a r e c o m p o n e n ta c q u i r e m e n t ;c o m p o n e n t i d e n t i f i c a t i o n r e u s a b i l i t ym e t r i c sm o d e l c o m p o n e n t ; a r i t h m e t i c ; 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 作者( 签字) : 至聋 日期:w 吒年2 月日 哈尔滨工程大学硕士学位论文 第1 章绪论 软件的传统开发方式强调以过程为中心,经过需求分析、设计、编码、 测试、系统部署等步骤完成软件系统的开发和部署。这种“手工作坊”式的 开发模式,在软件行业的早期阶段可以适应市场对于软件生产的需要,但在 现在已经变成一种落后的软件开发方式。目前的软件市场上存在着这样的一 对矛盾:一方面,市场所需要的软件系统越来越复杂,要求的开发速度越来 越快,质量越来越高,另一方面,软件开发商积累了越来越多的软件系统和 系统模式,却不能很好的加以利用以提高软件生产的速度和质量。为了解决 这个矛盾,软件行业在实践和理论的研究过程中形成了软件复用技术,人们 期望通过软件复用技术来推动软件生产走上工业化、自动化的道路。 软构件技术是支持软件复用的关键技术之一,成为了近几年来迅速发展 并受到高度重视的学科分支。构件是软件复用的主要形式,也是当前复用研 究的焦点,特别是在分布对象研究领域,要求软件开发模式必须支持分布式 计算、浏览器服务器结构、模块化和构件化集成,使软件类似于硬件一样, 可用不同的标准构件拼装而成,因此构件技术被视为实现成功复用的关键因 素之一。据g r a n t e rg r o u p 调查,目前为止,至少7 0 的新应用系统用“构 建块”( 软构件和框架) 开发完成。 软构件技术是以构件为研究对象,以构件的获取、管理、组装以及与之 相关的一系列活动为主要研究对象,其中最基础也是最重要的一项技术是构 件的获取技术。软构件获取技术的基本思想,即生产或者挖掘可重用的构件 并将其组合到容器中以得到新的软件系统。当今国内外许多研究机构,如美 国的卡内基梅隆大学、加拿大的国立研究委员会、北大软件工程研究所等都 已经对此展开积极的研究。目前,软构件技术仍然还不成熟,特别是在构件 获取技术方面,理论研究同实际应用之间还有一段很长的距离。因此,对于 软构件技术,特别是对于构件获取技术的研究在今后一段时间里还需要人们 堕笙鎏王堡盔主堡土主笙笙苎 的广泛关注。 1 1 课题背景 本课题来源于作者参与的两个项目,一个是黑龙江省信息厅的专项基金 项目“基于软构件的e r p ”,另一个是黑龙江省企业信息化项目“鲍 氏木业企业信息化系统”。软构件获取技术根据其获取的途径不同分为两大 类:基于构件的软件开发和基于已有的软件软构件系统中构件的提取。在作 者参加的两个项目中,分别涉及了上述两类构件获取技术,并且这两个项目 相辅相承,关系紧密,第一个项目是第二个项目的基础,而后者又是前者的 延伸和应用。 “基于软构件的e r p ”总的指导思想是在企业信息化领域内有目的的构 件生产,开发出符合e r p 条件的构件,然后采用构件集成的方式,搭建成 e r p 系统。该系统的构件分为两种,一种是通用构件,一种是业务构件。其 中,通用构件指的是那些在整个系统中可以被多次复用的构件,包括通用查 询构件、通用报表打印构件、通用g u i 构件、通用帮助构件、通用导出构件、 通用数据敏感构件等等,业务构件指的是那些完成某个特定业务的构件,包 括设备管理构件、质量管理构件、采购管理构件、库存管理构件等等,大粒 度的业务构件又可以继续细分成一些较小粒度业务构件。 在该系统中,客户程序员仍然大多采用手工开发的方式来开发出最小粒 度的业务构件,进而集成成大的业务构件,再组装成为e r p 系统。有了这些 构件为基础,下一步就能根据企业用户的需要,应用这些构件进行快速的组 装。这种按照不同企业的需要,从已经开发出来的构件中选取合适的或相似 的构件,经过剪裁和修改将其组装成为一个e r p 系统的方式,将会节省很大 的人力、财力和物力,并能提高应用系统的软件质量和开发效率。 “鲍氏木业企业信息化系统”是上述项目在具体企业中的应用,是本文 作者所参加的第二个的项目,它也是采用j a v a 语言丌发的。鲍氏木业企业信 息化系统是采用从已有的软件和构件系统中获取构件的思想开发的系统。在 2 哈尔滨工程大学硕十学位论文 系统的整个开发过程中,以利用第一个项目所开发的构件为主,单独丌发的 构件比较少。 鲍氏木业企业信息化系统总的技术路线是从已有软构件系统中获取所需 的相关的构件,对其加以改造得到目标构件,然后通过集成的方式来获得所 需的应用程序。因此,构件获取技术在该系统中的应用主要表现在从第一个 项目中选择什么样的构件,按照怎样的指导思想来修所选构件,怎样来衡量 所选构件的质量等,这些问题都与构件获取技术有一定的联系,因而有必要 对其进行研究。 不同的软件系统,根据已有的构件和遗产软件的不同,对于构件的获取 途径和技术的应用方式会有所不同。目前,对于构件获取技术的研究还不够 成熟,用构件获取技术理论直接指导实践还有待时日。本文着眼于构件获取 的两个途径、基于遗产系统获取的过程、构件标识和度量以及与之相关的技 术理论的研究和探讨。 1 2 国内外研究现状 软构件技术是支持软件复用的核心技术,是近凡年来迅速发展并受到高 度重视的一个学科分支。随着构件技术研究的深入,构件技术的研究范围也 不断扩大,不仅仅局限于系统的实现阶段,而是延伸到分析、设计、测试等 软件开发的各个阶段,成为一套完整的、系统化的软件开发技术。 软构件技研究的主要内容包括:构件获取、构件模型、构件描述语言、 构件的分类与检索、构件的复合组装、标准化等方面。其中构件获取是构件 技术中的最基本的内容,如果在这一步研究工作中做的不充分,势必很大程 度的影响所有的后续研究。 目前,构件获取技术已经在基于构件的开发、程序的挖掘、构件的度量 等领域中取得了一定程度的成就,但是还需要进一步的探索。近年来,对于 构件获取技术的研究主要集中在以下几个方面: ( 1 ) 特定领域的软件体系结构与领域框架的研究: 1 晗尔滨t 程大学疆学经论文 ( 2 ) 特定领域的构件的研究与开发; f 3 ) 对遗产软终系统懿程序理簸穗售意糖敬; ( 4 ) 构件度量以及相关的模型和算法; ( 5 ) 橡传获取辕魏工具豹磅究; ( 6 ) 构件规范化及其描述规范化; 7 ) 拘俘获取技术懿应麓。 软构件技术还处于发展阶段,且前追切需要解决以下问题:针对构件如 何开发应用,如侮提取领域构件,仍然是怒于摸索阶段,粥辨,为了傈证构 件的质量,需要有一套开发规范和质量保证体系。1 9 9 8 年以来,c a r n e g i e m e l l o n 大学每年举办一次豹c b s e 国际会议辫b s e ,c o m p o n e n t b a s e d s o f t w a r ee n g i n e e r i n g ) 。每次会议发液论文2 0 余篇,为软构件技术研究奠定 理论基礁,嗣嚣又疆出搿戆疆究方淘( 铡魏较擒待测试,溪藿谮信等) 。在蠲 内,在理论上,北京大学、中科院软件所、吉林大学、南京大学、复旦大学、 孛由大学等攀健,稳发表了不乡舂徐篷豹学术论文。在实舔工程上,青鸟公 司、中软公司、华料电脑公司、特宠科公司、天中公司等均采用基于构件搜 本开发应蹋较馋,积累了不少经验,获毅极婷戆效旋。餐怒,俸为擒箨技术 中缀基础也是最重鼹的构件获取技术仍没有得到广泛的重视,相关的理论还 不成熬,谗多与茂攘关鲍瓣蘧溻来褥裂缀好遮瓣决,这些都需要遂一步熬臻 究和探讨。 软锌复用和较构件技术将弓| 起软件产业的深刻变革,形成专业纯的软构 件生产商和从事软构件集成组装的软件系统开发商,促进软件产业的合理分 工,为软俘产韭静笈震提镶广溺静发震蓊荣。可以预见,构件帮复粥技术怒 软件产业化革命的必然发展趋势,撼于构件的软件复用技术的广泛应用将促 逶款待产鼗靛变革,对我赘较徉产救豹发震怒鬟重黉作蠲。 3 课题莠蓐徽的工馋 誊 对本文1 2 节中提到的耀关磷究建器,本文在翔下方瓣开震鹾究工俸: ( 1 ) 对于基于构件的软件开发的相关问题进行一定的研究,并给出了 4 啥尔滨王程大学颈士学攮论文 软律禧架结褐蠢籀 孛模型; ( 2 ) 详细分析了基于现有软件系统的构 串狡取的攘个过程。缭出个 基于颓向对象的构件标识算法,并经过分析后提出优化该算法的 设想: 3 ) 在构蒋穆效匏适盛谯阉题上避行了搽讨。赞对嫉选构佟痰蘩译偷 戆滩蠡,绘出了,令穆传质量翡译徐攒椽; 4 ,给出一种可复用艘爨模型,并键磁一个梅件可复褥度的分析方法。 4 本文豹缫织结构 零文瓣缓织结祷安蟊 絮下; 篇l 辈是绪论,介缨本文鹃谍题背景、耀关的掰究蠹容帮蓠景稻零文鼹 王作以及瓣本文数缎织安摊。 禁2 章对糖芙技术逮毒亍了分缮,电耩欹释复臻、欺擒 牛技术、领域王程、 较穆孬王程等。 鹅3 章怒本文的主体都分,桎对构传获取技求进行了概述之蕨,怼予基 于构传的软件开发的相关阀题进行一定的研究,弗给出了一个软传蜒袈结构 謦构件横烈;在第二节中,详细分柝了纂于现有软 串系统的捣件获取骢整个 j 遣稳;程簿三苇绘塞一令基予嚣怒簿蒙楚挥彳警豁谈算法,著经过分辑藤提塞 後证该簿法静设怒:第隧节在搦俘修改静逶陂瞧海题上邀幸亍了探讨;第聂节 针对候选构件质鳖评价的礁点,绘出了八个构件质量的评价指标:第六节结 合已有的几种度爨模型,提出种三层可复用度髓模型,并给出一个构件可 复用度的分析方法;最詹,针对i n t e r n e t 的飞速发展,对基于网络环境下的 秘 譬获取技拳挺爨震望。 藏4 警瞧是零文翁主体部分之一,营走麓攀介缓了佟者参热靛濒个璜鹫 在软构转获取方嚣蛇应用,然詹镑对嚣个项鲻分别一一耀述。在阐述第一瑗 爨中在构l 牛方葱驰应薅时,绘如了一个该e r p 系统中的搀传开发憋一个倒 堕:鋈王垄当耋堡;主兰垡鎏苎 。; 子。在阐述第二项目时,除了介绍在构件方面的应用,还给出系统设计的指 导思想和原则。 在结论中,对本文的内容给出一个总结,并在此基础之上提出以后可能 的研究方向。 譬2 j 鎏王堡銮耋鎏:。:主堡鲨兰 第2 章相关技术 软件复用的核心技术是软构件技术,软构件技术中的最基本也是最重要 的一项技术就是构件获取技术。因此,要研究构件获取技术,首先就必须了 解什么是软件复用和软构件技术。领域工程和软件再工程是构件获取的基础, 它有助于解决可复用信息的识别、组织和利用问题,从而对构件的获取提供 了有力的支持,领域工程有助于产生较高的可复用性的构件,而且通过产生 构架定义了复用的时机和复用的上下文,这样就对开发者复用这些构件提供 了有利的支持,使得复用变得规范、系统和高效。基于以上的因素,本章也 介绍了一些领域工程和软件再工程的知识。 2 1 软件复用技术 软件充满了其创造性的个性化特征。随着软件系统的大型化和复杂化, 要求软件生产必须标准化、规模化和节约化,必须从个人和团体的手工作坊 生产模式向社会化的专业协作分工生产模式转化,即实现软件生产的工业化。 基于此,软件复用的概念应运而生。 2 1 1 软件复用概述 软件复用又称软件重用或软件再用,广义上是指在构造新的软件系统的 过程中利用已有的软件成份川3 1 【4 】。这里所说的已有的软件成份不单单指源程 序代码,它包括十分广泛的内容,如数据、文档、模式、体系结构、知识、 方法、环境等多方面的内容。狭义上,可复用软件是指“为了复用目的而设 计的软件”。与软件复用的概念相关,重复使用软件的行为还可能是重复使用 “并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本 问重复使用代码的过程,这两类行为都属于一定意义上的软件复用,它是软 哈尔滨工程人学硕士学位论文 件开发中避免重复劳动的解决方案,其出发点是在应用系统的开发中不再采 用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用 系统开发中积累的知识经验,如:需求分析结果、设计方案、源代码、测试 计划及测试案例等,从而将系统开发的重点集中于新应用的特有构成成分。 在软件演化的过程中,重复使用的行为可发生在三个维上i s : ( 1 ) 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适 应新需求,即软件维护。 ( 2 ) 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分, 使其运行于新平台,即软件移植。 ( 3 ) 应用维:将某软件( 或其中构件) 应用于其他应用系统中,新系统具有 不同功能和用途,即真正的软件复用。 这三种行为都重复使用了现有的软件,但是,真正的复用是为了支持软 件在应用维的演化,使用“为复用而开发的软件”来更快、更有效地开发新 的应用系统。 软件复用可以从多个角度进行考察。依据复用的对象不同,可以将软件 复用分为产品复用和过程复用u i 。产品复用是指复用已有的软构件,通过构 件集成( 组装) 得到新系统。过程复用是指复用已有的软件开发过程,使用可 复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自 动化技术的发展,目前只适用于一些特殊的应用复用。产品复用是目前现实 的、主流的途径。 软件复用的深入实践表明它是解决软件危机,提高软件生产效率和质量 的有效途径,软件复用研究已成为软件工程领域研究的热点。基于构件的软 件复用作为软件产品复用的主要形式,自然也就成为当前复用研究的焦点, 它是实现成功复用的关键因素之一,是实现复用的核心和基础。基于构件的 软件复用包括两个相关的过程吲州:可复用构件的开发和基于可复用构件组装 的应用系统开发。 哈尔滨工程火学硕士学位论文 2 ,l 。2 软件复用采用的技术和优点 近三十多年黻来,软件研究人员和软件开发人员一巅致力子软件复用技 术的研究和实践,取得了很好的成效,不仅解决了软件危机,还推动了软件 工程的发展。软件复裙技术主要表现在以下八个方面: ( 1 ) 库函数 瘁函数楚穰翠懿软件复鞠技术。很多编程语言为了增强螽身的功能,都 提供了大量的痒溺数。对于瘁函数静使麓者,德只要知遂函数酌名称,返回 魏敬炎登,麓数参数秘爨数功能裁可以对荚遴抒 | 蓦用融。 ( 2 ) 面向对象技术 藤趣对象技术逶过方法、消患、类、继承、舞装秘安铡等桩铡梭造较 孛 系统,并为软l 牛复用提供强鸯力的支持。与避数薅对应,摄多嚣肉对象滔言 为应用程序开发兹提供了易予使用的类摩,如v c + + 中的m f c 、d e l p h i 中的 v c l 和j a v a 的j d k 。 ( 3 ) 设计模式 设计模式是颟向对象技术领域中比较流行的一种技术,专门用暮复用设 计信息,设计模式描述不断熏复发生的问题,为开发者所共事,若可以用共 同的语言_ 柬描述t ”。 f 4 ) 模板 模板_ 相当于工业生产中的“模具”,又各种各样的模板( 如文档模板、网 页模板等) ,利用这些模板可以比较快速的建立对应的软件产品。模板把不变 的封装在内部,对可能变化的部分提供了通用接口,由使用者来对这些接口 进行设定戚者实现”l 。 ( 5 ) 软梅l 牛 9 哈尔滨工稃火学硕士学位论文 从抽象程度来看,面向对象技术已达到了类级复用( 代码复用) ,它以类 为封装的单位。这样的复用粒度还太小,不足以解决异构互操作和效率更高 的复用。软构件( s o f t w a r ec o m p o n e n t ) 。也即构件( c o m p o n e n t ) 将抽象的程度 提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多 个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现, 只用接口提供服务。这样,在不同层次上,构件均可以将底层的多个逻辑组 合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的复 用从代码级、对象级、架构级到系统级都可能实现,从而使软件像硬件一样, 能任意装配定制而成。 ( 6 ) 构架 普通意义上的构架应从这三个方面来理解:构架是与设计的同义理解, 是系统原型或早期的实现;构架是高层次的系统整体组织;构架是关于特定 技术如何合作组成一个特定系统的解释。 ( 7 ) 框架 如果把软件的构建过程看成是传统的建筑过程,框架的作用相当于为房 屋搭建的“架子”。框架从重用意义上说,是一个介于构件和构架之间的一个 概念。 ( 8 ) 中间件 中间件作为通用的构件标准,是一种独立的系统软件或服务程序,是位 于平台( 硬件和操作系统) 和应用之间的通用服务。中间件在操作系统、网络 和数据库之上,应用软件之下,其主要功能是帮助用户灵活、高效地开发和 集成复杂的应用软件。这些服务具有标准的程序接口和协议,针对不同的操 作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。因此,中 问件是一类软件,而非一种软件。中间件不仅仅实现互连,还要实现应用之 间的互操作。中间件是基于分布式处理的软件,并特别强调了网络通讯功能。 采用软件复用技术有如下优点m : 1 0 哈尔滨工程大学硕士学位论文 ( 1 ) 软件复用能够提高软件生产率,从而减少开发代价。用可复用的构 件构造系统还可以提高系统的性能和可靠性,因为可复用构件经过了高度的 优化,并且在实践中经受过考验。 ( 2 ) 软件复用能够减少系统的维护代价。由于使用经过检验的构件,减 少了可能的错误,同时软件中需要维护的部分也减少了。 ( 3 ) 软件复用能够提高系统问的互操作性。通过使用统一的接口,系统 将更为有效地实现与其他系统之间的互操作性。 ( 4 ) 软件复用能够支持快速原型设计,利用可复用构件和构架可以快速 有效地构造出应用程序的原型,以获得用户对系统功能的反馈。 ( 5 ) 软件复用还能够减少开销。如同硬件工程师使用相同的集成电路块 设计不同的系统一样,软件工程师也将使用一个可复用构件库来构造系统。 2 1 3 影响软件复用的因素 软件复用有三个基本问题,一是必须有可以复用的对象,二是所复用的 对象必须有用,三是复用者需要知道如何去使用被复用对象。软件复用包括 两个相关的过程:可复用软件的开发和基于可复用软件的应用系统构造f 集成 和组装) 。解决好这几个方面的问题才能实现真正成功的软件复用。 与以上几个方面的问题相联系,实现软件复用的关键技术因素主要包括: 软构件技术( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 、领域工程( d o m a i n e n g i n e e r i n g ) 、软件构架( s o f t w a r ea r c h i t e c t u r e ) 、软件再工程( s o f t w a r e r e e n g i n e e r i n g ) 、开放系统( o p e ns y s t e m ) 、软件过程( s o f t w a r ep r o c e s s ) 、c a s e ( c o m p u t e ra i d d e ds o f t w a r ee n g i n e e r i n g ) 技术等。其中,软构件技术是软件复 用技术的核心技术。以上这些技术因素其关系如图2 1 。 哈尔滨工程大学硕士学位论文 图2 1 实现软件复用的关键因素 除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如:机 构组织如何适应复用的需求、管理方法如何适应复用的需求、保守商业秘密 的问题、复用前期投入的经济考虑、标准化问题等等。实现软件复用的各种 技术因素和非技术因素是互相联系的。它们结合在一起,共同影响软件复用 的实现。 软件产品是一种精神产品,它的产生几乎完全是人脑思维的结果,它的 价值,也几乎完全在于其中所凝结的思想;它的物质载体的制造过程与价值 含量都是微不足道的。物质产品的生产受到人类制造能力的限制,现有的一 切物质产品的复杂性都没有超过这种限度,软件却没有这种限制,只要人的 大脑能想到的问题,都可能要求软件去解决,人脑所能思考的问题的复杂性, 远远超出了人类能制造的物质产品的复杂性,因而使软件的复用更为困难。 哈尔滨工程大学硕士学位论文 2 2 软构件技术 软构件技术是支持软件复用的核心技术。构件技术以面向对象技术为基 础,并很好的发展了面向对象技术。它的目的是将对象、包括用户界面、对 外接口等属性以及对象的功能实现封装成一个规范的、标准的、可以方便地 被构件容器所操纵和使用的整体,使其称为一个通用、高效的软构件。 2 2 1 软构件概述 软构件( s o f t w a r ec o m p o n e n t s ) 的概念共生于软件复用。早在1 9 6 8 年,北 大西洋公约组织( n a l 0 ) 会议上就提出了软构件的概念,以后还制定了一整套 软构件复用的指导性标准,其中就包括利用标准构件实现软件复用的基本思 路 1 1 1f 1 2 j 。 1 软构件概念 软构件的概念可以分为两种情况来理解:广义上讲,软构件技术是基于 面向对象,以嵌入后马上可以使用的“即插即用”型软构件概念为中心,通 过构件的组合来建立应用的技术体系。狭义上讲,软构件技术是通过构件组 合支持应用的开发环境和系统的总称。 2 软构件的主要研究内容 软构件技术主要研究内容包括m ,: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及 组装问题: ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立 构件库系统,支持构件的有效管理; 1 3 哈尔滨工程大学硕士学位论文 ( 5 ) 构件组装与复合组装:在构件模型的基础上研究构件组装机制,包 括源代码级的组装和基于构件对象互操作的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化: ( 7 ) 可靠性:构件及构件软件系统可靠性评估研究m 】; ( 8 ) 网构软件:基于网络平台的软构件的研究。 3 软构件的分类 对软构件的分类是以构件分类体系为依据,对构件进行的一种预处理, 它通过为构件添加其在分类过程中所产生的分类信息,为构件的检索提供支 持。在分类体系中,可以从构件的标准、使用范围、系统类型、应用领域、 应用场合、功能和粒度等属性对构件进行分类,大体的分类情况如下( 1 4 1 : ( 1 ) 根据构件是否满足标准,可将构件分为两种:一种是可以跨平台、 跨语言使用的标准构件,如a c t i v e x 构件和c o r b a 构件;另一种则是某个 特定环境中使用的专用构件,如只能在d e l p h i ,v i s u a lb a s i c ,p o w e r b u i l d e r 等 环境下才能使用的窗口、菜单、用户对象、模板等。 ( 2 ) 根据使用的范围,可将构件分为通用构件和领域专用构件。 ( 3 ) 根据构件适用的操作系统类型,可以划分为基于w i n d o w s 9 8 , w i n d o w s n t l i n u x 等的构件。 ( 4 ) 据构件适用的计算机应用领域,可以分为数据库、网络、多媒体、 人工智能等领域的构件。 ( 5 ) 据构件服务的业务领域,可以分为企业、银行、电信等各个业务领 域的构件。 ( 6 ) 构件的功能分类,如数据库领域中的数据查询构件、报表构件等。 ( 7 ) 据构件粒度的大小,可分为大、中、小型构件。大粒度构件可实现 高级功能( 复合功能构件) ,而小粒度构件则功能相对简单些( 单一功能构件) 。 软构件不依靠于某一个系统,可以被相同的构件所替换,并且具有实际 的功能意义。软件行业的工业化趋势导致了软构件的产生。能够像硬件系统 那样,将部分软件组合起来构建软件系统,一直是软件行业多年来追求的目 标。特别是对于像很多应用软件的开发( 例如,很多行业和单位的m i s 系统1 , 4 哈尔滨工程大学硕士学位论文 若能结合系统的实际情况充分利用己有的软构件,将会大大提高生产效率, 减少大量的重复劳动。 2 2 2 软构件的特点 可以认为构件是封装了设计和实现的细节而仅向外部提供接口的相对独 立的可重用软件单元,该构件可以与其他构件组成更大规模的构件m 】。对于 构件,应当按照可重用的要求进行设计、实现、打包、编写文档。构件应当 是内聚的,并具有相当稳定的公开接口。 基本上说,构件具有以下特点: ( 1 ) 构件是一种软件单元,即构件有一定的粒度。与面向对象语言中的类 相比,构件在概念和功能上都大于一个单个的类。通常一个构件可以由一组 协作的类构成。 ( 2 ) 构件是可重用的软件单元。从重用的角度看,构件是对系统中相对稳 定的实体的一种抽象,把抽象的结果表示成构件,可重用于其它应用。 ( 3 ) 构件具有相对独立性。构件相对独立于其它构件。 ( 4 ) 构件具有封装性。构件封装了内部的设计和实现细节,而仅向外部提 供接口,外部访问构件只能通过构件的接口。 ( 5 ) 构件具有可组装性。构件可以与其它构件组合构成更大的构件,支持 协同工作。 ( 6 ) 构件完成特定的功能。 ( 7 ) 构件遵循一套接口标准。 如采把构件进一步限制到分布式标准的情况下,那么,构件还将具备以 下特性i 1 6 l : ( 1 ) 平台无关性。应用系统可以在不同的平台上使用相同的构件来完成特 定功能。 ( 2 ) 语言无关性。构件可以使用任何一种构件标准支持的语言进行编写。 ( 3 ) 分布式计算。分布式构件可以实现整个网内的特定协作过程。 埝乐滨王糕大学硕士学囊论文 2 。2 。3 软构件与其他复用技术的比较 梅俘戆概念实骣上是从诲多软 孛领域孛产生静,如软 孛体系缝褥、委瘫 对象程序设计、分布式计算等等,而构件技术把构件从系统逻辑中清晰地分 离蹈来,鼹殴梅件与上述领域中黪技术溉鸯匿裂,又亳联系,理泷较热下; 1 库函数、面对对象与软构件的比较 库函数、面对对象是软构件发展的基础。在库函数、面向对象和软构件 三蕈申软 牛炭用技术中,库聪数和露囱对象披术虽熊实现软 譬一定程度上的复 用,但是由于它们是基于代码的、原始的、低级别的软件复用,不能很好的 支持对系绕更毅秽祷换功能,不自彻底解决软件凫桃,两构馋技术属于大粒 凄的软件复用,使得软件体系结构可以在备个层次上支持软件复用,可随时 升级软件舔统中的某些构件而不影响整个软侔系统的运行,这样,软件产躁 就可戳从软件工厂中生产出来,从而彻底解决软件危机。 钛捶系程疫寒霹,瑟怒对象技术己这到了类缀霪矮f 代确重弱) ,它爨类 为封装的单位。这样的重用粒度还太小,不足以解决异构甄操作和效率更高 的黧建。掇馋将攮象鲍程淡握到一个更毫懿层次,它是对一缓类鼹缝台进行 封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。 整个搀彳牛隐藏了具体懿实现,只用接墨提供驻务。这样,褒不同豢次上,搦 件均可以将底层的多个逻辑组合成离层次上的粒度更大的新构件,甚至直撩 封装到一个系统,使模块载重用从代码级、对象级、架均缀到系绞级都可熊 实现,从而使软件像硬件一样,通过简单的构件组合达到制作目标软件的目 的,能任意装配定制而成的梦想褥以实现。 2 软构件、樵架与构架三者的比较 构件、框架和构架三者的主要区别在于对复用的支持程度的不同。他们 之间的关系如下: ( 1 ) 构件是基础,也是基于构件开发的最小单元。构件笈用包括可复用构 1 6 哈尔滨工程大学硕士学位论文 件的制作和利用可复用构件构造新构件或系统, ( 2 ) 一个框架和构架包含多个构件。这些构件使用统一的框架( 构架) 接 口,使得构造个应用系统更为容易。 ( 3 ) 框架复用包括代码复用和分析设计复用,一个应用系统可能需要若干 个框架的支撑,从这个意义上来说,框架也是一个“构件”的同时,框架又 是一类特定领域的构架 ( 4 ) 构架重用不仅包括代码复用和分析设计复用,更重要的是抽象层次更 高的系统级复用。 ( 5 ) 框架和构架的复用层次更高,比构件更为抽象灵活,但也更难掌握 和使用。 3 中间件与构件的区别 中间件,本质上是对分布式应用的抽象,它抛开了与应用相关的业务逻 辑细节,保留了典型的分布交互模式的关键特征。经过抽象,将纷繁复杂的 分布式系统经过提炼和必要的隔离后,以统一的层面形式呈现给应用。应用 在中间件提供的环境中可以更好地集中于业务逻辑,并以构件化的形式存在, 最终自然而然地在异构环境中实现良好的协同工作。构件与中间件是不同的 概念。中间件的目的是为了更好的达到基于构件的复用,消除构件对处理平 台和开发语言的依赖。 构件作为软件复用的最小单位,所包括的范围取决于构件设计及实现时 抽象的功能范围。理想状况下,整个系统由若干个构件组合而成,构件和构 件之间的联系方式通过接口定义。中间件则是对多层结构中间那个剖面中符 合一定规范构件集合的通称,换言之,中间件不是物理上的存在,而是一系 列构件的逻辑组合。而中间件本身优劣取决于构成这个中间件剖面的构件功 能、组合方式等因素,最终将中间件变成一个较高层次的大构件,也就是说 把中间件整个剖面上的构件以及之间的联系看成一个构件,只暴露出若干接 口让其他构件来连接。 哈尔滨工程大学硕士学位论文 2 3 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础 的过程,它覆盖了建立可复用软构件的所有活动。其中“领域”是指一组具 有相似或相近软件需求的应用领域所覆盖的功能区域m ,。 领域工程对领域中的应用系统进行分析,识别这些应用的共同特征和可 变特征,对刻划这些特征的对象和操作进行选择和抽象,形成领域模型,根 据领域模型产生出领域中应用共同具有的体系结构,并以此为基础识别、开 发和组织可复用构件。这样,当开发问一领域中的新应用时,可以根据领域 模型,确定新应用的需求规约,根据特定领域的体系结构形成新应用的设计, 并以此为基础获取可复用构件,经过组装后,形成新系统。 从以上对领域工程的描述可以看出,领域工程有助于获取具有较高可复 用性的构件。同时,领域工程产生了领域模型和特定领域的体系结构,这是 组装新系统的基础。 2 3 1 实施领域工程的方法 领域工程的实施需要依据一定的方法来进行。现在实施领域工程的方法 有很多,其中f o d a ( f e a t u r e o r i e n t e d d o m a i n a n a l y s i s ) 方法是一种已经被 广泛应用于商业和军事领域的领域工程方法,它是由卡内基梅隆大学软件工 程研究所提出的m 】。 f o d a 过程分为三个阶段:上下文分析、领域建模、体系结构建模。 ( 1 ) 上下文分析:上下文分析的目的是定义领域的范围。这个阶段要分 析领域与外部元素的关系、对可变性进行评价。分析的结果是上下文模型。 ( 2 ) 领域建模:领域的范围确定以后,领域建模阶段提供一些步骤来分 析领域中的应用表现出的共性和差异,并产生一些领域模型。领域建模阶段 主要包含三种行为: 特征分析:在特征分析阶段,要获得客户或最终用户对一类系统的一 哈尔滨工程大学硕士学位论文 般能力的理解,即特征。特征描述了领域应用的上下文,需要的操作和 属性,及表示法的变化。 信息分析:在信息分析中,要定义和分析为实现领域中应用所需的领 域知识和数据需求。信息分析的目标是用领域实体及其之间的关系表示 领域知识,并使它们在功能分析和和体系结构建模中可以用来派生对象 和数据定义。 功能分析:在功能分析中,要识别领域中应用的功能特性。 ( 3 ) 体系结构建模:这个阶段为领域中的应用提供软件解决方案。在这 个阶段中开发出体系结构模型,即领域中应用的高层设计。这个阶段的焦点 为识别并发进程和面向领域的共同模块。这个阶段中定义进程,并将定义在 领域模型中的特征、功能和数据对象分配到进程和模块。 f o d a 方法强调对领域内软件系统中主要的个性特征的标识,这些特征 是用户对领域的各个侧面的特性的认识,通过这些用户熟悉的特征来引导领 域产品的生产以及对领域产品的命名。因此,这种分析方法能够充分体现用 户所希望的满足应用需求的功能和体系结构。因而f o d a 支持功能和体系结 构层上的复用。由于f o d a 采用了聚合分解、一般特殊、参数化等建模技 术,这种方法能够对用户的新需求做出快速反映。这一切使f o d a 成为了各 种领域工程方法中被广泛使用的一种。 2 3 2 领域工程和应用工程的关系 人们把开发单个应用系统的软件过程称为应用工程,领域工程和应用工 程既有区别又互相联系。 在应用工程中,软件开发人员的任务是在特定的条件下,针对一组特定 的需求产生一组特定的设计和实现,其中的行为和行为产生的结果基本上是 针对当前开发的特定系统的。与此相对,在领域工程中,领域工程人员的基 本任务是对一个领域中的所有系统进行抽象,而不再局限于个别的系统。因 此,与应用工程相比,领域工程处于一个较高的抽象级别。在领域工程中, 1 9 生j 鎏i :型耋罂:耋堡量苎 对领域中相似系统的共同特征进行了抽象,并通过领域模型和d s s a 表示了 这些共同特征之问的关系m ,。 领域工程和应用工程又是互相联系的。一方面,通过应用工程得到的现 有系统( 包括需求规约、设计、实现等) 是领域工程的主要信息来源,领域工 程的各个阶段主要是对应用工程中相应阶段产品的抽象,领域工程又对本领 域中新系统的丌发提供了支持。另一方面,领域工程和应用工程需要解决一 些相似的问题,例如怎样从各种信息、源中获取用户的需求,如何表示需求 规约,如何进行设计,如何进行构件开发,如何在需求规约、设计和实现间 保持逻辑联系,如何对需求规约、设计和实现进行演化等。因此,领域工程 的步骤,行为、产品等很多方面都可以和应用工程进行类比。 2 3 3 基于领域工程的软件开发过程和模型 基于领域工程的软件开发的丌发过程可以概括为: ( 1 ) 领域分析:通过专向领域的需求分析,抽取得到u m l 描述的领域模 型: ( 2 ) 领域设计:u m l 模型可利用c a s e 工具自动生成i d l 文件,并对领 域体系结构进行描述生成相应的a d l 文件( 采用a c m e 描述) ; ( 3 ) 领域实现:编译领域设计得到的i d l 文件,自动生成代码; ( 4 ) 应用实现:根据设计得到的a c m e 文件,组装系统。其模型可以用 图2 2 所示来说明。 2 4 软件再工程 大量遗产系统仍在运行中,由于其运行多年,经历了长期的用户考验, 功能及非功能特性可能确实符合需求,可靠性也有较好保证。然而,计算 平台的变化、技术的发展、文档的缺乏及非优化的设计等等使得遗产系统 需要重新开发,即再工程。 哈尔滨工程大学硕士学位论文 但对遗产系统进行再工程的过程中,会遇到许多困难。如有的遗产系 统寿命己有若干年,由于当时开发方法和丌发工具的局限性,具有这样或 那样的缺点。有的遗产系统甚至采用的还是非结构化分析设计技术。而有 的遗产系统只有目标代码,没有相关的软件配置( 源程序、各种开发文档、 运行记录) 等等。所有这些都导致现有的遗产系统没有好的可演化性,使 得无法利用简单的方法把遗产系统转化为一个新的系统。f 是在这种情况 下再工程变得越来越重要起来。 上上 上上 图2 2 基于领域工程的软件开发的模型 2 4 1 软件再工程的相关概念 软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起来, 将现存软件系统重新构造为新的形式舯,。逆向工程是指对现有系统进行分析, 以最大的努力去建立比代码抽象层次更高的表达形式。如从目标代码分析求 出源代码,由源代码求详细设计与总体设计,由总体设计求软件需求分析。 逆向工程的结果应包括遗产系统中被执行的处理、被应用的用户界面、以及 被使用的程序数据结构或数据库的有意义的信息等。 2 l 哈尔滨工程大学硕士学位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论