(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf_第1页
(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf_第2页
(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf_第3页
(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf_第4页
(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf_第5页
已阅读5页,还剩107页未读 继续免费阅读

(计算机软件与理论专业论文)基于本体、特征驱动的产品线开发方法.pdf.pdf 免费下载

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

文档简介

摘要 摘要 软件复用和构件技术作为提高软件丌发的效率和质量的重要途径已经得到 广泛的认同。在此基础上,软件工程研究所( s e i ) 借鉴制造业中生产线的成功 经验,提出了软件产品线( s o f t w a r e p r o d u c t l i n e ) 的思想。软件产品线针对特定 领域中的一系列具有公共特性的软件系统,试图通过对领域共性和可变性的把握 构造一系列领域核心资产,从而使特定的软件产品可以在这些核心资产基础上按 照预定义的方式快速、高效地构造出来。 软件产品线是一种针对特定领域、系统的、全面的基于构件的复用式开发范 例,区别于偶然的复用以及基于复用的单个系统开发等。因此,软件产品线十分 强调领域级的需求分析以及产品线体系结构的重要作用,它们对于作为产品线基 础设施的领域核心资产在产品开发中的可复用性以及适应特定应用需求的灵活 性有着决定性作用。 本文的研究针对产品线开发中领域分析建模、体系结构设计和应用工程等关 键环节,采用广泛使用的特征建模方法,以基于本体的特征模型作为领域分析以 及体系结构和构件设计的基础,从而将各个产品线开发阶段有机地联系起来,使 相关开发活动能够平滑地完成过渡。 本文首先提出了一种基于本体的特征建模方法,该方法在本体基础上为领域 模型和应用模型定义了统一的特征元模型,并提供了良好的模块化机制,同时还 运用本体的推理能力实现了特征模型的一致性检查。在此基础上,本文提出了一 种基于特征本体的构件静态语义描述框架以及基于通信顺序进程c s p 和特征语 义的构件行为协议描述方法,为特征模型向体系结构和构件模型的转换以及面向 复用的构件和体系结构适配创造了条件。 针对领域体系结构设计,本文在基于本体的特征模型基础上提出了一种概念 体系结构设计方法,该方法主要考虑构件闯的功能分配和交互边界设计,可以自 动地为开发者提供最初的领域体系结构方案。在此基础上,本文还对面向复用的 构件适配以及连接器设计进行了探讨。最后,本文提出了面向特定应用需求的特 征模型和体系结构定制方法,以及基于特征模型的体系结构一致性检查方法,并 结合一个领域开发实例以及相关的工具实现进行了说明。 总的来说,本文针对产品线开发过程中问题空问( 领域需求) 与解空间( 体 系结构及构件) 之间的鸿沟,以及适应不同应用需求的领域体系结构灵活性和可 定制性以及需求追踪等方面的困难,将特征工程的思想与领域工程技术结合起 来,以基于本体的特征语义作为纽带将特征模型和体系结构模型联系起来,不仅 使问题空问到解空b j 的过渡平滑起来,而且使基于本体推理的特征模型和体系结 第l 虹 摘要 构一致性维护成为可能。相关方法已经在课题组的研究中实现为基于本体的特征 建模工具和基于特征模型的体系结构设计工具,有望对产品线软件丌发提供有力 的支持。 关键词:软件产品线,领域工程,特征,特征建模,本体,软件体系结构,构件, 特定领域体系结构,领域本体,行为协议,构件适配,裁剪,定制 籀i ij 且 a b s t r a c | a b s t r a c t s o f t w a r er e u s ea n dc o m p o n e n tt e c h n o l o g yh a v eb e e nw i d e l ya c c e p t e da sn e w p a r a d i g m sf o rp r o m o t i o no fe f f i c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t b a s e do n t h ed e v e l o p m e n to ft h e s et e c h n o l o g i e sa n dt h el o n g - t e r ms u c c e s so fp r o d u c tl i n e i n m a n u f a c t u r i n g ,s e ip r o p o s e dt h ec o n c e p to f s o f t w a r ep r o d u c tl i n e ( s p l ) as p l i sa s e to fs o f t w a r es y s t e m si nt h es a m eb u s i n e s sd o m a i ns h a r i n gc , o m m o nf e a t u r e s ,a n d s p lm e t h o d st r yt oc o n s t r u c tac o m n l o ns e to fc o r ea s s e t si na d v a n c e s ot h a ts p e c i f t c s o f t w a r ep r o d u c t sc a l lb er a p i d l ya n de f f i c i e n t l yd e v e l o p e df r o mt h ec o r ea s s e t si na p r e s c r i b e dw a y s p li sad o m a i n - o r i e n t e d ,s y s t e m a t i c ,c o m p r e h e n s i v e ,a n dc o m p o n e n t - b a s e d p a r a d i g m i td i f f e r sf r o mf o r t u i t o u sr e u s ea n ds i n g l e s y s t e md e v e l o p m e n tw i t hr e u s e s od o m a i n - l e v e lr e q u i r e m e n ta n a l y s i sa n ds p la r c h i t e c t u r ea r ee s s e n t i a li ns p l d e v e l o p m e n ta n dc a nd e t e r m i n et h er e u s a b i l i t ya n df l e x i b i l i t yo ft h ec o r ea s s e t s a m o n gv a r i o u sp r o d u c t s t h er e s e a r c ho f t h i sp a p e ra i m sa tt h em a i ns t a g e si ns p l d e v e l o p m e n ti n c l u d i n g d o m a i na n a l y s i sa n dm o d e l i n g , a r c h i t e c t u r ed e s i g na n da p p l i c a t i o ne n g i n e e r i n g t h e w i d e l y - u s e df e a t u r em o d e l i n gm e t h o di sa d o p t e di nd o m a i na n a l y s i sa n do n t o l o g yi s i n t r o d u c e da st h eb a s i so ff e a t u r em o d e l i n g f u r t h e r m o r e ,t h eo n t o l o g y - b a s e df e a t u r e m o d e li sa l s ot a k e na st h eb a s i sf o ra r c h i t e c t u r ea n dc o m p o n e n td e s i g n t h e nt h em a i n s t a g e so fs p l c a l lb ec o n n e c t e do r g a n i c a l l ya n dt r a n s i t i o n sb e t w e e nr e l a t e da c t i v i t i e s c a nb eg r e a t l ys m o o t h e d f i r s t , t h i sp a p e rp r o p o s e sa l lo n t o l o g y - b a s e df e a t u r em o d e l i n gm e t h o d au n i f i e d f e a t u r em e t a - m o d e lf o rd o m a i nm o d e l sa n da p p l i c a t i o nm o d e l si sd e f i n e do no n t o l o g y c o n c e p t s aw e l lm o d u l a r i t ym e c h a n i s m i sp r o v i d e da n dc o n s i s t e n c yc h e c k i n gc a nb e p e r f o r m e db yo n t o l o g yi n f e r e n c e s e c o n d , as t a t i cd e s c r i p t i o n f r a m e w o r kf o r c o m p o n e n ts e m a n t i c s a n da r e p r e s e n t a t i o nm e t h o df o rb e h a v i o rp r o t o c o lo f c o m p o n e n t sa r ep r o p o s e db a s e d o nt h e f e a t u r eo n t o l o g y c s p ( c o m m u n i c a t i n gs e q u e n t i a lp r o c e s s e s ) a n df e a t u r es e m a n t i c s a r ec o m b i n e di nt h eb e h a v i o rp r o t o c 0 1 a n dt h ef e a t u r e - b a s e dd e s c r i p t i o no f c o m p o n e n ts e m a n t i c sa n db e h a v i o rm a k e si tp o s s i b l et om a pf e a t u r em o d e l s t o a r c h i t e c t u r ea n dc o m p o n e n tm o d e l s r e u s e - o r i e n t e dc o m p o n e n ta n da r c h i t e c t u r e a d a p t a t i o ni sa l s oe n a b l e d 第l l l 贝 a b s t r a c t h i r d ,af e a t u r em o d e la n dc o m p o n e n ts e m a n t i c sb a s e dm e t h o df o rc o n c e p t u a l a r c h i t e c t u r ed e s i g ni sp r o p o s e d c o m m o n a l i t y , v a r i a b i l i t y , b i n d i n gt i m e ,s t r u c t u r a l r e l a t i o n s ,a n dd e p e n d e n c i e sa r et a k e ni n t oa c c o u n ti nt h em e t h o d r e u s e o r i e n t e d c o m p o n e n ta d a p t a t i o na n dc o n n e c t o rd e s i g na r ea l s od i s c u s s e d f i n a l l y , w ep r e s e n tt h ea p p l i c a t i o n o r i e n t e dc u s t o m i z a t i o nm e t h o do ft h ef e a t u r e m o d e la n da r c h i t e c t u r e ,a n dd e m o n s t r a t et h em e t h o d sb yad e v e l o p m e n ti n s t a n c ea n d t h er e l a t e di m p l e m e n t a t i o nt o o l s i nc o n c l u s i o n , t h i sp a p e ra i m sa tt h eb i gg a pb e t w e e nt h ep r o b l e md o m a i n ( r e q u i r e m e n tm o d e oa n dt h es o l u t i o nd o m a i n ( a r c h i t e c t u r ea n dc o m p o n e n tm o d e l ) i n s p l d e v e l o p m e n t a n dd i f f i c u h i e si n r e q u i r e m e n tt r a c e a b i l i t y a n dt h e a r c h i t e c t u r e - l e v e lf l e x i b i l i t ya n dc u s t o m i z a b i l i t y t h ec o n c e p to ff e a t u r ee n g i n e e r i n g a n dd o m a i ne n g i n e e r i n ga r ec o m b i n e da n do n t o l o g y - b a s e df e a t u r es e m a n t i c si s p r o p o s e dt oc o n n e c tf e a t u r em o d e l s ( t h ep r o b l e md o m a i n ) a n da r c h i t e c t u r e s ( t h e s o l u t i o nd o m a i n ) s ot h et r a n s i t i o nb e t w e e nt h et w od o m a i n si ss m o o t h e da n d o n t o l o g y - i n f e r e n e eb a s e dc o n s i s t e n c ym a i n t e n a n c eb e t w e e nf e a t u r em o d e la n d a r c h i t e c t u r ei sa l s oe n a b l e d t h em e t h o d sh a v eb e e ni m p l e m e n t e di nt h er e l a t e dt o o l s , i n c l u d i n go n t o l o g y - b a s e df e a t u r em o d e l i n gt o o la n df e a t u r e - b a s e da r c h i t e c t u r ed e s i g n t 0 0 1 b o t ho f t h e mh a v ee x h i b i t e de f f e c t i v es u p p o r tf o rs p l d e v e l o p m e n t k e y w o r d s :s o f t w a r ep r o d u c tl i n e , d o m a i ne n g i n e e r i n g , f e a t u r e , f e a t u r em o d e l i n g , o n t o l o g y , s o f t w a r ea r c h i t e c t u r e , c o m p o n e n t , d s s d o m a i no n t o l o g y , b e h a v i o r p r o t o c o l ,c o m p o n e n ta d a p t a t i o n ,t a i l o r i n g , c u s t o m i z a t i o n 第1 v 贝 第一帚绪论 第一章绪论 1 1 软件产品线及特征工程的提出 随着软件开发方法及相关技术、辅助工具的发展,现实的软件开发也越来越 成熟。尽管如此,软件系统的规模和复杂程度的不断提高仍然导致软件丌发的成 功并不像人们所期望的那么容易。首先,软件开发者必须在保证产品上市时间 ( t i m et om a i m ) 的前提下努力提高开发的生产力( p r o d u c t i v i t y ) 和质量( q u a l i t y ) 。 其次,存在于用户与开发者对系统的不同观点之间的巨大鸿沟也是软件开发过程 中一个主要困难【l 】。此外,系统的复杂性还带来了维护工作上的困难:由于缺 少从问题空间( p r o b l e md o m a i n ) 到解空间( s o l u t i o nd o m a i n ) 的一种一致的追踪 关系以及各种实现单元之间的复杂关系的清晰描述,对已有系统的任何修改都可 能比较困难且极易引入缺陷。 针对这些问题,工业界以及软件工程研究界都进行了大量豹探索和实践,并 提出了一系列有效的方法。对于软件开发的效率和质量的问题,人们逐渐认识到 软件复用和构件技术是一个可行的解决方案。软件复用可以避免重复劳动,其出 发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为 基础,充分利用过去应用系统开发中积累的知识和经验【2 】。基于构件的复用是 产品复用的主要形式,同时构件技术也是成功的软件复用的关键【2 】。软件复用 相关研究目前主要关注于商用第三方构件( c o t s ;c o m m e r c i a lo f f - t h e - s h e l f ) 以 及特定领域的复用式开发。软件复用的研究和实践表明,特定领域的软件复用活 动相对容易取得成功【3 】。这是由领域的内聚性和稳定性决定的。属于同一个领 域的一系列应用系统构成了软件产品族( s o f t w a r ep r o d u c tf a m i l y ) 。类似的术语 “软件产品线”( s o r w a r ep r o d u c tl i n e ) 则强调其中的软件系统共享一组受控的 公共特征并且都是在一系列预定义的公共核心资产基础上开发而成的【4 】。软件 产品线的概念是由卡内基梅隆大学( c m u ) 的软件工程研究所( s e i ) 提出的, 最初就是借鉴了瑞典c e l s i u s t e c h 系统公司在轮船系统上的成功经验【4 】。产品线 工程包含一系列的领域工程和应用工程活动,涉及软件复用的多个方面。其中领 域工程是其中的核心部分,它是领域核心资产( 包括体系结构和构件等) 的生产 阶段。而应用系统工程则面向特定应用需求,根据特定应用需求开发应用构件, 并基于领域体系结构进行构件定制和组装。 领域工程主要包括领域分析、领域设计和领域实现这三个阶段【2 】。领域分析 是领域级的需求工程活动,得到的产物是领域模型( d o m a i nm o d e l ) 。在此基础 第1 娅 第一章绪论 上,领域设计阶段设计领域体系结构( d o m m ns 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 ) ,其中的领域通用构件将在领域实现阶段加以实现。基于特征的方 法【5 】是目前最为流行的领域分析方法中。k a n g 5 等人首先在f o d a 方法中引入 “特征”的概念,并使用特征对领域中相关系统的共性及差异性进行定义。由此 可见,领域工程与特征工程在将特征作为需求空l 日j 的组成单元上是一致的 3 1 。 问题空日j 和解空间分别是用户和开发者的关注点,而如何使二者之间通过有 效的沟通达成问题空间与解空间的一致则是软件开发成功的关键。用户主要关注 于系统的外部功能,开发者则关注于开发生命周期中各种制品( a r t i f a c t ) 的创建 和维护,而这些制品在问题空间中并不一定存在对应的解释【1 】。在现实的软件 开发中,问题空白j 和解空间的衔接主要依靠系统设计者对于用户需求的理解,因 此十分依赖于设计者的经验。t u m e r 1 等人认为用户主要是以特征( f e a t u r e ) 的 观点来认识软件系统的,特征从直观上说就是从用户观点刻画软件系统的一组内 聚并且可标识的系统功能簇,例如用户一般会根据特征来报告缺陷或提出新功 能。虽然特征并不存在一个公认的确切定义,但一般认为特征表示不同粒度的系 统需求以及产品线特性。从需求规约的组织结构角度来看,特征提供了一种对需 求的分割和组织方式,即以特征作为需求空间内的一阶实体【3 】。 作为用户需求在软件开发生命周期不同阶段的对应产物,体系结构设计、代 码实现、测试用例等制品都与问题空问中的元素存在某种潜在的关系。这种关系 对于保证软件项目的成功以及可维护性有着十分重要的意义。针对这些问题,有 学者提出了“特征工程”的概念。特征工程将特征提升为跨越软件生命周期以及 问题空间和解空间的一阶实体【1 】,研究特征在软件开发不同阶段的表现形式以 及对软件开发的影响。 1 2 研究现状和闯题 基于特征的领域分析和建模一直是一个研究热点,而特征工程的研究几乎涉 及软件开发的各个阶段,既包括正向的基于特征的领域开发过程又包括逆向的基 于已有产品的特征模型的恢复和重建。在此基础上,许多研究者将特征的概念应 用到产品线软件开发生命周期的各个阶段,对相关课题进行了广泛而深入的研 究,主要包括: 1 ) 基于特征的领域分析方法、特征建模以及形式化描述方法,包括特征元 模型、可变性建模和管理、特征依赖和约束的表达、一致性检查、建模工具等; 2 ) 领域体系结构描述及可变性建模方法,基于特征模型的产品线构件及体 系结构设计,以及面向特定应用的需求模型和体系结构定制; 第2 撕 第一章绪论 3 ) 基于特征的遗产系统逆向分析、构件提取及特征模型恢复,以及基于场 景和源代码分析的特征定位; 4 ) 特征在软件开发生命周期中不同阶段的表现形式及其追踪关系的建立和 维护,基于特征的变更管理和配置管理,以及基于特征的测试; 5 ) 特征交互问题以及在软件刀:发生命周期各个阶段的表现,例如代码实现 中的特征交互以及运行时的特征交互问题。 从各种文献以及相关国际会议看,软件产品线以及基于特征的方法近十年以 来一直是软件工程界的研究热点,相关研究大量见诸于i c s e 、i c s r 、i c r e 等 主流软件工程会议以及软件产品线国际会议( s p l c ) 。这些研究工作主要关注于 产品线生命周期的某一特定阶段,例如特征建模、可变性管理等。而成功的软件 产品线还需要有系统覆盖产品线开发主要阶段的方法及相关工具支持,特别是领 域体系结构和构件设计以及面向特定应用的定制和裁剪,这方面的研究工作还比 较少。 特征工程以体现系统根本特性的特征为纽带,将问题空间与解空间联系起 来。作为系统外部特性代表的特征广泛存在于软件开发各阶段中,但其表现形式 又各不相同。由于问题空问与解空间之间巨大的异构性,软件开发各阶段间特征 追踪关系的建立和维护十分困难,需要有一个系统的特征基础作为支撑。这种特 征基础不仅能支持领域分析阶段的需求建模,还能以各种不同的方式为后续开发 阶段中的制品提供描述支持。在此基础上,我们还需要提出一套覆盖各主要开发 阶段的方法来指导整个产品线开发过程的实施。 在软件产品线以及特征工程相关研究基础上,本文对特征驱动的软件产品线 开发方法进行研究。主要方法是引入本体作为特征的描述基础,并以特征本体作 为各开发阶段的公共基础,研究特征驱动的产品线开发方法,主要包括领域建模、 d s s a 设计、构件连接器设计、面向应用需求的裁剪和定制等。 1 3 本文主要工作 本文主要关注于特征驱动的领域产品线开发,特别是领域体系结构和构件设 计以及面向特定应用的定制和裁剪。领域体系结构和构件设计是产品线开发中问 题空间向解空间转换的关键环节,也是领域丌发成功与否的关键所在。本文的主 要贡献在于引入本体作为领域特征模型的描述基础,并在特征本体的基础上定义 7 构件静态语义和行为协议描述方法,以此作为过渡提出了基于特征模型的体系 结构和构件连接器设计方法,并以领域特征模型中的可变点信息指导面向特定 应用的体系结构裁剪和定制,从而为特征追踪关系的建立以及基于特征追踪的系 第31 ;f 第一章绪论 统演化管理打下孥实的基础。 本文主要研究工作及创新点如下: 1 ) 引入本体作为特征模型的描述基础,在本体基础上为领域模型和应用模 型定义了统一的特征模型元模型,并提供了良好的模块化机制,同时也为特征模 型的形式化描述以及基于本体推理的一致性检查打下基础; 2 ) 基于领域特征本体提出了构件语义和行为协议描述框架,从而在本体层 面上统一了特征模型和构件的描述基础,为特征模型向体系结构模型的转换以及 系统的特征行为一致性检查创造了条件; 3 ) 提出了一种基于特征模型的领域概念体系结构以及领域构件语义和行为 协议设计方法,在满足特征工程基本原则的基础上使d s s a 的设计可以半自动地 完成; 4 ) 在构件行为组装分析的基础上研究了连接器行为的推导,以及基于连接 器的构件行为适配,从而实现面向企业构件库和第三方构件的复用式开发: 5 ) 以特征模型中的可变点和特征依赖关系为基础,提出了一种基于可变点 定制的领域特征模型定制方法,并以此指导d s s a 的裁剪,从而方便了应用系统 开发,并保证了应用模型与领域模型的一致性。 本文的方法已经在研究工作中实现为特征驱动的领域开发工具集,主要包括 基于本体的特征建模工具以及基于特征的体系结构设计工具。因此本文还将结合 领域开发实例展示相关方法过程,并对相关支持工具进行介绍。 1 4 本文篇章结构 整个论文内容分为十章。 第一章是绪论,对研究问题、相关研究基础以及本文的工作进行了概述,总 领全文。第二章对软件产品线工程以及基于特征的软件开发相关研究工作进行了 综述。第三章简要介绍特征工程、软件产品线以及本体等相关理论基础,并对本 文基于本体、特征驱动的产品线软件开发方法进行了概述。 第四章提出了基于本体的特征建模方法。这部分将首先介绍基于本体的特征 建模框架,然后给出了基于本体的特征模型元模型,并着重阐述了其中的特征依 赖建模以及模块化机制。最后,这部分还给出了基于本体推理的特征模型一致性 检查方法,并结合一个特征模型实例进行了说明。 第五章介绍基于本体的构件语义描述框架。给出了端口语义、构件语义协议 以及构件静态语义的定义,并在此基础上提出了构件语义组装推导方法。在此基 础上,第六章结合w r i g h t 中的构件和连接器行为描述,提出了一种基于c s p 和 第4 贝 第一章绪论 特征语义的构件行为协议描述方法以及相应的组装分析方法。 第七章是特征驱动的领域体系结构设计方法研究,提出了一种基于特征模型 的领域概念体系结构设计方法。该方法以构件语义作为特征到概念构件设计的过 渡,综合考虑了特征模型中的可变性、绑定时间以及依赖关系等因素。在此基础 上,第七章还讨论了基于特征依赖分析的构件特征行为协议设计以及基于特征的 体系结构开发管理。 第八章在构件行为语义组装分析的基础上研究了连接器行为的推导。为了实 现第三方构件以及面向企业构件库的复用,本章还在构件交互行为分析的基础 上,对基于连接器的构件适配方法进行了讨论。 第九章将讨论面向特定应用需求的特征模型和体系结构定制,并提出了基于 特征模型的体系结构一致性检查方法。最后结合一个产品线开发实例展示本文所 提出的产品线开发方法。 最后,第十章对全文的工作进行了总结,并对特征驱动的软件产品线方法的 发展以及下一步的研究工作进行了展望。 第5 贝 第一章相关研究综述 第二章相关研究综述 本章对软件产品线以及特征驱动的开发方面的国内外相关研究工作进行综 述,从而说明本文研究的基础以及创新点。本章首先对软件产品线方面研究的概 述,然后简单介绍特征工程以及特征驱动的丌发方法,作为后续相关研究工作论 述的背景。接下来的部分将对基于特征的产品线丌发中的领域建模、体系结构和 构件设计、以及构件和应用开发等主要环节上的相关研究进行介绍。最后是本章 的小结,将对相关研究进行总结,并与本文的工作进行对比。 2 1 软件产品线研究概述 产品线( p r o d u c tl i n e ) 的概念是由卡耐基一梅隆大学( c m u ) 的软件工程 研究所( s e i ) 提出的【4 】,他们将软件产品线定义为“共享一组公共受控特征, 满足特定市场需要,并且按照预定方式在相关核心资产基础上开发而成的一系列 软件系统”。 一个产品线是共享一组共同设计及标准的产品族,从市场角度看是在某市场 片断中的一组相似的产品【2 】。这些产品属于同一领域,具有公共需求集,可以 根据特定的用户需求对产品线体系结构进行定制,在此基础上通过可复用构件和 特定应用构件的组装得到。产品线工程是一种有效的、系统的软件复用形式,复 用的对象包括产品线体系结构、构件、过程模型等。而在单个产品的丌发过程中 主要是代码复用 2 1 。2 0 0 0 年s e i 发起召开了第一届国际软件产品线会议s p l c ( s o f t w a r ep r o d u c tl i n ec o n f e r e n c e ) ,并提出一个完整的、经实践确认的软件产 品线开发方法。除此之外,软件复用国际会议i c s r ( i n t e r n a t i o n a lc o n f e r e n c e o n t h es o f t w a r er e u s e ) 等也将软件产品线作为一个主要的关注点。这些都表明软件 产品线是软件工程界的一个研究热点。软件产品线在软件产业界也有了很好的实 践,其中最著名的范例是瑞典c e l s i u s t e c hs y s t e m 公司和美国空军电子系统中心 ( e s c ) 的产品线系统 2 】。 产品线工程的生命周期可以分为领域工程和应用工程两个阶段。领域工程活 动包括领域分析和定义、领域参考体系结构丌发、领域核心构件开发等。而应用 工程阶段的活动则包括应用需求分析、参考体系结构的实例化、领域构件的实例 化和定制以及基于构件的丌发等。整个过程包含了可复用资产的生产和消费两个 方面:在开发过程的两个阶段中,领域工程阶段是产品线核心资产的生产阶段, 而应用工程阶段则使用这些资产进行产品丌发。这种紧密的联系保证了较高的生 第6 贞 第一二审相关研究综述 产率和较好的产品线收益。 产品线工程的本质特点在于强调领域体系结构的重要性以及面向特定领域 的市场导向,这与以构件为核心的初始领域工程方法差异较大。例如有学者认为 软件体系结构是应大系统开发和软件产品线技术而出现的【6 】。此外,还有学者【7 】 认为产品线工程与一般的领域工程的一个显著区别在于以市场分析为基础。从这 些观点以及s e i 对软件产品线的定义中可以看出软件产品线的几个主要特点:市 场目标驱动、面向特定领域、以体系结构为核心、复用导向贯穿始终。 经过十几年的发展,软件产品线方法在理论和实践上都取得了较大的进展, 并在许多基本理论和基本原则上形成了共识。w i l lt r a c z 8 率先提出领域专用软 件体系结构方法d s s a ,它突出地强调体系结构的作用,奠定了产品线方法的基 础。1 9 9 4 年贝尔实验室提出面向家族的抽象、规约和转化的领域工程方法f a s t ( f a m i l y - o r i e n t e da b s t r a c t i o n , s p e c i f i c a t i o na n dt r a n s l a t i o n ) 【9 】,包含两个子过程: 确定家族的需求并为生成家族成员开发一系列的可复用的软件资产;使用软件资 产生成家族成员。1 9 9 9 年德国f r a u n h o f e r 实验软件工程学院基于d s s a 提出产 品线软件工程方法p u l s e 1 0 j ,包括三个组件,p u l s e - d s s a 、p u l s e e e o , p u l s e - e m 。 北京大学软件工程研究所在青鸟工程 2 e e 提出了软件生产线的概念和思 想,将软件的生产过程划分为三类不同的生产车间,即应用体系结构生产车间、 构件生产车间和基于构件、体系结构复用的应用集成( 组装) 车间,将软件开发 人员划分为构件生产者、构件库管理者和构件复用者,从而形成软件产业内部的 合理分工,实现软件的工业化生产。 随着f o d a 方法【5 】的提出,基于特征的方法逐渐成为领域建模的主流。在此 基础上,k a n g 等人【1 1 】进一步将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 em e t h o d ) 。f o r m 支持可复用体系 结构和构件的开发,支持使用领域工程所生产的领域制品进行应用的开发。 f o r m 方法的主要过程如图2 1 所示,主要也是分为领域工程和应用工程两个阶 段,而且应用工程中每一活动都是以领域工程中相应活动产物作为基础( 例如应 用需求分析以领域分析阶段产生的特征模型为基础) 同时为领域工程提供反馈。 在领域体系结构设计上,f o r m 分别在子系统模型、进程模型和模块模型三个抽 象层次上给出指导原则,并综合考虑了功能性需求、非功能性需求以及操作环境 因素。 除了这些方法,还有许多研究者围绕着产品线开发方法,在领域建模方法、 特征追踪、可变性管理、领域体系结构设计、产品族配置管理等方面展丌工作, 这些将在以下各节中分别介绍。 第7 撕 第一二章相关研究综述 图2 1f o r m 方法中的领域工程和应用工程【1 1 】 2 2 特征工程及特征驱动的开发 问题空间( 体现为系统需求) 和解空间( 体现为体系结构、代码、测试用例 等制品) 代表了用户和开发者对系统的不同视点。如何在二者之间进行映射是软 件开发的一个主要问题。特征及特征交互的概念最初应用于电信领域,后来人们 发现特征理论完全适用于其它软件开发领域,从而开创了特征工程的研究领域。 特征工程涉及软件开发生命周期的各个阶段。其中,需求工程是特征工程的 起点,这一阶段必须对每一个特征所包含的需求片断以及特征间的各种依赖关系 进行标识【1 】。特征工程的目标正是通过一种严格的方法将需求活动的结果应用 到其它的生命周期活动中【1 】,从而保证软件实现符合用户的要求。另一方面, 这种映射关系也可以大大提高软件维护的效率和质量。需求追踪领域已有多年的 研究历史,但结果并不理想。一个主要问题是需求追踪往往需要手工完成,而追 踪结果很难保持同步更新且极易出错【l 】。解决这一问题的一个办法是将追踪的 粒度从单个需求提升到有意义的需求簇,即特征上【1 】。因此,特征追踪和面向 特征的设计是相互支持的两个目标【l 】。 围绕特征及特征工程,研究者们取得了一系列的研究成果。特征工程的一种 典型应用是与领域丌发结合起来,其中最著名的是面向特征的领域分析方法 f o d a e s 。g o n m 等在文献【1 2 】中介绍了一种领域建模方法及相应的建模环境, 该方法可以在领域模型的基础上为目标系统生成作为解空间产物的对象规格说 第8 虹 第二帚 日关研究综述 明。这样,实现单元与特征问的关系也自然建立起来了。j a c k s o n 等在文献 1 3 】 中介绍了一种支持动态服务组装的虚拟特征描述架构d f c ,把电信系统的每一 个特征建模为一个独立的构件,然后通过把这些构件组装成p i p a n d f i l t e r 风格 的体系结构来分析电信系统的行为。在这种方法中,特征作为一阶实体存在,并 用于驱动后续的模型检查以及系统体系结构设计活动。 除此之外,特征导向还被广泛应用于需求活动之后的其它活动中。t u r n e r 等在文献【1 】中详细阐述了特征方法在体系结构高层设计、低层设计和实现、测 试、配置管理、逆向工程等方面的应用。由于特征直接表示系统需求,因此以特 征作为测试用例的组织单位是一种自然的选择。同时由于用户将根据特征表达新 的要求,因此这种方法还能大大减少系统修改所需的回归测试【1 】。特征同样可 以成为逆向工程的目标。m e h t a 等人【1 4 】提出了一种基于特征的遗产系统演化方 法,即将分散在源代码中多个地方的特征实现封装在一个细粒度的构件,从而提 高系统的演化能力。另外有一些学者关注于源代码中的特征实现定位,例如 e i s e l l b a r t h 等 1 5 】将静态和动态分析方法相结合,并使用概念分析( c o n c e p t a n a l y s i s ) 方法来得到特征和计算单元( c o m p u t a t i o n a lu n i t ) 之自j 的对应关系, 而w e iz h a o 等【1 6 】采用的则是一种静态非交互信息的方法,通过信息检索的方法 来获得代码和文档之间的内在关系。 特征及特征方法最初被广泛用于电信领域,作为组织需求的基本单元。但这 也带来了所谓的特征交互问题。特征交互是指在构成系统总体行为的过程中,一 些特征对其它特征的修改或影响作用,并被认为是导致软件复杂性、质量、成本 以及进度失控的罪魁祸首【1 7 】。特征交互问题不仅存在于电信系统中,而且广泛 存在于各种软件系统中。s t a f f o r d 等【1 8 认为在基于构件组装的系统中,运行时 出现的所有质量属性都是( 预料之内或之外) 构件特征交互的体现,为了控制构 件特征交互,必须综合运用体系结构、构件技术、组装推理,构件属性度量,构 件验证等技术,从而通过组装推理来保证运行时的特征交互与设计决策的一致 性。x u a n z h el i u 等【1 9 】在与电信系统进行对比的基础上,对中问件中的特征交 互问题进行了探讨。r o b a k 等 2 0 1 认为减少特征与可变点之间的多对多关系有助 于按照关注点分离的原则建立可扩展、可追踪的软件模型。许多学者在特征交互 的基础上研究基于软件产品线的程序生成技术,例如面向特征的编程f o p ( f e a t u r e o r i e n t e d p r o g r a m m i n g ) 2 1 2 2 。f o p 将特征作为软件模块的基本形态, 并研究特征模块如何以一种系统、通用并且自动的方法完成软件合成和演化 2 1 1 。一个领域的f o p 模型被视为一种代数系统,其中每个操作符都实现一个特 征,而程序设计则被视为由各种操作符( 特征) 组成的表达式【2 2 】。j i al i u 2 2 】 在f o p 基础上提出用软件推导( s o f t w a r ed e r i v a t i v e s ) 的概念束表示特征交互, 第9 “ 第二章相关研究综述 并运用这一理论将j a v a 遗产系统重构为f o p 设计。 此外,还有一些研究者将特征引入到一般软件的丌发过程中。f d d 2 3 是一 种特征驱动的迭代式的软件开发方法,它将特征作为每次迭代过程的基本增量单 元和里程碑。据介绍,微软在软件丌发中就采用了很强的特征导向以及特征驱动 的开发,但主要是用于项目管理而非开发过程【1 】。 从相关研究可以看出,基于特征方法的一个典型应用就是软件产品线。特征 分析及特征建模比一般的需求分析方法需要更多的开销。而软件产品线覆盖了领 域的多个应用,因此运用特征方法构造的特征模型及追踪关系等能够获得更大的 回报。另一方面,自f o d a 5 和f o r m t 1 1 等方法提出后,特征方法已逐渐成为 软件产品线研究的主流。因此,特征工程方法和产品线方法密切相关,可以很好 的结合起来。例如f o r m 方法 1 1 1 ,问题空间和解空间分别被称为特征空问 ( f e a t u r es p a c e ) 和制品空问( a r t i f a c ts p a c e ) 。由此可见,在使用特征作为问题 空间的组织单位上,特征工程与基于特征的领域开发方法是一致的。 2 3 领域建模技术 自从f o d a 5 1 将特征引入领域工程后,特征模型的概念已经在领域需求获取 和规格说明上得到广泛的使用。特征定义了领域中公共的方面,同时也对领域中 相关系统间的区别进行了描述【5 】。特征模型在结构方面主要包含两种关系:聚 集( a g g r e g a t i o n ) 和泛化( g e n e r a l i z a t i o n ) 。前者表示一

温馨提示

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

评论

0/150

提交评论