(计算机软件与理论专业论文)基于tspi的可自定义软件过程辅助系统的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于tspi的可自定义软件过程辅助系统的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于tspi的可自定义软件过程辅助系统的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于tspi的可自定义软件过程辅助系统的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于tspi的可自定义软件过程辅助系统的设计与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

华东师范大学计算机科学技术系硕士学位论文 摘要 重栽和轻栽是目前软件开发过程中的两大阵营。重载类过程强调规范化、量化、固化, 即管理手段规范化、质量管理要量化、软件文档生成固定化。因此重栽类过程往往要求企业 有大量的文档和严格的过程执行纪律,这使得软件人员常常觉得负担过重,在实际操作中, 相当的企业无法完全按照要求来实施,对这样的企业而言,其能力和软件质量将得不到很大 的提高。 在这种情况下,轻栽方法以其倡导的“软件开发过程中的程序、文档不需要过于繁复, 而只需正好”的理念获得了广大软件工程师的亲昧。但是轻栽方法并不能迅速改变国内 软件开发不成熟的现状,因为采用。轻载。方法的前提。企业比较成熟,开发人员具有较高 的专业素质以覆团队合作能力,这些我们目前还很难达到,因此无论是采用轻载方法还是 重栽方法,企业和人员的基本素质的提高都是必需的。 为了更精确的指导企业将c m m ( 能力成熟度模型) 的要求落实到个体的工作和小的项目 团队的工作里,c 删的设计者美国卡内基梅隆大学软件工程研究院设计出了面向开发人员的 个人软件过程( p e r s o n a ls o f t w a r ep r o c e s s ,p s p ) 和面向项目组的小组软件过程( t e a m s o f t w a r ep r o c e s s ,t s p ) 。目前p s p 已经有了一些辅助工具。但是t s p 目前还没有除e x c e l 表格以外的工具可以供使用。工具的缺乏对于推行t s p 造成了一定的阻碍,因此设计与实现 一个能够支持t s p 的软件过程的辅助开发系统就具有现实的意义。 正是基于以上想法,本文设计并开发了一个支持t s p 的简化版t s p i 的工具系统,明确 t s p i 所要求的基本的开发过程以及角色分配和质量管理要求,使得希望推行t s p i 的开发团 队能够有章可循。在系统的设计与实现中,本文采用了j 2 e e 的技术路线,以u m l 为分析设 计工具,并使用了设计模式来更好的完成系统设计。 本文还引入了软件过程自定义的思想,利用x m l 技术设计并实现了开发过程自定义的功 能,力求在规范使用者遵循t s p i 基本过程原则来开发软件与让使用者具有最大的灵活性之 间保持一个恰当的平衡,充分发挥使用者的主观能动性,这些构成了本文的特色和创新之处。 作者相信基于t s p i 的可自定义软件过程辅助系统的使用将有助于软件企业逐步提高软件开 发的管理,提高软件的质量和生产率。 关键词:c m m ,t s p i ,x m l ,软件过程,软件过程自定义 第l 页 t 兰蔓堕蔓查兰生竺墨型兰茎苎墨堡主兰丝堡苎 a b s t r a c t t h e r ea r em a i n l yt w ok i n d so fs o f t w a r ep r o c e s sn o w a d a y s ,l i g h t w e i g h tp r o c e s s a n dh e a v y w e i g h tp r o c e s s t h eh e a v y w e i g h tp r o c e s se m p h a s i z e ss t a n d a r dm e t h o d so f m a n a g e m e n t ,q u a l i t ym a n a g e m e n tq u a n t i z a t i o na n dm a n a g i n gp r o c e d u r es o l i d i f i c a t i o n b o t ht h ei s o9 0 0 0a n dc m md e m a n dag r e a td e a lo fd o c u m e n tr e q u i r e m e n ta n ds t r i c t p r o c e s se x e c u t er u l e w h i c he v e r b u r d e nm a n ys o f h v a r ee n g i n e e r s m a n yi n l a n d s o f t w a r ec o r p o r a t i o n sc a ns e l d o mp u ta 1 1r e q u e s t si n t op r a c t i c ea n d t h e yg e tl i t t l e i m p r o v e m e n to nt h e i rc a p a b i l i t ya n ds o f t w a r eq u a l i t yf r o mh e a v y - w e i g h tp r o c e s s o nt h eo t h e rs i d e ,t h el i g h t w e i g h tp r o c e s sh o l d st h eo p i n i o nt h a tt h e r es h o u l dn o t b et o om a n yp r o c e d u r e so rd o c u m e n t sd u r i n gs o f t w a r ed e v e l o p m e n t ,t h eq u a n t i t y s h o u l db e j u s te n o u g h b u tt h er e q u i r e m e n to f u s el i g h t w e i g h tp r o c e s si sv e r yh i g h ; m a n yi n l a n ds o f t - w a r ec o r p o r a t i o n sc a nn o ta c h i e v et oc h a n g et h e i rp r e s e n ts o f t w a r e q u a l i t yc o n d i t i o nt h e r e f o r et h ei m p r o v e m e n to ft h eb a s i cc a p a b i l i t yo fc o r p o r a t i o n s a n de n g i n e e r si sn e c e s s a r y i no r d e rt og u i d et h es o r w a r ec o r p o r a t i o n st op u tt h er e q u i r e m e n to fc mi n t o i n d i v i d u a l sw o r ka n dl i t t l es o f t w a r ep r o j e c t st e a mw o r kt h es o f t w a r ee n g i n e e r i n g i n s t i t u t eo fc a r n e g i em e l l o nu n i v e r s i t yp r o d u c e dt h ep e r s o n a ls o f t w a r ep r o c e s sr p s p l a n dt e a ms o f t w a r ep r o c e s s ( t s p ) b yn o wp s ph a sh a ds e v e r a ls u p p o r t i n gt o o l sb u t t s ph a sn os u p p o r t i n gt o o l se x c e p tf o ras e to fe x c e ls h e e ts oi ti sh e l p f u lt od e s i g n a n di m p l e m e n tas o f t w a r es y s t e mt os u p p o r tt s p b a s e do nt h ei d e aa b o v e ,t h i sp a p e rd e s i g n e da n di m p l e m e n t e das y s t e mw h i c h c a ns u p p o r tt h e “i n t r o d u c t i o no ft e a ms o f t w a r ep r o c e s s ( t s p i ) ”i ts p e c i f i e dt h eb a s i c d e v e l o pp r o c e s s ,r o l ea s s i g n m e n ta n dr e q u i r e m e n to fq u a l i t ym a n a g e m e n to ft s p ii t i se x p e c t e dt ob eh e l p f u lf o rd e v e l o p m e n tt e a m st op e r f o r mt s p it h eu n i f i e d m o d e l i n gl a n g u a g ea n dj 2 e et e c h n o l o g ya n da r eu s e dt oa n a l y s i s ,d e s i g na n d i m p l e m e n tt h es y s t e m a n dd e s i g np a t t e r ni su s e df o rb e r e rd e s i g n t h i sp a p e ra l s oi n t r o d u c e dt h eo p i n i o no f “s o f t w a r ep r o c e s ss e l f - d e f i n i n g ”t h e x m li su s e dt oi m p l e m e n tt h ef u n c t i o no fs o r w a r ep r o c e s ss e l f - d e f i n i n gt h i sp a p e r d i di t sb e s tt ok e e pb a l a n c eb e t w e e ng u i d i n gu s e r sa n do f f e r i n gm o s ta g i l i t y t h e a b e v em a d eu pt h ec h a r a c t e r i s t i ca n do r i g i n a l i t yo ft h i sp a p e r t h ea u t h o rb e l i e v e st h a t t h i st o o ls y s t e ms u p p o r t i n gt s p iw i l lh e l pc o r p o r a t i o n st oi m p r o v et h e i rm a n a g e m e n t o fs o f t w a r e d e v e l o p m e n ts t e pb ys t e p ,a n di m p r o v et h es o f 、, v a r eq u a l i t ya n d p r o d u c t i v i t yf i n a l l y k e y w o r d s :c m m ,t s p i ,x m l ,s o f t w a r ep r o c e s s , s o f t w a r ep r o c e s ss e l f - d e f i n i n g 第2 页 华东师范大学计算机科学技术系硕士学位论文 第一章引言 1 1国内外软件领域的研究现状 随着社会的发展,对计算机软件的质量要求不断提高。软件开发企业常常采用各种软件 开发管理过程来控制软件的质量,提高软件开发的生产率。目前控制软件质量的方法主要分 为两类,即所谓的重载方法和轻载方法。 重载方法主要是以一些国外研究组织提出的关于提高软件质量体系和软件过程管理能 力的标准及认证为代表,如i s 0 9 0 0 0 ( i n t e r n a t i o n a ls t a n d a r do r g m f i z a t i o n ,国际标准化组织 系列标准) 、c m m ( c a p a b i l i m a t u r i t y m o d e l ,能力成熟度模型) 等。因为这类方法要求企 业在项日开发中遵循复杂的过程,产生并且维护大量的文档,因此被称为“重载”方法。近年 来,在国务院颁布的关于鼓励计算机软件和集成电路开发的1 8 号文件的推动下在软件出 口和企业竞争的带动下,在国内的软件企业中也出现了i s 0 9 0 0 0 、c m m 的实施和推广热。 从9 0 年代起,国外开始提倡一类称为“轻载”的方法其基本的出发点是在软件的开发 过程中不需要过于繁复的过程、文档,而只要”正好”( j u s t e n o u g h ) 就可以了。提倡这种方 法的一个理由是,软件人员不同于生产线上的工人,他们的学历和智力都比较高,而且编程 序是一种创造性劳动,与机械重复性的劳动有着本质的不同。轻载方法的代表主要有x p ( e x t r e m e p r o g r a m m i n g ) 、s c r u m 、d s d m ( d y n a m i cs y s t e m s d e v e l o p m e n t m e t h o d ) 、f d d ( f e a t u r e d r i v e n d e v e l o p m e n t l 等等。 1 2 重载类软件开发方法【6 】 8 】 i s 0 9 0 0 0 企业质量体系国际标准是国际标准化组织提出的企业质量体系标准1 9 8 7 年 产生第一版,9 4 年又有了修订版,现在发布的是1 s 0 9 0 0 0 的2 0 0 0 新版。i s 0 9 0 0 0 着眼于质 量管理和质量保证,是一种通用标准,适合各类制造业和服务业,它要求认证企业以文档记 录并实现符合标准规定的2 0 个质量要素,证明有提供满足客户要求的产品和服务的能力。 它所覆盖的范围比较广,内容也比较抽象。 i s 0 9 0 0 0 着重建立质量体系的基本要求,而c m m 是由美国卡内基梅隆大学软件工程 研究院( c m 【,s e i )为美国国防部开发的实用软件工程管理技术可用来衡量评估软件企 第5 页 华东师范大学计算机科学技术系硕士学位论文 业过程管理水平的成熟度,指导企业不断改进软件过程,达到较高的软件质量和生产率强 调不断的过程改进。目前c m m 已广泛用作评定软件企业的授证标准。 c m m 的基本思想是认为企业能力成熟度的提高、软件过程和质量的改进应该是一个渐 进的过程。c m m 把软件过程成熟度框架设计为一个分级、台阶式的改进体系,软件企业在 选定自己的过程改进策略时,可以根据当前企业的能力成熟度,按c m m 框架,确定改进 目标,稳步推进。c m m 共分5 级,涉及1 8 个关键过程域,每个关键过程域代表一组必需 达到的目标。 目前国内软件企业往往采用二步走的策略,先取得i s 0 9 0 0 0 的认证然后再参照c m m 的要求继续改进。 然而不管是i s 0 9 0 0 0 还是c m m 都要求企业建立尽量完善的程序化文档这对企业或 员工来说是一种比较沉重的负担。在实际操作中相当部分的企业无法完全按照要求来实施, 往往还是沿用陈旧的作坊开发模式,然后在项目的开发后期再来补齐应有的开发文档,因此 对企业能力和软件质量并没有多大实质性的提高。 1 3 轻载类软件开发方法 现在的软件业已经步入了一个新的时代,新的环境产生对新的开发方法的需求,轻载 ( l i g h tw e i g h t ) 的方法和过程因此崛起并得到发展。 轻载类新方法的基本理念是:需求是难以预期的,软件开发需要适应变化,人的能动性、 刨造性和合作是最重要的,过程是需要的,但不多也不少,只要正好就可以了。 目前在国外的软件业内出现了很多很有创意的软件开发方法,他们都具有轻载的特征, 共称为a g i l em e t h o d ,形成了一个a g n e 联盟,并影响了很多软件工程师。具有代表性的有 x f ( e x l x c m ep r o g r a m m i n g ) 、f d d ( f e a t u r ed r i v e nd e v e l o p m e n 0 等。 1 3 1 e x t r e m ep r o g r a m m i n g 2 4 是目前在国内讨论的比较多的一种轻载软件开发方法。它所适应的条件是充分的客 户参与、高度专业的人员素质、中小项目规模( 1 0 人左右) 。x p 遵循短周期迭代增量开发, 提倡简单设计策略,重视反馈修正、经常测试,勇于接受变化,必要时敢于推倒重来。 第6 页 华东师范大学计算机科学技术系硕士学位论文 x p 的成功在于它注重客户的满意。设计这套方法的目的就是为了在客户需要的时候向 他们交付所需要的高质量软件。x p 使得开发者能够对客户不断改变的需求做出确信的响应, 即使改变发生在软件开发周期的晚期。 x p 从四个方面来改进软件项目:通信( c o m m t u l t c a t i o n ) 、简化( s i m p l i c i t y ) 、反馈 ( f e e d b a c k ) 和勇气( c o u r a g e ) 。程序员与客户和同事交流。每天都从软件的测试中得到反 馈。尽早的将系统交付给客户及实现客户的建议。有了这些基础,x p 的程序员就能够勇敢 地面对不断变化的需求和技术。 x p 倡导和采用的开发技术和过程管理的方法主要有:用户故事取代需求( u s e rs t o r i e s a r cw r i t t e n ) :进度表即发布计划( r e l e a s ep l a n n i n gc t c a t c st h es c h e d u l e ) :小版本( m a k e f r e q u e n ts m a l lr e l e a s e s ) :简短晨会( as t a n d - u p m e e t i n gs t a r t se a c hd a y ) ;出现偏差及时修正 ( f i x x p w h e n i tb r e a k s ) ;代码重构( r e f a c t o r w h e n e v e ra n d w h e r e v e rp o s s i b l e ) :现场客户 ( t h ec u s t o m e ri sa l w a y sa v a i l a b l e ) ;测试先行( c o d et h eu n i tt e s t6 n - s t ) ;结对编程( a l l p r o d u c t i o nc o d e i s p a i r p r o g r a m m e d ) :共同拥有代码( u s ec o l l e c t i v ec o d eo w n e r s h i p ) a 1 3 2f e a t u r ed r i v e nd e v e l o p m e n t 2 3 f d d ,即特征驱动开发方法,它也是一种模型驱动的短迭代过程。它起始于一个全局的 模型,然后接一系列时间为两星期左右的“特征设计、特征实现”的迭代循环。 首先,同领域专家合作建立一个领域对象模型。开发人员利用在建模过程中和从任何 其他进行过的需求活动中得到的信息来生成一个特征列表。接下来的工作就是建立一个粗略 的开发计划即分配任务。这样,动态形成的开发小组就可以通过连续地进行基于特征的设计 和实现的迭代开发来实现特征。这样的迭代循环往往不超过2 个星期。 五个阶段的时间分配大致是: 构造总体模型( 1 0 初始化4 0 o 进行) 构造特征列表( 4 初始化1 进行) 按特征计划( 2 初始化2 进行) 设计特征( 设计和实现特征共占7 7 ) 实现特征 第7 页 华东师范大学计算机科学技术系硕士学位论文 1 3 3 其它轻载思想【2 2 【2 7 】 除了以上提到的两种轻载方法外,国外还有一些很有特色很有思想的轻载方法。 例如s c r u m 开发方法,它的名称来自橄榄球比赛中的“并肩作战”,意思是为了同一目 标、集体行动、奋力拼搏,采用这种方法开发的项目据说是在有存档的项目中生产率最高的。 它是一种是对现有的系统、产品原型进行管理、加强和维护的方法。 现有的开发方法一般都是基于线性的、预定义的过程进行的而s c r u m 认为软件开发 不应该是像生产线生产一种型号的产品一样,而应该是开发新产品。 s c r u m 将开发过程分为三个阶段:p r e g a m c 阶段( 计划、系统结构高层设计) :g a m e 阶段( 开发赛跑:d e v e l o p ,w r a p ,r e v i e w ,a d j u s t ) ;p o s t g a m e 阶段( 关闭项目,准备发布) 。 而d s d m 动态系统开发方法则是一种迭代的快速应用开发方法,适合时问要求紧的项 目。d s d m 认为需求总是会改变,因此不应该太注重细技末节,而应该先花费2 0 的时间 完成8 0 主要的、有用的功能。 d s d m 开发方法分为5 个交织阶段:可行性研究、商务研究、功能模型迭代、设计与 构造迭代、实施。它的基本原则是:积极的用户参与、赋予开发组决策权、基于产品。 基于产品原则强调经常性的产品提交,并且以业务目标判定提交物质量,实行迭代增量 开发,要求开发中所有改变都能回朔,测试和集成贯穿于整个开发周期。 另外,d s d m 还能够与其他的开发方法结合,如:r u p ( r a t i o n a lu n i f i e dp r o c e s s 统 一软件过程) 、x p 等。 1 4 提高软件质量管理能力的途径 既然采用轻载方法不需要过于复杂的过程、文档,那国内的中小软件企业是不是可以一 开始就建立一种“轻载”的方法呢? 答案是否定的。 我们的绝大多数软件企业都很年轻,有的甚至刚成立不久,软件开发人员也很年轻,一 般刚刚工作了1 - - 2 年,加上过高的人员流动率,以及缺少项目开发和团队合作的磨炼。轻 载方法本身虽然看起来简单但是采用“轻载”方法的条件却并不低。采用“轻载”的方法往往 第8 页 华东师范大学计算机科学技术系硕士学位论文 需要企业比较成熟,在团队合作中有默契的能力,但这些正是我们所缺少的。 如果一个软件公司要遵照i s 0 9 0 0 0 或c m m 的标准施行的话,必要的培训和咨询是不 可免的,这涉及相当大的资金、时间和人力投入,公司没有具有一定大的规模的话是不大可 行的。对于大多数中小型、小型软件企业来说,更加不可能一步登天完全达到c m m 标准的 要求,那应该如何做呢? 其实s e i 将c m m 分为5 个层次参照施行就是因为意识到其体系过于庞大,考虑到c m m 的标准偏抽象,为了更精确的指导企业将c m m 的要求落实到个体的工作和小的项目的团队 工作里,s e i 开展了一个关于过程的研究项目来检查工程师个体和项目团体应用c m m 过程 5 级原则的方法,设计出了面向开发人员的p s p ( p e r s o n a ls o f t w a r e p r o c e s s ,个人软件过程) 和面向项目组的t s p ( t e a ms o f t w a r ep r o c e s s 小组软件过程) 。 p s p 是由一系列帮助软件工程师改善其个人表现的过程描述、度量和方法组成。它提供 了表单、指导及流程用以帮助工程师估计和规划其工作。p s p 的一个基本原理是:如果你 在测试以前得不到高质量的产品,那么在测试以后你也得不到高质量的产品”。p s p 专注于 向工程师展示如何在他们开始进行测试以前确保他们的产品有高的质量。 p s p 把树立质量观念作为个人的最高优先级,强调了高质量工作的重要性,给出了一个 软件工程师的标准:与他人和外界的交流能力( 口头和书面) 、作为项目组一员进行工作的 能力、胜任软件开发的各阶段工作( 需求和高级设计) 、敬业、应用软件过程中的知识和技 能、善于学习。如果只会搞“一人工程”,那是程序员。 小组软件过程的侧重点在小组( 团队) 的组建与项目过程的运行其内容主要集中在结构 和过程上。团队工作的多样性需要一系列的团队软件过程。t s p i 是t s p 的简化版本,它是 为2 - - 2 0 人的团队设计的,但它在团队人数为3 1 2 人时的效率最高。多重团队过程( t s p m ) 则是为人数多达1 0 0 - - 1 5 0 的多重团队设计的。对于分布式的团队,可能有成员在不同的地点 或多个小组分布在不同的地方,需要对t s p 进行许多扩展。类似的,专门的测试小组、维 护小组可能需要更功能化的小组软件过程。 现在对于p s p 已经有了一些辅助工具,例如p s ps t u d i o ,它是p o w c r s o r 公司的 p o w e r b u i l d e r 企业版系列里的个工具;还有p e r s o n a ls o f t w a r ep r o c e s sw o r k s h o p ,它是一 个基于l o t u sn o t e s 开发的个体软件过程工具。这两个工具部支持p s p 的全部七个级别标准。 第9 页 华东师范大学计算机科学技术系硕士学位论文 但是对于提高团队合作能力的t s p i ,目前还没有除e x c e l 表格以外的工具可以供使用。 工具的缺乏对于推行t s p i 造成了一定的阻碍,没有工具的支持,很多书面的标准、要求完 全要依靠软件工程师自身的把握,没有明确的工作目标或者工作目标摇摆不定,这会在工作 中造成很大的不确定性和不一致性。 因此,设计与实现一个能够支持t s p i 的软件过程辅助开发系统就具有现实的意义。在 辅助系统的支持下,开发团队有清晰的组织机构,明确的成员职责,整个开发过程、评估体 系、质量管理以及沟通方式都将得到明确,并且可以被跟踪改进。 正是基于咀上想法,本文设计并开发了一个支持t s p i 的工具系统,明确t s p i 所要求的 基本的开发过程以及角色分配和质量管理要求使得希望推行t s p i 开发团队能够有章可循 同时为了在规范使用者遵循t s p i 基本过程原则开发软件与让使用者具有最大的灵活性之间 保持一个恰当的平衡,充分发挥使用者的主观能动性,使他们能根据开发团队的人员素质、 组成情况、所开发项目的性质、要求,做出适当有利的、不违背t s p i 基本精神的变动,以 期达到最大的效率。为此。本文还富有创意地引入了软件过程自定义的思想,在辅助系统中 给出了开发过程自定义的功能,这些构成了本文的特色和创新之处,作者相信基于t s p i 的 可自定义软件过程辅助系统的使用将有助于软件企业逐步提高软件开发的管理,提高软件的 质量和生产率。 第1 0 页 华东师范大学计算机科学技术系硕士学位论文 第二章小组软件过程概述 提到小组软件过程就不得不先介绍一下能力成熟度模型,因为小组软件过程来源于能力 成熟度模型。 2 1 能力成熟度模型1 7 1 能力成熟度模型简称c m m 。对于软件企业来说,软件过程能力可用于预测企业的产出。 软件过程性能表示软件过程的实际产出结果。软件过程成熟度反映了一个企业过程能力成长 的潜力。 不成熟的软件企业往往没有确定的过程,随意性强。项目的管理差+ 加上不现实的进度 计划和变化控制,经常导致危机、项目失败或超时超预算。这样的企业一般部是把编程和测 试放在第一位,质量要求让位于进度要求,因此成功只能靠运气和“英雄”,缺乏组织保证 难以重复。 而成熟的企业的软件开发和维护都遵循计划规定的过程,严格的项目管理、合理的计划 成为软件质量的保证。这样的企业一艘都十分重视需求分析和设计,强调客户满意有变化 控制和配置管理,进度和成本控制有保证,项目的成功依靠组织架构的支持,有较好的重复 性。 21 1c m m 的体系结构 完整的c m m 体系包括以下8 个方面: - 软件c m m ( s w - c m m ) ,面向企业和项目 人员c m m ( p c m m ) 软件获取c m m ( s a c m m ) 系统工程c m m ( s e c m m ) 集成产品开发c m m ( m d c m m ) 个人软件过程p s p 团队软件过程t s p c m m 集成c m m i 第1 1 页 华东师范大学计算机科学技术系硕士学位论文 2 1 2软件过程成熟度等级 c m m 把软件过程成熟度框架分为以下5 级: l 级初始级 i n i t i a l 2 级可重复级 r e p e a t a b l e 有明确的项目管理有严格的过程 3 级有定义级d e f i n e d过程的工程化和标准化 4 级可管理级 m a n a g e d 可预期的过程,定量的过程管理和控制 5 级优化级 o p t i m i z i n g 不断改进的过程 2 级是解决质量管理体系从无到有的问题,使软件项目的基本管理可以重复。3 级是从 特殊到一般的过程,提高质量管理的一个层次。4 级是从定性管理到定量管理的过程,通过 定量控制达到结果可预测。5 级是从静态管理到动态管理的过程,解决技术和过程的更新, 使质量管理体系持续改进和提高。 2 1 3c m m 的关键过程域 下面简单介绍一下c m m 各个级别中涉及到的关键过程域。 c m m 的关键过程域一2 级( 6 ) 需求管理一是在客户和软件项目之间建立对该软件项目处理的客户需求的共同理解 软件项目计划一是按要求制定出进行软件工程和管理软件项目的切实可行的计划。 软件项目跟踪和监视一是建立适当的实际进展的可视性,使管理者在软件项目明显偏离 软件计划时采取有效措施。 软件子合同管理一是选择合格的分包商,并有效地管理他们。 软件质量保证一是给管理者提供对于软件项目正在采取的过程和正在构造的产品的适 当的可视性。 软件配置管理一是在软件项目整个生存周期中建立和维护软件产品的完整性。 c m m 的关键过程域一3 级( 7 ) 第1 2 页 华东师范大学计算机科学技术系硕士学位论文 组织过程焦点一是针对那些旨在改进本组织整体软件过程能力的各项活动,和确定组织 责任。 组织过程定义一是开发和保持一组便于使用的软件过程财富,用以改进跨项目的过程性 能,并且为组织的长期积累奠定基础。 培训程序一是培育个人的技能和知识,使他们能有效地和高效地履行其职责。 集成软件管理是将软件工程活动和管理活动集成为一个协调的、己定义的软件过程, 它是通过剪裁组织的标准软件过程和组织过程定义中所描述的相关的过程经验而得到的。 软件产品工程一是一致地执行一个适当定义的工程过程;该工程过程集成全部的软件工 程活动( 如:需求分析、设计、编码和测试等) ,以便能有效和高效率地生产出正确的、一 致的软件产品。 组间协调一是确定软件工程组积极参与其它工程组工作的方法( 组间的协调和控制) 以便有效地满足客户的需求。 工程组包括:软件工程组:系统测试组:软件质量保证组:软件配置管理组:文挡支持 组, 同行审查一日的是及早和高效地发现软件工作产品中的缺陷。 c m m 的关键过程域一4 级( 2 ) 定量过程管理一是定量地控制软件项目的过程性能。焦点是在可测的稳定的过程范围内 转出变异的具体原因并及时改正。 软件质量管理一是建立对项目的软件产品质量的定量了解和实现特定的质量目标。 c m m 的关键过程域一5 级( 3 ) 缺陷预防一日的是识别缺陷的存在原因并防止它们再次出现。 技术变更管理一目的是识别出能获益的新技术( 工具、方法和过程) 并以有序的方式将 它引入到组织中。 过程变更管理一目的是持续改进组织所采用的软件过程,以便改进软件质量、提高生产 第1 3 页 华东师范大学计算机科学技术系硕士学位论文 率和缩短产品开发周期。 软件企业在选定自己的过程改进策略时,可以根据自身情况,按c m m 框架,先明确 自己当前所处的级别,然后确定今后的改进目标,分阶段稳步改进。 2 2t s p i - t s p 的简化版3 】【1 2 】 2 3 1t s p 介绍 t s p 的目的是为工程师们进行高质量工作提供具有可操作性的过程。 在成员参加t s p 团队以前,他们必须知道如何进行规范的工作。如图2 - 1 所示,进行 个人软件过程的培训可以向工程师们提供使用t s p 所必须的知识和技能。p s p 培训包括学 习如何编制详细的计划,采集和使用过程数据,用获得的数据跟踪项目,度量和管理产品质 量以及定义和使用可操作的过程。工程师必须在参与t s p 团队构建或执行t s p 过程以前获 得这些技能的培训。 厂亍订 l 国坠三堡i 图2 1 t s p 与p s p 的关系 质量优先 质量成本 遵循过程 检查状态 沟通 变换管理 管理法则 t s p 遵循反复演进的开发策略,团队阶段性地进行重新启动。这样每一个阶段或周期可 以基于根据上一个周期获得的数据、总结的经验进行计划。重新启动同样要求更新工程师的 详细计划,通常这些计划仅仅在几个月内是精确的。在t s p 启动的时候,团队要编制今后 第】4 页 华东师范大学计算机科学技术系硕士学位论文 三、四个月的总体和详细计划。当团队成员完成一个项目阶段或周期的所有或大部分的工作 时,他们将根据需要修订总体计划并为以下三、四个月编制新的计划。所有的这些工作是在 t s p 重新启动过程的指导下进行的。 t s p 所涉及的c m m 关键过程域有1 6 个,如表2 1 所示: 级别焦点涉及的关键过程域未涉及的关键过程域 5优化级过程的不断发展缺陷预防 技术变更管理 过程变更管理 4 可管理级产品和过程质量定量过程管理 软件质量管理 3 有定义级过程的工程化组织过程焦点培训程序 组织过程定义 集成软件管理 软件产品工程 组间协调 同行审查 2 可重复级项目管理需求管理软件子合同管理 软件项目计划 软件项目跟踪 软件质量保证 软件配置管理 l 初始级 表2 一lt s p 所涉及到的c 埘关键过程域 由于t s p 是为通常需要几年的时间才能完成的大型工程而设计的,它庞大而复杂。t s p i 是t s p 的一个简化版本它具有和t s p 同样的概念和方法。它所基于的是一个大约5 个工 程师组成的开发小组。下面就介绍t s p i 的流程、角色和过程。 2 :3 2t s p i 的结构和流程 t s p i 的结构和流程见图2 - 2 第1 5 页 华东师范大学计算机科学技术系硕士学宜论文 图2 - 2t s p i 的流程和结构 周期l 从总述产品最终目标开始,接着小组就按照t s p i 进行7 个步骤:决定策略、进 行计划、考虑需求、设计、执行、测试和最终检查。在周期2 中工程师们重复同样的步骤, 只不过这次是把周期l 的产品进行了升级。如果有时间的话,还可以在接下来的周期中继续 完善产品。 t s p i 从制定开发战略开始,先在第一个周期中开发出最小的合理产品,再决定在接下 来的每个周期中要加入的功能。在决定每一个周期的内容是要考虑以下因素:每一个周期部 必须完成一个最终产品的前期可测试产品:每一个周期必须小到可以保证在一定时间内完成 开发和测试任务:每个周期产品可以组合成所要的最终产品。 2 3 3 i s p i 的角色 t s p i 主要有5 个小组角色组成:小组领导:开发经理;计划经理;质量生产经理:技 术支持经理。每个小组成员都有一个特定的角色,同时也是一个开发工程师。 所有小组成员的共同目标是:成为一个能合作、起作用的小组成员。 除此之外,每个角色都有不同的目标和活动。小组领导主持项目组会议领导人员分配。 第l6 页 华东师范大学计算机科学技术系硕士学位论文 开发经理领导小组的策略、计划、需求、设计、实现和测试。计划经理跟踪计划的进展情况。 质量经理负责软件的质量管理。技术支持经理负责配置管理,维护词汇表,维护重用功能列 表。 2 3 4t s p i 的过程 表2 - 2 介绍了t s p i 中使用到的部分表格和文档的名称。 名称 介绍名称介绍 n t f o 成员个人信息表 s r s软件需求说明 r n s检查报告s t a r t策略表格 l o g d错误记录日志s u m p计划小结 p e e r小组合同时间评价表格 s u m q 质量计划 p i p s 过程改进提案 s u m s 规模小结 s c h e d u l e日程计划模板t a s k任务计划模板 s d s 软件设计说明 、v e e k 每周状况报告 表2 - 2t s p i 的部分表格说明 以下是t s p i 的各个过程阶段。 小组启动 启动过程中首先要用d 师o 表收集组员信息,然后是最重要的步骤规定和核准每一 个角色由谁来担当。这时小组正式建立,小组在小组领导的带领下召开第一次每周例会,在 会议中确立小组目标和产品目标。 每周小组例会最重要的一项功能是收集和分析前一周及到此为止的开发周期的小组数 据。所有小组成员必须在每次会议之前的规定时间把个人的1 a s k 表和s c 脏d u l e 表交给 计划经理,计划经理据此做出整个小组的w e e k 表、t a s k 表和s c h e d u l e 表:通过回顾 小组和个人数据,小组成员可以看到在什么地方违背了计划,在什么地方需要重新平衡和调 整个人计划。 开发策略 制定开发策略先要从一个概念性的设计开始,对产品规模和开发时间进行一个初步的估 计,如果总时间比可利用的时间长就重新修改策略,直到与实际可利用的时间持平。在策 略阶段还要进行风险估计和确定配置管理计划。开发策略结束时将策略数据记录在s t a r t 第1 7 页 华东师范大学计算机科学技术系硕士学位论文 表格中,s t a r t 表格的副本被保存进工程记录。 开发计划 在开发计划过程中需完成的活动及其次序如以下的流程所示 概念性设计。不涉及任何实际的设计工作,但要回答4 个问题:如何开发,哪些部分, 各部分功能,各部分多大。( 策略阶段) 选择开发策略。开发过程分成几个迭代的周期,每个周期完成哪些功能。( 策略阶段) 初步规模估计。每个功能多少l o c ( l m eo f c o d e ,代码行) 。 初步时间估计。要用到软件工程师在p s p 中得到的l o c 速度。 得到每个工程师的t a s k 和s c h e d u l e 表格。t a s k 和s e c h e d u l e 等表格可用来跟 踪每个人的工作,当因发现了遗漏的工作或因工作量估计有误而需进行工作调整时这些表格 都将发生变化,这使得完成该项任务有较大工作量。 定义需求 在这个过程中要对需求中需要说明的内容进行复核及澄清,分配需求任务( 制作s r s 文档) 。在生成需求分析文档的同时生成系统测试计划。最后进行需求和系统测试计划的检 查,并进行相应的更新。 小组设计 设计过程的主要目标是确认工程师们己制作了精确的、高质量的设计。为达到这一点, 首先要制作出总体设计结构,然后将整个产品分成几个主要部件。小组成员分别设计这些部 件并向开发经理提供它们的设计,由开发经理将其综合成系统设计详细说明。在制作和检查 s d s 时同时制作和检查集成测试计划 在设计过程中还需要考虑一些标准和重用的问题。 产品实现 实现过程中的主要步骤包括:实现的计划;细节设计:细节设计检查:编码:代码复查: 单元测试;部件质量复核以及部件的放行。同时还要制定实现的标准,拓宽设计阶段定义的 第1 8 页 华东师范大学计算机科学技术系硕士学位论文 标准,并考虑可测试性和重用。 在实现过程结束时,小组必须有为设计检查、代码复查和再检查而完成的i n s 表和 l o g d 表,为系统和部件部分更新的s u m q 、s u m q 和s u m s 表。所有的过程数据集更新 了的工程笔记。 集成和系统测试 根据此前在设计阶段形成的测试计划进行系统的建立、集成和系统测试。在建立和集成 时,组合系统的每一部分,确认需要的部分都被包含了,确认所有的接口都是适当的。在系 统测试中需要确认系统的功能要求和质量要求都达到了预定的目标。 当一些小组成员进行测试时,另一些小组成员起草并复核用户文档和系统测试文档。 过程结束时,每个发现的缺陷都记入了l o g d 表并完成了缺陷分析,s u m p 表和s u m q 表都得到了更新。 后期维护 后期维护是t s p i 过程中的最后一步,它提供了一种结构化的方法来改进个人和小组的 工作。小组领导领导整个小组来评价每个角色和制作周期报告。周期报告描述生产了什么产 品、个人的角色和工作情况以及对个人工作和小组工作的改进意见。 过程的最后步骤是提交周期报告、p i p s ( 过程改进意见) 表格和每个组员的p e e r 表格二 至此,我们从介绍c m m 入手,较为详细的介绍了软件过程改进所涉及的主要内容。町 以看出,即使是基于较为简单的t s p i ,在实施的过程中仍有大量耗费人力的工作。因此 提供一个能够支持t s p i 角色及流程控制的辅助系统,无论是从规范的实施t s p i 所规定的基 本工作,还是从减轻工作量、提高开发和管理工作的效率的角度看,都是十分有意义的。 华东师范大学计算机科学技术系硕士学位论文 第三章系统的设计与实现 3 1基于t s p i 的可白定义软件过程辅助系统( 以下简称 t s p i 支持工具,t s p i s t ) 系统的特色和创新之处在于遵循t s p 的思想,以

温馨提示

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

评论

0/150

提交评论