(计算机应用技术专业论文)软件过程定义方法pdmws的研究.pdf_第1页
(计算机应用技术专业论文)软件过程定义方法pdmws的研究.pdf_第2页
(计算机应用技术专业论文)软件过程定义方法pdmws的研究.pdf_第3页
(计算机应用技术专业论文)软件过程定义方法pdmws的研究.pdf_第4页
(计算机应用技术专业论文)软件过程定义方法pdmws的研究.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

软件过程定义方法p d m w s 的研究 摘要 近年来,软件过程技术越来越受到软件行业的普遍重视,一个良好的软件过程对 于项目的成功开发和软件产品的质量都具有重要的作用。软件过程定义作为这一技术 中的一个重要方面,也成为人们研究的重点。 目前已经有许多软件过程定义方法不断被提出,但是其中存在着许多不足。本文 在分析已有方法的基础上,提出了一种新的软件过程定义方法p d m w s 。这一方法基 于软件过程定义语言s p e l 4 w s ,结合了过程程序的思想和工作流的思想,将图形表 示与过程语言表述方法相结合,增强了定义软件过程的能力。另外,它基于w e b 服务 技术,具有分布式协同定义的能力,并且能在特定的支撑环境中部署和运行。这些特 性使得这种新的过程定义方法具有重要的理论研究意义和实际应用价值,对于软件过 程技术的发展和软件过程的改进都将具有促进作用。 关键词;软件过程定义,p d m w s ,s p e l 4 w s ,c m m , 过程程序 安徽省自然科学基金资助项目项目编号z0 1 0 4 2 2 0 7 r e s e a r c ho nt h em e t h o do f s o f t w a r ep r o c e s sd e f i n i t i o np d m w s a b s t r a c t i nt h er e c e n t y e a r s ,t h e s o f t w a r e p r o c e s st e c h n o l o g y h a sb e e nm o r ea n dm o r e i m p o r t a n ti nt h es o f t w a r ei n d u s t r y ag o o d s o f t w a r ep r o c e s sh a st h ei m p o r t a n te f f e c to nt h e s u c c e s so ft h ep r o j e c td e v e l o p m e n ta n dt h eh i i g hq u a l i t i e so ft h es o f t w a r ep r o d u c t a sa n i m p o r t a n ta s p e c to f t h i st e c h n o l o g y , t h ed e f i n i t i o no ft h es o f t w a r ep r o c e s sh a sb e c o m ea n e m p h a s i so f r e s e a r e h a t p r e s e n t ,al o to f m e t h o d so ft h es o f t w a r ep r o c e s sd e f i n i t i o nh a v eb e e np u tf o r w a r d , b u tt h e r eh a v eb e e nm a n yi n s u m c i e n c i e si nt h e m b a s e do nt h ea n a l y s i so ft h ee x i s t e n t m e t h o d s ,t h i sp a p e r h a s b r i n gf o r w a r da n e wm e t h o do fs o f t w a r e p r o c e s s d e f i n i t i o n p d m w s t h i sm e t h o db a s e so nt h el a n g u a g eo fs o f t w a r ep r o c e s sd e f i n i t i o ns p e l 4 w s , c o m b i n e st h ei d e ao ft h ep r o c e s sp r o g r a mw i t ht h ei d e ao ft h ew o r k f i o w , c o m b i n e st h e g r a p h i cr e p r e s e n t a t i o nw i t ht h er e p r e s e n t a t i o no ft h ep r o c e s sd e s c r i p t i o nl a n g u a g e ,a n d h e i g h t e n st h ea b i l i t yo f t h ed e f i n i t i o no fs o f t w a r e p r o c e s s i na d d i t i o n ,t h i sm e t h o d b a s e so n t h ew e bs e r v i c et e c h n o l o g y , h a st h ea b i l i t yo fd i s t r i b u t e dc o o p e r a t i n gd e f i n i t i o n ,a n dc a nb e d e p l o y e d a n de x e c u t e do nt h eg i v e n s u p p o r te n v i r o n m e n t o w i n g t ot h e s ef e a t u r e s ,t h i sn e w m e t h o do ft h es o f t w a r ep r o c e s sd e f i n i t i o nh a st h eh i g ht h e o r e t i c a ls i g n i f i c a n c ea n d p r a c t i c a l s i g n i f i c a n c e t h i sm e t h o d w i l la d v a n c et h ep r o g r e s so ft h es o f t w a r ep r o c e s st e c h n o l o g ya n d t h ei m p r o v e m e n to f t h es o f t w a r ep r o c e s s k e y w o r d s :s o f t w a r ep r o c e s sd e f i n i t i o n ,p d m w s , s p e l 4 w s ,c m m ,p r o c e s s p r o g r a m t h ep r o j e c ts u p p o r t e db y m h u ip r o v i n c i a ln a t u r a ls c i e n c ef o u n d a t i o n p r o j e c tn u m b e r :0 1 0 4 2 2 0 7 独创性声明 本人声明所呈交的学位论文是本人在导| 1 1 j 指导下进行的研究工作及取得的研究成果。据我所 知,除了文中特别加以标注和致谢的地方外,1 e 文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得金壁王些盔堂或其他教育机构的学位或证书藤使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名签字日期:d 乒年细,驻曰 学位论文版权使用授权书 本学位论文作者完全了解盒蟹王些太鲎有关保留、使用学位论文的规定,有权保留并向国 家有关部或机构送交论文的复印件和磁盘- 允许论文被查阅和借阅。本人授权盒g b 王些太堂可 以将学位沧文的全部或部分内容编入有关数搬库进行检索,可以采用影印、缩e b 或扫描等复制手 段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权郫) 学位论文作者签名 习州埘 签字日期:口垂年争月弹日 学位论文作者毕业后去向:l 荨呻叫 工作单位:、彳z 蹄嗜限么句 签字日期:吖年呷月驴 电话 邮编 致谢 本人在研究生学习阶段得到了导师袁兆山教授的悉心教导,这篇论文更是在袁老 师的指导和无微不至的关怀下完成的。本论文工作从选题、研究到写作,自始至终得 到了袁老师的指导、关心、信任和支持。在研究生学习期间,袁老师始终给予我严格 的要求、充分的信任、热情的鼓励和全面锻炼的诸多机会。在学习和学术研究中,我 深受袁老师严谨的治学态度和勤奋的敬业精神的熏陶和激励,受益匪浅。在此,谨向 袁老师表示最诚挚的感谢和最崇高的敬意。 在论文的写作过程中,我得到了师兄王珏、张艳明的帮助和指导,在此,对他们 表示最诚挚的感谢。在这里,我还要感谢张国宁、朱晓春、李莹莹、陈源源、何箭等 同学在我的论文研究期间给予我的支持和鼓励。 这里还要感谢我的父母,父母的关爱是我能从漫长的求学道路上坚持下来的重要 原因。在论文得以顺利完成之际,我衷心地感谢父母对我的理解、支持、关心和深深 的爱。 最后,感谢计算机学院的王新生老师、 究生院的老师们所付出的辛勤工作。 衷心感谢所有关心和帮助过我的师长、 徐静老师、费敏老师以及合肥工业大学研 同学、朋友和亲人们 作者: 习删州 2 0 0 4 年4 月8 日 第一章绪论 1 1 课题的研究背景 随着计算机的应用领域不断拓宽,整个社会越来越依赖于计算机及其应用的软 件,软件的质量显得至关重要,尤其是在电子、航天、军事等领域,对计算机软件质 量的要求非常高【”。人们越来越意识到,软件质量是高质量软件产品开发中的薄弱环 节。随着软件对我们日常生活的渗透,持续了近三十年的软件危机变得更加突出。现 在仍然困扰着绝大多数软件机构的问题是:很难开发出符台预算和进度要求的高可靠 性和可用性软件。 技术的进步使得计算机硬件的成本持续降低,而软件成本则不断增长,软件成本 在计算机系统总成本中所占的比例呈现目益扩大的趋势。1 9 6 8 年,美国花费于软件的 投资高达6 0 亿美元。1 9 8 0 年美国政府在计算机系统方面( 软、硬件与服务) 共耗资 达5 7 0 亿美元,其中3 2 0 亿美元( 约占总数的5 6 ) 用于计算机软件方面。 在软件的开发进度方面,也遇到了越来越多的困难。有的系统干脆就失败了,耗 费了大量的人力和财力;有的系统虽然完成了,但往往推迟了很多年,开发经费大大 超出预算,而花费了很高成本开发出来的软件往往质量低下。软件的质量控制成为一 个很难解决的课题。 在8 0 年代以前,大多数研究人员都有一个“信念”,认为“只要有好的软件开发 方法和工具就可以开发出高质量的软件,并且能够提高软件生产率”。但是许多大型 软件系统的开发经验表明,事情并不那么简单。 在通过提供新方法和新技术使得软件生产率和质量得到提高的许诺落空了2 0 年 以后,软件机构开始意识到,实质性问题在于缺乏管理软件过程的能力。在许多机构 中,软件项目常常严重超期或超出预算,处于混乱状态,根本不能体现新方法、新技 术和新工具所带来的优势 2 】。 在这样的背景下,人们开始了对软件开发过程的关注,这是人们向软件工程规范 化迈出的正确的步。只有通过创建规范的软件开发过程,我们才可能管理并控制软 件产品的质量。人们对过程的关注开始于美国国防部( d o d ) 最初对软件工程研究所 ( s e i ) 的赞助,s e i 为美国国防部提出了评估软件转包商能力的方法。2 0 世纪8 0 年 代末期,w a t t sh u m p h r e y 和他在s e i 的小组开始了有关软件过程的研究工作。从那以 后,软件过程运动逐步获得巨大的发展与推动,并且在世界范围内日益广泛地流行起 来f 3 。 w a t t s h u m p h r e y 作为软件过程运动的先驱和领袖,在他的经典之作m a n a g i n g t h e s o f t w a r ep r o c e s s ) ) 中第一次将过程的规则引入了软件行业。他认为,“为了解决软件 问题,重要的第一步就是将整个软件开发任务看作一个可控的、可度量的以及可改进 的过程”1 4 。 软件开发的实践也不断证明了h u m p h r e y 的观点的正确性。在软件开发过程中, 如果软件开发组织不能良好地定义和管理其软件过程,开发组织往往就不能从软件工 程的研究成果即良好的软件开发方法和工具中充分获益,从而达不到期望的结果。软 件过程( 包括各种工程过程和管理过程) 的不断改进才是增进软件开发组织的能力和 提高软件质量的第要素。 随着人们对于软件过程技术研究的不断深入,已经有许多用于软件过程改进和评 估的模型和标准被制定出来,其中主要的有c m m ,p s p 厂r s p 、i s o9 0 0 1 、i s o s p i c e 等,它们都为软件组织提高自身的软件开发过程提供了参考的依据和标准。 近年来,国内外采用软件过程技术进行软件质量建设并不断改进其过程能力的企 业逐渐增多,以软件过程为中心的时代已经到来。因此,对于软件过程的正确定义、 分析、重用和评价,都是关系到软件过程能力乃至软件质量的重要方面。本文在这样 的背景下,着手对软件过程的定义进行研究,提出了一种新的定义软件过程的方法, 从而更加便于软件组织对其自身的软件过程进行管理和改进。 1 2 1 论文的研究内容 1 2 论文的研究内容和意义 近年来,随着软件工程的发展,人们越来越开始注重软件开发的过程。一个有效 的软件过程对于保证软件项目的成功具有举足轻重的作用。对于任何一个组织来说, 要想深入贯彻执行软件开发过程的思想,首先就要对本组织的开发过程进行一个明确 有效的定义。 。 软件过程定义是软件过程技术研究的起点,是一个重要的研究领域,也是本文的 核心。一个定义良好的软件过程模型框架将会有助于软件过程的改进和交流,而一个 不完备的软件过程模型框架不仅不能够促进软件过程的改进,而且会适得其反。 本文的研究重点就是要提出一种新的软件过程定义方法,使得过程易于定义,易 于培训,易于贯彻执行。它是一种形式化的表达方法,针对基于w e b 服务的分布式软 件过程的定义,并且可以在特定的支撑环境下自动运行。 目前国内外已经提出了许多定义软件过程的方法,但是这些方法有很多地方不能 适应当前形势的需要: 1 还没有一种过程定义方法能够获得广泛的接受和使用。这不仅仅是过程定义 方法本身的问题,而是因为过程定义方法的使用依赖于组织、方法学和技术 支持。 2 以前的这些过程定义方法存在着很明显的缺点。它们通常基于已经存在的语 言范型,因此不能很好地适应软件过程领域的描述。 3 在软件过程定义方法中,什么能做、什么应该做受到软件过程中其他领域的 研究的不断影响。 过程定义方法的重点在于:语义的二| 三富、易用性,恰当的抽象,过程合并,可视 化,和对于多种范型的支持。丰富的语义和易用性之间的平衡是过程语言研究的重点 【5 】o 此外,目前的这些定义软件过程的方法往往都是非形式化或者是半形式化的,它 们在描述软件过程的时候通常都采用文字叙述或图形表示的单形式,这样的表述形 式对于人们深刻理解以及严格执行软件过程存在着很多不足。 本文在分析了现有的各种软件过程定义方法的特点之后,继承了各神方法的优 点,从简洁实用的角度出发,对这些方法进行了改进,包括针对软件开发过程的特点 的改进,提出了一种瓶的软件过程定义方法p d m w s ,它可以在特定的支撑环境下实 现,在附录部分还给出了用这一方法定义的一个过程实例。 本文所提出的这种新的软件过程定义方法p d m w s ( p r o c e s sd e f i n i t i o nm e t h o d b a s e dw e bs e r v i c e ) 将图形表示和具7 f 程序语言特性的表述方式相结合,很好地实现 了软件过程的形式化表述。这一方法基于一种软件过程定义语言s p e l 4 w s ( 即 s o f t w a r ep r o c e s se x e c u t i o nl a n g u a g ef o rw e bs e r v i c e ) ,它是我们受到商业流程定义语 言b p e l 4 w s 的启发而定义出来的语言j ;! i l 范。这种s p e l 4 w s 语言规范专门适合于定 义软件过程,使用户能够相对容易地定义适合自己具体情况的软件过程,促使用户改 进自身的软件过程,达到提高劳动生产力的效果。本文在介绍p d m w s 方法的基础上 还在特定的平台工具的支持下验证了这一方法的实现。最后结合一个具体项目的实 例,使用p d m w s 方法定义其软件过程,充分体现了这一方法的实际应用价值。 本文所提出的这种软件过程定义方法有以下几方面突出的优点,是以往其它方法 所不具备的: 1 形式化该方法所基于的s p e l 4 w s 语言规范的文法完全基于x m l 规范, 如果不考虑它的程序语言特性,完全可以把它理解为普通的x m l 文档。此 外,该方法还引入了简单易懂的图形表示法,两种表述形式的结合使得软件 过程的定义更加具备形式化的特点。 2 分布式由于s p e l 4 w s 语言规范以w e b 服务和分布式技术为基础,因此 采用p d m w s 方法定义软件过程就可以保证异地过程定义的协同一致,对于 大型的软件组织,尤其是各个部门机构在地理上分布在各地的组织,这种软 件过程的分布式协同开发将是相当有意义的。它充分考虑了软件过程发展的 新特点,更加适应软件过程定义的新要求。 3 可执行s p e l 4 w s 是一种可执行语言,利用已有的b p w s 4 j 软件包就可 以自动执行s p e l 4 w s 软件过程流程。b p w s 4 j 即w e b 服务的业务流程j a v a 运行时( b u s i n e s sp r o c e s s e si nw e bs e r v i c e sf o rj a v ar u n t i m e ) ,它是对商业流 程定义语言b p e l 4 w s 规范的一个实现,包括一个运行时引擎以及一个流程 编辑器( 它是一个e c l i p s e 插件) 。我们利用p d m w s 方法定义的软件过程可 以在这一支撑环境下编辑、部署和运行,从而使得过程更容易控制和管理。 1 2 2 论文的研究意义 根据上面对于p d m w s 方法的特点的分析,这一方法的提出具有丰富的理论研究 意义和实际应用价值。 在理论方面,本文为软件过程的定义提供了一个新的思路,就是将过程程序的思 想和工作流的思想相结合,将图形表示和过程程序表示相结合,实现软件过程的形式 化定义,从而易于组织进行培训,易于软件过程的实施、维护和改进。 在实践方面,本文提供了这一方法的支撑环境,可以支持软件过程的自动执行, 从而使得软件过程流程更加易于控制和部署,也更加易于理解,最终将对于整个软件 过程的改进起到一定的促进作用。另外,这一方法支持基于w e b 服务的分布式交互进 行的软件过程协同定义,在分布式技术和w e b 服务技术飞速发展的今天,它更加贴近 了组织的实际需要,具有更广泛的适用空间,为软件组织提供了一个更好的选择。 利用这一方法定义软件过程,给软件开发过程中涉及的人员都带来了许多方便: 对于软件开发人员来说,更加容易理解整个软件过程流程,也更容易把握自 己所要负责的任务,他们将不再迷失于整个组织庞杂的软件开发过程中,随 时随地认识到自己需要做什么,为什么需要做,以及什么时候做。 对于管理人员来说,更容易把握整个软件过程流程,更加容易对过程进行控 制,可以从宏观上很好地掌控软件开发过程,使得项目的进度和计划有序可 控,成本的预算更加科学合理,从而生产效率更高,企业的竞争力更强。此 外,组织人员的过程培训也更加得心应手。 对于客户来说,整个软件开发过程不再像一个“黑箱”一样不可见,而是比 较透明的过程,可视化的过程表示使得客户更加容易理解软件开发的过程, 并且可以参与到实际的开发活动中来,随时提出意见,提高了客户的满意程 度。 在这里需要注意的是,利用p d m w s 方法定义的软件过程并不是一个通用的软件 开发模式或者过程模型( 比如r u p p s p t s p 等等) ,不是要建立一个推荐使用的软件 开发流程,而是由软件组织根据自身实际情况定义的一个开发过程流程。刚开始定义 出来的过程往往并不是很合理很完善,但是组织可以在实践的过程中逐步对其进行改 进和完善,使得这一过程能够逐步适应该软件组织的开发实践,从而提高组织的软件 过程能力。而且,使用p d m w s 方法,并借用我们提供的这个平台,软件组织可以自 定义建立任何一种适宜的软件过程,包括r u p 、p s p 、t s p ,甚至成为像微软一样有 着一套根据自己经验总结出来的软件过程的软件企业。 本论文的研究受到了安徽省自然科学基金项目的支持。 4 1 3 论文的组织 本文共分为六章: 第一章绪论,介绍论文研究的课题背景和主要的研究内容。 第二章从软件过程的技术背景出发,详细介绍软件过程技术的基本概念、思想, 以及能力成熟度模型c m m 。 第三章详细阐述软件过程定义方法p d m w s 。这种方法首先引入了一种简单的 图形表示法,初步描述过程流程中涉及到的角色、活动和工件,然后利用 s p e l 4 w s 语言对软件过程进行详细的定义。此外本章中还给出了一个实 例,利用这一方法来定义c m m 中的配置与变更管理这一关键过程域。 第四章借鉴商业流程定义语言b p e l 4 w s 的思想和定义方法,定义了一种专门 适合于定义软件过程流程的s p e l 4 w s 语言规范,并详细给出了这一语言 的语法语义。此外,在这章中还使用s p e l 4 w s 语言给出了配置与变更 管理实例的具体流程定义。 第五章介绍p d m w s 方法的应埘。在商业流程定义的支撑环境b p w s 4 j 中验证 了p d m w s 方法的实现,并结合了一个实际项目的过程定义实例,阐明了 流程定义、部署和运行的整个过程。 第六章结束语,对本论文的总结和展望。 在本文的附录部分,还完整地给出了使用s p e l 4 w s 语言定义配置与变更管理这 一关键过程域的过程文档以及焊接管理系统中配置管理过程的流程定义文档。 第二章软件过程技术 在介绍软件过程定义方法之前,有必要了解些软件过程的相关技术,包括过程 和过程定义的概念、过程成熟度的概念、能力成熟度模型,等等。这一章从软件工程 的研究背景出发,对这些概念分别进行阐述。 2 i 软件工程过程 软件工业在几十年的发展过程中,已经经历了几次大的变革。目前,软件过程运 动在全世界范围内传播,并且获得越来越多的支持【6 】。过程成熟度是结构化方法的进 一步发展。软件过程管理的范围比分析、设计、编码更宽,它覆盖了软件开发过程及 其支持活动的各个方面。当面向对象技术的软件开发转变为组件的生产与集成时,面 向对象技术的进化给软件工业化提供了更多的可能,而拥有规范化的过程则是软件工 业化的一个先决条件。 过程成熟度运动很有可能会促使软件工业在工程化的道路上更进一步,使软件工 业成为以过程为中心的注重过程的工业p 】。 2 1 1 软件过程 过程的思想如此重要,所以我们首先有必要明确下什么是过程。对于这个概念, 一直以来都没有一个统一的定义。 简单地说,过程就是指为了实现某一目标而采取的一系列步骤。也可以这么理解: 过程就是谁( w h o ) ,在什么时间( w h e n ) ,要做什么( w h a t ) ,并且如何达到目标吼 比较严格的定义就是: 过程( p r o c e s s ) :针对一个给定目的的一系列操作步骤 8 1 。 过程事实上有三个方面的特性:首先,过程应当被定义,因此过程的第一个方面 就是过程的定义,通常是将过程所包含的活动及程序文档化。第二,应将关于过程的 知识传授给需要执行过程的每一个人,这就是过程的学习。也就是说,应该让过程的 知识深入到每个过程执行者的头脑中去,并以此驱动他们的行为与活动;就像产品的 形成是经过一系列的工序处理后的结果一样,通过执行过程中的活动才能获得预期的 结果,这就是过程的第三个方面。即: 过程的第一个方面是关于指定过程的文档化; 过程的第二个方面是通过人们头脑中的知识来驱动他们的行为: 过程的第三个方面在于过程活动的结果【3 】o 6 对于软件过程,比较严格的定义是: 软件过程( s o f t w a r ep r o c e s s ) :是人们用于开发和维护软件及其相关产品( 项目 计划、设计文件、编程、测试、用户手册) 的一系列活动、方法、实践和改造p j 。 现代工业生产的特点之一就是生产过程的标准化、规范化和自动化。任何产品的 生产都是由具体的生产过程来完成的。过程是开发某种产品实现某种任务的系统化的 手段,同样软件产品的开发也是由具体的软件开发过程来完成的,软件开发过程的质 量在很大程度上决定了所生产的软件产晶的质量和软件的生产效率。 软件过程技术就是通过某种形式化的手段对软件开发过程加以系统的严格的描 述,为开发人员提供一个标准的无歧义的软件开发规范,使他们能更有效地进行交流。 软件过程研究者将软件看作是能够通过系统有序的运行过程而建立的错综复杂、相互 联系的信息集合体。通过在计算机上执行所描述的软件过程,项目管理人员可以对实 际的人员开发过程进行监控,从而保证实际的软件开发过程按规定的方式和步骤进行 t l 。 软件过程技术主要包括四个方面:软件过程建模( s o f t w a r ep r o c e s sm o d e l i n g t e c h n o l o g y ) 、软件过程实施( s o f t w a r ep r o c e s se x e c u t i o n ) 、软件过程评价( s o f t w a r e p r o c e s sa s s e s s m e n t ) 和软件过程改进( s o f t w a r ep r o c e s si m p r o v e m e n t ) 。 软件过程建模主要是研究各种适合定义和描述软件过程的方法和手段。主要包括 建模目的、建模方法、建模语言和过程模型等方面。 软件过程实施就是研究在以过程为中- i i , 的软件工程环境的支持下软件任务的启 动、运行、资源分配、代理支持、数据处理等方法。 软件过程评价研究如何对企业的软件开发过程进行评价。 软件过程改进研究如何对企业的软件过程作进一步的改进。 其中软件过程建模是进行软件过程实施、度量和改进的基石。c m m 和其他的一 些软件过程模型针对软件过程实施和软件过程改进进行了卓有成效的研究,现在的软 件过程研究人员越来越多地把目光集中在软件过程建模和软件过程自动执行方面。 2 1 2 软件过程定义 根据过程三个方面的特性,首先就要对过程进行定义,要描述过程的步骤、规则 以及活动。没有明确的定义或者没有制定详细的规则将会导致过程活动的失败。 定义软件过程就是要建立用来组织工具、方法和任务的技术和管理框架。一个定 义良好的软件过程不仅为可能发生的事情做好了准备,而且提供了一种有组织的学习 机制。实际上,定义详尽精确的软件过程有利于开发人员对软件的理解、开发小组成 员之间的交流以及项目的控制,同时可以约束软件人员,保证软件质量。 软件过程定义就是对整个软件生命周期的管理与工程化过程及支持过程的规范 说明。过程的使用者是软件工程师和项目经理,过程的结果是软件程序、系统以及文 7 档【3 】。 对于任何一个组织来说,软件过程都需要不断地得到改进,软件过程改进是对不 断提高的软件项目失败率的一种反应。软件过程改进活动包括:过程的定义、过程的 建模、过程的培i i i 、过程的监控、过程的强制执行、过程实旌情况的反馈等等。过程 的定义是其中必不可少的一个环节。一个软件过程改进环境不但要对过程的定义及文 档化加以支持,而且要实现对软件监控、反馈、角色改进及活动的支持,从而最终建 立起一个可持续改进的软件过程。 另外,过程定义是达到c m m3 级和i s 0 9 0 0 0 认证的一个关键步骤。软件过程定 义是实现高能力成熟度等级的基础。c m m 中软件过程定义的基础概念是机构的标准 软件过程。机构的标准软件过程是操作性定义,它定义了机构中不同软件项目之间建 立共同软件过程的基本过程。它描述每个软件项目的基础性软件过程元素,这些元素 要求在软件过程中定义。它还描述了这些软件过程元素之间的关系( 如顺序和接口) , 建立机构中进行软件工作的一致方式,对长期稳定性和过程持续改进至关重要【1 0 l 。 2 1 3 以过程为中心 在软件工程的发展过程中,曾经先后出现了两种观点,即产品的观点和过程的观 点。现在的软件组织往往也有两种,一种是以产品为中心的组织,而另一种则是以过 程为中心的组织。 在以产品为中心的组织中,人们往往倾向于产生一些具体的结果,并会错误地将 文档化的工作程序理解为过程,每个活动都要直接产生短期的效果。在这样的组织中, 有关于过程的思想和工作就会被认为是无关紧要的。 而相反的是,在以过程为中心的组织里,过程被看作是整个商业环境中的一个问 题,它会对最终的结果、组织、生产者以及三者之间的关系造成影响。在这类组织中, 那些具体的结果只是全局中的一部分,过程文档只是帮助执行过程的个工具,而不 是最终的目标。事实上,最终的目标是接受并遵循过程,过程本身则被看作是商业运 作的规范吼 项目经理可以通过管理过程以及监控过程的执行来管理整个软件项目和开发团 队。而在项目管理中采用以过程为中心的方法,将会获得更好的管理效果,因为以过 程为中心会让我们更易于取得项目最终的成功,并且可以提高团队工作的效率。 在一个组织中,过程应是组织、管理、技能以及技术实施的基础。在一个以过程 为中心的环境中( 遵循过程规范的环境) ,过程活动与完成共同的商业目标是一致的。 越强调过程的规范性,整个生产活动就会越有序。 一个有效的过程为有效地开发高质量的软件提供准则,它获取并提出当前技术条 件下可行的最佳实践方案。因此,它可以降低风险并增强预见性【l l 】。 亡嚣 , 过程是黏合剂 图2 1 过程的中心角色 所谓有效的过程是指那种“确实能产生明显效果”的过程。为实现一个有效的过 程,我们应注意以下三个方面:过程应文档化,应有相应的培训,过程必须被监控并 被强制执行。也就是说,为了保证过程的有效性,必须设置相应的角色以及机制,从 而推动并监控过程的实施。 一个成熟的过程有如下一些特点:有明确的定义、有相应的培训、具有强制性和 可服从性。在此基础上,w a t t sh u m p h r e y 还添加了一个属性,就是成熟的过程还应该 具有不断改进的特点”】。另外,根据t l u m p h r e y 的观点,“一个明确定义的过程可以使 你了解花费在每个软件任务上的时间追踪在每个过程步骤中引入和修改的缺陷。这 些数据可以帮助你分析软件开发过程,了解它的缺陷并加以改进”。这也就更加突 出了软件过程定义的重要性。 2 2 软件过程成熟度 自软件工业建立以来,已经出现了许多重大的变革,它们都推动了软件工业的发 展和进步。目前的软件过程技术也正在深刻地影响着软件工业的发展进程,其中的过 程成熟度更是如此。 2 2 1 软件过程成熟度的起源 软件过程成熟度的起源可以追溯到已经存在了近7 0 年的产品质量管理原则。众 所周知的质量运动权威包括:s h e w h a r t 【1 3 1 、d e m i n g 、j u r a n t 5 l 和c r o s b y 1 6 1 。表2 1 总结了软件过程运动的起源和里程碑。 9 w a l t e rs h e w h a r t发表统计学质量控制原则 ( 2 0 世纪3 0 年代) e d w a r d s d e m i n g ( 1 9 5 6 ) 进一步发展并成功证明s h e w h a r t 的原则 j o s e p hj u r a n ( 1 9 5 6 ) p h i lc r o s b y ( 1 9 8 0 )发展质量成熟度的量化 w a t t sh u m p h r e y ( 1 9 8 6 ) 软件过程中采用c r o s b y 的成熟度量化,加入成熟度等级的概念 软件工程研究所( s e l )发展成熟度的框架,成熟度问卷,s p a ,s c e ,c m m ( 1 9 8 7 1 9 9 7 ) 表2 1 质量运动中过程成熟度的起源 从表中可以看出,软件过程成熟度运动的根源是全面质量管理( t q m ) 。w a t t s h u m p h r e y 开创性地将d e m i n g 的原则、j u m n 改进的部分以及c r o s b y 的成熟度量化结 合在一起,并将这些原则运用于软件开发过程。统计控制的原则是质量运动和软件过 程运动的主题。w a t t sh u m p h r e y 这样描述开发过程中统计控制的必要性:“如果整个 开发过程处于统计控制之下,那么仅仅通过改进过程就可以持续获得更好的结果:如 果离开了对过程的统计控制,就无法实现持续的改进,除非再次采用统计控制的方法” 1 7 1 。 2 2 2 过程成熟度的相关概念 要很好地理解过程成熟度,首先就要对下面一些与过程成熟度有关的基本概念有 一个清晰的认识和把握。 软件过程能力: 描述( 开发组织或项目组) 通过执行其软件过程能够实现预期 结果的程度。一个软件开发组织或项目组的软件过程能力,提供了一种预测该组织或 项目组承担下一个软件项目时最可能的预期结果的方法。 软件过程性能:表示( 开发组织或项目组) 遵循其软件过程所得到的实际结果。 软件过程性能描述已得到的实际结果,而软件过程能力则描述最可能的预期结果。由 于一个特定软件项目的具体属性和执行该项目的环境所限,该项目实际的过程性能往 往并不能充分反映其所在组织的整个过程能力。 软件过程成熟度: 一个特定的软件过程被明确和有效地定义、管理、测量和控 制的程度。成熟度可指明一个软件开发组织中软件过程能力的增长潜力和可改进的方 面,也可表明一个组织的软件过程的丰富多样性,及其各个开发项目所遵循的软件过 程的一致性。 软件能力成熟度等级; 软件开发组织在走向成熟的途中几个具有明确定义的、 表征软件过程能力成熟度的平台。每一个成熟度等级为其软件过程继续改进达到下一 个更高的等级提供基础。 1 0 对于过程能力,t r i l l i u m 在他的文章中给出了另一种定义,即“所谓能力是指软 件开发组织在减少产品缺陷数、缩短开发周期并且降低开发生命周期成本的前提下, 为了满足用户的需求,不断推出产品或对已有产品不断加以改进的能力” i s o 一个组织的软件成熟度一方面指明其有效地定义、管理、测量和控制软件过程的 程度,另一方面也可以帮助该组织找到差距,指出其努力的方向和改进的目标。 一个软件过程的成熟意味着,由于开发组织运用该软件过程,使得各个开发项目 执行该软件过程的纪律性一致地增强,并导致软件生产率和质量随着时间的推移不断 得到改进。 为了使软件过程改进工作能不断取得成效,必须设计一条进化路径,使软件开发 组织的软件过程成熟度沿着这一路径分阶段逐步提高。过程成熟度框架就是要描述一 条从无序的、混乱的过程达到成熟的、有纪律的过程的进化途径,要把软件过程、软 件过程能力、软件过程性能和软件过程成熟度等概念集合为一体。 2 2 3 软件能力成熟度模型 软件过程成熟度框架的基础是软们有e 力成熟度模型,该模型把软件过程从无序到 有序的进化过程分成几个阶段,并将这些阶段排序,形成一个逐层提高的平台,使每 个平台的过程能力能为下一更高级的平台打下基础。 1 9 8 7 年前后,美国卡内基梅隆大学软件工程研究所( c m u s e i ) 的w a t t s h u m p h r e y 等人提出了软件能力成熟度模型s w c m m ,它基于众多软件专家的实践经 验,侧重于软件开发过程的管理及工程能力的提高与评估,是国际上流行的软件生产 过程标准和软件企业成熟度等级认证标准。 软件能力成熟度模型是为了指导软件开发组织,通过确定当前过程的成熟度和识 别出执行软件过程的薄弱环节,通过解决对软件质量和过程改进至关重要的几个问 题,来形成对其过程的改进策略:通过关注并认真实施一组有限的关键实践活动,稳 步地改善其全组织的软件过程,使全组织的软件过程能力持续增长。 s w - c m m 为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。 第一级实际上是一个起点,任何准备按c m m 体系进化的企业都处于这个起点上,并 通过这个起点向第二级迈进。除第一级之外,每一级都设定了一组目标,如果达到了 这组目标,则表明达到了这个成熟度级别,可以向下一个级别迈进。c m m 体系不主 张跨越级别的进化。因为从第二级起,每一个低的级别实现均是高的级别实现的基础。 2 3 能力成熟度模型c m m c m m ( c a p a b i l i t ym a t u r i t ym o d e l ,能力成熟度模型) 是软件开发过程改进的指南, 它以几十年产品质量概念和软件工业的经验及教训为基础,为企业的软件能力不断走 向成熟提供了有效的步骤和框架。 2 3 1c m m 的产生及其定义 早在2 0 世纪6 0 年代中期,人们就发现软件的生产出现了“问题”,主要表现在 生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原 理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直 至8 0 年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在 大范围内存在。 为了保证软件产品的质量,8 0 年代中期,美国联邦政府提出对软件承包商的软件 开发能力进行评估的要求。在m i t r e 公司的帮助下,1 9 8 7 年9 月,美国卡内基- 梅隆大 学软件工程研究所( c m u s e i ) 发布了软件过程成熟度框架,并提供了软件过程评估和 软件能力评价两种评估方法和软件过程成熟度提问单。4 年之后,s e i 将软件过程成 熟度框架进化为软件能力成熟度模型( c a p a b i l i t ym a t u r i t ym o d e lf o rs o f t w a r e ,简称 s w c m m ) 。1 9 9 1 年8 月,s e i 发布了墩早的s w c m mv 1 0 。经过两年的试用,1 9 9 3 年s e i 正式发布了s w c m m v l 1 ,这就是目前使用最为广泛的版本。 c m m 的“正式”定义为:“一种将软件组织对于软件过程的定义、实现、度量、 控制以及改进划分为不同阶段的方注”d o 。 c m m 是基于软件过程的理论而发展起来的m 】,它来源于工业界以及政府机构的 软件过程评估和反馈意见。为了定义一个能够更加有效地进行过程改进的过程,在 c m m 中通过使用一个模型来描述成熟度框架。要注意的就是,模型才是我们改进软 件过程的基础,而不是调查问卷。 表2 2 阐述了c m m 的整个发展历史以及其中的主要里程碑。 年份里程碑 1 9 8 6s e i 与m i t r e 公司的过程模型框架 1 9 8 7s e i 提出了过程成熟度框架以及成熟度问卷 1 9 8 9w a t t sh u m p h r e y 的软件过程管理 1 9 9 1s e i 能力成熟度框架v i 0 1 9 9 3s e i c m m v l 1 表2 2 能力成熟度模型( c m m ) 发展历史中的里程碑 目前,c m m 已经发展到c m m i ( c a p a b i l i t ym a t u r i t ym o d e li n t e g r a t i o n ,能力成熟 度模型集成) 阶段。2 0 0 1 年末,c m m i s e s w i p p d av e r l 1 正式发行。c m m i 项目 为工业界和政府部门提供了一个集成的产品集,主要目的是消除不同模型之间的不一 1 2 致和重复,降低基于模型改善的成本。未来的c m m i 将以更加系统和一致的框架来指 导组织改进软件过程,提高产品和服务的开发、获取和维护能力。 s w - c m m 是基于政府评估软件承包商的软件能力发展而来的,有两种通用的评 估方法用以评估组织的软件过程成熟度:软件过程评估和软件能力评价。它既可以用 来科学地评价软件开发组织的软件能力成熟度等级,也可以用来帮助软件开发组织进 行自检,了解自己的强项和弱项,从而不断完善组织的软件开发过程,确保软件质量, 提高软件开发效率。 2 3 2c m m 的成熟度等级 c m m 为我们提供了一个进行改进的规划图,也为软件企业的过程能力提供了一 个阶梯式的进化框架。通过在这个框架下的运作,可以帮助企业改进自身的软件过程, 逐步达到五个不同的成熟度级别,从而获得最终的成功。在这五个成熟度级别中,除 了笫一级以外的每个级别都是由一系列的过程目标所构成的,只有当过程满足了这些 目标的要求并且能够保持稳定的时候才能说达到了指定的等级。s w c m m 的5 个成 熟度等级分别为:初始级、可重复级、已定义级、已管理级和优化级。如图2 2 所示。 混乱的 图2 2c m m 中的五个成熟度等级 第一级:初始级( i n i t i a l ) 处于第一级过程能力的企业不具有预测能力,过程不断发生变化和修改,其主要 特征就是混乱,无法对项目的进度、预算、功能以及产品质量做出准确的预测。开发 过程依赖于个体的能力、知识以及主动性。 c m m 等级过程特点 过程特征 第一级:初始级 混乱没有统一的过程 实施是不可预测的 第二级:可重复级制度化己建立项目管理系统 实施情况是可重复的 笫三级:已定义级标准化与集成软件工程以及管理过程已定义并集成在一起 第四级:已管理级可预测产品以及过程的质量是可控的 第五级:优化级持续改进过程改进已制度化 表2 3 不同成熟度等级所对应的行为特征 表2 3 对处于不同成熟度等级的企业行为进行了对比和总结。 第二级:可重复级( r e p e a t a b l e l 在这一级别上,软件

温馨提示

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

评论

0/150

提交评论