(计算机软件与理论专业论文)面向对象框架复用技术研究与应用.pdf_第1页
(计算机软件与理论专业论文)面向对象框架复用技术研究与应用.pdf_第2页
(计算机软件与理论专业论文)面向对象框架复用技术研究与应用.pdf_第3页
(计算机软件与理论专业论文)面向对象框架复用技术研究与应用.pdf_第4页
(计算机软件与理论专业论文)面向对象框架复用技术研究与应用.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

重庆大学硕士学位论文中文摘要 摘要 面向对象框架( 以下简称框架) 是一种大型的面向对象复用技术。它兼有设 计复用和代码复用的优势,为基于复用的软件开发提供了一种强有力的工具。使 用框架开发的应用系统中,大部分的设计和代码由框架提供,这样大大提高了软 件开发的效率并降低了开发的难度。而且,由于框架一般是成熟而稳定的,基于 框架的应用开发还可以极大地提高软件的质量。随着面向对象技术的成熟,框架 的复用将成为软件生产中最有效的复用方式之一。 目前,框架的研究刚刚起步,框架的丌发还缺乏相关工具、方法及过程的系 统支持。这就需要研究者对各种各样的实例进行分析,研究和提炼,为框架方法 学的发展提供新的研究思路。框架的研究将极大地推动软件开发新方法的应用。 本文在对框架技术进行深入分析和研究的基础上,针对框架技术中存在的一 些重点问题,基于在设计模式的抽象语义层次进行框架开发工作的想法,主要做 了以下几个方面的工作: 通过对传统框架开发方法的分析,针对传统的自底向上的框架开发方法开发 周期长,软件可预测性差,开发技巧要求高的问题,提出干中基王丛生夔蔓的且堕 向下的框鏊珏发方法。该方法认为进行领域工程,研究发掘出应用领域可复用的设 计模式,然后基于发掘出的设计模式开发框架是一条完整解决框架开发的有效途 径。 实现了d z o 综合测量与处理系统,该系统属于国家创新技术项目,它包括两 个子系统,原始地震信号采集子系统和交互地震处理子系统。该系统目前已成为产 品,取得了良好的经济效益。 在对地震信号处理领域的知识充分理解的基础上,应用基于设计模式的自顶 向下的开发方法,通过分析交互地震处理子系统,设让出工交皂盐震处理挺鏊, 针对类图表示框架结构复杂,缺乏直观性的问题,论文提出了一种基王篮过 基基逝量堡鲍亘墨? 逗婪羞毽垫叁耋查间盟鱼鱼羞壁友茎壅坦堡挺塞笪图丝垂亘三法 并将该图形表示法应用到交互地震处理框架的表示上。 关键词:软件复用面向对象框架设计模式交互地震处理 重庆大学硕士学位论文英文摘要 a b s t r a c t o b j e c to r i e n t e df r a m e w o r k ( 0 0f r a m e w o r k ) i sal a r g e s c a l es o f t w a r er e u s e t e c h n i q u e i th a st h ea d v a n t a g e sb o t h o fd e s i g nr e u s ea n dc o d er e u s e ,p r o v i d i n ga p o w e r f u lt o o lf o rs o f t w a r ed e v e l o p m e n tb a s e do ns o f t w a r er e u s e am a j o r i t yo fd e s i g n a n dc o d ew o u l dc o m ef r o mf r a m e w o r kw h e ni ti sa p p l i e dt os o f t w a r ed e v e l o p m e n t t h u s g r e a t l yi n c r e a s ee f f i c i e n c y o fs o f t w a r ed e v e l o p m e n t m o r e o v e r ,s o f t w a r e d e v e l o p m e n tb a s e do n0 0f r a m e w o r kw o u l dg r e a t l yi n c r e a s es o f t w a r eq u a l i t yb e c a u s e a p p l i c a t i o nf r a m e w o r ki sa l w a y sm a t u r ea n dh a sl i t t l ed e f e c t s a so ot e c h n i q u eg r o w s m o r em a t u r e ,r e u s eo ff r a m e w o r kh a sb e c a m et h em o s te f f e c t i v ew a yi ns o f t w a r e p r o d u c t i o n p r e s e n t l y , r e s e a r c ho f0 0f r a m e w o r ki sj u s ta tt h eb e g i n n i n gd u et ot h ew i d e s t r a n g et h a to o f r a m e w o r kc o n c e r n e d o of r a m e w o r kd e v e l o p m e n tl a c k so ft h es y s t e m i c s u p p o r t so ft o o l s ,m e t h o d sa n dp r o c e s s e s t h i sn e e d sr e s e a r c h e r st oa n a l y z e ,a b s t r a c t a n dc o n c l u d ev a r i o u sa p p l i c a t i o n ss oa st oo b t m nn e wm e t h o d sf o r0 0f r a m e w o r k m e t h o d o l o g yp r o g r e s s r e s e a r c ho f0 0f r a m e w o r k w i l lg r e a t l yp r o m o t et h ea p p l i c a t i o n o fn e ws o f t w a r ed e v e l o p m e n tm e t h o d s i nt h i sd i s s e r t a t i o n ,t h r o u g hd e e p l yr e s e a r c h i n go n0 0f r a m e w o r kt e c h n i q u e , a i m i n ga ts o m ei m p o r t a n tp r o b l e m s0 0f r a m e w o r kc o n c e m e da n db a s e do nt h ei d e a t h a to of r a m e w o r kd e v e l o p m e n ts h o u l db e e nf u l f i l l e do nt h ev o c a b u l a r yd e s i g n p a t t e r n so f f e r e d ,t h em a i nw o r k sp e r f o r m e di nt h i sd i s s e r t a t i o na r ef o l l o w i n gb e l o w : a i m i n ga t t h ep r o b l e mt h a tl o n g p e r i o do fd e v e l o p m e n t ,b a dc a p a c i t yf o r p r e d i c t i o nm a dh i g hr e q u i r e m e n to fs k i l l so ft r a d i t i o n a ld o w n t o pf r a m e w o r k d e v e l o p m e n tm e t h o d s ,at o p d o w n0 0f r a m e w o r kd e v e l o p m e n tm e t h o db a s e do n d e s i g np a t t e r n s i sb r o u g h tu pt h r o u g ht h ea n a l y s i so ft r a d i t i o n a l0 0f r a m e w o r k d e v e l o p m e n tm e t h o d t h em e t h o db a s e do i lt h em a i ni d e at h a te x t r a c t i n gd e s i g np a t t e r n s f r o ma p p l i c a t i o nd o m a i nt h r o u g hd o m a i ne n g i n e e r i n ga n da p p l y i n gt h ed e s i g np a t t e m s o b t a i n e dt o0 0f r a m e w o r kd e v e l o p m e n ti sa l li n t e g r a t e da n de f f e c t i v ew a yt os o l v eo o f r a m e w o r kd e v e l o p m e n tp r o b l e m d z qi n t e g r a t e dm e a s u r ea n dp r o c e s s i n gs y s t e mi sr e a l i z e d t h es y s t e mb e l o n g st o n a t i o n a lc r e a t i v et e c h n i q u ep r o j e c t s i ti n c l u d e st w os u b s y s t e m s :r a ws e i s m i cs i g n a l s s a m p l i n gs u b s y s t e m ( r s s s s ) a n di n t e r a c t i n gs e i s m i cp r o c e s s i n gs u b s y s t e m ( i s p s ) t h es y s t e mh a sb e c o m eap r o d u c ta n dh a sg a i n e dw e l le c o n o m i cb e n e f i t s ( 9b a s e do nt h eg o o du n d e r s t a n d i n go fk n o w l e d g eo fs e i s m i cs i g n a l sp r o c e s s i n g d o m a i n ,w i t ht h ea p p l i c a t i o no ft h et o p d o w no of r a m e w o r kd e v e l o p i n gm e t h o db a s e d 1 i 重庆人学硕士学位论文英文摘要 o nd e s i g np a t t e r n st h r o u g ha n a l y s i so fi s p s ,t h ed e s i g no fi n t e r a c t i n gs e i s m i cs i g n a l s p r o c e s s i n gf r a m e w o r ka r eg a v e a i m i n ga tt h ep r o b l e mt h a td e s c r i b i n gf r a m e w o r kw i t hc l a s sd i a g r a mi s c o m p l i c a t e d ad i a g r a mi sb r o u g h tu pa n da p p l i e dt oi n t e r a c t i n gs e i s m i cs i g n a l s p r o c e s s i n gf r a m e w o r k t h ed i a g r a ml o o k su p o ne a c ha s s o c i a t eb e t w e e nt w ok e y a b s t r a c tc l a s s e sa sad e s i g np a t t e me i t h e rb o r r o w e do ri n v e n t e d a b s t r a c tc l a s s e sa te a c h e n do fa na s s o c i a t ea c ta sar o l e d e s i g np a t t e r nn a m e sa n dr o l en a m e sh a v eb e e nm a r k u pi nt h ed i a g r a m , k e ”v o r d s s o f t w a r er e u s e ,0 0f r a m e w o r k s ,d e s i g np a t t e r n , i n t e r a c t i n gs e i s m i cs i g n a l sp r o c e s s i n g i l l 重庆大学硕+ 学位论文 1绪论 1 1 概述 1 1 1 软件复用技术的发展 计算机技术的飞速发展使得软件开发的环境日益复杂。应用软件需要具有开 放的系统结构和跨越多个异构平台的能力,这样就导致在应用系统中的软件越来 越庞大,传统的开发技术已远远不能满足需要。在这种情况下,有关软件复用的 研究也就应运而生了。 1 9 6 8 年的n a t o 软件:【:程会议上,m c l l r o y 第一次正式提出了构件化生产的思 想,认为软件产业化应该象硬件和其它工业的产业化一样,主要以提供标准的零 部件为主,软件开发是零部件生产与零部件组装的统一。这类软件的零部件称之 为构件,这样,就能不限制次数的复用这些构件,以提高软件生产率,降低丌发 成本,并提高软件的质量。软件复用由此开始得到广泛的重视。 实际上,软件复用的实践早就存在于程序员的编程工作中。程序员通过源代 码的复制,粘贴来获得复用,这是复用的最原始的方式。这种方式存在的时间很 长,直到今天,这种方式仍然被广泛使用。 在2 0 世纪6 0 年代前以结构化软件开发思想为主导的年代里,软件复用的含 义指一些定义良好的函数包和功能模块。软件复用主要是函数方法、模块、系统 函数库这几种有限的复用形式。在这之后,进入了面向刘象技术方法的发展初期, 这时软件复用的含义就是类库的复用。上述方法技术对软件的生产起了巨大的推 动作用,然而,仍然没有达到人们预期的效果,软件的生产仍然不能满足人们的 需要。 拷贝粘贴、函数方法、模块、系统函数库、通用类库这几种复用方式被认为 是在软件复用发展初期的表现形式,因为这几种复用的着眼点仅局限于对代码的 复用,而编码工作仅仅是软件生产中的一个环节,局限于代码的复用充其量只能 改进编码工作,而不能改进整个软件生产过程。相形之下,设计复用比代码复用 更具有优势。它更一般化,因而能被应用到更广泛的环境中;而且,它在开发过 程的初期就被引入,因此对项目的影响更大。众所周知,系统的编码仅仅占系统 开发工作量的2 0 左右,而系统的分析、设计及维护的工作量占总的开发工作量 的7 0 左右。其中系统的设计凝结了系统架构工程师与领域专家的智慧与心血, 是系统的灵魂所在,决定了一个系统的优劣程度及各种质量特性。 结构化设计是一种面向功能的软件设计方法。它使用数据流将功能模块粘合 在一起,形成完整的系统。但当系统功能需求改变时,会引起功能模块的变化。 噩庆人学硕士学位论文 绪论 如果需求变化涉及到高层功能模块并影响到系统结构时,则整个系统需要重新设 计。因此,结构化设计限制了系统的功能扩展性,损害了功能模块的可复用性。 使用面向对象方法开发的系统具有良好的稳定性。对象将数据和行为封装在 一起,系统功能的变化仅仅影响到某些对象的行为特征的改变,而不会改变系统 的体系结构;同时,对象只能够通过公共接口f 又称协议p r o t o c o l s ) 操纵,从而能 够改变对象的实现细节而不影响操纵对象的客户,因此,系统具有良好的可扩展 性,而面向对象方法的继承特性使系统的部分程序代码得到复用。面向对象技术 是目前最成功的基于复用的软件开发技术。 9 0 年代后,面向对象技术已发展到比较成熟的阶段,构件的内涵也得到了极 大的扩充,它不仅可以指可复用的软件单元,功能模块,也可以是一些可复用的 软件框架,软件体系结构模型等。这时期非常明显的趋势是人们将代码复用与设 计复用相结合,通过封装、继承、多态等支持软件复用的基本机制,以及由此衍 生的仅使用接口( 协议) 为其它部件提供服务的规则,将一些对象及这些对象之 间的结构封装成大粒度的构件,以进行大粒度,大规模的复用。 1 1 2 面向对象框架概述 面向对象框架技术是一种大型的面向对象复用技术。使用面向对象框架技术 可以加强系统的扩充性和代码复用。面向对象框架是对某领域内应用系统的部分 或整体的可复用性设计。它将应用系统的控制流进行抽象,形成更为通用的功能 组件。并且,框架把系统中公用及繁琐部分都隐藏在稳定的界面之下。因此,面 向对象框架稳定的界面和抽象的功能组件增强了系统的可复用性。 面向对象框架是设计复用和代码复用相结合的一种最为重要的形式【2 】。说它是 代码复用的一种形式,是因为它是由一种程序设讨语言写成,是一个应用的半成 品( 应用可以通过扩展框架来实现所需的功能) ,且常常包括具体的立即可用的构 件与子类。但面向对象框架更强调设计复用,它定义了应用的整体结构,框架中 各个构件的主要责任和构件之间的协作。因此也就记录了其应用领域中共同的设 计决策。 第一个广泛应用的框架出现于7 0 年代后期,当时的著名面向对象语言 s m a l l t a l k 一8 0 采用模型视图控制器( m v c ) 框架来构建图形用户界面( g u i p l ,m v c 框架将一个图形用户界面应用划分为三个部件:模型,视图,控制器。模型是不 依赖于用户界面的独立应用对象,视图是它在屏幕上的表示,它必须保证其与模 型的状态一致。控制器与视图搭配,用于控制对用,、输入事件的响应方式。 受m v c 框架影响的最早的图形用户框架是苹果机上的m a c a p p ,它用于实现 基于m a c i n t o s h 操作系统的应用。随之而来的是其它的图形用户框架,这些框架主 要是由一些大学开发的:例如c a r n e g i e m e l l o n 大学开发的a n d r e w t o o l k i t ;s t a n f o r d 2 重庆人学硕上学位论文 大学开发的i n t e r v i e w s ;z u r i c h 大学开发的e t h 。目前,有大量的商业性图形用 户界面框架可供选择,例如o w l ,z a p p ,o p e n s t e p ,m f c 等等。一些框架,象 o p e n s t e p ,只是一个大型系统的- 4 , 部分:另一些框架,如z a p p ,是为_ 丁i = 发便携 式的小型应用而设计的”】。m i c r o s o f t 的m f c 已经成为当代p c 平台上开发图形用 户界面应用的事实标准,它的广泛应用标志着框架在图形用户界面领域的成功。 实际上,框架的应用并不只局限于图形用户界面领域,框架技术还在分布式 实时通信系统中取得了成功,这些技术的核心就是对象请求代理( o r b ) 标准, 它向开发者屏蔽了不同操作系统的复杂性与特殊性,简化了本地对象与远程对象 之间的通信,能够使开发人员迅速地开发出健壮的,复杂的应用程序。广泛采用 o r b 标准的有对象管理组织( o m g ) 的c o r b a 框架,m i c r o s o f t 的d c o m 框架 以及j a v a s o f t 的j a v ar m i 框架。 理论上,框架技术可应用于任何的软件设计领域,而且已经有很多这样的例 子:它们能被用于v l s i 路由算法、超媒体系统;用于建造图形编辑器、操作系统 和网络协议软件;用于制造控制领域。以上只提到了框架的小部分应用。 面向对象框架涉及到的概念和技术方法较多,包括领域工程,设计模式,体 系结构,类库,构件技术等。一方面,当与模式,类库和构件结合在一起使用时, 面向对象框架能明显提高软件质量,降低应用开发的难度;另一方面,进行领域 工程,研究发掘出应用领域可复用的设计模式,基于发掘出的设计模式开发应用 框架是一条完整解决框架复用问题的有效途径。 面向对象框架技术对构造复杂系统的高可靠专用软件具有很高的实用价值, 为软件丌发提供了一种强有力的技术支持。据统计,使用面向对象框架技术开发 应用系统,7 0 以上的设计和代码将由框架提供,这样大大提高了软件生产率与软 件质量。随着面向对象技术的成熟,面向对象框架被认为是一种最有前途的提高 软件重用度和软件生产力的软件复用技术。 1 2 面向对象框架存在的一些问题 面向对象框架涉及到的研究范围极为广阔,对它的研究剐网0 起步,尚有许多 难点有待解决。开发困难,学习曲线不平滑,框架间集成困难,调试和维护困难, 运行效率差与缺乏标准等诸多问题和难点的存在使得建造和使用大型的、可复用 的框架的尝试总归于失败f 1 】: 丌发困难:开发复杂的软件系统已经足够困难,而开发高质量、可扩展、 可复用的复杂应用领域的框架就更加困难。即使在有经验的开发者的头脑中,开 发框架所需要的技巧也是缺乏的。因此,研究框架的目标之一就是希望能揭开与 框架的开发相关的开发过程和设计原则的神秘面纱。 重庆大学硕士学位论文 学习曲线:学会有效地使用面向对象框架需要付出相当大的努力。例如, 使用图形用户界而框架如m f c 或m a c a p p ,达到进行熟练开发的程度一般需要 6 1 2 个月。而且,应用开发人员需要进行专门培训或请专家指导才能学会如何有 效地使用个框架。因此,在框架的作用发挥之前需要进行大量的投资。这种投 资是否合算取决于今后框架的使用情况,取决于学习框架所需要的成本能否由框 架在应用开发中带来的效益所填补并有盈余。但是,在学j j 曲线没有平滑之前, 某个框架是否适合用于开发某个应用系统并没有明确的答案。 框架集成:应用开发越来越多地依靠多个框架间的集成,例如,当前复杂 应用的开发一般都需要g u i ,网络通信,数据库框架间的集成。并且,框架往往 还要同类库,遗留系统,已有的组件起工作。但是,早期的框架在设计时只注 重其内部的扩展性而忽视与外部框架的集成性,使得框架集成问题在应用开发的 各方面显现出来。例如,反向控制是框架的本质特征,而消息循环机制并不能为 与其它框架进行协作提供良好的支持。因此通过该机制集成框架是困难的。 框架的演化:软件应用系统的需求不断地发生变化。因而需要框架不断的 演化以适应这种变化。随着框架的演化,使用框架的应用系统同样需要适应框架 的改变而演化。 框架的维护:框架维护活动即是修改框架以使其适应需求的变化。框架维 护可能发生在功能层次上,例如当某一框架的功能不能全部满足应用开发者的需 要时;框架维护也可能发生在非功能层次上,该层次更注重框架质量方面的特征 如可移植性,可复用性等。框架维护可以采用不同的形式:增加功能、移除功能、 泛化等。深刻地理解框架中的各个构件以及它们之间的交互对成功进行框架的维 护具有本质性的作用。在某些情况下,应片j 开发者或最终用户不得不完全依赖框 架开发者维护框架。 测试:虽然一个设计良好,模块化的框架能够将应用系统中的错误的影响 局部化。但是,由于如下原因,调试一个使用框架开发的应用并确认它的正确性 是极其困难的: 1 通用的组件很难抽象地进行测试。由设计良好的框架提供的组件的典型特征 是能独立于特定的应用系统。它通过子类化,对象组合或者模板参数化来具体实 现。这些方式在增加框架灵活性和扩展性的同时使得单元测试更加复杂,因为这 些组件不能脱离它的实侧而证明其正确性。因此,区分b u g s 属于框架本身的还是 由应用开发人员在编码时引入的是非常困难的。在一般的软件开发过程中,b u g s 町能从很多的源头被引入,例如对需求的错误理解,过分耦合的设计或是不正确 的实现。从框架到特定应用的开发过程中,错误源的数目将会增加。 2 反向控制致使缺乏显式的控制流。由于框架的逆向的控制流在独立于应用的 4 蘑庆大学硕士学位论文 框架基本结构与具体应用的“回调”方法之间来回的交换,因此调试变得非常困难。 单步调试是调试中很重要的方式,它用于观察系统运行时的行为。但是,框架巾 的控制流是内部驱动的,单步调试不能深入到框架代码中。框架代码一般不会提 供给开发者,造成了框架难以理解,这样又增加了调试的困难。 l _ 3 面向对象框架的发展方向 未来一段时间内,框架的研究重点和发展方向二 三要集中在以下几点【1 l : 降低框架开发的代价。传统的可复用框架一般通过概括已有的应用系统而 得到。不幸的是,框架开发人员必须自底向上不断研究系统才能提炼出核心的框 架设计策略和模式。这种增量式的开发过程常常是缓慢和不町预测的。但是,由 于目前已经有许多优秀的框架可供参考,所以下代的框架开发者有望在已有的 知识积累上快速地构思,设计和实现高质量的框架。 更多地集中于特定的企业领域。目前框架的研究领域主要集中在系统体系 结构( 例如,微软的m f c ( m i c r o s o f l f o u n d a t i o nc l a s s e s ) ) 和应用集成中间件( 例如, o p d s ( o b j e c tr e q u e s tb r o k e r ) ) 方面。实际上,现实世界存在许多关键的企业领域,如 制造业、银行业、卫生系统等。多年来,在开发这些企业领域的应用时已经积累 了不少的经验,将这些经验应用到这些急剧增长的领域,开发出更多的企业应用 程序框架。作为回报,更多的应用程序开发人员将直接从这些框架中受益。 黑箱框架。与白箱框架相比,许多专家更推崇黑箱框架,因为黑箱框架强 调对象间的动态联系而不是类之间的静态联系,所以更易扩展和动态配置。随着 开发人员对框架认识上的深入,越来越多黑箱框架将被丌发出来。 框架文档化。正确和易理解的框架记录对大型框架的成功应用至关重要。 但是,框架记录是一项代价很高的活动。目前的工具主要关注低层次的框架组件 中方法的文档化,而忽视框架的设计策略和其组件的合作关系。随着逆向工程工 具( 它可以帮助从代码逆推到类与对象的结构) 的出现和应用,框架记录的正确 性和效果有望得到提升。同时,设计模式的引入,也将提供对框架的高层次的描 述。 对框架开发的管理和度量。框架从开发某些特定应用的解决方案中产生, 被用于提供开发一簇相关应用的解决方案,因此它具有固有的抽象性。这种抽象 使得管理其质量和度量其成果很是困难。因此,研究出能成功开发和使用框架的 过程很重要。通过扩充原型和分阶段地将框架技术引入组织中去,框架开发的风 险有望降低,开发的成功率有望得到大幅提高。 框架标准化。为了开发,记录,集成,维护框架,一套标准是必须的。随 着面向对象框架越来越复杂和越来越广为接受。标准显得越来越重要和不可或缺。 5 重庆大学硕+ 学位沧文 标准可以保证框架的一致性,可以为正确评估框架的成本和保护投资奠定基础。 随着软件行业n 趋标准化,一系列的框架相关标准有望出现,例如框架开发标准, 框架互操作标准,框架集成标准等。 1 4 本文主要研究的内容及组织结构 1 2 节和l t 3 节提出了面向对象框架目前存在的一些问题和难点以及未来的研 究重点和发展方向,为面向对象框架的研究提供了参考。本文j f 是在此基础上, 从理论性与实践性两方面出发,着重研究面向对象框架的开发技术。在对软件复 用技术与面向对象框架技术进行详细地分析与研究的基础上,针对传统的自底向 上的面向对象框架开发方法开发周期长,软件可预测性差,开发技巧要求高的问 题,将设计模式引入自顶向下的框架开发过程中,提出基于设计模式的自顶向下 的框架开发方法。该方法认为进行领域工程,研究发掘出应用领域可复用的设计 模式,然后基于发掘出的设计模式开发应用框架是一条完整解决框架复用问题的 有效途径。 在对地震信号处理领域的知识充分理解的基础上,应用基于设计模式的自顶 向下的框架开发方法,通过分析国家创新技术项目“d z q 浅层地震仪综合测量与 处理系统”,发掘地震信号处理领域可复用的设计模式,设计出了交互地震处理框 架。 在对交互地震处理框架的研究过程中,针对类图表示框架结构复杂,缺乏直 观性的问题,提出了一种基于设计模式所提供的语义,通过关键抽象类之间的角 色关联方式来描述框架的图形表示法,并将该图形表示法应用到交互地震处理框 架的表示上。 本文的组织结构如下: 绪论:概述框架技术的发展背景、存在的问题、未来的发展趋势。 软件复用技术 这一部分主要从技术的角度讨论了软件复用的一般性概念、软件复用的历史 和现状、软件复用关键技术、基于复用的软件开发模型、软件复用中存在的问题。 面向对象框架 这一部分主要讨论框架的一般性概念、框架的分类、框架的文档化,并且将 框架同其它相关的复用技术进行比较,力图能够比较准确地理解框架。 基于设计模式的自顶向下的开发方法 通过对传统框架开发方法进行分析,针对传统的自底向上的面向对象框架开 发方法开发周期长,软件可预测性差,开发技巧要求高的问题,提出了一种基于 设计模式的自顶向下的框架开发方法。认为进行领域工程,研究发掘出应用领域 6 重庆大学硕士学位论文 可复用的设计模式,然后基于发掘出的设计模式开发应用框架是一条完整解决框 架复用问题的有效途径。这一部分将设计模式和框架的演化作为背景进行了讨论, 并给出了基于设计模式的自顶向下的框架开发方法的主要思想和开发过程。 交互地震处理框架的设计 对笔者作为主要开发成员参与的国家创新技术项目“d z q 浅层地震仪综合测量 与处理系统”进行概述。在对地震信号处理领域知识充分理解的基础上,应用基 于设计模式的自顶向下的框架开发方法,通过分析该项目,发掘领域可复用的设 计模式,设计出交互地震处理框架。针对使用类图表示框架结构复杂,缺乏直观 性的问题,论文提出了一种基于设计模式所提供的语义,通过关键抽象类之间的 角色关联方式来描述框架的图形表示法,并将该图形表示法应用到交互地震处理 框架的表示上。 结束语 对论文工作进行总结,并列举出一些需要进一步完善的工作。 7 重庆人学硕十学位论文 2 软件复用技术研究 2 软件复用技术研究 可复用性是人类解决问题时普遍使用的一个概念。目前的状况是方面有大 量的软件要开发,要维护。软件危机依然严重存在;另一方面是有大量的重复工 作存在。如:据美国加州的一项调查结果显示,在商业银行和保险业务应用系统 中,7 5 的功能重复她出现在多个系统中。现在越来越多的人已经认识到,解决软 件危机的一个重要途径就是采用软件复用技术。 2 1 软件复用的概念 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是开发应用系 统不再采用一切“从零丌始”的模式,而是以已有的工作作为基础,充分利用过去应 用系统开发中积累的知识和经验,从而将开发的重点集中在应用的特有构成成分 上面。 许多研究人员从各自不同的角度对软件复用这个概念作了说明:b i g g e r s t a f f 和r i t c h e r 认为软件复用是在新的开发项目中使用以前已获得的概念和对象;t r a c z 对软件复用的定义是,复用特别为复用目的而设计的软件的过程。这个定义认为 软件复用具有事先性,而将复用不是特别为复用目的设计的软件的过程称之为软 件挽救4 1 ;g a m b h i r 把在多个应用中使用相同的软构件称作软件复用,不区分软件 复用与软件挽救之间的区别。目前广泛为人们接受的软件复用的定义主要吸收了 t r a c z 的思想,认为软件复用是指重复使用“特别为复用目的而设计的软件”的过 程,而可复用软件则是指为了复用目的而设计的软件,是指在开发新的应用系统 时重复使用以前的资源,如设计、代码、测试用例、度量、过程、丌发知识和经 验等。 软件复用强调复用的目的。它是一种系统化的方法,为了复用而进行设计, 为了复用而进行开发。并且要有效地组织和管理这些可复用资源,方便人们奄找 和使用。软件复用一定要有软件开发的积累,有了一定的积累后才能进行软件复 用。可复用的现有软件资源是软件复用技术的核心。町复用软件( 构件) 的获取、 管理和利用是构成软件复用的三个基本要素。可复用软件的获取有两层含义:一 是将现有的软件抽象成可复用的,以便构成新的软件系统;二是从复用库中选取 针对具体问题的可复用软件。可复用软件的管理完成对复用库的组织,以达到能 够有效地纽织、管理和扩充可复用软件的目的。可复用软件的利用是获取和管理 的目的,其过程包括根据要求选择抽象的可复用软件,并对其进行适应性修改, 以将其集成到现行开发的软件系统中去。 重庆人学硕士学位论文 2 软件复用技术研究 通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除重 复劳动,从而提高了软件开发的效率。同时,通过复用高质量的已有开发成果, 避免了重新开发可能引入的错误,从而提高了软件的质量。总结起米,复用的优 势可归结为:提高生产率、提高软件质量、减少维护代价、提高互操作性、支持 快速原型法、减少培训开销。 2 2 软件复用研究历史与现状 软件复用的实践已经存在很长时间,从最初程序员对源代码简单的拷贝、粘 贴到子程序的概念都体现了复用的思想。但是,从严格的意义上说,对源代码拷 贝、粘贴并不属于软件复用的一种表现形式。而使用子程序的目的是为了节省当 时昂贵的机器内存资源,并不是为了节省开发软件所需的人力资源。然而子程序 的概念可以用于节省人力资源的目的,从而出现了通用子程序库,供程序员在编 程时使用,也引起了人们对软件复用概念及方法的关注。 软件复用概念的第一次引入是在1 9 6 8 年n a t o 软件工程会议上,m c l l r o y 的 论文“m a s sp r o d u c e ds o f t w a r ec o m p o n e n t s ”中。希望通过代码复用达到软件开发的 大规模生产。m c i l r o y 设想软构件可根据它们的通用性、性能、应用平台等进行分 类,使复杂的软件系统的开发可以同硬件的生产一样,通过组合标准的构件得到。 在其后的发展过程中,出现了许多成功的复用实践活动,产生了许多的复用 技术研究成果。但是,复用技术在整体上对软件产业的影响并不尽如人意。这是由 于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原 凼。 近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基 本的技术支持。软件复用研究重新成为热点。人们根据复用的对象,将软件复用 分为产品复用和过程复用。产品复用复用已有的软件构件,通过构件集成( 组装) 得到新系统。过程复用指复用已有的软件开发过程,使用可复用的应用生成器来 自动或半自动地生成所需系统。从软件复用的发展初期开始,人们就将研究的重 点放在产品复用上面。从软件复用初期的发展形态和软件复用的定义可以清楚地 看到这点。这也符合人们的思维习惯。发展到目前,相对于过程复用,产品复 用同样是被研究得更多、应用前景也更加广阔的。 从目前的软件复用发展程度这个意义上讲,产品复用就是基于构件的软件复 用。它是指把软件的开发看作是一个组装过程,在软件体系结构的指导下寻找可 复用构件进行系统的组装。这罩所指的可复用构件包括面向对象框架,但框架有 其特殊性。一般的,对于基于构件的软件复用,研究得比较多的是有关构件的分 类、检索、定制和组合等过程。这些过程大多是基于可复用构件库( r c l ) ,因此, 9 重庆大学硕十学位论文 2 软件复用技术研究 r c l 的组织和管理也会是研究的重点。 2 3 软件复用的关键技术 实现软件复用的关键技术主要包括:软件构件技术( s o f t w a r ec o m p o n e n t t e c h n o l o g y ) 、领域工程( d o m a me 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 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 e p r o c e s s ) 、c a s e 技术等1 4 ”。实现软件复用的各种技术因素( 还包括非技术因素, 但是本文从技术角度出发不对其进行讨论) 是互相联系的。如图2 i 所示,它们结 合在一起,共同影响软件复用的实现。 图2 1 实现软件复用的关键技术 f i g2 1k e yt e c h n i q u eo f s o f t w a r er e u s e 软件构件技术 构件( c o m p o n e n t ) 是指应用系统中可以明确辨识的构成成分。而可复用构件 r r e u s a b l ec o m p o n e n t ) 是指具有相对独立的功能和复用价值的构件。随着对软件复 用理解的深入,构件的概念已不再局限于源代码构件,而是延伸到系统和软件的 需求规约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他对开 发活动有用的信息。这些信息都可以称为可复用软件构件。 软件构件技术是支持软件复用的核心技术,是近儿年来迅速发展并受到高度 重视的一个学科分支。其主要研究内容包括:1 构件获取:有目的的构件生产和从 已有系统中挖掘提取构件;2 构件模型:研究构件的本质特征及构件间的关系;3 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题;4 ,构 件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支 持构件的有效管理;5 构件复合组装:在构件模型的基础上研究构件组装机制,包 1 0 重庆大学硕士学位论文 2 软件复用技术研究 括源代码级的组装和基于构件对象互操作性的运行级组装;6 南准化:构件模型的 标准化和构件库系统的标准化。 软件体系结构 软件体系结构是对系统整体结构设计的刻画,包括全局组织与控制结构,构 件间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元 素集成,伸缩性和性能,设计选择等。软件体系结构研究如何快速、可靠地从可 复用构件构造系统的方式,着重于软件系统自身的整体结构和构件问的互联。其 中主要包括:软件体系结构原理和风格,软件体系结构的描述和规约,特定领域 软件体系结构,构件向软件体系结构的集成机制等。 框架可以看作是特定领域软件体系结构的实现,它使用一种编程语言实现了 系统的整体设计格局,为构件的组装提供了基础和上下文,具有直接使用性;另 外,为复用而开发的软件框架可以作为一种大粒度的、抽象级别较高的软件构件, 因为它同样具有模块化和封装的特征,同样可以加入到复用库中,同样需要分类 检索和配嚣管理。 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过 程,它覆盖了建立可复用软件构件的所有活动。领域是指一组具有相似或相近软 件需求的应用系统所覆盖的功能区域。领域工程包括三个主要的阶段: 领域分析:这个阶段的主要目标是获得领域模型( d o m a i nm o d e l ) 。 领域设计:这个阶段的目标是获得领域构架( d o m a i n s p e c i f i cs o f t w a r e a r c h i t e c t u r e ,缩写为d s s a ) ; 领域实现:这个阶段的主要行为是定义将需求翻泽成由可复用构件创建的系统 的机制。这些活动的产品( 可复用的软件构件) 包括:领域模型、领域构架、领域特 定的语言、代码生成器和代码构件等。 软件再工程 软件复用中的一些问题是与现有系统密切相关的,如:现有软件系统如何适 应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、可复用的系 统软件构架并提炼出可复用的软件构件? 现存大量的遗产软件系统( l e g a c y s o f t w a r e ) f 1 3 于技术的发展,正逐渐退出使用,如何对这些系统进行挖掘、整理, 得到有用的软件构件? 已有的软件构件随着时间的流逝会逐渐变得不可使用,如 何对它们进行维护,以延长其生命期,充分利用这些可复用构件等等。软件再工 程( s o f t w a r er e e n g i n e e r i n g ) i t 是解决这些问题的主要技术手段。 软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起来,将 现存系统重新构造为新的形式。再工程的基础是系统理解,包括对运行系统、源 重庆大学硕士学位论文2 软件复用技术研究 代码、设计、分析、文档等的全面理解。但在很多情况下,由于各类文档的丢失, 只能对源代码进行理解,即程序理解。 开放系统技术 开放系统技术的基本原则是在系统的开发中使用接口标准,同时使用符合接 口标准的实现。这些为系统开发中的设计决策,特别是对于系统的演化,提供了 一个稳定的基础。同时,也为系统( 子系统) 间的互操作提供了保证。开发系统技术 具有在保持( 甚至是提高) 系统效率的前提下降低开发成本、缩短开发周期的可能。 对于稳定的接口标准的依赖,使得开发系统更容易适应技术的进步。当前,以解 决异构环境中的互操作为目标的分布对象技术是开放系统技术中新的主流技术。 开放系统技术为软件复用提供了良好的支持。特别是分布对象技术使得符合 接口标准的构件可以方便地以“即插即用”的方式组装到系统中,实现了黑箱复用。 这样,在符合接口标准的前提下,构件就可以独立地进行开发,从而形成独立的 构件制造业。 软件过程 软件过程又称软件生存周期过程,是软件生存周

温馨提示

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

评论

0/150

提交评论