(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf_第1页
(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf_第2页
(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf_第3页
(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf_第4页
(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)基于本体的软件需求跟踪的研究.pdf.pdf 免费下载

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

文档简介

合肥工业大学 川1 1 1 i i i | f | i f | i f ? | ! l i i | | | i i f i f f | i ! f i f 18 8 715 2 本论文经答辩委员会全体委员审查,确认符合合肥工业大学硕士 学位论文质量要求。 主席: 委员: 答辩委员会签名:( 工作单位、职称) 酗渝彬描锨墩 砌嗽易 铲凯胁粥 互列+ l 荡谰 导师: 孪叫 饥z 纵孑为互 令心也农髻私吱 嗡 叼力 独皇l 性声鹗 本人声明所呈文的学位论文是本人在寻师指导下进行的研究工作曼取得的研究成果 据我所知,除了文中特别加叭标志和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含为获得金g 里王些盔茎 或其他教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中f 乍了明确的说明并 表示谢意。 学位论文作者签字燃签字蹶调7 年华月司日 学位论文版权使用授权书 本学位论文作者完全了解金a 曼王些太堂有关保留、使用学位论文的规定,有 权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。 本人授权金g 曼王些太堂可以将学位论文的全部或部分论文内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 名:般翮签芎彩叶 签字聃:加1 年够月刁日 学位论文作者毕业后去向: 工作单位: 通讯地址: 目月 弘, : : 年 蛳蝴 2 期日字签 基于本体的软件需求跟踪的研究 摘要 软件系统越来越复杂,实现软件需求到设计模型、代码、测试用例等软件 产品的跟踪也变得越来越重要。需求跟踪是一种有效的控制手段,它能保持软 件开发工作对需求的一致性。需求跟踪是实现软件需求管理,提高软件质量的 关键手段。 在现有的跟踪技术中,静态需求跟踪技术应用最广泛。偶尔也会有静态需 求跟踪工具的出现,但是这些需求跟踪工具都不易于维护,而且当软件需求发 生变更的时候,会损害需求跟踪的有效性。动态需求跟踪技术是一种自动化地 建立需求跟踪关系的技术。本文结合本体,提出一种需求到代码的自动匹配方 法。该方法通过构建需求本体和代码本体,建立两个本体之间的映射关系,根 据映射关系完成需求到代码的跟踪。 本文研究的主要内容包括:分析、研究需求和代码的特点,构建需求本 体和代码本体。分析了需求的分解过程、需求间的关系,并给出了需求本体的 构建方法;给出代码本体的描述和代码本体内部关系的描述;研究需求本体 到代码本体的映射规则,提出了两种基于相似度计算的需求本体和代码本体的 映射方法:基于w o r d n e t 英文词典的映射方法和基于属性的概念相似度计算方 法;设计开发基于本体的软件需求跟踪的原型,通过实验验证该方法的可行 性和有效性。实验表明,本文提出的方法为动态需求的跟踪提供了一种有效的 方法,并对需求变更影响分析具有指导性的意义,为软件需求的管理带来积极 的作用。 关键字:动态需求跟踪;需求本体;代码本体;本体映射 t h er e s e a r c ho fs o f t w a r er e q u i r e m e n t s t r a c e a b i l i t yb a s e do no n t o l o g y a b s t r a c t w i t hs o f t w a r es y s t e m sb e c o m em o r ec o m p l e x ,t h et r a c e a b i l i t yf r o mr e q u i r e m e n t st o s o f t w a r ep r o d u c t ss u c ha sd e s i g nm o d e l s ,c o d e s ,t e s tc a s e sh a sb e c o m em o r ei m p o r t a n t r e q u i r e m e n t st r a c e a b i li t yi sa ne f f e c t i v ew a yt oc o n t r o ls o f t w a r ed e v e l o p m e n t ;i tc a nm a i n t a i n s o f t w a r ed e v e l o p m e n tw o r ko nc o n s i s t e n c y i t i st h ek e yw a yt or e a l i z et h es o f t w a r e r e q u i r e m e n t sm a n a g e m e n ta n dt oi m p r o v es o f t w a r eq u a l i t y i nt h ee x i s t e dt r a c e a b i l i t yt e c h n o l o g y ,s t a t i ct r a c e a b i l i t yt e c h n o l o g yi s t h em o s tw i d e l y u s e d o c c a s i o n a l l ys o m er e q u i r e m e n t st r a c e a b i l i t yt o o l sh a v eb e e nd e v e l o p e d ,b u tt h e s et o o l s a r eh a r dt om a i n t a i n ,a n dw h e ns o f t w a r er e q u i r e m e n t sa r ec h a n g e d ,t h ee f f e c t i v e n e s s o f r e q u i r e m e n t s w o u l db eu n d e r m i n e d d y n a m i cr e q u i r e m e n t st r a c e a b i l i t y i sa na u t o m a t e d t r a c e a b i l i t yt e c h n o l o g yt ob u i l dt h er e l a t i o n s h i pb e t w e e nr e q u i r e m e n t sa n ds o f t w a r ep r o d u c t s t h i s p a p e r w i l li n t r o d u c e o n t o l o g y t ot h e r e q u i r e m e n t st r a c e a b i l i t y ;p r o p o s e a n a u t o m a t i cm a t c h i n gm e t h o df r o mr e q u i r e m e n t st oc o d e s w eb u i l dr e q u i r e m e n t so n t o l o g ya n d c o d eo n t o l o g y ,a n dt h e n ,r e a l i z et h et r a c e a b i l i t yt h r o u g ht h em a p p i n gb e t w e e nt h et w o o n t o l o g i e s t h em a i nc o n t e n t so ft h i sp a p e ra r e :b u i l dr e q u i r e m e n t so n t o l o g ya n dc o d eo n t o l o g y , t h r o u g ha n a l y z i n ga n ds t u d y i n gt h e c h a r a c t e r i s t i c so fr e q u i r e m e n t sa n dc o d e a n a l y z et h e d e c o m p o s i t i o np r o c e s so fr e q u i r e m e n t s a n dt h er e l a t i o n s h i pb e t w e e nr e q u i r e m e n t sa n d r e q u i r e m e n t s ;g i v et h ed e s c r i p t i o no ft h ec o d eo n t o l o g ya n d i n t e r n a lr e l a t i o n so fc o d e o n t o l o g y ;( 室) s t u d yt h em a p p i n gr u l e sb e t w e e nr e q u i r e m e n t so n t o l o g ya n dc o d eo n t o l o g y , a n dp r o p o s et w om a p p i n gm e t h o d so fr e q u i r e m e n t so n t o l o g ya n dc o d eo n t o l o g yb a s e do n s i m i l a r i t y c a l c u l a t i o n :t h e m a p p i n g m e t h o db a s e do nw o r l d n e te n g l i s hd i c t i o n a r y ;t h e c o n c e p t u a ls i m i l a r i t yc a l c u l a t i o nb a s e do na t t r i b u t e ;( 室) d e s i g na n dd e v e l o pt h ep r o t o t y p eo f t h er e q u i r e m e n t st r a c e a b i l i t yt e c h n o l o g yb a s e do no n t o l o g y ,v e r i f y t h ef e a s i b i l i t ya n d e f f e c t i v e n e s st h r o u g he x p e r i m e n t e x p e r i m e n t a l r e s u l t ss h o wt h a tt h ep r o p o s e dm e t h o d p r o v i d e sa ne f f e c t i v em e t h o df o rd y n a m i ct r a c e a b i l i t yt e c h n o l o g y ;i th a sg u i d i n gs i g n i f i c a n c e f o rr e q u i r e m e n t sc h a n g ei m p a c ta n a l y s i sa n dh a sap o s i t i v ee f f e c tf o r t h em a n a g e m e n to f s o f t w a r er e q u i r e m e n t s k e y w o r d s : d y n a m i cr e q u i r e m e n t st r a c e a b i l i t y ;r e q u i r e m e n t so n t o l o g y ; c o d e o n t o l o g y ;o n t o l o g ym a p p i n g i i 致谢 转眼之间,研究生生涯就要结束。这是我人生中最宝贵的三年,我认识了 更多的朋友,得到了他们的帮助,让我更懂得了感恩。研究生的三年是我人生 最宝贵的财富。 首先感谢我的导师李心科副教授对我的耐心指导和精心培养。李老师思维 敏锐、学识渊博。在论文交流中,他严谨的治学态度令我肃然起敬。在实验室 的项目中,他平易近人的品质更是给我留下了极其深刻的印象,而且他在工作 上一丝不苟的作风深深地感染和鼓舞了我。不仅仅在科研和项目中,他还为我 指出了毕业后的工作方向。这将成为我今后人生道路上一笔巨大的精神财富。 再一次感谢李老师,我的论文都是李老师心血的凝结。 感谢计算机学院的各位老师,他们为我们的学习生活创造了便利的条件, 感谢他们在工作和学习中给我的指导。 我也感谢在1 2 1o 实验室的同学,感谢和我在一起学习一起生活的硕士生陈 志俊、潘文娟、陈建敏和张青清等实验室的同学,和他们进行学术上的讨论使 我开拓了视野,拓宽了思路,和他们的项目开发使我学到了更多的东西,意识 到集体的重要性。我们的友谊值得我毕生珍藏。 最后,我要深深的感谢我的父母等所有家人。在我的求学生涯中父母给了 我巨大的支持和鼓励,永远鼓励我尽最大的努力积极向前,使我能够全身心的 投入到学习当中,我所取得的每一点进步,都离不开他们的体贴和关爱。在此, 谨向他( 她) 们表示最诚挚的谢意! 在此,感谢所有关心和帮助过我的人! i i i 裴志远 2 0 11 年4 月 目录 第一章绪论1 1 1 论文研究背景1 1 2 研究内容和意义1 1 2 1 论文研究内容l 1 2 2 论文研究意义2 1 3 论文组织结构一3 第二章需求跟踪和本体4 2 1 需求工程4 2 1 1 需求定义4 2 1 2 需求工程5 2 1 3 需求管理6 2 2 需求跟踪7 2 2 1 需求跟踪的定义7 2 2 2 需求跟踪相关技术8 2 2 3 动态需求跟踪l o 2 3 本体介绍1 3 2 3 1 本体定义及建模语言1 3 2 3 2 本体描述语言2 4 1 1 5 2 4 本章小结1 6 第三章基于本体的需求跟踪的研究1 7 3 1 软件需求本体1 7 3 1 1 需求本体描述一1 7 3 1 2 软件需求依赖关系2 l 3 2 代码本体2 3 3 2 1 面向对象软件特征2 4 3 2 2 代码本体依赖关系分析2 5 3 2 3 代码本体描述2 7 3 3 基于本体的需求跟踪2 8 3 3 1 本体映射2 8 3 3 2 相似度计算方法2 9 3 3 3 基于本体映射的需求跟踪系统3 2 3 4 本章小结3 3 第四章基于本体的需求跟踪设计与实验。3 4 4 1 系统开发平台简介3 4 i v 4 2 实验系统平台的选择3 4 4 2 1j e n a :;z l 4 2 2j d b c :;z l 4 3 系统设计3 5 4 4 本章小结3 8 第五章总结和研究展望3 9 5 1 全文总结3 9 5 2 下一步工作3 9 参考文献。4 0 攻读硕士学位期间发表的论文4 3 v 图表清单 图2 1 软件需求各个部分之间的关系图5 图2 2 需求工程基本活动5 图2 3 需求管理活动7 图2 - 4 常见的产品组件之间的跟踪关系一8 图2 5 产品组件之间的跟踪关系1 0 图3 1 需求分解结构示意图1 8 图3 2 某一需求事件的分解a n d o r 树1 9 图3 3 子集依赖关系2 2 图3 4 父集依赖关系2 3 图3 5 类依赖关系2 6 图3 - 6 类关联关系2 6 图3 7 类聚合关系2 6 图3 8 基于w o r d n e t 的相似度计算过程框架3 0 图3 - 9 基于本体的需求跟踪的框架一3 3 图4 1 人员信用信息查询系统本体的结构图3 5 图4 2 人员信用信息查询系统本体的结构图形化显示3 5 图4 3 输入需求本体3 6 图4 - 4 需求跟踪界面3 6 图4 5 需求跟踪结果实例3 7 图4 - 6 需求跟踪结果详细信息3 7 图4 7 保存需求跟踪结果3 7 图4 8 阈值和查全率、查准率之间的关系3 8 表2 1 一个跟踪矩阵的实例9 表2 2 语义网络栈1 5 v i 第一章绪论 1 1 论文研究背景 计算机的诞生为人类社会的发展带来了新的曙光,硬件领域在各个方面都 不断取得的重大突破和技术创新,计算机被应用于人类社会各个领域。然而在 计算机诞生后发展的几十年间,与硬件发展形成鲜明对比的是,软件业发展一 直不尽如人意的地方:项目延时、预算超支、管理混乱等现象伴随着软件业的 发展,为了能提高软件开发管理机构的工作效率、改善软件产品的质量,各种 新方法、新工具、新理论的不断涌现出来,这为计算机软件的发展提供了理论 和现实的依据。 在软件开发的过程中,尤其是面对大型的复杂的软件系统时【l 5 ,3 】,一方面, 用户的需求十分庞大,需求又有许多需求项组成,这些需求项之间存在着各种 各样的联系,往往这些联系难以把握;另一方面,需求到代码之间存在着直接 或者间接的关联:更由于软件的开发过程的迭代性,完整的开发过程要经过从 需求到代码再到需求的多次开发,在这个过程中,每一个软件制品( 如类图、协 作图等) 都构成了下一次开发时的基础,这形成了软件制品内部的纵向关联。在 实际的软件项目开发过程,软件开发过程中涉及的各类人员,如用户,项目经 理,开发人员等通常希望能够追踪这些相关联的部分,一个需求的变动或者是 一个软件制品的变更,会对哪些软件制品产生影响,对于这些变更应该如何应 对。这时候软件需求跟踪的重要性和必要性就显现了出来。 对需求跟踪的研究,主要由以下四个部分组成:( 1 ) 需求跟踪实现技术的 研究;( 2 ) 关联关系:关联关系是需求跟踪链的基础:( 3 ) 变更管理的研究:( 4 ) 软件需求管理的研究:由于软件需求跟踪是需求管理的一部分,而且在实际开 发过程中的需求跟踪被包括在需求管理之中。如何有效的解决这些问题,并能 尽量的减少人力和时间的浪费,在这种情况下,动态需求跟踪作为一个有效解 决这些问题的思路被提了出来【4 ,z j 。 1 2 研究内容和意义 1 2 1 论文研究内容 在软件工程中,需求跟踪为其的活动过程提供有力的支持,它能帮助开发 人员、管理人员确认系统的需求是否已经得到实现:确定需求变更导致的其他 的软件制品变更之间的影响范围;掌握软件制品的发展过程;理解系统概要设 计和详细设计的基本原理;对于建立和维护不同的模型之间、不同模型元素之 间的一致性起着关键的作用:它是有效实现的软件项目管理、不断提高、改进 软件系统质量的一个重要因素。需求跟踪被提出后,越来越多地得到重视。 需求跟踪作为需求管理的一部分,c m m i ( c a p a b i l i t ym a t u r i t ym o d e l i n t e g r a t i o n ,能力成熟度模型) 和i s 0 9 0 0 0 6 7 】都对需求管理和需求跟踪做了研究 并指出了需求跟踪的重要性。c m m 对需求管理做出了明确的定义,并提出了 需求管理的指导性方法。随着企业对需求管理的重要性认识越来越清晰,越来 越多的企业认可c m m 模型,c m m 提出的方法也被大部分公司所采用。 传统的软件需求跟踪方法主要采用静态需求跟踪的方法。采用最主要的方 法有:跟踪图、交叉引用和跟踪图。其中,跟踪图应用最为普遍,被广泛应用 于各种需求跟踪文档之中。静态需求跟踪的有点是:简单、明了、易于理解。 缺点也显而易见,各种需求矩阵的建立必须管理人员手动建立。 为了满足静态跟踪技术,各种需求管理工具不断出现,例如r e q u i s t e p r o 工具就是采用的是建立跟踪矩阵的方法,而t o o r 工具则生成跟踪图。但是静 态跟踪面临的另一个最大难题就是跟踪链的维护问题。由于在实际软件开发的 过程,各种需求变化都会造成软件制品总是处在不断的变化的阶段,每一次的 变更都导致整个跟踪链的变更,如果不及时维护,随着系统的开发进展,跟踪 链就会越来越复杂,跟踪的正确性将得不到保证,导致了跟踪的失败。 随着静态跟踪技术的问题的不断凸显,一些研究人员提出了“动态需求跟 踪”【9 j 的概念。主要目的是需求跟踪链的动态生成。动态的主要涵义是:一是 自动建立需求跟踪链【1 0 , 1 1 1 ;二是当需求发生改变的时候,提醒管理人员进行相 应的需求变更。理论上动态需求跟踪技术的动态需求跟踪链的生成解决了静态 跟踪链生成和变更维护的问题,但是也存在着局限性,没有将实际的动态跟踪 技术运用到实际的软件项目中。 动态跟踪技术的研究被研究人员所关注。主要采用i r ( i n f o r m a t i o nr e t r i e v a l , 信息检索) 技术【1 2 1 ;有的学者提出了基于u m l 的动态需求跟踪的研究【l 引。我们 有理由相信,动态需求跟踪技术会越来越被人们重视。但是,目前为止,尚未 有学者提出将本体运用到需求跟踪之中。 随着本体的研究发展,本体由于其特有的优点越来越被研究人员关注。我 们也可以将本体的研究应用到需求跟踪的关系中。建立需求本体和代码本体, 由系统自动生成需求本体和代码本体之间的跟踪关系。由于在需求跟踪中,最 重要的是建立需求到代码的关系。本文主要研究需求到代码的跟踪。 在对需求工程的相关技术和方法深入研究的技术上,并结合当前的研究成 果。本文的主要从以下四点进行研究: ( 1 ) 根据需求的特点和需求之间的关系构造软件需求本体; ( 2 ) 根据当前流行的面向对象的技术的特点,构造代码本体; ( 3 ) 基于本体相似度,建立需求一需求、需求一代码之间的关系; ( 4 ) 完成一个模拟系统,实现需求到代码本体的跟踪关系 1 2 2 论文研究意义 需求跟踪实际是就是建立“需求一设计一代码一测试”之间的关系。其中 2 最主要的是建立需求一代码的跟踪关系。需求到代码的跟踪有助于帮助开发人 员完成从需求到代码的一一映射关系,完成需求到代码的可溯性。 本文研究的目标是动态生成从需求到代码的跟踪链,这是动态需求跟踪技 术的有效应用,也是一种半自动化技术,也可以根据阈值的选取来提高进行查 全率和查准率。 本体( o n t o l o g y ) 1 1 3 1 是进二十年来兴起的概念,是客观存在的系统的概括和 说明。开始应用在人工智能学科,后来被用于许多领域。如知识工程、语义 w e b 、信息检索等。本体的构造方法也是当前研究的热点。主要研究的内容有: 根据自己的研究领域,构造不同的领域本体;用本体作为对象关联的手段,来 改进需求分析。这些研究极大的提升了本体的应用范围。本文的基于本体的需 求跟踪方法也是本体促进软件工程发展的一种有效实践。 本文研究的是需求到代码的跟踪关系,在需求发生变更的时候,较准确地 追踪到发生变化的代码。这就解决了需求分析变更影响跟踪和测试用例的筛选 的关键问题,为最后的需求变更代价以及回归测试的成本的评估提供了有效的 途径。 1 3 论文组织结构 本文分为五章,各章的安排如下: 第一章绪论 介绍本文研究的背景,讨论了需求跟踪技术存在的问题,分析了需求跟踪 的研究成果,提出了本文研究的主要内容,并指出了本文研究的意义。 第二章需求跟踪和本体 首先介绍需求工程和需求管理;其次介绍需求跟踪的重要性及其分类,着 重介绍动态需求跟踪。最后介绍本体的概念以及建模语言和描述语言。 第三章软件需求本体和代码本体 本章结合研究的成果,介绍需求本体的定义和需求之间的关系;其次介绍 面向对象的代码本体的定义方法和层次结构关系。在构建完成需求本体和代码 本体的基础上,建立需求本体和代码本体的映射关系,指出相似度计算方法。 第四章基于本体的需求跟踪系统 构造一个基于本体的需求跟踪工具,介绍其实现步骤,分析其实现工具。 最后通过图例显示跟踪结果。 第五章总结和研究展望 对本文进行总结,论述本文的主要内容,总结存在的不足之处。指出下一 步工作和待完善的问题。 第二章需求跟踪和本体 本章首先介绍基于本体的需求跟踪的背景知识。主要包括需求工程和需求 管理的相关概念以及重要性,需求跟踪的定义及其必要性。结合当前研究的需 求跟踪技术加以介绍,重点介绍动态需求跟踪技术。第二部分介绍本体的相关 概念。主要包括本体定义及建模语言,本体的描述语言。 2 1 需求工程 在对软件工程中的需求问题进行大量的调查和分析之后,在2 0 世纪9 0 年 代许多学者提出了要重视需求处理的要求。这时人们认识到需求处理除了核心 的建模和分析活动之外,还有其他的活动也需要慎重对待,因此提出了“需求 工程”的口号,即利用工程化的手段进行需求处理,以保证需求处理的正确进 行。 2 1 1 需求定义 著名的r a t i o n a l 公司把需求定义为“正在构建的系统必须符合的条件或具 备的功能”。i e e e 也采用了与此相类似的方法。需求设计师m e r n l id o r f m n a n 将需求定义凝练为“将需求可定义为:用户解决某一问题或达到某一目标所需 的软件功能,系统为了满足合同、规约、标准或其他正式实行的文档而必须满 足或具备的软件功能”。 综合各种文献,可将软件需求定义【1 4 】为:( 1 ) 用户解决问题或达到目标所需 的条件或权o 皂( c a p a b i l i t y ) 。( 2 ) 系统或系统部件要满足合同、标准、规范或其 它正式规定文档所需具有的条件或权能。( 3 ) 一种反映上面( 1 ) 或( 2 ) 所描述的条 件或权能的文档说明。 软件需求通常由以下三个部分组成:业务需求、用户需求和功能需求( 也包 括非功能性需求) 。在图2 1 中显示了需求的各个部分之间的关系,在项目视图 与范围文档中我们可以发现业务需求,它反映了组织机构或客户对系统、产品 高层次的目标要求。而作为软件产品必须要完成的功能和非功能性需求的用户 需求,应该出现在使用实例( u s e c a s e ) 文档或方案脚本说明中,因为它是以用户 角度来描述说明。开发人员必须实现的软件功能通常在功能需求中定义,功能 需求即软件应该执行的活动,这些活动包括输入输出、软件的执行过程、与用 户或者其他软硬件的交互,在能实现用户的任务的同时,也能满足业务需求功 能需求出现在用户需求、业务需求之中的要求。非功能性需求是与功能无关的 特征,但这些特征是系统必须要考虑的,包括用户界面要求、可移植性性能要 求、处理速度、可操作性等需求。例如,每秒所处理的业务数据或系统必须保 证可以在多台客户机并发运行等都是非功能性需求。 显而易见的是软件需求是整个软件开发项目的最原始、最重要的一个输入 4 囤、n 冈饲嗣曼,一 + 俐 1 竺! ! | u ,回。 臣蛰曰 篙束获取 l 一j目蟹臼 图2 2 需求工程基本活动 需求获取的目的是从项目的战略规划开始建立最初的元素需求。为此,它 需要研究系统将来的应用环境,确定系统的参与人员,了解现有的问题,建立 新系统的目标,获取为支持新系统目标而需要的业务过程细节和具体用户需求。 需求分析的目的是保证需求的完整性和一致性。它以需求获取阶段输出的 原始需求和业务过程细节出发,将目标、功能和约束映射为软件行为,建立系 统模型,然后在抽象后的系统模型中进行分析,标识并修复其中的不一致缺陷, 发现并弥补遗漏的需求。 需求规格说明的目的是将完整的、一致的需求与能够满足需求的软件行为 以文档的方式明确固定下来。在文档中,可以使用非形式化的文本进行描述, 也可以使用半形式化的图形语言进行描述,还可以使用形式化的语言进行描述, 描述的结果文档是接下来将被提交进行需求验证的软件需求规格说明。 需求验证是需求开发中的最后一个活动。它的首要目的是保证需求及其文 档的正确性;另一个目的是通过检查和修正,保证需求及其文档的完整性和一 致性。 需求管理数对需求开发阶段所建立的需求基线的管理,它在需求基线完成 以后正式开始,并在需求工程阶段结束之后继续存在,在设计、测试、实现等 后继的软件开发中保证需求作用的持续和稳定发挥。它的主要工作是跟踪后继 阶段中的需求实现与变更情况,确定需求得到了正确的理解并被准确地实现到 了软件产品中。 2 1 3 需求管理 在需求开发活动之后,设计、测试、实现等后续的软件系统开发活动都要 围绕需求开展工作。需求的影响力贯穿于整个软件的产品生命周期,而不是单 纯的需求开发阶段。所以,在需求开发活动结束之后,还需要一种力量保证需 求作用的持续、稳定和有效发挥,需求管理就是这样一个活动。 而且,在需求开发建立基线之后,还需要在设计、实现等后继活动中处理 来自客户、管理层、营销部门以及其他人员的变更请求。需求管理会进行变更 控制,纳入和实现合理的变更请求,拒绝不合理的变更请求,控制变更成本和 影响范围。 目前有很多需求管理工具可以帮助进行需求管理工作,它们可以为每项需 求定义属性,跟踪需求的状态,并在需求和其他系统开发产品之间建立跟踪体 系。 r i c h a r d l9 9 5 认为需求管理的重要任务有: 交流涉众的需要 将需求应用实施到解决方案 驱动设计和实现工作 控制变更 o 将需求分配到子系统 测试和验证最终产品 控制迭代开发中的变化 辅助项目管理 6 这些任务可以被归纳为需求管理的三个活动:维护需求基线、实现需求跟 踪和控制变更,如图2 3 所示。 图2 - 3 需求管理活动 ( 1 ) 建立和维护需求基线: 建立良好的配置管理,对需求基线进行版本控制,是进行有效的需求管理 的前提和基础。 要实现需求基线的版本控制,首先要标识每项需求,记录它的相关属性, 然后在为每一个需求文档建立唯一的版本号标识。 在建立初步的版本控制之后,所作的变更必须被明确的加以记录。记录的内容 包括变更情况、变更日期、变更原因等。所有的变更还要被及时的传达给受到 影响的每一个人。 ( 2 ) 建立需求跟踪信息 建立需求在项目中的可跟踪性是需求管理的一个重要任务。 需求的可跟踪性要求具有双向跟踪的能力【1 6 】:一是向后跟踪 f p o s t t r a c e a b i l i t y ) ,它要求跟踪需求的去向,寻找特定的导出需求或者寻找实 现特定需求的相关项目资产;二是向前跟踪( p r e t r a c e a b i l i t y ) ,它要求跟踪需求 的来源,寻找导出特定需求的更高一级或寻找提出特定需求的用户。 ( 3 ) 进行变更控制 实现变更控制首先需要建立一个控制变更的过程及相关策略,它们确定了 组织应对变化的基本方法。进行变更控制还需要挑选一批具有经验的用户和开 发人员,组成变更控制团队,由他们分析变化的利益得失,只有通过审核的变 更才能进行。 有效的变更控制要求所有需求开发阶段之后发生的需求变化都要被提交给 变更控制团队处理,都要严格按照变更控制过程进行分析、判断和落实。 2 2 需求跟踪 2 2 1 需求跟踪的定义 为了避免在软件开发过程中发生与基线不一致和偏离造成的风险,控制软 件开发质量、成本和时间,人们提出了需求跟踪( r e q u i r e m e n t st r a c e a b i l i t y ) 的方 7 法。需求跟踪是一种有效的控制手段,它能够在涉众的需求变化中协调系统的 演化,保持各项开发工作对需求的一致性。 需求跟踪【1 6 】是指通过定义以及维护软件制品( 如软件需求,体系结构组件, 设计模型元素,或者源代码) 之间的关联关系,同时可以向正向和逆向两个方向 来描述和追踪整个的需求过程。为了给软件开发的各个活动提供有力的支持, 在需求之间和需求同软件系统的其他制品之间建立需求跟踪关系,如支持需求 确认、用例生成、变更影响分析等等。 需求跟踪是以软件需求规格说明文档为基线,在向前和向后两个方向上, 描述需求以及跟踪需求变化的能力。它分为向前跟踪和向后跟踪两种。 向前跟踪指需求在被定义到软件需求规格说明文档之前的演化过程。它包 括两种联系【d a v i s l 9 9 0 】: ( 1 ) 向前跟踪到需求:说明涉众的需要和目标产生了哪些需求。 ( 2 ) 从需求向后回溯:说明软件需求来源于哪些涉众的目标和需求 向后跟踪指需求在被定义到软件需求规格说明文档之后的演化过程。它包 括两种联系【d a v i s l 9 9 0 】: ( 1 ) 从需求向前跟踪:说明软件需求是如何被后续开发的物件支持和实现 的。 ( 2 ) 回溯到需求的跟踪:说明各种系统开发的物件被开发的原因( 软件需求) 。 在实际的工作中,需求跟踪实现的具体内容是依赖于项目的跟踪策略的。 不同的项目有不同的策略需要,会实现不同的跟踪联系。 j a r k e l9 9 8 将项目的 跟踪策略分为三个不同的层次。在最低的层次上,需求跟踪仅仅捕获产品内部 各个系统之间的依赖、满足和实现关系。在这个层次上,需求跟踪的内容只涉 及系统开发中的阶段性的成果片段,常见的有体系结构设计、细节涉及、测试 用例、实现代码等。常见的产品组件的跟踪关系如图2 4 所示。 厂 l 生务番柬 扩展 l j 圈氤觌圈 蕞蔫足验证7 口,口 伫野扎靴倒 圈 图2 4 常见的产品组件之间的跟踪关系 2 2 2 需求跟踪相关技术 跟踪矩阵、跟踪图、实体联系模型和交叉引用等技术是比较传统的需求跟 踪技术。 8 2 2 2 1 跟踪矩阵 需求跟踪矩阵【1 7 】是最常用的实现方法。跟踪矩阵通常被定义成是用于记录 两个或多个软件制品之间相互关系的矩阵,这种矩阵可以有多种表示形式,跟 踪树就是跟踪矩阵的树形表示。需求跟踪矩阵保存了从需求到后续的组件、代 码和测试之间的对应关系,矩阵单元之间可能存在的关系主要有三种:“一对 一”、“一对多”或“多对多”。同样地,跟踪矩阵可以用矩阵合并的方式将两种 类型的需求显示出来,并且两个需求项之间的“t r a c et o 和“t r a c ef r o m ”关 系还可以在矩阵的交叉位置标记出来,这样就实现了正向跟踪和逆向跟踪。在 r e q u i s t e p r o 工具中采用的就是跟踪矩阵的方法。 表2 1 一个跟踪矩阵的实例 表2 1 是跟踪矩阵的一个实例。跟踪矩阵的优点是跟踪信息清晰易懂,但 是缺点是仅限于矩阵的二维性,它仅仅能表达二元的跟踪关系。 2 2 2 2 跟踪图 应用跟踪图的典型代表是由英国牛津大学p i n h e k o 和g o g u e n 开发的t o o r 工具。t o o r 工具有两大特点,第一个特点是具有强大的跟踪性,它不仅支持 从需求到设计文档、软件规格说明、代码的跟踪,还支持对其他软件开发过程 中生成的软件制品之间的跟踪。t o o r 工具的另一大特点是采用关系来表达和 建立跟踪链。这些关系一方面是用户可定义的,需要的时候可以对根据实际情 况对关系进行调整,以适应各种连接类型。另一方面也运用数学方法,也可以 将跟踪关系建立在没有直接链接关系的对象之间。在跟踪图中,用户定义图中 的对象和关系,由于采用自己的语言描述,它们所表达的意义易于为软件人员 理解。 2 2 2 3 实体联系模型 实体联系模型方法是使用实体联系模型来描述需求的跟踪关系。实体联系 模型方法的优点是可以表达多元的跟踪关系,而且建立的跟踪信息可以利用关 系数据库来实现,易于维护和查询。但是,实体联系模型的实现方法不够直观, 需要具备实体联系模型的相关知识才能较好的理解各种跟踪关系。 9 图2 5 可以看作实体联系模型的一个示例。 j 日凯研触臣习 被务配刍满足、在,上执行: 回现 图2 - 5 产品组件之间的跟踪关系 2 2 2 4 交叉引用 交叉引用的方法主要被用来在文档之间建立跟踪联系,例如系统需求规格 说明文档、软件需求规格说明文档等。交叉引用方法表达出来的跟踪联系比较 直接,利于使用,但是它只适用于对需求文档的处理。 2 2 3 动态需求跟踪 传统的根据跟踪链生成的方式不同,分为静态跟踪技术和动态跟踪技术。 上文中提及的跟踪矩阵、跟踪图、实体联系模型和交叉引用是静态跟踪技术的 代表。由于人工方式是静态跟踪的跟踪链生成的主要手段,在其使用过程中遇 到的最大的挑战就是跟踪链难以维护的问题,动态跟踪的基本思想就是实现跟 踪链的动态生成,这是目前研究的重点和难点。 “动态需求跟踪( d y n a m i cr e q u i r e m e n tt r a c e a b i l i t y ) ”在2 0 0 5 年的需求工程 大会上首次被c l e l a n d h u a n g 提出【9 】,从命名上可以看出其与传统的静态需求 跟踪的不同在于其“动态性”。“动态性”体现在需求跟踪中的一层意思是,是 自动化地建立需求跟踪关系;另一层意思是,需求跟踪关系是可以执行的,也 就是说,可以根据跟踪关系进行变更提醒当需求发生变更时。可以看出,动态 需求跟踪的关键是自动化的技术。 现阶段对动态需求跟踪的研究主要是将需求跟踪引入其他领域的技术,这 些技术主要包括信息检索、事件发布订阅、自然语言处理等。下面将对这几种 动态需求跟踪的跟踪技术研究进行简单的描述。 2 2 3 1 基于信息检索( i r ) 的动态模式 基于信息检索的动态模式【8 】的方法主要有三个步骤:首先利用i r 模型首先 计算需求文本与工作产品文本之间的相似度( s i m i l a r i t y ) ,其次根据相似度的大 小进行排列,最后通过设定一定的阈值筛选所有需求关系,得到所需要的跟踪 的工作产品。信息检索模式依据的理论是:如果需求与工作产品之间的相似度 1 0 越大,那么它们之间的跟踪关系就越有可能是正确的。 针对信息检索技术的给需求跟踪带来的问题,c l e l a n d h u a n g 等人利用工作 产品所具有的特点( 如工作产品的层次结构信息) 来修正i r 技术,这种修正方法 分析粒度更细,针对特定领域的需求跟踪,i r 技术被越来越适当地裁剪各种各 样方法来满足【9 j 。 所采用的第1 个增强策略是利用需求和工作产品的层次结构信息 ( h i e r a r c h i c a li n f o r m a t i o n ) 【9 j 。它所基于的一个前提是,假如需求的祖先需求和 工作产品的祖先工作产品已经存在跟踪关系,在这种基础下,该需求和工作产 品存在跟踪关系的可能性就大大提高了。因此,可以充分利用这种层次结构信 息修正概率模型的计算公式,从而提升候选跟踪关系的精度。第2 个增强策略 是运用了i r 中的聚类技术( c l u s t e

温馨提示

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

评论

0/150

提交评论