(计算机软件与理论专业论文)软件复用效率实践分析.pdf_第1页
(计算机软件与理论专业论文)软件复用效率实践分析.pdf_第2页
(计算机软件与理论专业论文)软件复用效率实践分析.pdf_第3页
(计算机软件与理论专业论文)软件复用效率实践分析.pdf_第4页
(计算机软件与理论专业论文)软件复用效率实践分析.pdf_第5页
已阅读5页,还剩54页未读, 继续免费阅读

(计算机软件与理论专业论文)软件复用效率实践分析.pdf.pdf 免费下载

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

文档简介

哈尔滨r = 程大学硕十学位论文 摘要 随着软件数量急剧膨胀,软件需求日益复杂,计算机软件的开发和维护 过程中遇到的一系列严重问题,即所谓的“软件危机”。危机主要表现为软件 需求与软件生产效率,软件质量之间的矛盾;软件应用与软件维护之间的矛 盾。软件复用被视为解决软件危机的现实可行的途径。 本文首先对软件复用的基本概念,研究现状和软件复用目前存在的问题 进行系统介绍,详细论述软件构件,领域工程等软件复用的关键技术。然后 介绍软件方法学的基本概念及分类,阐述两种软件方法即面向对象的软件开 发方法和面向目标的软件开发方法,分析二者在软件复用上的差异。 面向目标的技术是一种新的软件技术,本文重点研究面向目标的方法。 详细介绍一种面向目标的软件开发平台零码软件生产平台,该平台实现 面向过程类业务领域的零代码软件开发,通过对业务目标抽象,进行过程建 模和子功能建模,软件的开发即日标精化和目标操作化过程。文章以m s s 作为支持面向目标开发的工具,以v e a 作为支持面向对象开发的工具,将软 件开发从需求分析,系统设计到代码实现,作详细的开发效率比较和复用比 较。经分析得出结论,m s s 的开发采用知识复用技术与传统的代码复用技术 不同,m s s 的开发效率是v e a 开发效率的5 至7 倍。 文章以银行信贷系统的实际开发过程为例,采用面向对象和面向目标的 两种软件方法分别做开发比较和复用比较。通过实际开发用时比较,验证分 析结果。 关键词:软件复用;面向目标;面向对象:软件生产平台;零代码编程 哈尔滨工程大学硕十学位论文 a b s t r a c t a l o n gw i t ht h es o r w a r eq u a n t i t ys h a r pg r o w t h ,t h es o f t w a r ed e m a n di sm o r e a n dm o r ec o m p l e x ,t h ec o m p u t e rs o f r w a r ed e v e l o p m e n ta n dt h em a i n t e n a n c em e e t as e r i e so fs e r i o u sq s t i o 眦,n a m e l ys o c a l l e d s o t t w a r e c r i s i s ”t h em a i n m a n i f e s t a t i o n so ft h ec r i s i sa r ct h ec o n t r a d i c t i o n so fs o f t w a r ed e m a n da n d s o r w a r ep r o d u c t i o n e f f c i e n c y , s o f t w a r eq u a l i t y , s o r w a r ea p p l i c a t i o n a n d s o f t w a r em a i n t e n a n c e 1 1 s o f t w a r er e u s ei sc o n s i d e r e da sar e a l i t ya n df e a s i b l e w a yt os o l u t es o f t w a r ec r i s i s f i r s t ,t h i st h e s i si n t r o d u c e ss y s t e m a t i c a l l yt h eb a s i cc o n c e p t so fs o f t w a r e r e u s e ,s o r w a r er e u s es t a t u sa n dt h ec u r r e n tp r o b l e m so fs o r w a r er e u s e n l ek e y t e c h n o l o g i e s o fs o f t w a r er e b s es u c ha ss o f t w a r e c o m p o n e n ta n dd o m a i n e n g i n e e r i n gi sd e t a i l e d t h e n ,t h eb a s i cc o n c e p t sa n dc l a s s i f i c a t i o n so ns o f t w a r e m e t h o d o l o g ya r ei n t r o d u c e d n o w , t h e r ea r et w om e t h o d so fs o f t w a r e d e v e l o p m e n tw h i c ha r eo b j e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n tm e t h o d sa n d g o a l o r i e n t e ds o f t w a r ed e v e l o p m e u tm e t h o d s 1 1 l et h e s i sm a i n l ya n a l y z e st h e d i f f e r e n c eo f t h et w od e v e l o p m e n tm e t h o d so ns o f r w a r er e u s e g o a l - o r i e n t e dt e c h n o l o g yi san e ws o f t 、:v a r et e c h n o l o g y 1 1 圮t h e s i sm a i n l y c o n c e n t r a t e so ng o a l - o r i e n t e ds o r w a r em e t h o d s ak i n do f g o a l o r i e n t e ds o f t w a r e d e v e l o p m e n tm e m o d - s o r w a r ep r o d u c ep l a t f o r mw i t hz e r o c o d ed e v e l o p m e n t i si n t r o d u c e dp r i m a r i l y t h i ss o f t w a r ep r o d u c ep l a t f o r mc a ni m p l e m e n ts o r w a r e d e v e l o p m e n tf o r t h e p r o c e s sd o m a i n w i t ht h es o f t w a r ep l a t f o r m ,s o f i 、】v a r e d e v e l o p e ra b s t r a c t sg o a lo fb u s i n e s s ,m o d e l i n gp r o c e s so ft h eb u s i n e s sa n d m o d e l i n gs u b - f u n c t i o n 1 1 1 es o f t w a r ed e v e l o p m e n tp r o c e s si sap r o c e s so f t h eg o a l r e f i n e da n dt h eg o a lo p e r a b l e m s sc o n s i d e r e dat o o lt os u p p o r tt h eg o a l o r i e n t e d a n dv e ai sat o o lt o s u p p o r tt h eo b j e c t - o r i e n t e d t h i st h e s i sc o m p a r e s d e v e l o p m e n te f f i c i e n c ya n dr e u s eo fg o a l o r i e n t e ds o f t w a r em e t h o d sa n d o b j e c t - o r i e n t e ds o f t w a r em e t h o d si nd e t a i lf r o mt h ea n a l y s i s d e s i g nt or e a l i z a t i o n 哈尔滨i :稃人学硕十学位论文 a f t e ra n a l y s i s ,i td r a w sac o n c l u s i o n m s su at e c h n o l o g yo fk n o w l e d g er e u s e , w h i c hi sd i f f e r e n tf r o mc o d el e u 船t h a ti sat r a d i t i o n a ls o f t w a r er e u s et e c h n o l o g y n 圮s o f t w a r ed e v e l o p m e n te f f i c i e n c yo fm s si sf i v et i m e st os e v e nt i m e sf a s t e r t h a nv e a a sa l le x a m p l et h ed e v e l o p m e n to ft h eb a n kc r e d i ts y s t e m ,t h i st h e s i s c o m p a r e sg o a l - o r i e n t e ds o f t w a r em e t h o d sw i t ho b j e c t - o r i e n t e ds o f t w a r em e t h o d s f r o ma n a l y f i s ,d e s i g nt or e a l i z a t i o n t h r o u g hc o m p a r et h ed e v e l o p m e n te f f i c i e n c y , a n a l y t i c a lr e s u l t sc a l lb ep r o v e d k e y w o r d s :s o f t w a r e r e u s e ;g o a l - o r i e n t e d ;o b j e c t o r i e n t e d ;s o f t p r o l i n e p r o d u c ep l a t f o r m ;z e r o - c o d ed e v e l o p m e n t 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下, 由作者本人独立完成的。有关观点、方法、数据和文献等的 引用已在文中指出,并与参考文献相对应。除文中已经注明 引用的内容外,本论文不包含任何其他个人或集体已经公开 发表的作品成果。对本文的研究做出重要贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律 结果由本人承担。 作者( 签字) :盗鱼垒昌 日期:唧年,月f r 日 哈尔滨t 程大学硕十学位论文 第1 章绪论 随着计算机技术的不断发展,计算机己经对人类社会产生了前所未有的 影响,许多人的工作和生活已经离不开计算机,而软件是计算机系统中的关 键部分,各行各业包括个人都对软件寄予更多的希望。但面对各种不断发展 变化的复杂和新的需求,传统的软件开发方法无论是在软件开发效率上还是 软件质量上都显得力不从心,软件业面l 临着越来越大的压力。 1 1 课题的提出 1 9 6 8 年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术 会议上第一次提出了“软件危机”。 软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重 问题。如何开发软件以满足不断增长,日趋复杂的需求及如何维护数量不断 膨胀的软件产品是目前软件危机主要面临的问题。 6 0 年代的软件危机的出现,使人们认识到软件开发不是某种个体劳动的 神秘技巧,而应是一种组织良好、管理严密、各类人员协同配合、共同完成 的工程项目。必须充分吸收和借鉴人类长期以来从事各种工程项目所积累的 行之有效的原理、技术和方法。提出了必须以工程学的原理、技术和方法来 指导和从事软件生产,从而产生了“软件工程学”,也引起了有关软件复用的 研究。 软件复用,广义的说,就是运用现存系统的人工制品或工程知识构造新 的系统。简单地说。软件复用就是在构造新软件系统的过程中使用现存的软 件制品。软件复用是指在开发新的软件系统时,对已有软件的重新使用,该 软件可以是已存在的软件,也可以是专门设计的可复用构件。能够被复用的 种类不限于程序源代码,还可以包括设计结构、模块级实现结构、规格说明、 文档等。软件复用被认为是解决软件危机,实现软件生产工业化的有效途径 之一,是未来软件产业发展的必然趋势n ,经过3 0 多年的不断研究和发展, 软件复用技术逐渐成熟,由探索阶段过渡到应用阶段,出现了一些以复用思 1 哈尔滨丁程大学硕士学位论文 想为指导的软件开发方法。本文将这样的方法称为面向复用的软件开发方法。 面向对象的软件开发方法,其概念来源于程序设计。从2 0 世纪6 0 年代 提出面向对象的概念,到现在已发展成为一种比较成熟的编程思想,并且逐 步成为目前软件开发领域的主流技术。有一种普遍的认识:面向对象的方法 是一种创建可互换可复用部件的可行技术。支持软件复用是人们对面向对象 方法寄托的主要希望之一,也是这种方法受到广泛重视的主要原因之一。面 向对象方法之所以特别有利于软件复用,是由于其主要概念及原则与软件复 用的要求十分吻合。但是,大量的实践证明,面向对象的方法对软件复用的 支持效果并不十分明显。 面向目标的技术是一种新的软件技术,目标是系统需要达成的目的,是 对意向的一种说明性描述。这里的系统指的是软件以及软件运行的环境。近 年来,面向目标的方法学倍受关注,该方法把领域目标进行抽象,再进行目 标精化和操作化,可以高效,高质量的完成软件歼发。通过领域建模、构件 建模等手段更加有效的支持软件复用。 针对以上现状,有必要将面向对象和面向目标的软件方法作分析和比较, 对二者的开发效率和复用度作比较。从而为迅速膨胀的大规模软件生产寻求 最佳的技术和方法。 1 2 研究的内容和组织 本论文分析并比较面向目标的软件技术与面相对象的软件技术开发效率 和复用效率的差异。介绍了软件复用的基本概念及特征,并指出实现复用的 关键技术。重点讨论面向对象的方法和面向目标的方法对软件复用的支持, 详细论述了面向目标的软件开发过程。文章结合实际的银行信贷系统开发对 上述的分析结果作验证。本文的组织结构如下; 第1 章介绍课题的提出背景和意义、论文的研究内容和论文的组织结构。 第2 章介绍软件复用概念、软件复用的实现技术及软件复用面临的问题; 介绍软件方法学的概念和分类,面向对象的软件方法及对软件复用的支持, 面向目标的软件方法及对软件复用的支持。 第3 章主要阐述面向领域的软件生产的产生背景、特点及开发模式。该 2 哈尔滨一 程大学硕十学位论文 开发模式解决了软件的需求分析和系统设计、设计阶段和实现阶段的语义断 层问题,及对开发人员技术水平要求过高,导致的软件质量和效率低下的问 题。最后从软件复用角度分析面向领域的软件生产。 第4 章分析以上介绍的两种开发方法,通过两种方法的需求工程支持工 具v e a 和m s s 进行项目开发的实际用时比较,得出结论。 第5 章针对以上分析结果以银行信贷系统的实际开发为例,经过开发用 时的比较,验证f 暂述结论。 哈尔滨。i :程大学硕十学位论文 第2 章软件复用与软件方法学 本章主要介绍软件复用的基本概念、研究现状和关键技术,并从软件方 法学的角度论述面向对象的软件开发和面向目标的软件开发对软件复用的支 持。 2 1 软件复用概述 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系 统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充 分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方 案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有 构成成分。 通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消 除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件 开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能 引入的错误,从而提高了软件的质量。 软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地, 可复用软件是指为了复用目的而设计的软件。与软件复用的概念相关,重复 使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过 程,或在一个应用系统的不同版本间重复使用代码的过程。 软件复用可以从多个角度进行考察m 。依据复用的对象,可以将软件复用 分为产品复用和过程复用。产品复用又称组装式复用,指复用已有的软件构 件,通过构件集成( 组装) 得到新系统。过程复用又称生成式复用,指复用 已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需 系统。过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应 用领域。产品复用是目前现实的、主流的途径。依据对可复用信息进行复用 的方式,可以将软件复用区分为黑盒复用和白盒复用。黑盒复用指对已有构 件不需作任何修改,直接进行复用。这是理想的复用方式。自盒复用指已有 4 哈尔滨丁程大学硕十学位论文 构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使 用。而在大多数应用的组装过程中,构件的适应性修改是必需的。依据复用 的组织方式,可将复用区分为系统化的( 或有计划的) 软件复用和个别的( 或 “机会主义的”) 软件复用。 2 。2 软件复用研究现状 国际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、 基于复用的软件开发过程和复用成熟度模型等方面取得了重大成功。实现软 件复用的技术主要有软件构件技术、领域工程、软件构架、软件再工程、开 放系统、软件过程、c a s e 技术等。下面我们介绍实现软件复用的几个关键 技术。如:卡内基梅隆大学的软件工程研究所( c m u s e i ) 提出了面向特征 的领域分析方法( f e a t u r e - o r i e n t e dd o m m na n a l y s i sm e m o 卜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 yo 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 n1 2 ,这一报告体现了a l o a f 对可复用构 件库系统的认识,并就此实现了a l o a f 规约作为该参考模型的实例。c a l d i c d 和b a s i l i 提出了基于复用的软件开发过程。i b m 和l o r a lf e d e r a ls y s t e m 公司 研究出了复用成熟度模型等等。 国外大型软件公司在所提供的集成开发环境中也隐含有软件复用技术, 为开发者提供了使用方便、性能可靠的软件构件。例如,m i c r o s o f t 公司的系 列可视化产品、e s i u 公司的m a p o b j e c t s 和i n t c r g r a p h 公司的g e o m e x i i a 等。 在国内,软件复用的理论研究和实际工程已被人们普遍关注。在理论上, 北京大学、中科院软件所、吉林大学、南京大学、青鸟公司、中软公司等均 采用基于构件技术开发应用软件,积累了不少经验,获取很好的效益。 随着i n t e m e t 的发展,软件产业的发展形态也发生了很大的变化,基于 计算机网络的软件产业,已从封闭的自给自足软件开发方式,逐渐演变为基 于软件复用的开发模式。目前,在美、日等国家已产生通过电子商务将构件 取出、整合、组装,从而形成应用软件系统的软件开发产业。 哈尔滨:r 程大学硕十学位论文 2 3 软件复用的相关技术 软件复用有三个基本问题: ( 1 ) 必须有可以复用的对象; ( 2 ) 所复用的对象必须是有用的; ( 3 ) 复用者需要知道如何去使用被复用的对象。 软件复用包括两个相关的过程,可复用软件( 构件) 的开发和基于可复 用软件( 构件) 的应用系统构造( 集成和组装) 。解决好这几个方面的问题才 能实现真正成功的软件复用。与以上几个方面的问题相联系,实现软件复用 的关键因素( 技术和非技术因素) 主要包括:软件构件技术、领域工程、软 件构架、软件再工程、开放系统、软件过程、c a s e 技术等以及各种非技术 因素。下面我们介绍实现软件复用的几个关键技术。 2 3 1 构件技术 构件的概念产生于软件复用。构件是指应用系统中可以明确辨识的构成 成分,近年来迅速发展并受高度重视。具有可复用性的构件必须具有以下属 性”1 : ( 1 ) 有用性( u s e f u l n e s s ) :构件必须提供有用的功能: ( 2 ) 可用性( u s a b l i t y ) :构件必须易于理解和使用; ( 3 ) 质量( q u a l i t y ) :构件及其变形必须能正确工作; ( 4 ) 适应性( a d a p t a b i l i t y ) :构件应该易于通过参数化等方式在不同语 境中进行配置; ( 5 ) 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环 境中下作。 构件技术是软件复用的核心技术,对构件的研究主要包含以下内容: ( 1 ) 构件获取:有目的的进行构件生产和从现有系统中挖掘构件; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及 组装问题; 6 哈尔滨一 程大学硕士学位论文 ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立 构件库系统,支持构件的有效管理; ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代 码级的组装和基于构件对象互操作性的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化。 随着对软件复用理解的深入,构件的概念已不再局限于源代码构件,而 是延伸到需求、系统设计和软件的需求规约、系统和软件的构架、文档、测 试计划、测试案例和数据等对软件开发活动中有用的信息。 当前,随着互联网技术的迅猛发展,出现了多种不同标准的构件技术, 且都已有广泛的应用。下面介绍几种主要的构件技术n ,: 1 0 0 r b a 构件 1 9 9 1 年1 0 月o m g 推出了c o r b a l 0 规范,c o r b a 。l 定义了位于i s o o s i 七层模型的应用层分布式计算协议,在c o r b a 中分布式环境的定义采用了 面向对象的方式以隐藏不同编程语言、操作系统、对象位置等之间的差异, 支持不同类型应用实现的互操作。c o r b a 采用了o m g i d l 接口定义语言, 定义了可移植性接口。c o b r a 的体系结构包括对象请求代理,对象服务和 应用接口等三个方面,具体内容如下: ( 1 ) 对象请求代理o r b o b j e c tr e q u e s tb r o k e r ) :负责对象在分布环境 中透明地收发请求和响应; ( 2 ) 对象服务:为使用和实现对象而提供的基本对象集合( 如:命名服 务、事件服务等) ; ( 3 ) 应用接口、领域接口、软件总线等。 2 0 0 2 年的c o r b a 3 0 版,还定义了j a v a 和i n t e r a c t 集成、服务质量( q o s ) 控制、c o r b a 构件体系三大类内容,进一步增强了c o r b a 的性能和可用 性。 2 c o m d c 0 辩 d c o m 源于对象链接和嵌入( o l e ) ,基于w i n d o w s 的构件对象模型最 初用于o l e 2 。对于允许软件构件将自己的接口暴露给其他软件来讲,c o m 目前提供了一个底层的一般框架。d c o m 与w i n d o w s 9 $ 及n t 平台一起发布 并且可以安装在w i n 9 5 上。d c o m 客户可以使用d c o m 库以获取接口的句 7 哈尔滨工程人学硕十学位论文 柄,被映射为建立在t c p i p 基础之上的远程过程调用( r p c ) 。在分布式接 收端,这些调用被映射为实际的d c o m 构件调用。在接收端,使用d c o m 服务器来指示一个为远程访问而提供一个或多个d c o m 对象的服务器。但与 c o m 对象一样,d c o m 基本上也是一些无状态的实体,所以缺省情况下在 调用之间并不维持对象状态的一致性。 3 j 2 e e e j b 企业j a v a b e a n ( e m ) 表示一个用来创建分布式、服务器端以及基于j a v a 的企业应用程序构件的功能强大的构件模型。e j b 模型为在没有提供分布式 客户连接的容器中使用基于j a v a 的构件定义了一种方法,其中有许多专用的 服务器端语义与之相关联,并且定义了各种标准操作使能对e j b 构件生命周 期的管理。e j b 构件模型对于创建企业应用程序是一个功能强大的模型,并 且是j 2 e e 体系结构的核心部分。j 2 e e 由s u n 公司在1 9 9 9 年6 月推出,作为 使用j a v a 构建企业系统的标准平台和环境。j 2 e e 定义为一个平台和编程模 型,用于构造j a v a 企业系统,这样的系统可以使用不同生产商的底层企业系 统框架实现。 4 w e bs e r v ;c e w e bs e r v i c e t w 技术为解决异构应用问的紧耦合、松耦合集成提供了有效 的技术手段。基于标准的x m l 消息,w 曲s e r v i c e 描述了网络可访问的一组 操作的集合,通过接口隐藏了服务的业务实现细节,使得各种业务的互操作 可以不依赖于其实现的软硬件平台,也不依赖于所用的编程语言。因而基于 w 曲s e r v i c e 的应用可以有效的将异构环境的业务进行整合与集成,支持各种 构件技术,完成互联网下跨边界的松散耦合。 w e b 服务技术建立在x m l 技术的基础上,其功能接口及调用形式可以 通过x m l 标准定义、描述和检索。构筑w e b 服务技术家族的主要成员都是 完全基于x m l 的,具体成员如下: ( 1 ) x m ls c h e m a :为在不同系统( w 曲服务) 之间交换数据而提供了 一个核心的跨平台数据建模工具; ( 2 ) s o a p :为在不同系统之间实施平台无关的信息交互定义了一套基 本的元规则和跨平台消息机制,w e b 服务体系中服务交互的基础架构; ( 3 ) w s d l :w e b 服务接口界面的跨平台描述工具,依靠w s d l ,w 曲 g 哈尔滨”犟大学硕十学位论文 服务的交互过程就能被系统自动处理; ( 4 ) u d d i :解决动态服务集成问题的一种尝试,实现基于w e b 的信息 与服务自动注册、查找和访问。 w 曲s e r v i c e 技术使得底层平台对应用交互透明,应用的互操作能力得到 了前所未有的提升,从而成为新一代i n t e r a c t 软件技术。 2 3 2 软件构架 软件构架1 ( s o f t w a r e a r c h i t e c t u r e ) 是对系统整体结构设计的刻画,包括 全局组织与控制结构,构件间通讯、同步和数据访问的协议,设计元素间的 功能分配、物理分布,设计元素的集成、伸缩性和性能以及设计选择等。 研究软件构架对于进行高效的软件工程具有非常重要的意义,具体如下: ( 1 ) 通过对软件构件的研究,有利于发现不同系统在较高级别上的共同 特性,获取正确的构架对于进行正确的系统设计非常关键; ( 2 ) 对各种软件构架的深入了解,使得软件工程师可以根据一些原则在 不同的软件构架之间作出选择; ( 3 ) 从构架的层次上表示系统,有利于系统高级别性质的描述和分析。 特别重要的是,在基于复用的软件开发中,为复用而开发的软件构架可 以作为一种大粒度的、抽象级别较高的软件构件进行复用,而且软件构架还 为构件的组装提供了基础和上下文,对于成功的复用具有非常重要的意义。 软件构架研究着重于软件系统自身的整体结构和构件间的互联,包括软 件构架原理和风格、软件构架的描述和规约及特定领域软件构架的构件集成 机制等。 2 3 3 领域工程 领域工程被认为是把以往在特定领域内系统开发经验,以可复用资产 ( a s s e t s ) 的形式收集、管理和存贮,并使之可用于新系统开发的系列活动“”。 领域工程是由三个基本行为组成的: ( 1 ) 领域分析:为领域内的系统定义一组可复用的需求; ( 2 ) 领域设计:建立领域内系统通用的构架: 9 哈尔滨- 【程大学硕十学位论文 ( 3 ) 领域实现:实现可复用资产,包括复用构件、领域规约语言、生成 工具、复用基础设施等。 领域工程方法是从面向对象的思想发展而来的,构件被认为是比对象更 粗粒度的封装,从领域工程的目的可知,领域工程方法是以从既有系统中识 别构件为核心的分析方法“。 当前有代表性的领域工程方法包括: ( 1 ) 卡耐基梅隆大学软件工程研究所于1 9 9 0 年提出一种基于特征分析 的领域分析方法f o d a ( 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 s ) ,其核心是通过信 息分析( e r 模型) 、特征分析、操作( 功能) 分析,标识领域中的构件,而 后给出领域内通用的构架模型; ( 2 ) 韩国浦项科学与技术大学和惠普实验室分别于1 9 9 7 年和1 9 9 8 年 f o d a 基础上,提出了面向特征的复用方法f o r m ( f e a t u r e o r i e n t e dr e u s e m e t h o d ) “和特征复用驱动的软件工程方法f e a t u r s e b ( f e a t u r e - r e u s e - d r i v e n s o f t w a r ee n g i n e e r i n gb u s i n e s s ) ,以覆盖领域工程和应用工程的整个范围n 飞 ( 3 ) m a r ks i m o s l 9 9 6 年提出组织领域建模o d m ( o r g a n i z a t i o nd o m a i n m o d e l i n g ) 的领域工程方法。o d m 主要关注既有系统的领域工程,也可能应 用于新系统。o d m 是可裁剪、配置的,能和其他的软件工程方法集成。o d m 结合几个不同的既有系统的成份,例如需求、设计、代码和程序等,实现可 复用的软件资产n “。 领域工程把领域的知识转化为一组可复用规约和构架,有助于产生具有 较高可复用性的构件,有助于基于构件的高效开发。 2 3 4 软件复用技术存在的问题 尽管软件复用思想早己为人们所接受,然而软件复用技术并没有在实践 中得到广泛的应用,特别是在大型、复杂的软件开发中,系统化地使用软件 复用的情况并不多。 阻碍软件复用的因素很多,但主要有以下几方面因素: ( 1 ) 技术因素 这一因素体现在构件与应用系统之间的差异上。开发者开发的构件,要 1 0 哈尔滨t 程大学硕七学位论文 做到在被另一些人开发的系统中使用时正好合适,从内容到对外接口都恰好 相符,或者作很少的修改,做到这一点并不容易;构件要达到一定的数量, 才能支持有效的复用,而大量构件的获得需要有教高的投入和长期的积累; 发现适用的构件困难,当构件达到较大的数量时,使用者要从中找到一个自 己想要的构件并断定是自己需要的,比较困难:基于复用的软件开发方法和 软件过程是一个新的研究实践领域,需要一些新的理论、技术及支持环境, 目前这方面的研究成果和实践经验都不够充分。 ( 2 ) 人员的因素 软件开发是一种创造性工作,长期从事这个行业的往往喜欢自己创造而 不喜欢使用别人的东西,特别是当要对别人开发的软件作一些修改再使用时, 常常喜欢自己另写一个。 ( 3 ) 管理的因素 在软件生产的管理中,项目管理人员往往不是在项目开始时,就要求开 发人员自觉地向着开发可复用构件的方向努力,而是在完成之后,看看是否 能从中找到一些可复用构件。这些弊端妨碍了复用水平的提高和复用规模的 扩大。 ( 4 ) 教育的因素 在软件科学技术的教育与培训中,缺乏关于软件复用的内容,很少有这 方面的专门教材及课程,即使在某些教材及课程中提到软件复用,其篇幅及 内容也相当薄弱。 ( 5 ) 软件的需求因素 软件产品是一种精神产品,其产生几乎完全是人脑思维的结果,软件的 产生实际上是人的一种创造性的劳动成果。人们对软件的要求往往不会去考 虑到软件开发所受的各种因素的限制。人脑所能思考的问题的复杂性,远远 超出了人所能制造的物质产品的复杂性,因而使软件的复用更为困难。 2 4 软件方法学概述 软件方法学( s o f t w a r em e t h o d o l o g y ) 是以方法为研究对象的软件科学。 主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技 哈尔滨i :程大学硕十学侮论文 术。狭义的也指某种特定的软件设计指导原则和方法体系。不论何种含义, 其关注的中心问题是如何设计正确的软件和高效率地设计软件。 软件方法学的目的是寻求科学方法的指导,使软件开发过程“纪律化”, 即要寻找一些规范的“求解过程”,把软件开发活动置于坚实的理论基础之上。 软件方法学可以从多角度进行分类。从开发风范上看,有自顶向下的开 发方法和自底向上的开发方法。在实际软件开发中,大都是两种方法的结合, 只不过是应用于开发的不同阶段和以何者为主而已。从性质上看,有形式化 和非形式化方法。形式化方法是一种具有坚实数学基础的方法,从而允许对 系统合开发过程作严格处理和论证,适用于那些运载系统安全级别要求极高 的软件的开发。非形式化方法则不把严格性作为其主要着眼点。从适用范围 来看,有整体性方法与局部性方法。适用于软件开发全过程的方法称为整体 性方法,如自顶向下方法、自底向上方法和各种软件自动化方法均为整体性 方法。适用于开发具体阶段软件方法称为局部性方法,如需求分析阶段的各 种需求分析方法、设计阶段的各种设计方法。 自6 0 年代出现的软件危机引出软件工程这个概念。软件的开发方法也从 过去的结构化方法发展到后来的面向对象的方法,在一定程度上解决了软件 的可靠性、可维护性和可理解性。随着互联网环境下的大规模应用的发展, 新一轮的软件危机日益深化,面向对象的开发面临着种种困境。本文将详细 阐述一种基于特定领域的面向目标的软件开发方法。 2 5 面向对象的方法学 本节主要介绍面向对象的开发方法及对软件复用的支持。 2 5 1 面向对象的开发方法 面向对象的方法是一种分析方法、设计方法和思维方法“7 。一。面向对象方 法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方 法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解 决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自 然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结 哈尔滨1 :程大学硕士学位论文 构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造 出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开 发维护费用。 该方法是一种用对象、类、继承、封装、聚合、消息传送、多态性概念 来构造系统的软件开发方法。 2 5 2 面向对象的方法对复用的支持 面向对象方法从面向对象的编程发展到面向对象的分析与设计,在整个 软件生命周期,面向对象的方法都可以支持软件复用。软件的开发过程主要 可以分为需求分析、设计阶段和实现三个阶段。 分析和设计阶段,面向对象的方法通过对象建模,完成软件复用f 2 e - l l 。主 要包含如下三种建模种类; ( 1 ) 功能建模:确定产品是怎样计算各种结果的,由用例图( u s e c a s e d i a g r a m ) 和相关的情景形式表示这个信息,也称为用例建模; ( 2 ) 数据建模:确定类和类的属性以及类之间的相互关系和交互作用, 以一个某种程度上与实体一关系图相似的图的形式表示这个信息,称为类图; ( 3 ) 动态建模:确定由每个类或子类发出的或对其自身进行的行为,以 一个某种程度上与有限状态机相似的图的形式表示这个信息,称为状态图。 实现阶段,面向对象的方法主要采用代码复用方式,复用机制如下m : ( 1 ) 类与类继承 对象是面向对象开发模式的基本成分,是对实体和功能的统一抽象,类 是对具有相似性质的对象的代码描述,类继承机制提供了复用不同类的描述 的可能性。 ( 2 ) 继承和重载 设计一个新的对象( 类) ,如果已有相似的对象( 类) 存在,则不必从头 设计,可以继承父类的所有特征,增加与父类不同部分的代码描述。继承和 重载机制对对象( 类) 的修改不用直接增加和删除代码,实现代码的部分复 用。 ( 3 ) 继承与消息传递 哈尔滨t 程大学硕七学位论文 若子类继承父类后,可以理解为子类是父类与其自身的合成。消息传递 合成技术是类a 的定义中有类b :bc b 的实例) 的声明,则类a 的定义就 可以通过b 来利用b 的功能,此两种方法相辅相成,有效的构件合成技术m ,。 2 6 面向目标的方法学 2 6 1 面向目标的开发方法 目标是系统需要达成的目的,是对意向的一种说明性描述。目前学术界 对面向目标的软件方法学的研究并不充分,本文将详细介绍一种软件开发平 台s o t t p r o l i n e ,该平台采用一种面向目标的软件开发方法,适用于“面向过 程类”业务领域。 传统的软件开发,设计是面向系统的,而不是直接解决业务目标。实现 阶段也不能通过详细设计直接地向代码过渡。 面向目标的开发方法,解决了目标系统与软件设计阶段,设计阶段与实 现阶段的语意断层问题,面向业务应用( 问题) 的软件设计需要用设计语言 直接解释业务目标。业务目标是对业务的最直接表达,面向目标的需求分析 完成业务目标的获取和表示,面向目标的软件设计方法与面向目标的需求分 析方法是一致的,采用设计语言解释目标,通过业务目标建模一目标精化一 目标操作化,完成系统开发。贯穿软件开发的全过程,每个阶段均可以平滑 过渡到下一阶段,高效、准确的完成业务应用。 2 6 2 面向目标的方法对复用的支持 虽然面向对象开发方法强调复用性,但实际复用的效果并不理想。面向 对象的分析方法用于刻画需求中某些类知识时具有很多优点,但是对象并不 足以代替现实世界的概念,面向对象的方法仍然存在许多问题。业务规则是 用于指导组织机构代理的行为或动作的规律或习惯,不可能被封装在一个特 定的类内,业务规则应该在分析阶段被刻画,面向对象的方法不适合进行规 则建模;面向对象的方法较好地刻画对象及相互关系,但是这种关系往往是 静态的,系统内的动态关系分散而复杂,面向对象的方法不适合刻画系统的 1 4 哈尔滨r 程人学硕十学位论文 动态全景。 面向目标开发的分析、设计和实现没有清晰的界限,各阶段之间无缝结 合。面向目标的开发更加有效的支持软件复用,该方法采用基于微构件的目 标建模技术。一般,构件可以分为数据构件、功能构件和行为构件。当前, 基于面向对象的技术比较成熟的构件是数据和功能构件。微构件具有对某一 类信息数据施加某种单项操作的功能,但不限于操作对象的具体内容“,一。构 件在与具体目标结合绑定时被实例化为基本构件,基本构件的有机组合可以 组成多样的系统构件。面向目标的开发包括如下四个过程: ( 1 ) 过程建模:对于过程类业务,业务目标的实现是基于某一流程的, 流程由业务实体及业务工作流描述; ( 2 ) 人机交互终端建模:交互终端是信息传递和信息表示的载体,通过 终端建模,实现页面的结构和元素表示及应用系统功能树、提示信息、微帮 助等设置; ( 3 ) 视图建模:完成满足指定条件的多条信息的显示,供主体查看和信 息选择; ( 4 ) 子功能建模:构成过程模型的每一个业务实体,是对业务过程的抽 象,与相应的主体、客体、及予目标相绑定可以构成特定的业务功能。 从复用的对象编码方式看,传统的基于构件的软件开发方法是以强大的 构件库为支持,复用的对象属于代码复用。基于微构件的面向目标的开发以 知识库为支撑,开发阶段通过定制方式将业务逻辑保存在知识库中。 2 7 本章小结 本章主要介绍软件复用的基本概念、研究现状和关键技术,详细介绍面 向对象的软件开发方法和面向目标的软件开发方法,分析面向对象方法的思 想、基本概念和原则等有效的支持软件复用,面向对象的方法适合于功能构 件和数据构件的建模,构造行为构件需要目标建模的支持。引用微构件,介 绍面向目标的方法对软件复用的支持技术。提出面向目标的软件复用是知识 复用,区别于传统的代码复用。 哈尔滨t 程大学硕士学位论文 第3 章面向领域的软件生产 本章主要阐述面向领域的软件生产平台产生背景及特点。并以 s o r p r o l i n e 为例详细介绍平台的开发模式,最后,对面向领域的软件生产作 复用分析。 3 1 历史背景 软件数量急剧膨胀、软件需求日益复杂的情况下

温馨提示

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

评论

0/150

提交评论