(计算机软件与理论专业论文)基于软件开发规范的过程改进度量方法及其应用.pdf_第1页
(计算机软件与理论专业论文)基于软件开发规范的过程改进度量方法及其应用.pdf_第2页
(计算机软件与理论专业论文)基于软件开发规范的过程改进度量方法及其应用.pdf_第3页
(计算机软件与理论专业论文)基于软件开发规范的过程改进度量方法及其应用.pdf_第4页
(计算机软件与理论专业论文)基于软件开发规范的过程改进度量方法及其应用.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

摘要 对软件过程的管理和改进是当前软件工程实施中人们普遍关注的问题,它对 软件质量的提高、完成软件开发的全过程和软件企业的发展起到了保障作用。在 一个组织中,软件过程的改进往往是非常复杂的,而且涉及到大量的工作。鉴于 这个原因,评估每一步改进所要做的工作、跟踪改进结果都是很重要的,对其进 行详细的管理也是必须的。通过管理,对所获得的经验进行反馈和学习,从而得 到更高效的改进步骤。例如:在c m m 软件过程改进框架中,软件过程从一个等 级改进到另一个等级,需要花费几个月的时间。因此,采用适当的计划和管理方 法,可以在合理的时间内,使用最初的资源,达到软件过程改进的目的 软件开发规范是在软件开发过程中必须严格遵守的规则。软件过程改进的其 中一个方法就是采用新的规范,如c m m 。为了满足新的规范,而成功的对软件 过程进行改进,需要采用适合的管理方法。本文提出一种基于距离度量的软件过 程改进评估技术,这个方法有助于计划过程改进以及跟踪过程改进的结果。为了 使这种技术更具有实用性更合理,本文解决了规范之间的相互关系以及规范权值 的相对差这两个问题。另外,还介绍了一种从旧的数据中评估一个规范的执行时 间的方法,可以帮助更好的进行过程改进的评估。对于这种基于距离度量的软件 过程改进评估技术的研究是分几步进行的,首先是对软件开发规范之间的相互关 系和权值的相对差进行完整的研究。然后是逐渐的从简单的案例到复杂的案例开 发出距离度量。最后,在理论上和实践上证实这种度量方法的有效性。 在最短的时间,花费最少的资源,进行软件过程改进,是高效率、高质量的 开发软件的关键。使用有效的软件过程改进管理方法会使软件企业更好的进行软 件过程改进,从而提高企业的竞争力。因此,认真做好软件过程改进的评估工作 是改进软件过程的必要条件,对推进软件产业的发展具有很高的价值。 关键字:软件过程、过程模型、软件开发规范、距离、度量。 a b s t r a c t t h em a n a g e m e n ta n di m p r o v e m e n to fs o f t w a r ep r o c e s s e sh a sb e c o m et h ef o c u s o ft h ea p p l i c a t i o no fs o f t w a r ee n g i n e e r i n g i tc a ng u a r a n t e et h ee n h a n c e m e n to f s o f t w a r e q u a l i t y ,a c c o m p l i s ht h ew h o l ep r o c e d u r e so fs o f t w a r ed e v e l o p m e n ta n d p r o m o t et h ep r o g r e s so ft h es o f t w a r eo r g a n i z a t i o n t h ep r o c e d u r eo fs o f t w a r ep r o c e s s i m p r o v e m e n ti na no r g a n i z a t i o ni sa l w a y sc o m p l e xa n di n v o l v e sl a r g ea m o u n to f e f f o r t i nv i e wo ft h i s ,i ti s n e c e s s a r yt o e s t i m a t et h ee f f o r tn e e d e df o rs u c h i m p r o v e m e n t ,a n dt h e nm a n a g ec a r e f u l l yt h ec h a n g e st h r o u 曲p r o g r e s st r a c k i n g a p p r o p r i a t e l yp l a n n e ds t e p ss h o u l db ef o l l o w e d t h eg a i n e de x p e r i e n c es h o u l db e s t u d i e da n df e db a c kt op r o c e s sm a n a g e r sf o rm a k i n gf u r t h e re f f e c t i v ei m p r o v e m e n t s t e p s f o re x a m p l e ,i nt h ec m mp r o g r a m ,m o v i n gb e t w e e nl e v e l st y p i c a l l yt a k e s s e v e r a lm o n t h s ,a n dt h u sp r o p e rp l a n n i n ga n dm a n a g e m e n ta r er e q u i r e dt oa c h i e v et h e g o a lw i t h i nr e a s o n a b l et i m e ,a n dw i t ht h er e s o u r c e sa l l o c a t e di n i t i a l l y s o f t w a r ed e v e l o p m e n tp o l i c i e sa r ee x p l i c i ta n ds t r i c t l ye n f o r c e dr u l e sa b o u tt h e o p e r a t i o no f s o f t w a r e d e v e l o p m e n tp r o c e s s e s o n ew a yt o a c h i e v e p r o c e s s i m p r o v e m e n ti st oa d o p tn e wp o l i c i e s i m p r o v i n gt h ep r o c e s st os a t i s f yn e wp o l i c i e s r e q u i r e sp r o p e rm a n a g e m e n tm e a s u r e sa n dm e t h o d si no r d e rt ob es u c c e s s f u l i nt h i s t h e s i s ,am e t h o db a s e do nd i i s t a n c em e a s u r e sw o u l db ed i s c u s s e da n dt h eq u a n t i t a t i v e d i s t a n c e sw o u l ds p e c i f i e df r o mt h ec u r r e n tp r o c e s st ot h et a r g e t e dp r o c e s sr e p r e s e n t e d b yt h en e ws e to fi n t e r r e l a t e dp o l i c i e s t h i sw o r kc a nh e l pi np l a n n i n ga n dt r a c k i n g p r o g r e s s o ft h ep r o c e s si m p r o v e m e n te f f o r tw h e na d o p t i n gn e wp o l i c i e s i s s u e s a d d r e s s e di n c l u d eh a n d l i n gd i f f e r e n tr e l a t i v ew e i g h ta n dr e l a t i o n s h i p sa m o n gp o l i c i e s t om a k et h e s em e a s u r e sp r a c t i c a la n ds o u n d ,t h er e l a t i o n s h i p sa n dt h er e l a t i v ew e i g h t d i f f e r e n c ea m o n g p o l i c i e sn e e dt ob ec o n s i d e r e d at e c h n i q u ew o u l dp r o v i d e dt oh e l p e s t i m a t et h ei m p l e m e n t a t i o nt i m eo fap o l i c yf r o mp a s td a t a t h i sw o r kh a sg o n e t h r o u g ht h e o r e t i c a la n dp r a c t i c a lv a l i d a t i o n t h ek e yo fd e v e l o p i n gh i g i l q u a l i t ya n dr e l i a b l es o f t w a r ei si m p r o v i n gt h e i t p r o c e s sw i t h i nr e a s o n a b l et i m ea n dw i t ht h er e s o u r c e sa l l o c a t e di n i t i a l l y m a n a g i n ga s o f t w a r ep r o c e s s e si n p r o v m e n tw i t he f f i c i e n c ym e t h o dw o u l d p r o m o t et h ep r o g r e s so f t h es o f t w a r eo r g a n i z a t i o n t h e r e b y , a s s e s s m e n to fas o f t w a r ep l - o c e s s e si n p r o v m e n ti s n e c e s s a r yc o n d i t i o n ,h a v eh i 曲v a l u et o a d v a n c ed e v e l o p m e n to ft h es o f t w a r e o r g a n i z a t i o n k e yw o r d s :s o f t w a r ep r o c e s s 、p r o c e s sm o d e l 、s o f t w a r ed e v e l o p m e n tp o l i c y 、 m e a s u i r e s 、d i s t a n c e 1 1 1 引言 计算机软件已经走过了半个世纪的发展历程,尽管它的发展速度始终落在计 算机硬件之后,尽管它对于许多领域提出的需求尚不能给出令人满意的产品,但 它毕竟已经承担了空前复杂而艰巨的任务。当今软件所涉及的领域、软件项目的 规模、软件产品的复杂程度以及对产品质量的要求都是前所未有的。高效率、高 质量地开发软件也一直是软件企业所追求的目标。为此人们逐渐引入了软件过程 管理与软件过程改进的概念。它对软件质量的提高、完成软件开发的全过程和软 件企业的发展起到了保障作用。 与我单位合作的北京易初电子技术有限公司是一个专门开发银行综合业务 系统的软件企业。该公司要求本公司的工程师使用p s p i 规范自己的开发行为 “,在与浚公司开发人员合作的过程中,我发现他们对自身过程改进计划以及对 过程改进程度的评估都是基于经验和猜测之上的,并没有一个定量的方法。因此 本人在本篇论文中提出了一个基于距离度量的软件过程改进评估技术。 软件开发规范是在软件开发过程中必须严格遵守的规则。软件过程改进的其 中一个方法就是采用新的规范。为了满足新的规范,而成功的对软件过程进行改 进,需要使用适当的度量及其相关的方法。在这篇论文中建议使用三种度量来解 决这个问题。 论文是由下面几个部分构成的。第1 部分介绍所提出的度量及其相关方法的 背景及相关研究工作。第2 到第5 部分详细的介绍度量及其相关方法。最后,在 第6 部分总结了这篇论文。 1 个人软件过程( p s p ) 是一个白我改进的过程,用来帮助人们控制、管理和改进工作方式。是 一种结构化的表格。准则和软件开发过程的框架。 第1 章背景 软件工程的最终目的是要开发出高质量高可靠性的软件产品。由于计算机软 件的应用领域越来越广泛,越来越复杂。想要得到高质量的软件产品就更加的困 难,需要更多的花费。很多的软件产品可靠性低,难以维护。软件产品的质量在 很大的程度上取决于丌发和维护软件产品所采用的过程的质量,也就是说,规范 化软件过程能够为获得高质量的软件产品创造良好的条件。现代的软件工程团体 已经意识到改进软件过程能够提高软件产品的质量。 1 1 知识背景 1 1 1 软件过程与过程模型 什么是过程,过程是针对确定的目的所实施的序列步骤( i e e e s t d 一6 1 0 ) 。 在软件工程中,这个目的就是开发和维护软件所需要的步骤序列。在过程定义明 确了角色和特点任务的同时,软件过程制定了一个技术上和管理上的框架,如何 把方法、工具和人员应用到软件任务中去【1 】。 过程模型是对具体过程的抽象,就是使用一些标准的形状和图表来描述。过 程模型对于过程规划、过程理解、过程管理、过程改进和过程确认有重要的意义 【2 】。 在过程模型中使用各式各样的实体来描述现实中的事物。这些实体大多数可 以归为几个实体类:活动( a c t i v i t i e s ) :什么将被做和如何做;产物( a r t i f a c t s ) : 被使用和生产的事物;服务( a g e n t s ) :谁来做 3 1 。例如,可以捕述一个分析员 ( a g e n t ) ,完成了一个系统分析任务( a c t i v i t y ) ,并产生了一个分析文档( a r t i f a c t ) 的模型。另外,还可以定义其他的实体类。如:可以用“c o m p o n e n t ”来描述一 个软件系统的组件。 除此之外,也可以将实体类的两个重要属性模型化,即:相互关系 ( r e l a t i o n s h i p s ) :实体类内部或实体类之问的相互关系;行为信息( b e h a v i o r a l 2 i n f o r m a t i o n ) :何时和如何来实现它【3 】。在上面的例子中,两个实体之间的相互 关系为:分析员“执行”系统分析,与系统分析“产生”分析文档之间的相互关 系。如果增加一个分析系统的计划启动时间,就是在上个例子中增加了一个行为 信息。 许多过程模型仅仅描述包括产品信息的开发过程( 象软件体系结构那样) 。 但是,由于使用情况,在本文中扩展了过程模型,包括产品信息以及产生相互关 系的人工因素。 在这篇论文中,使用u m l 类图来描述过程模型。用固化类型( 如“a r t i f a c t ”) 来描述实体类型。用相联来描述实体之问的相互关系。用标在实体之间的连线的 相联标识来描述实体之间的相互关系类型。行为信息可以是实体内部的属性或是 做了标识的相互关系。图1 1 ,举了一个简单的过程模型的例子,这个模型就 是由这些符号来构建的。它描述由3 个部分所组成的银行系统分别是:客户信息 管理,系统维护和决策分析。这3 个部分就是在相关的设计文档中定义,而且完 成时间都是在 2 0 0 4 0 5 0 1 。 目1 1 一个银行系统的过程模型 1 1 2 软件开发规范 规范( p o l i c y ) 一词可以解释为:为了对一个群体保持控制并使其有秩序而 3 采用的规则体系。软件开发规范是在软件过程中必须严格遵守的规i | ! i 【f j 4 1 。例如: “在进行编码前必须要有文档”( 规范1 1 ) ,这就是一条典型的软件工程规范。 在这里可以将一个群体看成是一个软件过程 4 】。现在有许多种关1 二软件升发过 程的规范和标准。例如, i e e e l 0 7 2 1 9 9 7 1 5 ,开发软件寿命周期的处理标准, 还有其他的一些i e e e 已经制度好的关于软件工程的标准。对于软件公司来说, 使用规范就是确保这些标准在整个软件开发过程中能够始终如一的被使用。规范 化的软件过程更易于理解,易于管理,具有更高的可靠性【4 】。尤其是,明确规 定的规范能够帮助建立对开发需求的共识,而且能够推动项目成员之问更有效的 沟通。 同时,规范也可以完成对软件过程的改进。例如:软件能力成熟度模型 ( c m m ) ,该模型按软件过程的不同成熟度划分了5 个等级,其中1 级成熟度最 低,5 级成熟度最高。c m m 给出了从混乱的个别的过程达到成熟的规范化过程 的一个框架,“软件组织可以通过它去定义、实施、度量、控制和改进自己的软 件过程”。人们可以利用该框架进行可靠且统一的评估,从而实现对软件过程的 度量。c m m 所包含的5 个等级,每个等级都是下一个等级的基础。c m m 中所 规定和使用的规范在将软件过程从一个等级改进到一个更高的等级中占据一个 非常重要关键的地位。例如:从第2 级到第3 级,七个控制规范被创建和使用, 也就是在第3 级中包含有七个关键过程域( ) a ) ( 组织过程关注、组织过程定 义、培训大纲、集成化软件管理、软件产品工程、组间协凋、同行评审) 【4 】。 软件过程改进的一个方法就是使用新的规范,当然可以选择用c m m 做指 导。例如:c m m 每个关键过程域都要求采纳些规范,好像上面所举的例子。 为了满足这些新的规范需要改变或是改进软件过程。有人建议,过程的改进最好 是基于些小的调优步骤,这样可以从基本上进行革新。采纳新规范对软件过程 的改进也是一样的。不可能期望改进后的过程可以一步就满足新的规范。因此, 软件过程改进的每一步都应是详尽计划过的,并且要在掌控之中的。 在软件工程文献中所写的软件y l 。发规范都是非常抽象的,按照这些规范实施 软件过程时,不能够对规范完全的系统的理解。所以为了在论文中的实际使用需 要,每一个规范在使用前都要进行改进并进行例化,而这种例化可以由多个方式 实现。例如,“确定软件以便得到一个简短的用户手册”。这个规范可以理解成“应 4 该有一份不超过5 0 页的用户手册”,也可以解释成“需要一份只包括用户界面和 对这些界面解释的用户手册”。对规范具体解释的选择是依赖它被使用的环境 ( 即,在不同的公司将会有不同的解释) 。这篇论文的目的并不是讨论规范本身 的广阔性,所以在的例子中只提供一个可能的示例。这样的选择不会影响核心研 究结果。况且,与原始的规范相比,对规范的解释需要更多的精确的定义。 由于几十上百的标准规范会同时使用,所以要对这些规范进行处理。一个由 m a d h a v j i 和t a s s 6 6 开发的工具p o l i c yv ,可以有效的处理这些信息。这个工具 的输入是一个规范和一个过程,输出是一张不满足输入规范的实体表。它指出过 程要被修改到什么程度来满足一个新的规范,这样有助于对过程度量的计算。这 个工具要求规范都是形式定义的。 使用形式符号不仅对过程度量计算有帮助,而且有助于标识规范之间的相互 关系,这是进行距离度量关系到的最关键的方面。 在这篇论文中,使用一阶峭词来表示形式符号。例如刚刚的示例规范,“应 该有一份不超过5 0 页的用户手册”。可以使用一阶谓词的形式,定义为: 趣菹! = ! :3 m a r t i f a c t l m m a m e = ”u s e r m a n u a l ” :以b p a g e s 0 ,则它的初 始部分就是( v x n ) 。如果命题使用了全称量词( v ) ,域即为确定实体类的一 组元素;如果命题使用了存在量词( | ) ,域为确定实体类的任元素;对于其他 形式的命题,域为空集( 巾) 。 使用两种符号来表示域属性。第一个是形式符号的缩写。对于全称量词,使 用s 类型i 条件) ( s t y p ec o n d i t i o n ) ) ,表示满足一个确定条件具有确定类型 的元素集合。对于存在量词,我用e 类型1 条件) ( e t y p ec o n d i t i o n ) ) ,表示 满足某一个确定条件,具有确定类型的任,元素。在这两种情况下,条件部分可 以省去。另一个可选符号来自过程模型的元素列表,这做为域( d o m a i n ) 的部 分,记做: ( s ) 的元素列表) 。 r 两面。面一 i! ! 一 一p d i c y 2 - 1 _】 昂d e i j t i = f a = a i i ( mi s l n o o n m e r e r l t ) : i t t 日e l s ( d i s l r l a r t i f a c t ) :m a s s o c i 甜e d d e 3 i g n d o c = 曲a n d ( d 瑾糯= “d e s i g n d o d ) f 部r n e 日一r 目= 皂e 吖。吖咩玎e r ts h o u l db e d e l i n e d m a d e s i g n d o c u m e m | & ,d 。n 刊n = s 【g 甲日t ) 图2 一lp o l i c y2 一l 的规范模型 例如:假设有一个规范:“系统中所有的组件都应在设计文档中定义”。 里q ! i 生y2 :! ; v m c o m p o n e n t :3 d 卅r t i f a c t :m a s s o c i a t e d d e s i g n d o c = d ) a n a m e = “d e s i g n d o c 、 此规范的域为所有组件,s c o m p o n e n t 。如果将此规范运用在图3 - 1 的银行 系统中,这些组件为:客户信息系统( c l i e n ti n f o r m a t i o nm a n a g e m e n t ) ,系统维 护( s y s t e mm a i n t e n a n c e ) , 和决策分析( d e c i s i o na n a l y s i s ) 。所以这里域的另 外一种描述可以是 客户信息系统,系统维护,决策分析 ( c l i e n ti n f o r m a t i o n m a n a g e m e n t ,s y s t e mm a i n t e n a n c e ,a n dd e c i s i o na n a l y s i s ) 。这样,在域中有 3 个元素,则域的基数为3 。 这个规范正如图2 1 中所示的。由于的u m l 建模工作中不允许输入数学 符号,所以使用一个稍微不同的符号对u m l 图表进行形式化定义。这些符号和 他们对应的英文关键字在表2 - 1 中列出来。 符号英文关键字 a n e r e l s v f o r a l l j s i n a n d 表2 一l 符号及对应英文关键字 这里关于域属性的另个例子。在第一章中,规范1 - 1 规范示例:“应该具 有不超过5 0 页的用户手册”。用形式语言可以表示为:了m 翻r t i f a c t i m n a m e = “u s e r _ m a n u a l ”) : n b p a g e s 5 0 ) 。其中域为:e 怛r t i f a c ti n a m e = “u s e r _ m a n u a l ” 。 9 换句话晓,如果在过程模型中有一个用户手册,不管它是否少于5 0 页,都认为 这个规范的域有一个元素: u s e rm a n u a l 。也就是说,这个规范需要一个用户手 册。即使用户手册的数量不只一个,但域中就只有一个元素。如果没有用户手册, 规范的域为空集( 中) 。 在每一个规范模型中都况明域属性,目的是为了更清晰的表达。事实上,这 些信息可以从形式定义中自动产生出来。正如所看到的,域的详细说明与规范的 形式定义的初始部分是相一致的。当需要这些元素的一个完整列表时,使用 p o l i c y v 工具( 见1 2 ) 。但要注意的是输入到这个工具的是修改过的规范,而 不是原始规范。这个规范在原始定义的初始部分是由“f a l s e ”条件跟随的( 意思 是:域中的元素经常不满足这个规范,如:v i n e c o m p o n e n t :向s e ) 。对于这个 被修改过的规范,这个工具的输出是以元素列表形式出现的域。这个仅仅对全称 量词命题有用,而对于存在量词命题可能会产生一张无用的元素列表。 在本文中,用一个组合模型来详细说明过程模型和规范模型之间的交互,同 时处理这两个模型,并且用出现在过程模型中目属于他们域的对象来联接规范。 例如:同时有在图1 1 ( 即银行系统) 巾所表示的过程模型,和在图2 - 1 中所表 示的规范模型。用u m l 中的依赖符号( 即虚线箭头) 来表示从p o l i c y2 - 1 到过 程模型中的域对象,以便连接两个模型。( 看纰合模型2 2 ) 。 1 0 r 一一一i 矗;若瞄蔷一一一 图2 - 2 银行系统进程和p o l i c y2 - 1 的整合模型 2 2 规范之间的相互关系 规范之间的相互关系有许多形式。例如:可能有两个规范,第个规范表述 为:“会有一些关于“用例验证”活动的需求。”第二条规范表述为:“应该将这 些需求列入优先。”因为具有至少一个需求是把需求优先的基础,所以第一条规 范是第二条规范的基础。没有第一条规范,就不能开始执行第二条规范。 在对距离度量的研究中,由于规范之间的相互关系占据了一个非常重要的地 位。在上面的例子中,假设在获得需求的时候只做了一半的工作。对于所完成的 这部分工作,还是将每一个需求列入优先。但是只要第一条规范没有完全地执行 完毕,就不能说已经彻底完成了第二条规范。所以就算已经将一部分需求优先了, 也不能说完成了第二条规范。的距离度量不能简单的看成是两个单一规范的单独 距离相加的和。这两者之问是完全不同的。 为了确定两条规范之间的关系,需要下列的信息: 1 1 两条规范的名称( n “叫j ,d e f i n i t i o n 九m e a n i n g ld o m a i n j 0 , p 0 6 c y2 d e f i n i t i o n 3 ,m e a n i n g2 ,d o m a i n - 2 1 相互关系的属性: “r e l a t i o n s h i p ”l f 化类型= ) 。 相互关系也许还有其它的属性,如:公共部分的比重。 在u m l 类图中,使用“相联关系”( 实线) 或“依赖关系”( 一个虚线箭头) 来连接两条规范。在需要时除了面线还会指明相互关系的属性。 相互关系的类型有:重叠性关系( o v e r l a p ) ,分解性关系( d e c o m p o s i t i o n ) , 依赖型关系( d e p e n d e n c e ) 和优先性关系( p r e c e d e n c e ) 。在下面的小节中会分别 介绍每一种类型。在理论上,不能证明所列举的类型包括了所有的相互关系的类 型。然而,在从文献对规范进行大范围的度量时没有发现其他的类型。所以假说 在实践中使用这个集合是完整的。 2 2 1 重叠性关系( o v e r l a p ) 重叠类型是规范之间相互关系中最普遍的类型。它是指两条或更多的规范在 执行期间,它们相互之间有一个公共的部分。例如:假如有两条规范,一条表述 为:“应该建立一个临时原型。”另外条表述为:“应该建立一个进化原型。” 根据上下文的意思,可以理解为在开发的不同阶段和根据不同的目的要建立两个 原型。这两条规范都包括对所有的期望特征进行共同的检验训练,并且将正确的 特征建成原型。因此,说它们相互之间是重叠的。 一个公共域习惯表示为:满足两条或两条以上规范的一个公共目标对象集。 它是每条规范各自可适用的域的交集。要注意的是大多数的具有重叠性关系的规 范集会有一个非空的公共域,但这并不是一个必要条件。 例如,假设有如下的两条规范。 1 一不要太早的进行编码( # 1 0 6 ) 1 4 】 这条规范的意思是必须要明确需求和设计后再进行编码。对于一个特定的项 目,这条规范可以解释成:每个部分编码的实际开始时间不能早于设计的完成时 f 叫。用一阶谓词来表示这个特定的规范: p o l i c y2 - 2 : 1 2 v m c o m p o n e n t :,以a c t u a l s t a r t t i m e a s s o c i a t e d d e s i g n d o c f i n i s h e d t i m e 在图1 1 中所介绍的银行系统由3 个组件组成( 即是:客户信息系统( c l i e n t i n f o r m a t i o nm a n a g e m e n t ) 、系统维护( s y s t e mm a i n t e n a n c e ) 、决策分析( d e c i s i o n a n a l y s i s ) 。如果规范的域为s c o m p o n e n t 。那么域中有3 个元素,则基数是3 。 2 一不要太迟编码( # 1 0 6 ) 【1 4 】 这条规范的意思是不能太迟的进行编码否则项目会延期。对于一个特定的项 目,这条规范可以解释为:每个部分编码的实际开始时间最迟要在项目计划完成 曰的前1 2 0 天。 p o l i c y2 - 3 : v me c o m p o n e n t :m a c t u a l s t a r t t i m ess y s t e m d u e d a t e 一1 2 0 ( 这里假设应用这条规范的模型有且只有一个系统) 。 对于图1 1 中所介绍的银行系统,p o l i c y2 - - 3 和p o l i c y2 - - 2 的域是相同的, 即s c o m p o n e n t ,且域中有3 个元素。 因此,p o l i c y2 - - 2 和p o l i c y2 - - 3 有其共同的域s c o m p o n e n t ,且这个共同 域的基数为3 。而且,两条规范某些方面的: = 作是公共的执行工作:如它们来计 划编码任务及分配每个组人员的时间是公共的,并且它们在每段编码工作中间用 来进行平衡和协调的管理时间也是公共。所以说这两条规范是相互重叠的。图2 3 所示的是过程和规范的整合模型。用固化类 来指定两条规范之间 的关系。 1 3 + 击s 叩d d 5 峥l d 、十a b 9 吲a e 侧争帆 、! “s 9 州a d 扫。i 嘶 、? 。: ?、 j c 。l l e r t 孽拿篇雾簟【孽麓i 一 一一 一 u_ 一 。f _ 1j ,1 “ j 、j 。刮汹 jj- 圈23 过程和具有重叠关系的两条规范的整台模型 有时可能发现三条或以上的规范相互重叠,即是在每对规范或是更多的规范 之间有公共的执行工作。这种相互关系是由几个一对一或是一对多的重叠关系组 成的称之为多重重叠关系。 用文氏图来表示每对规范之间的公共执行结果,如图2 - - 4 所示a 每个圆圈 代表一条规范,圆圈之间的公共部分代表重叠。 图24 三条和二条具有重叠关系的文氏图 1 4 下面是一个三条规范相互重叠的例子。假说有如下规范: 1 一每个需求都要分别进行标识以及区分优先级( # 5 0 和# 5 2 ) 【1 4 】 这条规范的意思是应该用唯一标识来标识每一个需求。而且每个需求的后缀 用优先级序号进行标识。优先级可为:“m ”,必须遵守的;“d ”,合乎需要的; “o ”可任选择的。用一阶谓词来定义这条规范: p o l i c 芏2 - 4 : v r a r t i f a c t ks u b t y p e = “r e q u i r e m e n t ”) n u l l ) , ( p r i o r i t y n u l l ) ( r n u m b e r 用文字描述为:“每个需求都要进行分别标识以及区分优先级”。 2 一追踪测试需求p 1 0 7 ) 1 4 】 这条规范的意思是要根据需求设计测试用例。用一阶谓词来定义这条规范: p o l i c y2 - 5 : r e s t :3 r 卅r t i f a c tfs u b t y p e = “r e q u i r e m e n t ”) :g c o m e s - f r o m = , 用文字描述为:“对每一个需求进行追踪测试”。 3 标识测试用例优先级( # 1 0 7 ) 【1 4 】 这条规范的意思是要根据测试用例所对应的需求优先级来标识测试用例,并 且测试用例的优先级不小于它所对应的需求优先级的最大值。用一阶谓词来定义 这条规范: p o l i c 2 t2 - 6 : v e6 r e s t ? 竹 a r t 妇c t r s u b t y p e = r e q u i r e m e n t ”ae c o m e s - f r o m = r ,? r ep r i o r i t y n u l l ) a 佬p r i o r i t y = fp r i o r i t y ) , 用文字描述为:“根据需求的优先级来标识测试用例的优先级”。 这三条规范相互重叠,p o l i c y2 - - 4 和p o l i c y2 - - 5 都是用需求的唯一标识从 测试追踪到需求。而p o l i c y2 - - 5 和p o l i c y2 - - 6 重叠的地方是它们都要检查相关 的需求。p o l i c y2 - - 4 和p o l i c y2 - - 6 公共的部分是它们的测试用例的优先级是来 自相对应的需求优先级。 所以说这三条规范相互重叠。在图2 5 的过程模型中,p o l i c y2 4 的域中 有4 个元素,p o l i c y2 - - 5 和p o l i c y2 - - 6 这两条规范的域有2 个元素( 即为它们 】5 的公共域) 。 f 州r a t e r c sdoc。1 i,j 一 c 【 e c i ) f b a r b 2 岛s l f h y p d = 吲州 岛 n t = 2 岛咖御婶e 。口 ( c f a :b l 鬯删! ! 嗍i 一 1 岛s l “y p e = r 9 叫 晓n 月。b = 3 母一锄婶= 。w t 胡缸b 4 :o r m s 4 m m 【1 9 和r 。t 孵4 岛s l i j 目y l p e = 唧r 日 岛r t r n t * r = 4 参p i 嘶i 。 j 7 i 划l c y 3 5 、 岛c l e r l t i c n = f o r 削l ( e i s l n t e s t ) ) o t n e r e “( r i s l n 州| 觚l ls m y p e = ”r e q u r e r n e r t 。) : 。o e c o m e s i 亡m = r 岛m r i n g = e e ,y t e s tc a s e c o m e s f r o mr 叫r d r b n s 奄d “n = 研嘲: , f “r _ l c 归 p d i c y “ :铀n l t i o l = f o r a i ( r i s l n * r 口b d ils 止噼= “f h “r 智r 刚 ) 口( lp r k n y on u l l ) a n dp t * o q :岛m e e n i n g = 8 q ) 嘣d y n u r r t r a n d p l 砷a z e 目剧r 匿p i r e m e n t ;龟d 耵d n = 剐口f 醐ls l “y p e = f 酬r 勖1 目1 , 图2 - 5 三条重叠规范的整合模型 2 2 2 分解性关系( d e c o m p o s i t i o n ) 在过程模型中,一个实体能够分解成j l 个实体。规范之间也有一个相似的分 解关系,即是一条父规范可以分解成几条子规范。 1 6 分解性关系的正式定义是:对于两条规范,如果一条规范的执行工作包括了 第二条规范所有的执行工作,那么就说第一条是由第二条组成的。这个定义也可 以扩展为三个或三个以上的规范,其中一条规范是由其他规范组成的。 发现具有分解性相互关系的规范之间存在以下典型的情况: 如果一个活动( a c t i v i t y ) 由其他几个活动( a c t i v i t y ) 组成,则它们相对 应的规范也应具有分解关系。 如果一个产物( a i t i f a c t ) 由其它几个产物( a r t i f a c t ) 组成,则它们各自 的规范也应具有分解关系。 当规范具有不同的级别,则高级别的规范应由低级别的规范组成。 在实践中,这些情况并不是判别规范之间是否具有分解关系的充分条件,所 以不能想当然判定。需要在实践环境中具体来检查和判断。 这有一个例子,假如有存在分解性关系的两条规范: 1 一手动执行每个组件( # 9 7 ) 【1 4 】 这条规范的意思是需要手动的用一些简单的测试用例来执行每一个组件。用 一阶谓词定义: p o l i c y2 - 7 : v m c o m p o n e n t :玉 a c t i v i 哆a n a m e :“h a n d _ e x e c u t e _ c o d e ” : ( m 话一u s e d - b y = n ) , 用文件描述为:“手动执行每个组件。” 2 一检查代码( # 9 8 ) 【1 4 】 这条规范的意思是要用一个检查表检查每个组件以便发现错误。而且还要执 行它们,进行彻底检查。 p o l i c y2 - 8 : i m c o m p o n e n t :3 a c t i v i t y a n a m e = “i n s p e c t _ c o d e ” :( m i s u s e d b y = 口j , 用文件描述为:“检查每个组件。” 在这里,“检查代码”这个动作就是由“手动执行代码”所组成的。对于一 个组件来说,如果检查过它,就一定已经手动执行它了。反之,如果已手动执行 它,那或许已经检查它了,或许没有。所以p o l i c y2 - - 8 的执行结果包括p o l i c y2 1 7 一7 的执行结果。就说他们具有一个分解关系。 用图1 1 中所介绍的银行系统况明一些分解关系。p o l i c y2 7 的域和p o l i c y 2 - - 8 的域相同,即s c o m p o n e n t ,共有3 个元素在域中。图2 6 是过程和规 范的整合模型,用u m l 中的聚合表示法去定义两个规范之间的关系。 v r o c l w , 8m 0 d e l b a 旧s y s t e m 。 弋) 、 i r c 4 始c tc o d e 1j、 耐咖m 懈n l 朗豫d i 8 i 卢州y s i 3 “ 1 萼 、“ 一一:i 1 。一一 、 f 、 ,1 , 、t j 、一j ,f 、 、j :+ 1 邓“蚌砷 f 船“蚺丽_ _ 1 ,+ 7 卜日州j 。a 且e _ c 。d e 图26 具有分解关系规范的整合模型 2 2 3 依赖性关系( d e p e n d e n c e ) 在上面1 2 节中,已经看了关于需求的例子( 即,“应该有关于用例验证幅 1 8 动的需求”和“应定需求的优先级”) 。这样例子包括了一个依赖关系。依赖关系 指两条规范,一条是另外一个的必要条件。也就是,只要没有执行完第一条规范 就不能开始执行第二条规范。再换个说法,第一条规范没有执行完则第二条规范 也不能执行完。 下面用另一个例子论述两条规范之问的依赖关系。 1 一维护概念的完整性( # 7 1 ) 【1 4 】 这条规范的意思是应规定设计模板的风格和格式,这样设计就可以一致。特 别是,可以按照下面两条规范定义这条原理。 p o l i c y2 - 9 : ja 即r t 洳c t n s u b t y p e = “d e s i g nt e m p l a t e ”) , 用文件描述为:“应该规定设计模板。” p o l i c y2 - 1 0 : v 口p r t i f a c

温馨提示

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

评论

0/150

提交评论