(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf_第1页
(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf_第2页
(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf_第3页
(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf_第4页
(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(检测技术与自动化装置专业论文)基于arm9和wince的软件构件化研究与开发.pdf.pdf 免费下载

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

文档简介

摘要 摘要 构件技术已经广泛应用于软件开发过程中,并且极大的提高了软件开发效率,但是在嵌入式领 域,构件技术应用的还比较少。将构件技术应用于嵌入式系统中,对于嵌入式软件的开发具有重要 的现实意义,采用构件技术可以提高模块的重用性,提高嵌入式软件开发的效率,降低开发难度和 成本。 论文首先阐述了构件化软件设计技术,对可复用构件技术和构件化软件开发方法等方面的内容 进行了深入研究。然后,分析了现有通用构件技术和嵌入式构件技术,并在此基础上,结合w i n c e 系统,研究了构件技术在w i n c e 系统中的应用。针对a r m 9 系统资源有限、可靠性与实时性要求 高的特点,在总结了现有构件模型特点的基础上提出了一种适用于w i n c e 系统的嵌入式构件模型 e c m w ( e m b e d d e d c o m p o n e n t m o d e lf o r w i n c e ) 。e c m w 具有良好的定义标准,便于构件的开发与 替换,使用户可以方便的采用符合e c m w 标准的第三方构件,快速开发符合需求的嵌入式应用。 论文接着阐述了使用e c m w 在a r m 9 与w i n c e 平台上进行构件化开发的方法及过程,对构件 化开发整体框架做了分析,并对构件进行划分。分析了e c m w 派生出的构件模板,研究其结构与组 成元素,将构件模板贯穿于构件化开发的过程之中,指导并规范构件的开发与复用。根据系统整体 框架与构件模板,设计实现操作系统构件,包括b o o t l o a d e r 构件与b s p 构件,并定义w i n c e 系统移 植与剪裁方法。对w i n c e 驱动模型进行改造以适应构件化开发,完成驱动构件的设计。本论文还对 构件库做了深入研究,分析构件库的开发流程,实现了e c m w 构件库的设计,为实验室建立了一个 构件库,方便在此基础上进行基于a r m 9 与w i n c e 平台的嵌入式系统开发。 最后,本文给出了e c m w 的一个应用案例。 构件模型是构件化开发的理论基础,可复用构件是构件化开发的物质保证,而构件库是软件复 用的基础,也是基于构件的软件开发方法( c b s d ) 的基础,是进行基于构件的软件开发的有力保证。 因此构件模型的设计、构件的实现与构件库的建立是以上工作中的几个关键点与难点,也是本文的 研究重点。 本文所采用的基于构件的嵌入式软件开发提高了w i n c e 系统软件生成率、提高开发质量、缩短 开发周期,对使用a r m 9 与w i n c e 进行嵌入式系统应用开发有很大理论意义和现实意义,对于其 它平台的嵌入式软件开发也具有一定的参考价值。 关键词:嵌入式系统:构件化:w i n c e ;构件模型;e c m w ;构件模板:驱动;构件库 a b s t r a c t 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 sw i d e l yu s e di nt h es o f t w a r ed e v e l o p m e n t , a n di tm a k e st h es o f t w a r e d e v e l o p m e n tm o r ee f f i c i e n tt h a ne v e r b u tt h et e c h n o l o g yi s s e l d o mu s e di ne m b e d d e ds o f t w a r e u s i n g c o m p o n e n ti ne m b e d d e ds y s t e mh a si m p o r t a n tp r a c t i c a ls i g n i f i c a n c et oe m b e d d e ds o f t w a r ed e v e l o p m e n t i t c a ni m p r o v et h em o d u l er e u s a b i l i t y , t h ee f f i c i e n c yo fs o f t w a r ed e v e l o p m e n t ,a n dd e c r e a s et h ed i f f i c u l t ya n d c o s t so fd e v e l o p m e n t a tf i r s t ,t h i sp a p e ri n t r o d u c e st h et e c h n o l o g yo fc o m p o n e n t b a s e ds o f t w a r ed e s i g na n di n - d e p t h r e s e a r c ht h er e u s a b l ec o m p o n e n tt e c h n o l o g ya n dc o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n tm e t h o d s a n d t h e n ,t h ep a p e ra n a l y z e st h ee x i s t i n gc o m m o nc o m p o n e n tt e c h n o l o g ya n de m b e d d e dc o m p o n e n tt e c h n o l o g y , s t u d i e st h es o f t w a r ec o m p o n e n tt e c h n o l o g yi nw i n c es y s t e m a c c o r d i n gt ot h eh i g hr e l i a b l ea n dr e a l - t i m e f e a t u r e so fw i n c es y s t e m ,t h i sa r t i c l eg i v e sa ne m b e d d e dc o m p o n e n tm o d e lf o rw i n c e ( e c m w ) a f t e r s u m m i n gu pt h ec h a r a c t e r i s t i c so ft h ee x i s t i n gc o m p o n e n tm o d e l e c m wh a sag o o dd e f i n i t i o nc r i t e r i o n , f a c i l i t a t e st h ed e v e l o p m e n ta n dr e p l a c e m e n to fc o m p o n e n t s ,a n di t su s e f u li nd e v e l o p i n gh i g hq u a l i t y e m b e d d e da p p l i c a t i o nw i t ht h et h i r d p a r t yc o m p o n e n t so fe c m wc r i t e r i o n f u r t h e r m o r e ,t h et h e s i se x p o u n d sc o m p o n e n t - b a s e dd e v e l o p m e n tm e t h o da n dp r o c e s so na r m 9a n d w i n c ep l a t f o r mu s i n gt h ee c m wa n ds t u d i e st h es t r u c t u r ea n dc o m p o s i t i o no fc o m p o n e n tt e m p l a t e d e r i v e df r o me c m wt og u i d ea n dr e g u l a t et h ed e v e l o p m e n to rc o m p o n e n tr e u s e a c c o r d i n gt ot h e f r a m e w o r ko ft h es y s t e ma n dt e m p l a t ec o m p o n e n t ,t h i st e x td e s i g n sa n di m p l e m e n t st h eo sc o m p o n e n ta n d d e f i n et h em e t h o do ft r a n s p l a n t a t i o nf o rw i n c e a n dt h e nt h et r e a t i s er e b u i l d sw i n c ed r i v e rm o d e lt om e e t t h ec o m p o n e n t - b a s e dd e v e l o p m e n t ,c o m p l e t e st h ed e s i g no fd r i v ec o m p o n e n t s a f t e rf i n i s h e dc o m p o n e n t , t h et h e s i sr e s e a r c hc o m p o n e n tl i b r a r y , a n a l y s i si t sd e v e l o p m e n tp r o c e s sa n dd e s i g n sc o m p o n e n tl i b r a r yo f e c m wf o ro u r1 a b f i n a l l y , t h i sp a p e rp r e s e n t sac a s es t u d yo fe c m w t ot e s tt h ef e a s i b i l i t yo fe c m w c o m p o n e n tm o d e li st h et h e o r e t i c a lf o u n d a t i o n r e u s a b l ec o m p o n e n ti st h em a t e r i a lg u a r a n t e e ,w h i l e t h ec o m p o n e n tl i b r a r yi st h eb a s i so fs o f t w a r er e u s ea n dc b s df o rt h ec o m p o n e n t b a s e dd e v e l o p m e n t t h e r e b yt h ed e s i g no fc o m p o n e n tm o d e l ,i m p l e m e n to fc o m p o n e n ta n dc o m p o n e n tl i b r a r yn o to n l ya r et h e k e yp o i n t sa n dd i f f i c u l t i e s ,b u ta l s ot h ef o c u so ft h i sa r t i c l e c o m p o n e n t - b a s e de m b e d d e ds o f t w a r ed e v e l o p m e n ti n c r e a s e st h eg e n e r a t i o nr a t eo fw i n c es y s t e m , i m p r o v e st h eq u a l i t yo fs o f t w a r ea n ds h o r t e n st h ed e v e l o p m e n tc y c l e i th a sg r e a tp r a c t i c a la n dt h e o r e t i c a l s i g n i f i c a n c ef o ra p p l i c a t i o nd e v e l o p m e n to nt h ea r m 9a n dw i n c e ,a n da l s oh a sc e r t a i nr e f e r e n c ef o ro t h e r p l a t f o r mo fe m b e d d e ds o f t w a r ed e v e l o p m e n t k e y w o r d s :e m b e d d e ds y s t e m ;c o m p o n e n t b a s e d ;w i n c e ;c o m p o n e n tm o d e l ;e c m w ;c o m p o n e n t t e m p l a t e ;d r i v e r ;c o m p o n e n tl i b r a r y i i 独创性声明 本人声明辑呈交麓学位论文是本人在导簿糍导下遗行的研究工作及取 群的研究成爨。尽我所知,除了爻申特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写过的研究成暴,也不包含本人为获褥江南 火学或其它教育机构的学位或证书尚使用过的材料。与我一同工作的同志 对本研究辨擞的任何贡献均已在论文中作了臻确的说瞑并表示谢意, 签名: 关于论文使用授权的说明 本学位论文搀者完全了解江南太学有美保留、使硝学位论文避撬定: 江南大学有权保留并向爨家有关部耀或机构送突论文始复印件和磁盘,允 诲论文被查阏争借瓣,可以将擎往论文鲢全部或部分内容编入有荚数据库 进行检索,可以采用影印、缩印或担描等复制手段保存、;眨编学位论文, 并且本人电子文档砖悫褰和纸赓论文麓内容搬一致。 保密的学位论文在解密后也遵守此规定。 签名:墨这望垃。 导耀签名:一瓣期: 砰年亨月坷霹 独创性声明 本人声明所呈交的学位论文是苯人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写过的研究成果,也不包含本人为获得江南 大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志 对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 签名:日 期: 关于论文使用授权的说明 本学位论文作者完全了解江南大学有关保留、使用学位论文的规定: 江南大学有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、;1 2 编学位论文, 并且本人电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 签名: 导师签名: e t 期: 第一章绪论 1 课题研究背景及意义 第一章绪论 计算机的应用模式在经历了主机模式和个人机模式后,目前正向普适计算( p e r v a s i v ec o m p u t i n g ) 模式发剧1 1 。在普适计算模式下,嵌入式系统已经渗透到人们生活的各个方面:交通运输、航空航 天、医疗卫生、工业控制等。通常,这些系统除了需要满足用户的一般功能需求,还要求具备非常 高的可靠性。随着嵌入式系统和设备的广泛应用和频繁定制,快速和低开销的嵌入式系统软件开发 变得十分重要。 与通用软件一样,嵌入式系统的软件开发也面临着类似“软件危机”的问题,并且由于嵌入式 系统的基本特点,许多问题比般通用软件更严重。例如,资源有限性和实时性的特点要求嵌入式 软件简洁高效,但这种要求很多时候要依赖设计者的个人技巧才能达到,过多使用这些技巧往往使 软件的可维护性变差;另外,专用性的特点往往导致各应用系统之间采用封闭性的开发方式,应用 系统之间重复开发多,使软件质量、进度、开发成本大受影响。现在的嵌入式产品的成功与否越来 越受到上市时间的影响,然而嵌入式软件开发中存在的这些问题严重阻碍了嵌入式产品的快速更新 换代。虽然自从软件工程的概念提出之后,许多行之有效的技术方法被成功应用在软件开发中。但 是人们也发现,并不存在一种理想的技术方法,使用它就能够一劳永逸地解决软件开发中遇到的所 有问题。因此,针对目前嵌入式系统的发展新情况,探索更适合嵌入式实时软件开发的新技术己经 势在必行。 近年来,软件重用技术( s o f t w a r er e u s e ) 得到人们的高度关注,软件重用的思想已经深入到了软 件工程的各个方面,在各种软件重用方法中,基于构件的软件开发技术( c b s d ,c o m p o n e n t - b a s e d s o f t w a r ed e v e l o p m e n t ) 是人们研究的热点,它提高软件质量开发效率,使软件架构定义清晰,便于重 用,从而受到了越来越多的重视,被广泛应用到不同领域中,并且在实践中也取得了良好的效果。 软件构件是软件系统中可标识的、符合某种标准要求的构成成分,相当于工业流水线生产上的“标 准件”。构件的最大特点是可以不断复用,显著降低成本,缩短开发周期,提高软件质量。在1 9 6 8 年国际n a t o 软件工程会议上,提出了软件构件与“软件组装生产线”思想。此后,采用构件技术 实现软件复用,并采用“搭积木”的方式生产软件,成为软件业长期的梦想【2 j 。软件构件技术是从 面向对象技术发展而来的,通过软件构件达到全面应用面向对象技术与概念,成为开发出高效、低 成本、可重用软件系统的重要的现实途径。基于构件的软件复用是提高软件生产率和软件质量的有 效途径,是解决软件危机的重要手段之一【3 1 。因此,在嵌入式系统软件开发中,也可以引入基于构 件的软件开发技术。 由于嵌入式系统的特殊性,长期以来嵌入式软件设计和开发使用的是过程化技术,并在专用的 硬件和操作系统之上运行,运行效率、资源利用率以及硬件的集成是考虑的主要方面,构件化和复 用性是在第二位的。正是迫于功能、成本、周期等实际问题的需求,以及开发要求的提高,实时系 统的构件化越来越受到重视,嵌入式系统构件化开发的理念得以运用。嵌入式系统引入基于构件的 开发方法,带来了如下的益处【4 】: 江南大学硕士学位论文 ( 1 ) 构件库提供的构件被用来为特定应用构建软件,减小了嵌入式实时系统开发过程的复杂性; ( 2 ) 设计合理,被充分验证的构件被不同的嵌入式实时系统重用,加快了开发和部署系统软件的 过程; ( 3 ) 构件能被方便地替换或者添加到嵌入式实时系统中,方便了系统软件的演进过程。 我国正在全面建设信息化社会,对软件的需求很大,为了缩减软件的开发成本和时间,构件技 术的应用就显得十分重要。基于a r m 9 与w i n c e 的嵌入式开发作为嵌入式系统开发的一个重要方 面,有必要引入构件技术以降低其开发成本和时间。通过对构件技术发展的研究,可以看出基于软 构件的软件开发和集成是切实有效的,因此对于嵌入式实时系统利用构件化技术来提高嵌入式软件 质量和开发效率具有非常重大的理论意义和实用价值,构件化已成为中国软件的必由之路【5 】。 1 2 国内外研究现状及动态 基于构件的软件开发技术作为一种解决“软件危机”的有效途径,在国内外都有相应的研究和 应用。 当前,国外软件界对可复用软件相关技术进行了深入的研究,并取得不少成果,如r e b o o t 等 实际的系统,n a t o 标准,a l o a f 等模型方面的研究。r e b o o t 【6 j 是一个包括储存可复用构件的数 据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具的环境。其中在对构件进行分 类时采用- j n 面的分类策略,这个分类策略主要针对面向对象的构件。北大西洋公约组织( n a t o ) 参 与国和承包商制订了软件复用的标准包括“可复用构件标准”、“可复用构件库标准”、“软件复用过 程标准”,制定这些标准的目标是供n a t o 及其参与国的项目管理部门使用它们来建立复用计划需求 和向承包商提供复用计划向导,承包商则将它们用于特定项目的开发实践【7 】。美国军方与政府资助 的项目中,已经建立了若干构件库系统,如c a r d s 、a s s e t r 、d s r s 等。由d a r p a 发起,由美 国军方、s e i 和m i t r e 支持的s t a r s 项目在此基础上考虑了开放式体系结构的构件库之间共享资 源和无缝互操作的问题,并于1 9 9 2 年提交了a l o a fv e r s i o n l 2 版本【8 】。 国内的相关研究也较多,如青鸟构件管理系统例( j b c l m s ) 是北京大学软件工程研究所在杨芙清 院士领导下的研究成果,它的目标是致力于软件复用,以构件作为软件复用的基本单位,提供一种 有效的管理和检索构件的工具。并在一些领域开发了一系列的构件,并且将这些构件应用于具体的 系统中。由国家8 6 3 计划和上海市科委支助的重大专项上海构件库【l 们,于2 0 0 2 年初筹建,目前 拥有2 6 0 0 多个各类构件。主要提供软件构件、构件库、构件相关技术与方法的共享、交流和推广传 播等,旨在促进软件知识共享,减少产业范围内低层次的重复劳动,取得很好的应用效果。 构件化软件具备系统可扩展性好、系统演化能力强、对已有的技术进行很强的重用能力等优点, 因此嵌入式系统构件化开发技术已经引起人们的极大兴趣。但是,以上研究大都停留在理论研究阶 段,对构件的描述大多采用数学符号( 难以理解、实现、维护及推广) 或直接使用自然语言( 很难保证 检索质量) ,并且很少应用于嵌入式系统的开发。通常一个复杂的嵌入式系统是由多个计算子系统构 造而成,具有较高的模块化特征,这使得人们认识到,与其他形式的软件系统相比,嵌入式软件系 统更具有较高的构件化特征【】,其复杂性也更多的体现在系统构件之间不同层次上的交互形式上。 根据嵌入式系统的基本特点,有不少研究者从不同的角度提出了嵌入式实时软件的构件化开发技术 函待解决的特殊问题【1 2 - ”】。围绕着这些问题,目前国内外的相关研究工作主要包括以下几个方面: 2 第一章绪论 嵌入式实时软件运行环境的构件化模型:嵌入式实时软件运行环境的构件化模型也简称为嵌 入式实时软件的构件化模型,它是在嵌入式实时软件领域应用c b s d 技术的基础,根据嵌入式系统 的基本特点,研究的构件化模型主要着眼于两个方面:支持嵌入式系统的非功能性需求( n f r ) 【1 4 】和 形成灵活的软件体系结构【1 5 】。 嵌入式实时软件的构件化开发方法学和开发环境:方法学和开发环境是嵌入式实时软件的构 件化开发技术的主要研究内容,目前的工作主要集中在构件组装( c o m p o n e n tc o m p o s i t i o n ) 、代码( 或 代码框架) 的自动生成和对生成的软件系统的非功能属性的分析验证等方面【i6 1 1 7 1 。 嵌入式实时应用软件的构件化开发实践:嵌入式实时应用软件的构件化开发实践也是目前研 究的重要内容。例如z h u 等人探讨了利用构件技术来构建面向特定应用的嵌入式实时操作系统 ( a s o s ) 的问题【1 8 】。s h e i k h l a h a m d e 等实现了一个用于移动嵌入式系统的构件化的嵌入式数据库【1 9 】。 通过这些具体的嵌入式实时应用软件的构件化开发实践,一方面证明了嵌入式软件的构件化开发技 术的优越性,另一方面也可以从这些具体应用中归纳出嵌入式软件的构件化开发技术要解决的问题, 探寻相应的解决办法。 分析现有工作可以发现目前的研究有一个比较大的弊端:研究与应用脱节比较严重。例如,上 文中的嵌入式实时应用软件的构件化开发实践中很少有利用到有关构件化开发方法学、开发环境、 构件化模型等研究成果。究其原因在于嵌入式实时软件的构件化开发技术研究目前尚开始起步,相 关研究很不成熟。要使其进入实用阶段,还有相当长的道路需要走。例如,在嵌入式实时软件的构 件化模型研究中,现有的构件化模型对于构件间的逻辑交互描述能力不足,不能很好满足嵌入式实 时软件的多样性特点;在开发环境和工具研究方面,没有注意到软件开发环境和要开发的嵌入式实 时软件的定制需要统一的问题,从而不适应嵌入式系统交叉开发的特点:在方法学研究方面,构件 化开发所需要的高重用、可扩展的软件设计方法的研究也很不成熟:另外,构件化的软件开发的成 功与相应的软件过程关系密切,有必要进一步针对当前嵌入式软件开发单位的软件过程现状,对支 持构件化开发的软件过程模型进行研刭2 0 】。以上这些问题都是阻碍构件化的软件开发技术在嵌入式 软件开发实践中应用的重大障碍,如何提高嵌入式系统开发特别是基于a r m 9 与w i n c e 开发的理 论研究与实际应用相结合也构成了本文的研究重点。嵌入式实时系统利用构件化技术来提高嵌入式 软件质量和开发效率就成了实时软件工程研究的重要内容。 1 3 本论文的研究任务及内容 本文从使用a r m 9 进行嵌入式软件开发实践的需要出发,结合w m c e 软件的开发,对嵌入式 软件的构件化开发技术进行了较为深入而系统的研究,分析了嵌入式软件构件化的开发技术和国内 外研究现状,以c b s d 的方法指导嵌入式系统开发,并以此为主要研究内容展开工作,本文的主要 任务与内容体现在以下几个方面: ( 1 ) 分析构件化软件开发在嵌入式系统领域中的作用、发展情况和研究应用现状。深入理解构件 化的软件开发的主要内容、特点和工作原理,为嵌入式系统软件开发提供理论指导。 ( 2 ) 对嵌入式实时软件运行环境的构件化模型进行研究,分析现有通用构件模型和嵌入式构件模 型,拟提出一种适用于w i n c e 平台的嵌入式构件模型( e c m w ,e m b e d d e dc o m p o n e n tm o d e lf o r w i n c e ) 。 3 江南大学硕士学位论文 ( 3 ) 对嵌入式系统的设计方法学进行研究,着重研究基于e c m w 构件的软硬件协同设计方法。 并应用构件化的设计方法在a r m 9 与w i n c e 的平台上进行嵌入式系统开发,分析系统开发平台与 环境,给出基于a r m 9 与w i n c e 构件化开发的系统整体框架与任务划分。 ( 4 ) 研究e c m w 的构件模板,将构件模板贯穿于构件化开发的过程之中,指导并规范构件的开 发与复用。 ( 5 ) 根据体系整体框架,设计实现操作系统构件,包括b o o t l o a d e r 构件与b s p 构件,并定义w i n c e 系统移植与剪裁方法。 ( 6 ) 对w i n c e 驱动模型进行改造以适应构件化开发,完成驱动构件的设计。 ( 7 ) 研究构件库的实践,分析构件库的开发流程。掌握构件库集成开发工具c e c 文件的使用, 实现e c m w 构件库的设计。 ( 8 ) 使用本文提出的设计方法设计一个完整应用实例,以验证本文提出的技术和方法的正确性。 构件模型的设计、构件的实现与构件库的建立是以上工作中的几个关键点与难点,在本文后面 的章节中会详细介绍。构件是e c m w 实现重用的基础,因此如何设计适用于w i n c e 系统的构件是 首先要解决的问题。 本文所作的工作对使用a r m 9 与w i n c e 进行嵌入式系统应用开发有很大现实意义和理论意义: 可以提高w i n c e 系统软件生成率、提高软件开发质量、缩短开发周期;降低软件开发和维护费用, 使软件的开发更加标准化。 4 第二章构件化软件设计 第二章构件化软件设计 构件化的软件开发方法是一种将完整系统看作是若干独立部分( 构件) 的联结的软件开发方法,每 一个部分是一个可重用单元,通过替换和重配置来完成软件的升级。采用构件化的软件开发方法可 以带来很多好处:更高的开发速度、较低的开发成本、较高的可用性等。 2 1 可复用构件技术 软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率 和质量。基于构件的复用是产品复用的主要形式,也是当前复用研究的焦点。基于构件的软件开发 方法( c b s d ) 逐渐被人们接受,并用于软件开发实践中。c b s d 集软件重用、分布式对缘计算、c a s e 和企业级应用程序开发等技术为一体,以软件构架为组装蓝图,以可重用软件构件为组装块,支持 组装式软件重用,是提高软件生产效率和产品质量、缩短产品交付时间的现实有效的途径之一。 2 1 1 构件定义及特点 构件是软件的构成元素,具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特 定的服判2 1 】。构件隐藏了具体的实现,通过接口对外提供服务。计算机百科全书中给出定义为:软 件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系可独立部署、 多由第三方组装的可组装软件实体。n a t o 在其颁布的可复用的软件构件标准【7 】中给出的定义为:构 件是用于复用的软件实体。一般而言,构件是软件系统中具有相对独立功能、可以明确辨识、接口 由契约指定、和语境有明显依赖关系、可独立部署可组装的软件实体。广义上讲,构件可以是数据, 也可以是被封装的对象类、软件构架、文档、测试用例等。 软件构件有两个特征:有用性,指构件完成的功能是有用的,其功能可出现在很多应用软件 中:易用性,指构件要有很好的包装,能很方便地使用它。 2 1 2 构件技术思想 构件技术是面向对象技术的一个发展。构件与对象最基本的不同点是一个对象是源代码的一部 分或者是一个规范,用来执行应用程序的一部分,而构件不仅仅是一个规范,也不一定是需要编译 才能使用的一部分源代码,而是可实际运行的软件模块。 构件技术的基本思想在于【2 2 1 创建和利用可复用的软件构件来解决应用软件的开发问题。只要遵 循构件技术的规范,各个软件开发商就可以用自己熟悉或者是使用习惯的语言去实现构件。软件构 件是指可重用的软件单元,可以被用来构造其它软件。它可以是被封装的对象类、一些功能模块、 软件框架、软件系统模型、软件的文档,如可重用的分析件、设计件等。 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的一个学科分 支。构件技术的优点主要表现在灵活性、重用性、可维护性、高效性和分布性1 2 3 1 。 软件构件技术主要研究内容包括: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; 5 江南大学碛圭学位论文 ( 2 ) 构件模型:研究构件的本质特征及构件间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题; ( 毒) 构馋分类与检索:研究构件分类策略、组织模式及检索策略,建立梅馋瘴系统,支持掏绛 的有效管理: ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装和基于构件 对象互操作 璺的运行级组装; ( 6 ) 标准化:构徉模型的标准纯帮构件库系统的标准纯。 2 1 3 实现软件复用的关键因素 软 牛复震骞三个基本阏蘧,一是必须有可戳复雳鲤对象,二是要被笺藤的对象必须楚商矮躲, 三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复焉软件( 构件) 的开发( d e v e l o p m e n tf o rr e u s e ) 和基于可复用软件( 构件) 的应用系统构造( 集成和组装) ( d e v e l o p m e n t w i t hr e u s e ) 。鳃决好这几个问题才能实现软 牛复用。 与以上凡个方惹攘关的润题狸联系,实现软件复矮的关键因素( 技术与毒技术因素) 主要包括:软 件构件技术( s o t t w a r ec o m p o n e n t ) 、领域工程( d o m a i ne n g i n e e r i n g ) 、软件体系结构( 或构架) ( s o f t w a r e a r c h i t e c t u r e ) 、软件再工程( s o f t w a r er 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 技零等以及各种鼍技术因素瓯这些技术因素稷嚣技术因素是摆曩联系的, 如图2 1 所示,它们结合在一起,共同影响软件复用的实现。 ( 应用系统领域) ( 遗产软件系统) 领域工纛软 孛霉工程软馋俸系缝褥技拳嚣墩系统援寒 非 软 蠢孓唾最囊溶 仁 术 件 a 技 过 因 程 素 r c a s e 技术 图2 - 1 实现软件复用的关键因素 f i g 2 - 1k e yf a c t o rt oa c h i e v es o f t w a r er e u s e 2 2 构件化软件开发方法 基于构件的软静开发( c b s d ) ;是- - 种软锋开发新范型,它是在一定构粹模型酶支持下,复震狗 牛 库中的一个域多个构件,通过多个构件的缀合高效率、高质量地构造应用软件系统的过程。 c b s d 是软件复用、分布式应用和快速软件开发等思想的具体体现,魑软件产业化的迫切需要。 c b s d 以抽象数据类型为理论基础【2 4 】,参考硬件中集成电路的设计思想,构造出软件的集成块,通 过对软件集成块兹组装,形成更大酶软肄横块,经过连接,调试,最终形成一个可震懿软许。c b s d 是软件工程发展的新阶段,吸收和发扬了丽向对象技术、分布计算技术和软件复用中的许多优秀思 想,例如对苏对设计信息和实现细节进行封装的思想,使构件技术得到了进步完善。同时,构件 6 第二章构件化软件设计 技术也克服了面向对象技术中的许多缺点和与应用现状不相适应的部分,例如构件技术更注重复用 的粒度和易复用性的问题,以满足软件产业化的需求。 基于构件的软件开发与其他开发过程的不同之处在于它在分析、设计、实现等各个阶段中所从 事的工作不再是从零开始。图2 2 给出了基于构件的软件开发过程包括的几个主要活动【2 5 】。构件化 的软件过程可以分成领域工程( 开发构件) 和应用过程( 使用构件开发应用程序) 两个独立的子过程,两 个子过程之间通过构件库联系起来。因此,构件化的软件开发技术的主要研究内容可以分成领域工 程、应用工程和过程管理三部分。 领域工程应用工程 图2 - 2 基于构件的软件开发过程 f i g 2 - 2c o m p o n o n t b a s e ds o f t w a r ed e v e l o p m e n tp r o c o s s 2 2 1 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立 可重用的软件构件的所有活动。其中“领域”是指一组具有相似或相近软件需求的应用系统所覆盖 的功能区域2 0 , 2 6 】。 通过领域工程得到的面向领域的构件数目大,重用程度高。不仅如此,通过领域工程得到的面 向领域的软件构架比一般意义上的软件构架具体、易操作。因此,领域工程是获取构件、构架的主 要途径2 7 1 。领域工程需要辨别共同性和差异性,如何确定这二者之间的平衡程度,在于判断是否可 标准化和可参数化表示。领域工程过程划分为领域分析、领域设计、领域实现等多个活动,其中的 活动与结果如图2 3 所示。 ( 1 ) 领域分析 领域分析的主要目标就是通过定义某一领域的术语、边界、共性、差异性等,获得领域模型 ( d o m a i nm o d e l ) 。领域模型描述领域中系统之间的共同的需求。这个阶段的主要活动包括确定领域 边界,识别信息源,分析领域中系统的需求,确定哪些需求是被领域中的系统广泛共享的,哪些是 可变的,从而建立领域模型。 7 江南大学硕士学位论文 图2 - 3领域工程中的活动与结果 f i g 2 - 3a c t i v i t i o sa n dr e s u l t so f d o m a i ne n g i n e e r i n g ( 2 ) 领域设计 这个阶段的目标是获得领域构架( d s s a ,d o m a i n s p e c i f i cs o f t w a r ea r c h i t e c t u r e ) 。d s s a 描述在 领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求 的一个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的领域需求的d s s a 。 由于领域模型中的领域需求具有一定的变化性,d s s a 也要相应地具有变化性。由于重用基础设施 是依据领域模型和d s s a 来组织的,因此在这个阶段通过获得d s s a ,也就同时形成了重用基础设 施的规约。 ( 3 ) 领域实现 这个阶段的主要目标是依据领域模型和d s s a 开发和组织可重用信息。这些可重用信息可能是 从现有系统中提取得到,也可能需要通过新的开发得到。它们依据领域模型和d s s a 进行组织,也 就是领域模型和d s s a 定义了这些可重用信息的重用时机,从而支持了系统化的软件重用。这个阶 段也可以看作重用基础设施的实现阶段。根据所采用的重用策略和领域的成熟、稳定程度,领域实 现的结果可能是一组与领域模型和领域构架相联系的可重用构件,也可能是应用系统的生成器。 领域分析、设计、实现等这些活动的结果产品将是领域模型、领域构架、特定的领域文档、代 码生成器、代码构件等。在领域工程实施的过程中,参与领域工程的人员可以划分为四种角色:领 域专家、领域分析员、领域设计员和领域实现员。需要指出的是,在上述三个阶段之间以及各个阶 段内部,存在大量的迭代工作。 2 2 2 应用工程 应用工程就是开发具体应用程序的过程,与传统的软件开发类似,应用工程也可以划分成需求 分析、设计、实现等几个基本阶段。一组相似或相近应用系统的开发中,必然存在大量的重复开发。 这些重复开发的成分很大程度上反映了这组应用的本质特征。为了进一步提高软件生产率和软件质 量,可利用领域工程开发出这些必需重复开发的系统成分,应用工程充分重用这些系统成分,而将 开发的重点放在该应用系统特殊的成分_ k t 2 0 1 。应用过程中的每一阶段皆可以从构件库中获得可复用 的领域工程结果,并将其作为本阶段集成与开发的基础,应用工程中的活动与结果见图2 4 所示。 8 第二章构件化软件设计 图2 - 4应用工程中的活动与结果 f i g 2 - 4a c t i v i t i e sa n dr e s u l t so fa p p l i c a t i o ne n g i n e e r i n g ( 1 ) 需求分析 本阶段的目标在于:根据领域工程获得的领域分析模型,对照用户需求,确认领域分析模型中 的变化性需求,或者提出新需求,以获得具体应用软件系统的分析模型,包括确定具体的业务模型、 固定领域分析模型中的变化性。 ( 2 ) 系统设计 构件化的软件开发的最根本的特色就是利用已有的构件来构建新的软件,这集中体现在系统设 计阶段,即通过构件组装的方式来设计新的应用软件。围绕着构件组装过程中出现的关键问题,开 展了许多相关的工作,主要包括以下几个方面: 构件选择:在构件库管理器的支持下,从领域设计模型中选择合乎要求的构件。构件库管理 器只提供了选择的实现机制,而选择的策略则需要在本阶段完成。 构件的修改:领域分析模型中的构件包括体系结构构件和功能构件,为了适应领域中的各个 应用,体系结构都故意留有可以修改的地方,另外能够精确满足需求的功能构件也不多,功能构件 也需要进行适应性修改,所以在系统设计中构件的修改非常必要。功能构件的修改是为了消除构件 与系统组装要求之间的不兼容,主要有接口参数不兼容、接口操作名不兼容、接口操作不完全,包 装( w r a p p e r ) 是解决不兼容问题的最常用手段。 构件组装方法 在系统设计过程中常常需要将较小的功能构件组装成体系结构中的粗粒度构件,这个组装过程 常称为自底向上的设计,这个过程没有体系结构作为宏观的指导。构件组装的基本类型有3 种:顺 序组装( s e q u e n t i a lc o m p o s i t i o n ) 、层次组装( h i e r a r c h i c a lc o m p o s i t i o n ) 、加法组装( a d d i t i v ec o m p o s i t i o n ) 。 设计验证与评估 随着应用软件越来越复杂,在设计阶段就对最终的应用系统进行验证和评估,能够较好控制开 发的风险,避免出现大量返工。为了进行设计验证与评估,必须用形式化的方法来描述构件模型( 包 括体系结构和功能构件) ,在此基础上利用工具完成系统的验证和评估。 应用工程中的软件设计是自底向上和自顶向下的结合。它以体系结构为设计指导,通过构件组 装的方式来完成应用软件的设计。 ( 3 ) 系统实现 9 江南大学硕士学位论文 这个阶段完成的主要任务包括:根据系统设计结果,实现构件库中不存在的构件的代码、实现 对已有构件进行适应性修改、编写用来集成所有的构件的代码胶( g l u ec o d e ) ,测试最终的应用系统。 这些工作既可以手工完成,也可以在工具支持下自动化或半自动化完成。 2 2 3 过程管理 在理想情况下,领域工程和应用工程这两个过程应该是完全独立的。这样软件就能真正像传统 产品一样从生产线上被生产出来,即软件生产线的思想。软件生产线让软件产业和传统产业一样, 划分为软件构件业、系统集成组装业和信息服务业三大类,为软件产业的规模化发展提供合理的结 构模式【2 6 】。 软件过程质量决定软件产品质量己被大家广为接受,现有的提高软件过程的方法( 如c m m 等) 、 软件过程模型等需要改进才能适应构件化的软件开发的需要。根据领域工程过程和应用工程过程的 交叉进行的特点,支持构件化的软件开发的过程要

温馨提示

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

评论

0/150

提交评论