




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕士学位论文 摘要 软件复用度量是软件复用技术中不可分割的一部分,在软件复用开发中 占据重要地位。软件复用开发与传统的软件开发方式不同,从而影响到软件 度量,因此需要新的软件度量方法,软件复用度量的研究已经引起学术界的 广泛重视。构件概念及其理论的发展始终以软件复用为切入点,只有被最大 可能地复用,构件才有其存在的意义和经济价值。构件的质量将影响到最终 的软件质量,但是目前缺乏对构件质量有效的评价模型。如何用一种较为精确 的、基于实践应用的方法来评价构件的复用度,关系到构件质量的提高和构 件库的有效性。 本文介绍了构件复用的概念,阐述了软件复用度量的目的、内容、准则。 提出了专门针对软件构件质量模型的可操作的度量方法,重点描述了构件可 复用性的度量,提供了一个对构件质量和复用度的度量模型,并将该方法实 际应用于打印构件。分析了复用效果对度量结果的影响及对构件库的反馈作 用。本文提出的度量模型和方法可作为构件库管理者和构件用户在管理及使 用构件时对构件进行评价参考。 关键词:软件复用:构件;软件度量;质量模型;复用度 哈尔滨工程大学硕士学位论文 a b s t r a c t s o f t w a r er e u s a b i l i t ym e t r i c s ,b e i n ga ni n t e g r a lp a r to fs o f t w a r er e u s e t e c h n o l o g y , p l a y sa ni m p o r t a n tr o l ei na p p l i c a t i o ns y s t e md e v e l o p m e n tb a s e do n r e u s e a p p l i c a t i o ns y s t e md 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 ei s d i f f e r e n tf r o m t h et r a d i t i o n a ls o f t w a r ed e v e l o p m e n t ,s ow en e e dan e wm e t r i c s m o r ea n dm o r e s c i e n t i s t sa r ec o n c e r n e da b o u tt h es o f t w a r er e u s e a b i l i t ym e t r i c s t h ec o n c e p ta n d t h e o r yo fc o m p o n e n ta l w a y sl a ye m p h a s i so ns o f t w a r er e u s e ac o m p o n e n tm a y a c h i e v ei t sm e a n i n go fe x i s t i n ga n de c o n o m i cv a l u eo n l ya f t e ri t i sr e u s e da s p o s s i b l e t h eq u a l i t y o f c o m p o n e n t se v e n t u a l l y a f f e c t st h e q u a l i t y o f s o f t w a r e h o w e v e rt h e r ei sal a c ko fa ne f f e c t i v ee v a l u a t i o nm o d e lf o rc o m p o n e n t q u a l i t y i t i sr e f e r r e dt ot h ei m p o r v m e n to fc o m p o n e n t sa n de f f i c i e n c yo fa c o m p o n e n t b a s et h a th o w t oe v a l u a t et h em e t r i c sd e g r e eo fc o m p o n e n t sw i t ha n a c c u r a t ea n dp r a c t i c e b a s e dm e t h o d t h i sp a p e ri n t r o d u c e st h ec o n c e p to fc o m p o n e n tr e u s e ,e x p l i c a t e st h ei n t e n t , c o n t e n ta n dp r i n c i p l eo fs o f t w a r er e u s a b i l i t ym e t r i c sa n dp r o p o s e sac o m p o n e n t q u a l i t ym o d e l ,a sw e l ld e f i n e sas e to fq u a l i t ya t t r i b u t e s a n da s s o c i a t e dm e t r i c s w h i c hf o c u so nc o m p o n e n tr e u s a b i l i t y t h i ss t u d yh a sb e e na p p l i e do nt h e c o m p o n e n t so fp r i n ta n da n a l y z e d t h ee f f e c tt ot h er e s u l to fm e t r i c sw i t h r e u s a b i l i t ya n dt h ei n f l u e n c et ot h ec o m p o n e n tl i b r a r y i ti sa l s oar e f e r e n c ef o rt h e c o m p o n e n tl i b r a r ym a n a g e r sa n d u s e r s k e yw o r d s :s o f t w a r er e u s e ;c o m p o n e n t ;s o f t w a r em e t r i c s ;q u a l i t ym o d e l ; m e t r i c sd e g r e eo fc o m p o n e n t s 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的 指导下,由作者本人独立完成的。有关观点、方法、 数据和文献的引用已在文中指出,并与参考文献相对 应。除文中已注明引用的内容外,本论文不包含任何 其他个人或集体已经公开发表的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确 方式标明。本人完全意识到本声明的法律结果由本人 承担。 作者( 签字) :秀美坞 日期:伽,7 年f 月 哈尔滨工程大学硕士学位论文 第1 章绪论 1 1引言 软件是信息技术的核心,因而管理人员对软件开发过程中涉及到的质量、 效益度量越来越重视。这种重视引起两种效果: ( 1 ) 要求新的、更好的软件开发方法和技术。 ( 2 ) 在软件开发过程中,进行软件度量。 过去几十年间,软件生产率一直在持续、稳定地提高,产生了大量代码、 设计文档。其中许多代码、设计文档都是可以被重新利用的。软件复用利用 现存的代码和文档来生产新的软件系统,是提高软件生产率和产品质量的一 条有效途径。软件度量可以帮助管理人员控制、安排软件开发并利用反馈信 息对软件进行改善,从而提高软件质量,因此软件复用度量是软件复用不可 分割的一部分。 软件复用( s o f t w a r er e u s e ) 的概念早在1 9 6 8 年的n a t o 软件工程会议 上就已经提出可复用库的思想。软件复用是利用事先建立好的软部件创建新 软件系统的过程。系统地开发可复用的软部件,系统地使用这些软部件作为 构筑模块,来建立新的系统。软件复用是软件工程学科的一个研究熟点,也 是解决软件危机的有效途径之一。使用软件重用技术可以减少软件开发活动 中大量的重复性工作,这样就能够提高软件的生产率,减低开发成本,缩短 开发周期。 软件复用度量是软件复用技术中不可分割的一部分,在软件复用开发中 占据重要地位。软件重用经过了多年的发展,其概念已经被许多人接受,但 是很多企业的管理决策者对软件复用实践仍然裹足不前,缺乏复用度量的手 段是一个重要的原因。软件复用开发与传统的软件开发方式不同,从而影响 到软件度量,因此需要新的软件复用度量方法,导致了新的软件复用度量模 型的需求,软件复用度量的研究已经引起学术界的广泛重视,其理论研究及 实践应用已经成为软件工程研究的热点之一。 构件概念及其理论的发展始终以软件复用为切入点,只有被最大可能地 哈尔滨工程大学硕士学位论文 复用,构件j 有其存在的意义和经济价值。如何用一种较为精确的、基于实 践应用的方法来评价构件的复用度,关系到构件质量的提高和构件库的有效 性。 本文就是为了提高构件质量和可复用度,对软件构件复用度的度量模型 进行研究,试图给出科学的、精确的评测标准。 1 2国内外研究现状及发展动态 目前,软件工程研究领域将软件复用看作是改善软件工程实践的一种潜 在的强有力的手段。软件开发者在利用软件复用方法进行开发时,需要去度 量开发进度,找出最有效的复用策略,以及测度出复用的潜力和预期的收益, 此外还要识别出现在系统中的可复用构件。软件复用度量需要传统的度量准 则和方法,结合其本身的特点来构造出适当的度量模型来评价软件开发过程 中与复用相关活动的特性。 当前已存在不少复用度量的模型和准则,w i ll i a m f r a k e s 和c a r o l t e r r y 在文献。1 中总结了这些模型和准大致分为以下四大类:经济模型类( e c o n o m i c m o d e l s ) 、成熟度模型( m a t u r i t y m o d e l s ) 、复用比率模型( r e u s e r a t i o n m o d e l ) 以及复用潜力度量模型( r e u s ep o t e n t i a lm e t r i c sa n dm o d e l s ) 。 目前比较系统化的可复用性度量指标主要有3 种:基于要素一准则一度量 模型的r e b o o t 方法脚、提出对构件质量和可复用性的评价标准的n a t o 标准 以及usa r m yr e u s ec e n t e r 对提交给d e f e n s es o f t w a r er e p o s i t o r y s y s t e m ( d s r s ) 的软件所采用的可复用性度量嘲。 目前的可复用性度量方法大都是根据构件的内部属性来得出度量结果的, 当构件所处的上下文( c o n t e x t ) 也和其内部属性一样影响构件的可复用性时, 就必须在度量构件可复用性时的同时考虑构件所处的领域属性和环境属性 嘲 国内对软件复用度量的研究早在八十年代,较有代表性的是青鸟构件库 的构件度量,是在九十年代末初具规模。青鸟构件库的构件度量在建立度量 模型时参考了要素一准则一度量模型标准洲,着重参照了r e b o o t 实现模型,主 要使用了青鸟程序分析系统中的面向对象度量工具和青鸟构件库后期度量系 统来对青鸟构件进行度量。对上海构件库中构件的质量模型及其度量的研究 2 哈尔滨工程大学硕士学位论文 o ”,主要注重于入库构件的评价和推荐,重点是从外部和构件用户的角度上对 这些构件的某些特性进行度量。自9 0 年代后期一批研究成果( 学术论文) 逐 渐发表在计算机学报、计算机应用与软件、软件学报、计算机工程 与应用等刊物上,研究重点基本上还是度量模型研究为主,实际应用上处 于起步阶段。目前,国内的许多科研单位和高等院校竟相开展软件复用理论 及其应用研究,研究所涉及的领域很多,相应的软件复用度量理论研究与实 践应用也成为软件工程的研究热点。如北京大学、上海复旦大学、华东理工 大学、上海计算机软件技术开发中心等等。目前进行的大多数研究项目是由 政府资助进行的,如国家自然科学基金、8 6 3 计划等。他们所研究的目的相 同,但研究的角度不同。复旦大学软件工程研究室的研究在构件可检索度达 到一定程度的前提下才能考虑构件的被复用的程度,二者结合成为评价基于 构件库管理系统的构件复用度的两个关键方面,目标在于从客观数据的测量 来评价构件复用程度,分析影响因素,为改进构件提供参考“”。还有研究通 过对软件元素可复用性的因素分析,利用h a l s t e a d 软件复杂性度量技术的结 果,给出实现可复用元素自动化度量的办法”1 。 到目前为止,仍没有统一的构件复用度量标准,基本上还是以模型研究 为主,实际应用及检验还处于初级阶段。 1 3研究背景与意义 复用的度量对推广软件重用、将软件复用技术融入软件系统开发工程至 关重要。然而由于受到很多主观因素的制约,虽然已经出现了大量的度量模 型,但是度量结果的客观准确程度都没有经过太多实践的检验。许多现有的 模型应用于实际系统偏差很大,还需从其特征来挖掘具有理论价值和适用价 值的度量方法和准则。软件复用度量目前仍处于探讨阶段,还需要进一步的 研究。( 1 ) 软件属性需要清晰严格的定义( 2 ) 形式化度量评估准则( 3 ) 需 要自动化支持( 4 ) 如何更好地把整个度量结果以易理解的形式显示给用户, 让用户对度量的结果有一个直观的印象。( 5 ) 必须经过大量的实例研究来验 证模型的正确性或可用性。以上有关软件复用度量的问题都是值得研究和探 讨的。 本研究课题将从复用度量的内容、目的要求开始,力图从构件的可复用 哈尔滨工程大学硕士学位论文 性度量( 判定构件的可复用性和质量) 着手研究,参考现有模型,给出一个 构件质量和可复用度度量的量化模型。 1 4 本文的研究内容与组织 本文的研究工作源于上述的背景。目的是对构件可复用度和质量作以深 入的研究,主要围绕构件质量模型的研究,针对可复用性设计了每个度量元的 度量方法,得出了可复用度度量模型,给出实例检验,并根据用户对构件的 使用情况调整构件的可复用度。 全文内容组织如下: 第一章对国内外软件复用度量技术的发展现状进行了综述,指出软件复 用度量是软件复用技术中不可分割的一部分,在软件复用开发中占据重要地 位。 第二章研究总结了构件的可复用技术。介绍了软件构件复用定义,概要 地描述了软件复用的技术形式,根据复用粒度的大小对软件复用进行分类, 并探讨了影响软件复用的关键因素。 第三章对软件复用度量进行了综述。介绍了软件复用度量的目的、要求、 内容和度量准则。 第四章分析了构件的度量,包括构件度量的作用,构件开发的特点对其 度量的影响及构件度量的内容。并重点讨论了构件质量模型的度量及构件的 质量与可复用性度量的关系,从而提出了一个构件质量和可复用度度量模型。 第五章根据提出的构件质量和可复用性度量模型,选取了两个打印构件 对其复用度进行检验。并提出了根据用户对构件的使用情况( 复用效果) 来 调整构件的可复用度的方法。 最后总结了全文所做的工作,并提出了迸一步研究的方向。 4 哈尔滨工程大学硕士学位论文 第2 章构件的可复用技术 2 1软件复用定义 复用是成熟的工程领域的一个基本特征,例如,土木工程、化学工程、 计算机硬件工程等,通过大量复用经过实践检验的系统体系结构和标准化的 构件,使得对于常规的设计问题都可以直接利用现成的解决方案,避免了系 统开发时不断地重复设计,从而可以大幅度地降低开发成本、提高软件生产 效率和产品质量,复用也是软件工程走向成熟的必由之路,将为软件危机的 解决提供一条现实可行的途径。 传统的软件工程基本上都包含可行性研究、需求分析、总体设计、详细 设计、编码( 开发) 、系统测试、系统维护等几个阶段。如果每个应用系统的 开发都从头开始,在开发过程中将存在大量的重复劳动。人们开始考虑能否 充分利用以往软件工程建设和应用系统开发中积累的知识、经验和成果昵? 自m c i l r o y 提出软件复用概念之后,1 9 8 3 年,f r e e m a n 进一步拓宽了这一 概念,指出可复用的构件不仅可以是源代码片段,而且可以是模块设计结构、 规格说明和文档等“1 。随着研究的不断深入,特别是实现,软件复用技术正 在取得积极进展。 软件复用又称软件再用、软件重用,是指重复使用“为了重复使用目的 而设计的软件( 可复用软件) ”的过程嘲。在软件演化的过程中,重复使用的 行为可能发生在三个维上: 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应 新需求,即软件维护。 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分t 使其运行于新平台,即软件移植。 应用维:将某软件( 或其中构件) 用于其他应用系统中,新系统具有 不同功能和用途,即真正的软件复用。 这三种行为中都重复使用了现有的软件,但是真正的复用是为了支持软 件在应用维的演化,使用“为复用而开发的软件( 构件) ”来更快、更好地开 5 哈尔滨工程大学硕士学位论文 发新的应用系统。 2 2软件复用的分类 根据k r u e g e r 等人的分类标准,可将软件复用按复用粒度大小和抽象层 次的不同,分为小粒度、中粒度和大粒度复用三类嘲: 1 小粒度复用 即小规模复用,例如程序代码的复用。主要表现为函数、子程序面向对 象中的类、方法的复用。源代码复用和目标代码复用属于小粒度复用。 2 中粒度复用 即中等规模复用,例如软件设计结果的复用。迸一步按复用粒度的大小, 又分为两种:微体系结构的复用和宏体系结构的复用。前者是注重于如何对 系统的局部行为进行要领建模和解释,而后者则以宏体系结构为基础,注重 系统的全局结构的建立。在面向对象的程序设计中,微体系结构由描述相关 的类及其相互关系的设计和代码两部分组成。而宏体系结构的复用对象则是 组成系统的各微体系结构及其相互关系。设计结果复用和分析结果复用均属 于中粒度复用。 3 大粒度复用 即大规模复用,例如应用子系统的复用。复用对象是独立开发的应用程 序或子系统。在复用过程中,它们不能作任何修改和扩充。通过一些标准协 议,可使这些大粒度构件( 应用程序) 协同工作,共同实现某些功能。类模 块复用和构件技术属于大粒度复用。 到目前为止,人们对小粒度复用进行了长期的研究和实践,发现这类复 用方式有许多局限性。近年来,人们开始转向中、大粒度复用研究,并且发 现,通过中粒度复用,软件设计者们在开发一个新的软件系统时,可以利用 己有的需求分析、设计的思想和结果。通过大粒度复用,可以利用己有的系 统来组建新的应用系统。设计新的应用系统时,只需考虑各予系统相互作用 的框架结构,而不必关心设计和实现的细节,从而缩短了开发时期,降低了 开发成本。 6 哈尔滨工程大学硕士学位论文 2 3软件复用的技术形式 在广义上讲,软件复用可分为以下三个层次:知识复用、方法和标准复 用、软件成分复用。前两种复用层次属于知识工程研究的范畴。 软件成分复用的形式如图2 1 所示: 图2 1软件复用形式的示意图 1 源代码的复用 属最低级复用,无论软件复用技术发展到何种程度,这种复用方式将一 直存在“”。不过它的缺点也很明显:一是程序员需要花费大量的精力读懂源 代码;二是程序员经常会在复用过程中因不适当地更改源代码而导致错误的 结果。 2 目标代码级复用 这是目前用得最多的一种复用方式。几乎所有的计算机高级语言都支持 这种方式,它通常以函数库的方式来体现“”。这些函数库均能提供清晰的接 口,程序员只需弄清函数库的接口及其功能即可使用,减少了软件开发人员 研读源代码的时间,有利于提高软件开发效率。此外,这些函数库一般都经 7 哈尔溟工程大学硕七学位论文 过编译,程序员对其不需做任何修改,从而减少了因修改源代码带来的错误, 可极大地提高应用系统的可靠性。 但这种形式的复用可能会受限于所用语言,很难做到与开发平台完全无 关。同时由于程序员无法修改函数库源代码,软件复用的灵活性将降低“。 目标代码级复用最根本的缺点是无法与数据结合在起,软件开发人员无法 在软件工程实践活动中大规模引用。 3 设计结果复用 这种形式是对某个应用系统的设计模型( 即求解域模型) 的复用。它有 助于把一个应用系统移植到不同的软硬件平台上。例如,当菜一应用程序的 用户需求与另一系统相同或相近时,可以采用此种软件复用方式,以加快工 程进度,节约建设成本。 4 分析结果复用 5 类模块复用 类模块复用是随着面向对象技术的发展而产生的一种新的软件复用技术 形式“”。面向对象的程序设计语言一般都提供类库。类库与库函数一样,都 是经过特定开发语言编译后的二进制代码,然而它与库函数有着本质的区别, 主要表现在: ( 1 ) 独立性强 类模块都是经过反复测试、具有完整功能的封装体,其内部实现过程对 外界是不可见的。 ( 2 ) 高度可塑性 一个可复用软件不可能满足任何一个应用系统的所有设计需求,这就要 求可复用的软件必须具备良好的可塑性,能够根据系统需求进行适应性修改。 类可以继承、封装和派生,这使得类模块能够根据特定需求进行扩充和修改, 使得软件的复用性及可维护性得到大大增强,大规模的软件复用也将得以实 现。 ( 3 ) 接口清晰、简明 类具有封装性,软件开发人员勿需了解类的实现细节,只需清楚类提供 的对外接口,就可复用类提供的功能( 方法) 。 根据类的特性,可将类模块复用分为以下三种方式: 8 哈尔滨工程大学硕士学位论文 ( 1 ) 实例复用 这是类最基本的复用方式。软件开发人员只需使用适当的构造函数,就 可创建类的实例,然后向所创建的实例发送消息,启动类提供的相应的服务, 完成需要的工作。 ( 2 ) 继承复用 类的继承性,允许子类在继承父类的属性和方法的基础上,可以添入新 的属性和方法“”。这样软件开发人员不仅可以对类进行安全的扩充、修改 以满足系统需求,而且还可降低每个类模块的接口复杂度。呈现出一个清晰 的继承过程,也使子类的可理解性得到提高。 ( 3 ) 多态复用 在应用系统运行时,由类的多态性机制启动正确的方法,去响应相应的 消息,从而使得对象的对外接口更加简单,降低了消息连接的复杂程度,使 软件复用更加简单可靠。 6 构件 构件一词是从英文单词“c o m p o n e n t ”翻译而来,也可译为部件、组件等, 目前还没有统一的中文译名。它是指应用系统中可明确分辨的相对独立并具 有复用价值的构成成分。基于构件的软件复用是迄今为止最优秀的软件复用 手段,是支持软件复用的核心技术,并在近几年迅速发展成为受到高度重视 的- i 1 学科分支。许多基于构件技术的产品己陆续问世。 基于构件的软件复用的两个基本开发活动包括面向可复用构件的开发和 基于可复用构件的开发。前者是生产可复用构件的过程,后者是利用现有可 复用构件生产新系统的过程。可复用构件为有计划地、系统地进行复用提供 了手段,是实现软件复用的基石。其生产和使用必须满足两个基本前提:即 构件接口的标准化和构件的集成机制。例如,在过程化程序设计中,构件是 模块( 过程和函数) ,集成机制是过程调用;在面向对象的设计中,构件是对 象,集成机制是对象之间的消息通信。c o r b a 和c o m 都提供了相应的构件接 口标准和构件互操作( 集成) 机制。软件复用最终体现为可复用构件通过集 成机制组装成完整的应用系统。 9 哈尔滨工程大学硕士学位论文 2 。4 实现软件复用的关键因素 实现软件复用的各种技术因素和非技术因素是互相联系的。如图2 2 所 示,它们结合在一起,共同影响软件复用的实现。 图2 2实现软件复用的各种技术因素和非技术因素 1 软件构件技术 构件( c o m p o n e n t ) 是指应用系统中可以明确辨识的构成成分。而可复用 构件( r e u s a b l ec o m p o n e n t ) 是指具有相对独立的功能和可复用价值的构件。 可复用构件应具备以下属性:1 ) 有用性( u s e f u l n e s s ) :构件必须提供有 用的功能;2 ) 可用性( u s a b i l i t y ) :构件必须易于理解和使用;3 ) 质量 ( o 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 0 哈尔滨工程大学硕士学位论文 高度重视的个学科分支,其主要研究内容包括: ( 1 ) 构件获取:有目的的构件生产和从己有系统中挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及 组装问题; ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立 构件库系统,支持构件的有效管理; ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代 码级的组装和基于构件对象互操作性的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化。 分析传统产业的发展,其基本模式均是符合标准的零部件( 构件) 生产 以及基于标准构件的产品生产( 组装) ,其中构件是核心和基础,“复用”是 必需的手段。实践表明这种模式是产业工程化、工业化的必由之路。标准零 部件生产业的独立存在和发展是产业形成规模经济的前提,机械、建筑等传 统产业以及年轻的计算机硬件产业的成功发展均是基于这种模式。并充分证 明了这种模式的可行性和正确性。这种模式是软件产业发展的良好借鉴,软 件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素。 2 软件构架 软件构架是对系统整体结构设计的刻划,包括全局组织与控制结构,构 件间通讯、同步和数据访问的协议,设计元素间的功能分配、物理分布、设 计元素集成、伸缩性和性能,设计选择等。 研究软件构架对于进行高效的软件工程具有非常重要的意义:通过对软 件构架的研究有利于发现不同系统在较高级别上的共同特性;获得正确的构 架对于进行正确的系统设计非常关键。对各种软件构架的深入了解,使得软 件工程师可以根据一些原则在不同的软件构架之间作出选择;从构架的层次 上表示系统有利于系统较高级别性质的描述和分析。特别重要的是在基于复 用的软件开发中,为复用而开发的软件构架可以作为一种大粒度的、抽象级 别较高的软件构件进行复用,而且软件构架还为构件的组装提供了基础和上 下文,对于成功的复用具有非常重要的意义。 软件构架研究如何快速、可靠地从可复用构件构造系统的方式,着重于 哈尔滨工程大学硕士学位论文 软件系统自身的整体结构和构件i 丑j 的互联。其中主要包括:软件构架原理和 风格,软件构架的描述和规约,特定领域软件构架,构件向软件构架的集成 机制等。 3 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础 的过程,它覆盖了建立可复用软件构件的所有活动。领域是指一组具有相似 或相近软件需求的应用系统所覆盖的功能区域。领域工程包括三个主要的阶 段: ( 1 ) 领域分析:这个阶段的主要目标是获得领域模型( d o m a i nm o d e l ) 领域模型描述领域中系统之间的共同的需求。这个阶段的主要活动包括确定 领域边界,识别信息源,分析领域中系统的需求,确定哪些需求是被领域中 的系统广泛共享的,哪些是可变的,从而建立领域模型。 ( 2 ) 领域设计:这个阶段的目标是获得领域构架( d o m a i ns p e c i f i c s 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 也 要相应地具有变化性。 ( 3 ) 领域实现:这个阶段的主要行为是定义将需求翻译到由可复用构件 创建的系统的机制。根据所采用的复用策略和领域的成熟和稳定程度,这种 机制可能是一组与领域模型和d s s a 相联系的可复用构件,也可能是应用系 统的生成器。 这些活动的产品( 可复用的软件构件) 包括:领域模型、领域构架、领 域特定的语言代码生成器和代码构件等。 在领域工程的实施过程中,可能涉及的人员包括: ( 1 ) 最终用户:使用某领域中具体系统的人员; ( 2 ) 领域专家:提供关于领域中系统信息的人员,他应该熟悉该领域中 系统的软件设计和实现、硬件限制、未来的用户需求及技术走向; ( 3 ) 领域分析员:收集领域信息、完成领域分析并提炼出领域产品( 可 复用软件构件) 的人员,他应该具有完备的关于复用的知识,并对分析的领 哈尔滨工程大学硕士学位论文 域有一定程度的了解 ( 4 ) 领域分析产品( 构件、构架) 的使用者:包括最终用户、应用系统 的需求分析员和软件设计者。 4 软件再工程 软件复用中的一些问题与现有系统密切相关,如:现有软件系统如何适 应当前技术的发展及需求的变化,采用更易于理解的、适应交化的、可复用 的系统软件构架并提炼出可复用的软件构件? 现存大量的遗产软件系统 ( l e g a c ys o f t w a r e ) 由于技术的发展,正逐渐退出使用,如何对这些系统进 行挖掘、整理,得到有用的软件构件? 己有的软件构件随着时间的流逝会逐 渐变得不可使用,如何对它们进行维护,以延长其生命期,充分利用这些可 复用构件等等。软件再工程( s o f t w a r er e e n g i n e e “n g ) 正是解决这些问题 的主要技术手段。 软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起来, 将现存系统重新构造为新的形式。再工程的基础是系统理解,包括对运行系 统、源代码、设计分析、文档等的全面理解。但在很多情况下,由于各类文 档的丢失,只能对源代码进行理解,即程序理解。 5 开放系统技术 开放系统技术的基本原则是在系统的开发中使用接口标准,同时使用符 合接口标准的实现。这些为系统开发中的设计决策,特别是对于系统的演化, 提供了一个稳定的基础,同时,也为系统( 子系统) 间的互操作提供了保证。 开放系统技术具有在保持( 甚至是提高) 系统效率的前提下,降低开发成本、 缩短开发周期的可能,对于稳定的接口标准的依赖,使得开发系统更容易适 应技术的进步。当前,以解决异构环境中的互操作为目标的分布对象技术是 开放系统技术中新的主流技术。开放系统技术为软件复用提供了良好的支持, 特别是分布对象技术使得符合 接口标准的构件可以方便地以“即插即用”的方式组装到系统中,实现 黑盒复用。这样,符合接口标准的前提下,构件就可以独立地进行开发,从 而形成独立的构件制造业。 6 软件过程 软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而 哈尔滨工程大学硕士学位论文 必须实施的一系列相关过程的集合。一个良好定义的软件过程对软件开发的 质量和效率有着重要影响。当前,软件过程研究以及企业的软件过程改善己 成为软件工程界的热点,并己出现了一些实用的过程模型标准,如c 姗、 i s 0 9 0 0 l t i c k i t 等。 然而,基于构件复用的软件开发过程和传统的一切从头开始的软件开发 过程有着实质性的不同。探讨适应于软件复用的软件过程自然就成为一个迫 切的问题。 7 c a s e 技术 随着软件工程思想的日益深入人心,以计算机辅助开发软件为目标的 c a s e ( c o m p u t e ra i d e ds o f t w a r ee n g i n e e r i n g ) 技术越来越为众多的软件开 发人员所接受,c a s e7 - 具和c a s e 环境得到越来越广泛的应用,c a s e 技术 对软件工程的很多方面,例如分析、设计代码生成测试、版本控制和配置管 理、再工程、软件过程、项目管理等等都可以提供有力的自动或半自动支持。 c a s e 技术的应用,可以帮助软件开发人员控制软件开发中的复杂性,有利于 提高软件开发的效率和质量。 软件复用同样需要c a s e 技术的支持。c a s e 技术中与软件复用相关的主 要研究内容包括;在面向复用的软件开发中,可复用构件的抽取描述、分类 和存储,在基于复用的软件开发中,可复用构件的检索、提取和组装;可复 用构件的度量等等。 8 非技术因素 除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如:机 构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识 的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保 守商业秘密的问题;复用前期投入的经济考虑标准化问题等等。这些因素超 出了本文的范围,这里不再详细讨论。 2 5 本章小结 本章介绍了软件复用与构件的定义,概要地描述了软件复用的六种技术 形式,并根据这些形式和复用规模的大小按小粒度复用、中粒度复用和大粒 度复用对软件复用进行了分类分析。指出基于构件的软件复用是迄今为止最 1 4 哈尔滨工程大学硕士学位论文 优秀的软件复用手段,是支持软件复用的核心技术,并探讨了影响软件复用 的关键因素。 哈尔滨i 科人中硕卜f _ 论文 第3 章软件复用度量方法 3 1 软件度量的发展过程 度量是评价和预测与软件工程活动相关的过程、资源和产品的方法和手 段。软件度量学发展至今已有3 0 余年,可以分为两个阶段: 第一个阶段是适用于当时面向过程软件设计方法的传统度量理论和方法, 可以追溯到7 0 年代,开始的研究大部分是针对面向过程和结构化的软件复杂 性度量。其中主要的度量方法有代码行数方法、以程序控制流为基础的 b t c c a b e 环计数方法( c y c l o m a t i c n u m b e r ) “”、h a l s t e a d 的软件科学方法“”和 a l b r e c h t 的功能点方法0 1 等。 第二个阶段是在7 0 年代后半期,m c c a l l 和b o e h m 分别提出了两个关于 软件质量因素的层次结构模型,其所基于的要素一准n - 度量模型至今仍为人 们所采用,面向对象软件开发在软件生命周期、系统结构、复用以及项目管 理等方面与传统的软件开发有着显著的区别,这些区别很大程度上影响了软 件度量,使得传统的度量不再适用于面向对象的的某些概念,而需要进行专 门的适合面向对象的度量。随着面向对象技术和工具的发展日益成熟,传统的 软件度量方法无法适应面向对象技术中采用的数据抽象、封装、继承、多态 性、信息隐藏、重用等机制,因此,出现了新的度量方法来反映这些关系,如 m o o d 度量方法、c k ( c h i d a m b e r 和k e m e r e r ) 度量方法以及l o r e n z 等人 提出的一些适于面向对象的度量准则0 4 等。m o o d 方法是从继承、耦合、封装 和多态4 个方面提出了度量标准。c k 提出了六条适合于面向对象的度量准 则:类方法的带权和( 嘲c ) 、继承树的深度( d i t ) 、子类数目( n o c ) 、对象类的 耦合度( c b o ) 、类响应数目( r f c ) 和类方法缺乏内聚度( l c o m ) 等眵4 1 。 在软件开发过程中,软件复用在提高软件生产率和软件产品质量上有着 巨大的潜力。随着软件复用技术的飞速发展,软件开发者在利用软件复用方 法进行开发时,需要去度量开发进度,找出最有效的复用策略,并测度出复 用的潜力和预期的收益。因此软件复用度量是目前软件度量中的又一个新课 题。另外,还要能够识别出现存系统中的可复用构件等。 1 6 哈尔滨工程大学硕士学位论文 3 2 软件度量的基本理论与方法 软件度量可以帮助管理人员控制、安排软件开发并利用反馈信息对软件 进行改善,从而提高软件质量。 现代度量理论是一个数学分支,它是研究广泛适用于自然科学、社会科 学以及工程研究等各种度量的逻辑基础和基本原理的理论。目前对软件度量 的批评之一就是度量缺乏坚实的理论基础。k e a r n e y 等人批评软件度量没有 坚实的理论基础并且缺乏合适的性质“”。 度量就是把数值或符号赋予所研究的对象。任意一个度量都必须具备4 个因素:被度量的对象、将被度量的属性、赋予对象的数值或符号以及使对 象与数值或符号相联系的映射。由此可以对度量作以下形式化定义:一个度 量由3 个部分构成: ( 1 ) 经验性关系系统q = ( o ,r ) ,其中0 为被度量的对象集 合,r = r 1 ,r 2 ,r 3 ,r n 为0 上的一系列关系; ( 2 ) 数值关系系统n - ( c ,p ) ,其中c 为数值或符号的一个集 合,p = p 1 ,p 2 ,p 3 ,p n 为c 上的一系列关系; ( 3 ) 映射m :q n m ( x ) 为对象x 在被度量属性上的度量值。 度量对象的属性还可以通过度量此对象的其他一些属性进行计算而得, 这样的度量称为间接度量。软件的属性可分为内部属性和外部属性两种。内 部属性通常描述软件结构上的复杂性,如软件大小、控制流、耦合度等。内 部属性一般有清晰的定义并能进行客观的度量。外部属性通常涉及到人和环 境等外部因素,如复杂性、可维护性、可读性等。通常只有外部属性的度量 才能真正给出人们所需的可靠数据,并且预示软件开发行为。但是,外部属 性常常缺乏清晰的定义,也无法进行直接的客观度量,所以一般只能通过内 部属性进行推测性的间接度量来得出外部属性值。度量研究的任务之一就是 建立外部属性和内部属性之间的合理联系。随着软件度量纳入更严密的理论 体系,有必要将度量评估纳入形式化范畴。w e y u k e r 提出了组形式化评估软 件度量性质的定理“”。虽然关于这9 条性质的定理并不见得很完美,但是,这 组性质定理仍不失为度量评估的良好出发点。 1 7 哈尔滨工程大学硕士学位论文 3 3 软件复用度量 3 3 1 软件复用度量的目的和要求 为了使建立的复用度量模型既能客观反映复用结果又比较容易实现,每 个复用度量模型都要满足以下七个方面的要求嘲: 1 能够真实反映软件项目的复用程度。即度量结果必须真实可信,不受 项目以外干扰因素的影响。 2 能够估计服用带来的收效。度量能够帮助我们展示软件复用带来的经 济上的收获,此时度量模型的合理性比度量出来的数值大小更为重要。 3 能够向应用开发人员和管理人员提供反馈信息。应用系统的开发人员 需要随时知道他们的任务完成情况并向项目管理人员汇报。 4 能够提供与复用有关的简单易懂数字。复用的度量结果必须是量化和 容易理解的,度量模型能够被人理解的程度,往往决定了人们是否愿意使用 它,因为每个人都更倾向于采用简单明了而又富有含义的数值模型。 5 对于开发业务的工作量影响不大。不论采用何种度量模型,需要什么 原始数据,都必须易于同当前开发工作及开发环境相配合,没有人愿意在开 发任务以外花费过多的时间和人力去收集整理仅仅是为了用于度量的数据或 其它信息。 6 符合度量理论中的原理。度量模型应当具备一致性、与度量人员无关 的独立性、可重复性( 即同一状态下的多次度量结果应相同) ,同时应当经过 较为严密的数学推导或证明“1 。 7 能够鼓励复用。按照度量理论,度量一般不能担当“先导”的角色, 即度量模型不应当是人为设计出来、用于指导人们如何制造产品的东西,而 只能是已经制造出来的产品其属性的客观准确地描述。但是人们发现复用度 量模型在帮助软件开发组织建立软件项目是能够充当一种有价值的工具。 3 3 。2 软件复用度量的内容 有关复用的度量主要包括可复用性度量( r e u s a b i l i t y m e t r i c s ) 和复用度 量( r e u s e m e t r i c s ) 。 可复用性度量主要用来判定一个构件的可复用性和质量,它的主要作用 1 8 哈尔滨工程大学硕七学位论文 有;识别出遗产系统中的领域知识和有用的产品“,为构件的提取提供基础; 对构件库中的可复用构件进行客观的控制,保证构件库中保存的是高可复用 性和高质量的构件。另外,在复用库中如果能同时包含构件的复用和质量度 量的信息,可以给使用构件库中构件的复用用户提供有价值的帮助滔1 。 复用度量主要用于判定复用对生产率、质量和开发时间的作用,它可以 在不同级别上进行度量,包括构件级、产品族级、项目级和机构级。复用度 量的主要作用有:监控在过去时间内已复用的数量;为判定复用对软件生产 力和质量的作用提供基础;加深对开发可复用软件的理解力;判定特定行为 对复用数量的作用。 3 3 3 有关软件复用的度量准则 1 可复用性度量: 可复用性的度量是具有相当难度的,其中之一就是可复用性的特征对于 每个特定构件来说是特定的,即许多特征不具备普遍适用性。 s e l b y 给出一些准则来识别可复用黑盒构件,如具有这些特征的模块是 具有高可复用性的。 b a s i l i 报告了两个学习系统,第一个学习系统、定义了利用数据共享度 量来确认可复用构件。首先找出全局共享数据,然后进行串分析计算并给出 耦合度的权重,那些强耦合的模块可复用性较差,独立性较强的模块是候选 可复用构件。第二个学习系统定义了一个对a d a 语言构件的可复用性抽象度 量,通过从现存系统转化为利用构件组装的系统所需的改变量,可得到的构 件的可复用性度量的指标。 k n i g h t 等人也提出了类似的利用模块耦合度信息来度量可复用性的方 法。 除此之外,还有r e b o o t 方法,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化旅游演艺剧目跨区域合作与运营模式可行性研究
- 废线路板回收拆解利用项目环境影响报告书
- 激光雷达固态化技术发展报告:成本控制与行业应用挑战
- 2025年3D建筑打印技术的效率分析
- 潮玩市场IP运营:2025年行业洞察与运营策略优化指南
- 2025年炊事员考试试题库及答案
- 锻造工艺基础知识培训课件
- 锯树安全培训内容课件
- 生产PVC复合布新建项目环评报告表
- 锦鲤育种课件
- GB/T 20716.2-2025道路车辆牵引车和挂车之间的电连接器(7芯)第2部分:12 V标称电压车辆的制动系统和行走系的连接
- 学校“1530”安全教育记录表(2024年秋季全学期)
- 2023年浙江黄龙体育发展有限公司招聘笔试题库及答案解析
- 储罐施工方案(电动葫芦)
- CMA全套文件(质量手册+程序文件+作业指导书+表格)
- 数控机床(超全)课件
- 医院信息安全与保密承诺书2篇
- SJG 01-2010 深圳市地基基础勘察设计规范-高清现行
- 康复护理学-康复评定认知功能评定
- 最全的食物相克表(打印版)
- 施工现场安全标志和安全防护设施设置方案
评论
0/150
提交评论