




已阅读5页,还剩47页未读, 继续免费阅读
(计算机应用技术专业论文)组件技术在gis领域的应用与研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华l e 电力人学硪七学僚谂文摘要 摘要 近年来,殛囱对象的缀l 牛化软传技术蓬勃发耀,晷瞬上出现了像c 溅、c o r b a 、 j a v a b e a n s 蒋组件的标准和技术,基于组件的软件开发r ( c b d ) 嗣益受到重视。g i s ( 蟪理信息系统) 是一种输入、襻健、管理、分柝和显示地理信息的计肆机系统, 是分析和处理地理空间数描的通用技术。 而且随着计罄机和信息科攀的不峨发展, 由于g i s 系统本身所蕊有的复杂性, 近几十年来,g i s 技术有了惊人的发展, 其应用领域还在不断扩展。 为了旋离软件开发的效率和质量,使用组 件技术来开发g i s 系统就很有必要。本文在介绍软件复用、组件技术和g i s 理论的 基础上,撼出了基予组件的g i s 应用软 孚韵开发摸型,绘出了一个基于m a p o b j e c t s 组件二次开发的市级1 2 0 慧救系缆的开发实例,对玎发过程进行了复用度量。 关键词:组件,软件复用,基于组件的软件开发,地理信息系统 a b s t r a c t u n d e rs u c hc i r c u m s t a n c e ,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 r i v i n gt h e s ey e a r s , a n dt h e r ea r em a n yt e c h n o l o g i e sa v a i l a b l e ,i n c l u d i n gc o m ,c o r b aa n dj a v a b e a n s c o m p o n e n t w b a s e d s o f t w a r e d e v e l o p m e n t ( c b d ) i sr e c e i v i n g c o n s i d e r a b l ea t t e n t i o n w i t h i nt h el a s ty e a r s g i si sa ni n f o r m a t i o ns y s t e mt h a ta c q u i r e s ,s t o r e s ,a n a l y s i sa n d d i s p l a y ss p a t i a ld a t a g i st e c h n o l o g yi sd e v e l o p i n gv e r yf a s tt h e s ey e a r s i no r d e rt o i m p r o v et h ee f f i c i e n c ya n dq u a l i t y i n d e v e l o p i n gg i ss o f t w a r e ,w e p r e s e n tt h ec o m p o n e n t b a s e dg i ss o f t w a r ed e v e l o p m e n tm e t h o d i nt h i sp a p e r ,w ew i l l i n t r o d u c et h et h e o r yo fs o f t w a r er e u s ea n dc o m p o n e n t ,a n dd e s c r i b et h ed e v e l o p m e n t m o d e lo ft h ec o m p o n e n t b a s e dg i ss o f t w a r ed e v e l o p m e n tm e t h o d a tt h ee n do ft h i s p a p e r , w e :w i l tg i v e 越e x a m p l eo fc i t y f i r s ta i ds y s t e mb a s e dt h e c o m p o n e n to f m a p o b j e c t s ,a n a l y s i sr e u s em e t r i c so f t h ed e v e l o p m e n t y u h a i y o n g ( c o m p u t e ra p p l i c a t i o n ) d i r e c t e db yp r o f s o n gy u k e y w o r d s :c o m p o n e n t ,s o f t w a r er e u s e ,c b d ,g i s 华北电力人学硕十学位论文摘要 摘要 近年来,面向对象的组件化软件技术蓬勃发展,国际上出现了像c o m 、c o r b a 、 j a v a b e a n s 等组件的标准和技术,基于组件的软件开发,( c b d ) 月益受到重视。g i s ( 地理信息系统) 是一种输入、存储、管理、分析和显示地理信息的计算机系统, 是分析和处理地理空间数据的通用技术。近几十年来,g i s 技术有了惊人的发展, 而且随着计算机和信息科学的不断发展,其应用领域还在不断扩展。 由于g i s 系统本身所具有的复杂性,为了提高软件开发的效率和质量,使用组 件技术来开发g i s 系统就很有必要。本文在介绍软件复用、组件技术和g i s 理论的 基础上,提出了基于组件的g i s 应用软件的丌发模型,给出了一个基于m a p o b j e c t s 组件二次开发的市级1 2 0 急救系统的开发实例,对开发过程进行了复用度量。 关键词:组件,软件复用,基于组件的软件开发,地理信息系统 a b s t r a c t u n d e rs u c hc i r c u m s t a n c e ,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 s t h r i v i n gt h e s ey e a r s , a n dt h e r ea r em a n yt e c h n o l o g i e s a v a i l a b l e ,i n c l u d i n gc o m ,c o r b aa n dj a v a b e a n s c o m p o n e n t b a s e d s o f t w a r e d e v e l o p m e n t ( c b d ) i sr e c e i v i n g c o n s i d e r a b l ea t t e n t i o n w i t h i nt h el a s t y e a r s g i si s a ni n f o r m a t i o ns y s t e mt h a t a c q u i r e s ,s t o r e s ,a n a l y s i sa n d d i s p l a y ss p a t i a ld a t a g i st e c h n o l o g yi sd e v e l o p i n gv e r yf a s tt h e s ey e a r s i no r d e rt o i m p r o v et h ee f f i c i e n c ya n dq u a l i t yi nd e v e l o p i n gg i ss o f t w a r e ,w e p r e s e n tt h ec o m p o n e n t b a s e dg i ss o f t w a r ed e v e l o p m e n tm e t h o d i nt h i sp a p e r ,w ew i l l i n t r o d u c et h et h e o r yo fs o f t w a r er e u s ea n dc o m p o n e n t ,a n dd e s c r i b et h ed e v e l o p m e n t m o d e lo ft h ec o m p o n e n t b a s e dg i ss o f t w a r ed e v e l o p m e n tm e t h o d a tt h ee n do ft h i s p a p e r ,w ew i l lg i v e a n e x a m p l eo fc i t y f i r s ta i ds y s t e mb a s e dt h e c o m p o n e n to f m a p o b j e c t s ,a n a l y s i sr e u s em e t r i c so f t h ed e v e l o p m e n t y u h a i y o n g ( c o m p u t e ra p p l i c a t i o n ) d i r e c t e db y p r o f s o n gy u k e yw o r d s : c o m p o n e n t ,s o f t w a r er e u s e ,c b d ,g i s 声明 本人郑羹声明:此处所掇交的硕士学位论文组件技术在g i s 领域的应用与研究, 是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作和取得的研究 成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得华北电力大学或其稳教育机构的学位或证书丽 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说鹈并表示了溱意。 学位论文佟蠹签名:髀目攥;碑厂 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的舰定,即:学校有权像管、 并露鸯关部f 送交学位论文蛇愿 孛与复印僭;学铰可强暴熙影印、缨印或其它复利手 段复制并保存学位论文;举校可允许学位论文被查阅或借阅:学校可以举术交流为 目的,复制赠邀和交羧学位论文;鄹意学校w 以用不同方式在不同媒体上发表、传攒学 位论文的全部或部分内容。 ( 涉密瀚学短论文在矮寮嚣遵守越筑瓮) 作者签名导 日 期:矧4 j 日 华北电力大学硕士学位论文 1 1 选题背景 第一章绪论 我们正处在一个软件开发技术的变革时代。一方面各种软件思想、软件技术层 出不穷:另一方面,在我国许多领域,应用软件的开发还处于比较初级的阶段,开 发出来的软件质量差,生产率低,造成大量的人力、时间、金钱的浪费,软件开发 商规模小,竞争力差。不夸张地说,我国的整体软件开发水平处在世界的中下游。 当然,造成这_ 状况的原因是多方面的。但不管是由于什么原因,我们都要从自我 做起,不懈努力,学习先进的软件技术与思想,最大程度的扩大软件生产规模,提 高软件的生产效率。软件复用与组件技术的提出为开发大规模软件系统提供了新的 思路,我们要跟上时代的步伐,将新的软件开发技术应用到软件设计与生产当中。 1 2 软件复用与组件技术 计算机的不断发展为计算机及网络应用提供了大量技术先进、功能强大的应用 软件系统,同时也给软件开发者和用户带来了许多问题:软件系统规模日益庞大, 研制周期长,开发和维护费用高;软件系统过于复杂,在一个系统中集成了各种功 能,大多数功能不能灵活地装卸、单独升级或重复利用:应用软件不易集成,即使 各应用程序是用相同的编程语言编写的,并且运行在相同的计算机上,特定应用程 序的数据和功能也不能提供给其他应用程序使用。 为了克服上述困难,近年来,软件复用( 又叫软件重用) 和软件组件技术受到 广泛关注【l 。j 。使用软件复用技术可以减少软件开发活动中大量的重复性工作,提 高软件生产率,降低开发成本,缩短开发周期。同时,由于软件组件大都经过严格 的质量认证,并在实际运行环境中得到校验,因此,复用软件组件有助于改善软件 质量。此外,大量使用软件组件,软件的灵活性和标准化程度也可望得到提高。采 用基于软件复用的软件组件,将使软件设计生产工厂化成为可能,是未来软件开发 的发展方向。 1 2 1 软件复用的提出 从第一台计算机诞生,计算机硬件技术就以令人吃惊的速度发展,相比之下, 计算机软件的发展明显滞后于硬件的发展速度。早在1 9 6 8 年的n a t o 会议上,就 有人提出了软件危机的说法,当人们进入了新世纪后,虽然软件开发工具、方法目 益丰富,开发水平明显提高,但软件开发的低效率、高成本的情况在根本上并没有 华北电力大学硕士学位论文 任何改观,反而随着软件系统的规模和复杂性不断增长,软件开发人员极度短缺、 开发效率和软件质量不能满足用户的需求,导致软件的需求超过供应( 开发、演化 和维护) 能力,最终延缓经济和社会的发展。 软件危机的发生存在着多方面的因素,包括技术上和非技术上的问题。人们为 此进行了不断的尝试,提出了多种解决方案,比如软件工程环境、面向对象技术等, 进入9 0 年代后,人们提出了软件复用的思想,从目前的发展看软件复用将成为现 实可行的解决软件危机的途径。应用系统的开发不再采用一切“从零开始”的模式, 充分利用过去应用开发中积累的知识和经验,从需求分析到方案设计、源代码、测 试计划等阶段,以已有的工作及案例为基础,发展新的应用系统1 “。 1 2 2 组件技术的提出 目前,软件开发领域,一场新的革命正在悄悄兴起,这是由同趋成熟的组件技 术引发的。几年以前,当微软公司首先推出o l e 的时候,起初衷仅是为了增强软件 的互操作性。然而在使用过程中,人们逐渐认识到这一技术背后的实质性内容和它 在软件开发中所扮演的重要角色。组件技术是继面向对象技术后发展起来的一种新 的软件工程技术,是面向对象技术的延伸。基于组件技术的系统仍然是面向对象的 结构,但系统中的对象是按照规范设计的模块,这些软件模块在系统中共存,并充 分地相互作用。按照这种结构。可以将若干组件组合起来,以建立更大和更复杂的 系统。组件技术以前所未有的方式提高了软件产业的生产效率,这一点已逐步成为 软件开发人员的共识。传统的c s 结构、群件、中间件等大型软件系统的构成形式, 都将在组件的基础上重新构造【1 0 1 。 1 2 3 软件复用及组件技术在国内外的发展与应用“1 国际上,软件复用在领域工程、组件及组件库的标准化、组件组装技术、基于 复用的软件开发过程和重用成熟度模型等方面取得了重大成功。如:卡内基梅隆 大学的软件工程研究所( c m u s e i ) 提出了面向特征的领域分析方法( f e a t u r e o r i e n t e dd o m a i n a n a l y s i sm e t h o d - - f o d a ) ,并将该方法成功地运用于美国空军运动 控制等领域。美国军方与政府资助的项目中,己建立了若干组件库系统,如: c a r d s 、a s s e t ,d s r s 等。s t a r s 项目组于1 9 9 2 年提交了a l o a f ( a s s e sl i b r a r y o p e n a r c h i t e c t u r ef r a m e w o r k 开放体系结构的组件库框架) v e r s i o n l 2 。这一报告体 现了a l o a f 对可重用组件库系统的认识,并就此实现了a l o a f 规约作为该参考 模型的实例。c a l d i e r i 和b a s i l i 提出了基于复用的软件开发过程。i b m 和l o r a lf e d e r a l s y s t e m 公司研究出了重用成熟度模型等等。 在国内,在软件复用方面,杨芙清院士主持的国家重点科技攻关项目青鸟工程, 重点研究了软件的工业化生产流程和软件复用的相关技术,并取得了可喜的研究成 华l e 电力大学硕士学饿论文 果。他们己将该技术应用于桂林圈货大楼、北京前门商场等p o s 系统。 软箨笈翔技术糯己在黧蠹痤蠲予诲多该壤,蛹小鍪搽测卫鐾系绞软牟熬哥笺震 性结构设计,它不仅缩短了开发周期,节省了大缀的人力和财力,而且使得当需要 在墨星上采矮一耱濒技本竣改交琢系统续秘眩,不会出瑗整令垂戳款孛系统戆大量 改动或重新设计。又如“旗于组件技术的商业d d s ”,成用了软件复用恩想,开发 了“镖本曝秘努摄”、“霞燕逶镂率分援”譬蕊监d d s 组终,取褥了令人瀵意的效暴。 3g l s 的出现与发展状璇 地理信息系统l ” 1 7 1 ( g e o g r a p h i ci n f o r m a t i o ns y s t e m 简称g i s ) 是六十年代兴起 的项以计算机为藻础的新技术,围绕着这项技术的研究、开发和应用形成了一门 交义性、边缘性的学科,是管理和研究空间数据的技术系统,在计算机软硬件支持 下,它可以对空间数据按地理坐标或空间位置进行各种处理,对数据进行有效管理, 研究各种空间实体及相互关系。邋过对多因素的综合分析,它可以迅速地获取满足 应愆需要酌信惠,并能戳嫩圈、鬻形或数据的形式表示始理的结果,生成并输穗各 种地理信息,从而为土地利用、资源管理、环境监测、交通运输、经济建设、城市 斌翔以及政府部门行政管理提供薪静知谈,为工程设计幂霸兢戴、管理决策驻务。虽 然g i s 起步晚,但它发展快,目前已成功地应用到一百多个领域。 传统攒s 虽然在功能上已经珑较戒熟,毽莛国予这黧系统多是基予多年静的软 件技术开发的,属于独立封闭的系统。同时,g i s 软件变得日盏庞大,用户难以掌 握,荧震昂赛,疆褥了g i s 豹普及窥应弱。组荇技术豹澎蕊为镣统g i s 覆浆的多种 问题提供了全新的解决思路,使我们能够迅速、方便地开发出低成本、易维护的g i s 系统。 。4 本谍题研究内容 近年寒,在嚣内对象技术的蓥礁上发展超采瓣组传技术在废鼷系缝鼹开发巾开 始越到重要的作用。但在软件生产中,对许多领域都通用的组件是较为难得的。在 专肉领域( 妇g i s 领域中) ,出予目标缀集中,所以组 牛的制 乍不需要在很广熬范 围考虑其通用性,组件库中也不需要包括大量与本领域无关的组件。因此从组件的 开发到组 孛魏存锫与管理郄比较容易,瑟题组 孛黝使用频率和检索效率都会明鼹地 提高。此外,在专向领域的复用中,可复用组件的粒度可以更大。因此在本选题中 我们要在o i s 领域中进行基于组 牛的软件复用的歼发方法的探讨。 与软件复用和组侔技术相关的两个基本拜发活动是面向组件的软件开发 ( s o f t w a r ed e v e l o p m e n tf o rc o m p o n e n t ) 和基于组件的软件开发( 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 2 0 急救系统软件为例,将组件技术引入软件开发过程中, 系统分析基于组件的软件开发方法,总结可重用成熟度模型并对基于组件的软件开 发方法进行评价,对整个系统的开发进行复比率分析。 华北哇圭力大学颂士学位论文 第二搴软件复焉与缀件技术 2 软馋复用( s o f t w a r er e u s e 随着计舞机软传技术鲍发展,人们逐步谈识戮,要粪正实现软 串的工业化,主产 方式,达到软件产业发展所需要的软件生产率和质量,采用软件复用技术是一条现 实霹行的途柽。 2 ,1 ,1 软件复用技术的提蹦 从第一台计算机诞生,计算机硬件技术就以令人吃惊的速度发展,相比之下, 计算机软传的发展明显滞威予硬传的发展速度。旱在1 9 6 8 年鲍n a t o 会议上,就 有人提出了软件危机的说法,当人们进入了新世纪后,鼠然软件开发工其、方法日 益事塞,开发水平明显提避,僵软件开发的低效率、高成本的情况在根本上并没有 任何改观,反而随精软件系统的髋模和复杂性不断增长,软件开发入员极度短缺、 开发效率和软件质爨不能满足用户的需求,导致软件的需求超过供应( 开发、演化 和维护) 能力,最终延缓经济和社会的发展。 软件危机的发,圭存在麓多方面的因素,包括技术上和非技术上的问题。人们为 此避行了不断的尝试,提蹬了多种解决方案,诧鞠软件工程环境、面向对象技术簿, 进入9 0 年代后,人们提出了软件复用的思想,从目前的发展看软件复用将成为现 实可行的解决软件氟辊酌途径。成用系统的开发不再采弼一切“觚零开始”的模式, 充分利用过去应用开发中积累的知识和经验,从需求分析到方案设计、源代码、测 试计翔等除段,戳汪有静工作及案铡为蒸确,发糙薪的斑j 蘑系统。 2 。l + 2 软馋复用的摄念 软件复用,又叫软件黧用。事实上在软件发展的历穰中,软件复用的思想早已 或多或少璁体现在器种系统之中,阮如予程亭的概念正最这种恐愆的反映。软件复 用的概念可以从以下几个方面来着【1 8 l : 对闰维一一软件维护,捷角戳前的软件舨本髂为薪敝本酌基础,热入耨功能, 适应新需求。 平台维一一较佟移植,潋菜个平台上静软释为基穑,修改与乎台稳关的部分, 使其能够运行于新平台。 痘爰缝一一寞歪懿复蠲,将巢软捧( 躐其孛瀚组件) 瘸子箕德应用系统中,新 系统具有不间功能和用途。 华北电力大学硕士学位论文 这三维均体现了复用的概念,但是真正的复用及复用的主旨是为了支持软件跨 应用领域的演化,在软件开发之初即要确立“为复用而开发”的思想,在开发过程 中要尽可能复用已有的软件成果,更快更好地丌发新的应用系统。 21 3 软件复用思想的应用 如何理解软件复用的思想呢? 我们与以往的软件开发过程进行比较,在以往的 软件开发过程中,应用软件系统的一般开发模式如图2 1 所示。 图2 1 以往的软件开发过程 此种模式的基本特征是应用系统的丌发总是从头开始的,每个应用系统的开发 均不考虑复用,未能体现软件复用的思想因而涉及大量的重复劳动。 图2 2 运用软件复州后软件开发的过程 运用软件复用的思想势必需要改变以往的软件开发的模式,软件开发的模式不 6 华北电力人学硕十学位论文 再是一个线性的,而是循环的发展过程了,是从系统分析开始到系统测试运行的各 个环节,建立起与复用组件之间的有机联系,逐步建立应用系统的组件库,随着可 复用的组件日益丰富,软件丌发的效率会逐步的提高。 如图2 2 所示,一个工程丌始是一方面需要复用以往应用系统的经验和成果, 运用于新的工程中,在领域分析、软件结构、组件设计等方面进行复用;另一方面, 在软件开发之初,即考虑软件复用,按照软件复用的要求进行设计、制造和测试, 保留其经验和成果以备未来是用在其他的应用系统中。 2 1 4 软件复用原理 首先,软件复用将软件丌发的冗余工作减少到极小,大幅度缩短软件开发周期, 目前工业产业机器的生产都是将螺钉、螺母、电阻、电容等零件进行组装,然而在 软件产业中目前还没有一套完整的可组装的零部件,这正是软件开发效率和质量问 题的根源所在,也是软件成本高昂的因素之一。多年来,软件工作者一直希望在代 码级上能够重复使用,而且希望在功能级、模块或对象级、子系统级,甚至于在应 用系统级上像机器零部件一样实现软件复活用。如果我们拥有一个可共享的结构合 理的可复用组件库,那么我们的开发工作就会变得简单,我们的精力就从具体设计、 编码、测试中解放出来,投入到分析中来,投入到管理中来。从而在时间上得以保 证,提高生产率,使得质量问题的前提得到解决。 其次,软件复用在技术上克服了开发过程的种种质量问题。 ( 1 ) 采用可复用组件,使需求分析简化,便于描述,领域工程师从领域出发, 界定出可复用的组件,我们可针对具体问题,界定他的领域,然后采用 相应的方式描述出来,从而要以快速生产出原型,同客户进行交互,再 将交互成果分析总结,再生产出原型,如此反复,得到高质量的需求分 析规格书。正因为存在可复用的组件,所以大大地缩短了原型开发的过 程。 ( 2 ) 简化了设计,复用技术在高层次上定义软件的组织,并处理如何将系统 分解为若干单元。组件构造者根据领域特点来一般设计规律,实现系统 结构级复用,构造可复用的系统结构组件,良好的系统结构是简化软件 系统复杂性的关键,还能让大规模的开发单位能以并行方式开展工作。 良好的体系结构便于变更,体系结构要预见可能的变更,与之相应的子 系统和接口应当设计成可变更。这如同盖房屋,有些部分( 地基、外墙) 不常变动,而有的部分( 内墙、内部装修) 常变动,还有的部分( 每间 房内的家具) 变动为频繁。良好的体系结构能降低通信开支出,因为体 系结构为开发者们提供了他们所需要了解的大部分信息( 特别是其它部 华北电力大学硕士学位论文 分能做什么的信息) 。 ( 3 ) 大大提高了编码效率,编码的代码利用率高,都是经过反复测试的组件 成品,转化后就可以解决具体的问题。从而编码在开发周期中所占的比 例进一步减少,代码质量大幅度上升。 ( 4 ) 测试是保证质量的直接手段,测试的成效直接影响到软件的质量,我们 利用可复用的软件测试手段,科学设计试用例,对个有良好体系结构的 采用复用技术形成的程序、文档进行测试,大大提高了可靠性。 最后,复用技术提高了可维护性。维护在软件生存期中所占的比例最大,开销 也大的惊人,往往由于维护困难,导致软件的全盘废弃,重新开发新软件。复用率 是衡量可维护性的一个重要指标,并且这个指标的地位越来越突出。采用复用技术, 可以使系统规模相对变小,程序具有高结构化,模块清晰,可读性强,维护起来就 好像计算机硬件的拆装一样,将错误的零件用某更新的组件替换,方便而有效,维 护成本也大大下降。 目前一些大公司资料表明,软件复用率最高可望达到9 0 ,而且软件复用使得 企业及时满足市场、软件质量、软件丌发费用和维护费用等方面得到显著的改进。 如m o t o r o l a 公司在为编译器和编译器工具编写测试包时,复用率达8 5 ;e y i c s o n a x e 公司的电信开关系统产品,复用率达9 0 :日本的软件大公司在8 0 年代中期 复用率就达到5 0 【 】。 2 1 5 如1 n - - i 成功地运用软件复用 从软件复用的概念及其应用看,如果软件复用技术能够被大量采用,那么回给 我们带来非常多的好处,其优势是非常明显的,主要表现在以下几个方面: 提高软件开发生产率,降低开发成本: 提高系统质量,减少维护代价: 基于相同的标准及规范,提高系统互操作性; 基于可复用组件,支持快速模型; 基于所熟悉的复用基础设施,减少针对新任务的培训开销。 尽管人们已经逐步认识到软件复用的重要意义和作用,但如何成功的复用确实 是摆在人们面前的一个关键问题,不少工程人员即便接受了软件复用思想,在实际 运用过程中还是未能达到预期效果。软件复用不仅仅是技术上的问题,同时也存在 着大量非技术上的因素,比如工程管理、客户关系等。在工程管理上对软件复用的 重视程度不足、对于复用组件管理不善、复用组件欠标准等方面的因素都可能导致 软件复用的低效率甚至是失败。通过对一些工程较为成功地运用软件复用的总结, 可以看出当前软件复用项目成功的几个特点: 华北电力大学硕士学位论文 在小的专用领域: 在很好理解的领域; 当领域知识变动缓慢时: 当存在组件互联标准时; 当市场规模形成时( 大量的项目可以分担费用) : 当技术规模型形成时( 有大量可用的、可获利的组件) 。 2 1 6 软件复用的两种不同策略 软件复用是指在开发新的软件系统时,对已有软件的重新使用,该软件可以是 已存在的软件,也可以是专门设计的可复用组件。能够被复用的制品种类不限于源 代码段,还可以包括设计结构、模块级实现结构、规格说明、文档、变换等【1 9 l 。正 是由于运用软件复用技术存在着许多需要解决的困难问题,在长期发展的过程中, 软件复用采用了两种不同策略( 途径) : 产品复用一一复用已有的软件组件,通过组件集成( 组装) 得到新系统; 过程复用一一复用已有的软件开发过程,是用可复用的应用生成器来自动 或半自动生成所需系统。 产品复用是目前现实的、主流的途径,诸如c o m 、c o b r a 、j a v a b e a n s 等组 件已经被广泛地应用于很多计算机领域。而过程复用是建立在产品复用的基础之上 的,将其扩展到应用系统开发整个过程的复用,依赖于软件自动化技术的发展,目 前只有较少的特殊应用领域使用,是一个值得进一步深入研究的领域。 2 2 组件( c o m p o n e n t ) 技术 2 2 1 组件的概念 组件是软件系统内可标识的、符合某种标准要求的组成成份,可被用来构造其 他软件。类似于传统工业中的零部件。组件可以是被封装的对象类、类树、些功 能模块、软件框架( f r a m e w o r k ) 、软件构架( 或体系结构a r c h i t e c t u r e ) 、文档、分 析件、设计模式( p a t t e r n ) 、代码、测试用例、数据以及其他对开发活动有用的信息。 组件技术世纪面向对象技术后发展起来的一种新的软件工程技术,是面向对象 技术的延伸。基于组件技术的系统仍然是一种面向对象的结构,但系统中的对象是 按照规范设计的模块,这些软件模块在系统中共存,并充分的相互作用 2 0 1 。按照这 种结构,可以将若干组件组合起来,以建立更大和更复杂的系统。组件技术以前所 未有的方式提高了软件产业的生产效率,这一点己逐步成为软件开发人员的共识。 传统的c s 结构、群件、中间件等大型软件系统的构成形式,都将在组件的基础上 9 华北电力人学硕十学位论文 重新构造。 2 2 2 组件的特点 组件具有以下的特点。 ( 1 ) 组件是被封装的软件模块,它隐藏了具体的实现细节,只提供接口供开 发人员使用,这就使得开发人员不必了解组件的内部细节,就能利用组 建方便的构筑应用程序。这种特点还使得组件开发人员可以对组件单独 进行升级,改进原来的功能,却不影响整个应用系统的运行,只要保证 组件对外界的接口保持不变; ( 2 ) 组件的接口必须严格地标准化,这是组件技术成熟的标志之一。目前主 要的标准有m i c r o s o f t 的c o m d c o m 和c o m + ,s u n 的j a v a b e a n s 和 e j b ,o m g 组织的c o r b a ; ( 3 ) 组件的概念是独立于编程语言的,这也就是说,用不同语言编写的组件 应能在一起协同工作,或者说用一种语言编写的组件能在另一种语言编 写的应用程序中很好地工作; ( 4 ) 组件能跨网络而运行。也就是说,组件能被部署到联网的各个计算机上, 它们之间可以通过某种机制互相通讯,从而构筑基于网络环境的分布式 应用程序,实现分布式计算: ( 5 ) 组件的来源广阔。大量成熟的组件可以通过市场购买或者从互联网上免 费下载,可以从自己现有的组件库中获得,也可以重新丌发设计等等。 同时市场的竞争机制还可以促进组建生产的质量提高、种类增加和价格 降低。 通过以上特点及分析,我们可以看到组件可以被重复的使用,而且不受到操作 平台、开发环境甚至是物理计算机的限制。因此,它不同于面向对象方法中的对象 或类,相比之下,组件具有更高的重用度,更灵活的产生方式,也更容易理解和分 发。 2 2 3 用组件进行软件开发的意义 组件的出现改变了传统的软件开发方法,我们可以把软件的需求分解成明确定 义的服务,然后进一步创建具体的物理组件来实现它们。事实上,目前已有许多专 门的组件开发上开发出了大量的能完成特定任务的组件。 用户可以首先考虑购买合适的组件,其次在考虑自行开发,然后将这些组件按 照一定的要求组装起来就能构建自己的应用系统,从而大大提高了工作效率,又便 于日后的修改,从整体上来说降低了开发成本。 1 0 兰! ! 璺垄盔堂塑圭堂垡笙茎 一 2 2 4 三种常用的组件技术标准及比较 现在比较流行的组件模型有m i c r o s o f t 的c o m d c o m 和c o m + ,s u n 豹 j a v a b e a n s 期e j b ,o m g 缀织的c o r b a 。 c o m ( c o m p o r i e n to b j e c tm o d e l ) 是微软公司提出的组件标准及实现。它使开发人 员可以利用c o m 的通信机制组装不同玎发商提供的组件,c o m 的核心是一组应用 程序调用接翻( a p i ) ,该接口提供了创建组侔、缀装组件的方法。它在缀件之间起 到了“胶水”的作用,它使得不相关的软件组件按照有意义的方式连接越来并互相 交嚣。然霜,这些组件可强在客户机和照务器 下面我们将从跨语言操作能力、跨平台操作能力、数据库访问能力、组件之间 的嚣操 筝、技术的成熟幢、公共服务支持等凡个角瘦对这3 静技术进 亍详细的魄较。 ( 1 ) 跨语言操作能力 c o m 缀佟是二进案l 兼容酶,就是谎,c o m 缀辞可敬不惩耋新编译豹情凌下实 现软件的重用。用v i s u a lc 十+ 开发的组件可以在v i s u a lb a s i c 、d e l p h i 等环境中使用。 对予c o r b a 缀俘,蓠先妥嗣i d l ( 撩日定义浯言) 寒定义谈嚣,然看篌蒲i d l 编译器产生客户端的存根代码和服务器端的客户代码。由于很猡语言都有相威的 i d l 编译器产晶,嚣建c o r b a 缝佟熬跨谗言链力镶努,翔票采矮不霜豹i d l 缡译 器分别来产生服务器端代码和客户端代码,甚至可以实现c + + 客户对于j a v a 服务组 孛豹谤竭。 j a v a b e a n s 则只能用j a v a 代码实现,没有跨语言能力。 ( 2 ) 跨乎套搽撵戆力 由于m i c r o s o r 只在w i n d o w s 平台上实现了c o m d c o m 技术,虽然有第三方 翡软傅嚣发囊在u n i x 平套上实瑷了c o m 。瞧建慈戆来谈,跨平台能力不强。 而c o r b a 在不同的平台上都具有相应的产晶,所以c o r b a 的跨平台操作能 力缀好,支持跨平螽的操l 乍。 j a v a 推出的时候的口号是:“一次编写,到处运行”,可见他的跨平台能力之强。 j a v a 通过虚拟枫豹极制,邋避在不同的平台上实现j a v a 寝毅枫,从两获褥优秀的跨 平台能力。 ( 3 数据库访超能力 m i c r o s o f t 开发了基于c o m 技术o l e d b 技术,并鼠在o l e d b 的糖础上察现 7a d o 技术,包括以煎的o d b c 技术,c o m 技术可以通过多种方式来访阅数攒库。 c o r b a 技术对于数攒库的访问则依赖于其实现的平台。 j a v a 提供了数据库访闯a p ij d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) ,提供了统一的访 闷数据库豹方式。只要再翔相应的数据库j d b c 驱动程序,就可以很方便的访闻数 据麾。 华北哇土力火学碳士学位论文 * 一一 一一 ( 4 ) 缍传之蠲静互搽俸 j a v a b e a n s 缀搏与c o r b a 缱份2 _ n 誊在蓉热好麴绦作性。首先,c o r b a 可以 饺蠲j a v a 寒 萋为它鹣一个突凌;冀改,j a v a 现在翼毒了建立在c o r b a i i o p ( i n t e r n e t i n t e 卜p 歌bp r o t o c a l ) 基礁之上懿r m i ,因此,j a v a b e a n 缌馋与c o r b a 缀馋之阗存 农罄蠹始熬聂摄俸。 c o m 缎 睾摄然具蠢与c o r b a 霸j a v a b e a n s 之闻瓣桥( b r i d g e ) ,德是总蛉米魂, 毒莫它鼹鸯豹互操终性誉怒缀好。 ( 5 ) 技术的成熟性 c o m 技术最翅是爝采代替d d e ( 动悉数据交按) 趟 謦为o l e 技术的底屡技术, 经过多年的证明,c o m 技零是成熟、裔效的。但是c o m 是一个渐谶的技术,它在 爨秘弱时候在努务式平螽下豹瘦弱,邀没有考虑瑕务器漆的痘麓。 c o r b a 技术只是个蕊藏,而不楚实现。因豌夺在大量的o r b 产晶酶不同- 歼 发礴豹安瑰。在丰窝了o r b 产品的蕊时,也带采了不鞠o r b 之润礤户搽 乍不兼容 的问题。因诧c o r b a 定义了f l o p ,丽醛解决这个闻题。 j a v a b e a n s 技术已缀疆疆走囱藏熟,两强随罄j 2 e e ( j a v a 2e n t e r p r i s ee d i t i o n ) 的雄 穗,e j b 得廒罔会侥来越多。 ( 6 ) 公莛黻务支掩 c o r b a 在一捺电鹩毽毒候,就驽塞公蔽服务静霪委经,所戳在o m a 懿体系缡祷 孛,不蔽毽捶名字缀务、瓣象骚务、漓惑鞭务、受念髑辩骚努、攀势服务等遮蘩鼹 务,丽藏定义了公羽设藏。 c o m 巴器始烹要麓予案嚣系统,并没蠢考虑裂这鹫金趣缀懿黻务,嚣纛与 m t s ,m s m g 静结食瞧不燕撮筹,随着c o m + 静撵盘,它们之阍虢结合会越来麓妊。 露j a v a 逶l 璧j d n i 、j m s 等泉支持疆录秘游惑激务,它爨怒j 2 e e 熬一个数耱注。 扶敬上懿分褥寐羲,c o r b a 受逶台予企救缀鹃纛麓,瓣为它扶一开始藏考虑 剽遨静念数特羧:嚣c o m 菠零在寮瑟系统上毫经毙羧袋憝,隧萋c o m + 撬毽,它 恣箕毒熬寒越多靛爱整特穗,毽:i 夏是琵较逶盒申书垒鼗瓣应援;焉j a v a b e a n s 采谖, e j b 蕊惑瑷傻它踅逶合乍笼鼹务器螨鹣缝传。因戴在本文中开笈g t s 软传笔喾麓是 m i c r o s o f l 静c o m 缀姊椽壤。 2 ,2 。5a o t i v e x 控俸 控黪憝一静实魏蓑予拣准续稿鹣c o m 对象,憝嚣1 l 霪黢翔最广泛敬较警组 譬。o l e 控件蕊蕊辩控伟佟了藏囊,同对也对控释斡使蹋蠢( 控律容器) 作了福疵静蕊囊,劳萎 跑羧释率势整为严格。 o l e 控佟是从牮麓v b x ( v i s u a lb a s i ce x t e n s i o n s ) 衍纯丽采的。v b x 楚专门掩攥 1 2 华北电力火学硕士学位论文 一 v i s u a lb a s i c 使用的软件组件,因而有相当的局限性,不能满足通用性组件的开发要求。 o l e 控件则利用c o m 提供的基本抽象的特点来支持组件的开发,从而是控件有了更灵 活的开发模式和广泛的应用领域。 早期的o l e 控件规范所规定的接口较多。例如支持自己的用户界面、向控件容器 传递事件、允许容器设置控件属性等。这无疑使控件变得相当复杂,即使它没有用户界 面,也必须支持相应的接口,这种过重的负担在网络上运行时变得不可忍受。而现在的 o l e 控件只要求控件能支持i u n k n o w m 接口和具有自动注册能力即可。为区别早期的 o l e 控件,把现在的o l e 控件称为a c t i v e x 控件。我们在第四章介绍的实例开发时用 到的m a p o b j e c t s 组件就属于a c t i v e x 控件。 2 3 基于组件的软件开发 随着软件规模的不断扩大,其复杂性也不断提高,为了提高软件丌发的效率和 质量,减少不必要的重复劳动,使用基于组件的软件开发技术来开发软件就很有必 要。 图2 3 基于可重用组件的应用软件开发模型 2 3 1 基于组件的g i8 软件开发模型 基于组件的软件开发是一个选择、开发和组装可复用组件的过程。首先对用户 需求进行分析,形成需求分析报告。接着使用合理的分析和体系结构设计方法,精 化适合于分析模型的体系结构风格。一旦体系结构被建立,它必须用组件去充实, 这些组件或者可从组件库中获得,或者根据专门需要而开发。因此,基于组件的开 发的任务流有两个并行的路径( 图2 3 ) 。当可复用组件可被用于潜在地集成进体系 结构中时,它们必须被进行鉴定和适应性修改。当需要新的组件时,必须重新开发, 然后,产生的新组件被组装( 集成) 到体系结构模板中,并进行全面测试。 华北电力大学硕士学位论文 2 3 1 1 用户需求分析 任何应用软件的设计和开发都必须以用户的需求为基础,g i s 应用软件也不例 外。用户需求分析的主要任务是通过知识获取平台从某一领域专家致使那里获取主 题文档和知识库,最终形成需求分析报告。这一阶段工作主要由领域中有丰富知识 的管理人员或顾问完成。主要就系统的总体功能、数据来源、格式和精度、输出成 果、空间分析功能等提出可行性意见,以表格、图示等手段为辅助,形成主题文档 和领域知识库,然后由开发者在软件知识的基础上建立需求报告,需求报告应当包 含主题文档和领域知识库的全部内容,主要有以下几个方面:应用系统的概况、业 务流程、系统的特点和存在问题等。 2 3 1 2 构建合理的软件体系结构 软件体系结构,又常被称为构架,指可预制和可重构的软件框架结构。它的定 义如下: 一个程序或计算系统的体系结构是系统的一个或多个结构,包含软件组件、这 些组件的对外可见的性质以及它们之间的关系。 软件体系结构是软件系统的高级抽象,往往体现了系统开发中最早做出的决 策。它体现了根本性的系统设计思路,对系统起着最为深远的影响。体系结构在明 确了系统的各个组成部分的同时,也限定了个部分间的交
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药费支付协议书
- 硬质合金精加工工岗位知识竞赛考核试卷及答案
- 没有房产证有购房协议书
- 风轮叶片制造工冲突处理能力考核试卷及答案
- 山西省乡宁县2026届数学九上期末检测试题含解析
- 江苏省宿迁市沭阳县2026届七年级数学第一学期期末复习检测试题含解析
- 重庆九龙坡区2026届数学九上期末检测模拟试题含解析
- 推广普通话课件教案
- 中国生物质能源元宇宙投资热点区域研究
- 2025标准居间代理合同范本
- 第二章 有理数及其运算 单元试卷(含答案)2025-2026学年北师大版七年级数学上册
- 印刷厂生产报表编制细则
- 幼儿防触电安全知识培训课件
- 仪表阀门培训课件
- 《诗经·卫风·淇奥》课件
- ULK1:细胞代谢调控网络中的关键节点-自噬与糖代谢的分子机制及功能解析
- 智能交通诱导
- 妇幼健康项目课件
- 梯田文化课件七年级
- CJ/T 164-2014节水型生活用水器具
- 消毒供应中心工作人员 职业安全和防护
评论
0/150
提交评论