(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf_第1页
(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf_第2页
(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf_第3页
(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf_第4页
(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机科学与技术专业论文)基于cmm的软件质量保证管理.pdf.pdf 免费下载

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

文档简介

摘要 摘要 c m m 是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践 中再个发展阶段的描述。c m m 的核心是把软件开发视为一个过程,并根据这一 原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使 企业能够更好地实现商业目标。 c m m 是一个体系,它只规定了软件开发过程能力的各种级别的特点以及改 进的目标,但对如何实现这蝗能力和目标没有详细的指导,面韭,由于软件应 用领域很多,各个机构特点不尽相同,没有一个统钓详细指南可以解决所有 机构面临的问题,因此,各个机构必须结合自身的特点来罨体裁衣,构建自己 的软件开发过摇。 本文旨在介绍一些简单可行的实施方法,通过某中小型企业中对实际项目 的流程、简单文档模扳和管理工具的应用和s q a 跟踪检查活动的介绍及一些流 程中常见蛔题及风险控制,并对现有流程提出了更深入的改进想法,给希望通 过实施c m m 束改进软件流程从丽保证软件质量的中小企业提供参考和指导。 文章主要以c m m 和软件生命周期中的瀑布模型为基础,把一个完整的项目 分为:需求阶段,计划阶段,设计阶段,编码阶段,测试阶段和发布。从流程 上介绍一个项目经历一个周期的各阶段基本的质量保证活动,包括结合了一些 管理工具进干j 二流程的介绍以及针对这些流程如何进行s q a 跟踪活动等。并根据 企业特点对现有的基本流程提出了较为实际的改进建议作为下一阶段的工作方 向。 关键词:c m m ,软件质量保证,过程管理,流程,软件生命周期 a b s t r a c t c m md e f i n e sd i f f e r e n td e v e l o p m e n tp h a s e si np r a c t i c e ,i n c l u d i n gd e f i n i t i o n , i m p l e m e n t a t i o n , m e a s u r e m e n t s ,c o n t r o la n di m p r o v e m e n tf o rs o f t w a r eo r i g i n a t i o n t h ek e yo fc m mr e g a r d ss o f t w a r ed e v e l o p m e n ta so n ep r o c e s s ,m o n i t o r i n ga n d r e s e a r c ht h es o f t w a r ed e v e l o p m e n ta n dm a i n t e n a n c eb a s e do nt h i sr u l e ,t om a k et h e c o m p a n ya c h i e v et h ec o m m e r c i a lg o a lw i t l ls c i e n t i f i ca n ds t a n d a r d i z a t i o n c m mi saf r a m e w o r k , w h i c hs p e c i f i e so n l yt h ec h a r a c t e r i s t i c so fs o , w a r e d e v e l o p m e n tc a p a b i l i t ya n dt h eg o a lo fi m p r o v e m e n ta td i f f e r e n tl e v e l st h a ts h o u l d h a v e , b u ti td o e sn o tp r e s c r i b ea n yp r o c e s s m o r e o v e r , t h e r ei sn ou n i f o r m e dg u i d a n c e c a ns o l v ea l lk i n d so fp r o b l e m st h a to r i g i n a t i o n sf a c e dw i t h , s od i f f e r e n tc o m p a n i 鹤 m u s tb u i l dt h e i ro w nd e v e l o p m e n tp r o c e s st od e a lw i t hd i f f e r e n ts i t u a t i o n s t h eg o a lo ft h i sp a p e ri st op r e s e n tt h es i m p l ea n dp r a c t i c a lm e t h o d s ,i n c l u d i n g w o r kp r o c e s s ,s o m es i m p l ed o c u m e n tt e m p l a t e ,m a n a g e m e n tt o o l s ,s q at r a c i n g a c t i v i t i e s ,f r e q u e n tp r o b l e m si nt h ew o r kf l o wa n dr i s kc o n t r o li ns o m er e a lp r o j e c t s , t op r o v i d er e f e r e n c ea n dg u i d a n c ef o rm e d i u m s i z e dc o m p a n y , w h i c hw a n t st o i m p r o v et h e i rs o t h v a r ed e v e l o p m e n tp r o c e s sa n de l l s u r es o f t w a r eq u a l i t yb yc m m b a s e do i lt h em e t h o d o l o g yo fc m ma n dw a t e r f a l lm o d e li ns o t b , v a r el i f ec y c l e , w ed i v i d et h ep r o j e c ti n t or e q u i r e m e n tp h a s e ,p l a np h a s e ,d e s i g np h a s e , c o d i n gp h a s e , a n dt e s t i n ga n dd e l i v e r yp h a s e 1 1 1 ep a p e ri n t r o d u c e st h eq u a l i t ya s s 嘞c ea c t i v i t y c o m b i n e dw i t hs o m em a n a g e m e n tt o o l si nd i f f e r e n tp h a s e sf o raw h o l es o f t w a r el i f e c y c l ea n d , i nt h em e a nt i m e ,p r o p o s e saf e wp r a c t i c a li m p r o v e m e n t sa st h en e x t d i r e c t i o nt ow o r ko n k e yw o r d s :c m m ,s o f t w a r eq u a l i t ya s s u r a n c e ,p r o c e s sm a n a g e m e n t ,w o r kf l o w , s o t t w a r el i f ec y c l e 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:谈薪薅 h o 降f 月日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年月日年月日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:媳捭 川年j 月 第1 章c m m 概述 第1 章c m m 概述 1 1 本课题的研究目的和意义 随着软件系统规模越来越大、越来越复杂,软件开发流程的管理显示出越来 越重要的地位。面对跨国公司的竞争压力和用户越来越高的期望,我国的软件企 业一直混乱无序、处于疲于应付的状态,其发展受到严重制约。国内某咨询公司 在充分调查中国软件业现状之后指出,造成我国软件业水平不高的两大原因之一 是管理水平低。因此,软件过程管理已成为发展我们软件产业的一个关键性问题。 c m m 是目前业界公认最好的软件过程改进的方法,它的核心是持续的过程 改进理念。软件企业通过实施c m m 了解自己的优势与不足。持续地改进软件开 发过程的不足,以提高软件质量。c m m 的5 个级别为软件企业提供了一个阶梯 式的改进框架,它指出组织在软件开发方面需要管理的主要工作,并指出这些工 作之问的关系以及做好这些工作的次序。 但是,c m m 只给我们提供了一个软件过程改进框架。它仅仅从普遍意义上 告诉软件组织应该做什么,并没有告诉软件组织应该怎么做,不同的组织和项目 应该根据自己的实际情况来选择合适的方法去实现这些目标。 本文采用c m m 的核心思想,旨在介绍一些简单可行的实施方法,通过某中 小型企业中对实际项目的流程、简单文档模板和管理工具的应用和s q a 跟踪检 查活动的介绍及一些流程中常见问题及风险控制,并对现有流程提出了更深入的 改进想法,给希望通过实施c m m 来改进软件流程,从而保证软件质量的中小企 业提供参考和指导。 1 2 c m m 在中国 1 2 1 我国软件企业现状 与国外相比,我国的软件行业起步较晚,差距明显。能称得上软件企业的不 少,但是普遍存在没有规范的质量体系,技术、装备和人员等硬件比较薄弱,质 量意识不浓,质量成本不合理,市场竞争力差。目前许多软件产品领域的竞争不 是靠技术、不是靠产品质量,而是靠行政命令、靠市场公关。我国的软件企业的 软件开发基本上处于无序、混乱的状态,软件开发不是依靠集体的共同智慧,而 是依赖某些能手的个人能力。为什么我国的软件企业会有这么多的问题呢? 这不 由得引起我们的深思,主要有下列几个原因: ( 1 ) 质量意识淡薄,企业从上到下都缺乏正确的产品质量意识,只注重完成软 件产品的功能,忽视产品的质量问题。 ( 2 ) 体制不灵活,不健全,导致质量监督不力。由于体制问题造成软件人才不 第1 章c m m 概述 必要的流动,同样是因为体制问题造成实际上企业的软件资产流失。 ( 3 ) 做产品的概念不浓,大多只为短期的经济利益,做短期的项目。 ( 4 ) 形式化的东西太多,为追求评奖或完成项目,报喜不报忧。 ( 5 ) 软件企业的交流少,思想保守。 ( 6 ) 对新技术研究的跟进、投入少。 ( 7 ) 多数项目盲目采用国外技术,没有从自身问题入手,寻找适合产品开发的 技术和过程。( 蒋国中,2 0 0 2 ) 1 2 2c m m 在国内的情况 c m m 最初是悄然进入中国的,1 9 9 9 年7 月6 日当北京鼎新信息系统开发有 限公司成为中国首家通过c m m 2 级评估的企业时,并没有几个人听说过这个新 名词,更别说明白它意味着什么了。c m m 真正火爆起来还是由于2 0 0 0 年6 月 国务院颁发了鼓励软件产业和集成电路产业发展的若干政策( 业内人士称之 为“1 8 号文件”) ,该文件的第五章第十七条明确提出“鼓励软件出口型企业通 过g b t 1 9 0 0 0 - - i s 0 9 0 0 0 系列质量保证体系认证和c m m ( 能力成熟度模型) 认 证。其认证费用通过中央外贸发展基金适当予以支持。”伴随着2 0 0 1 年上半年 国内的几家大公司先后通过c m m 2 级认证及其后掀起的强大宣传攻势,c m m 成 为目前软件业最时髦的词汇。各地政府和科委对企业通过c m m 认证也明确表示 大力支持,并且对通过的企业予以不菲的奖励。 近来,c m m 获得了各界越来越多的关注,m o t o r o l a ( 中国) 过了五级,鼎 新过了二级,其他不少企业如华为、联想、东大阿尔派、天大天财、创智、亚信 等一批企业都在进行研究、试验或者实施预评估。国家发布的关于促进i t 业发 展的1 8 号文件,以及软件企业资格认证等有关文件中,都鼓励企业实施c m m , 珠海开发区规定了通过二级一次性奖励5 0 万元的政策。预计未来2 、3 年内,国 内将出现软件业实施c m m 的高潮。 权威机构s e i 研究表明,就软件行业总体而言,大约7 5 到8 5 处于c m m 定义的等级l ,即初始级,有5 到1 0 的组织可以评估为c m m 等级2 ,即可 重复级,3 到7 的i t 组织达到了等级3 成熟度,为已定义级,2 到3 的组 织可评为c m m4 ( 已管理级) ,能满足等级5 ( 优化级) 的i t 组织不到2 。 由此可见,对仍然处于等级1 的组织,提高组织软件能力成熟度是刻不容缓的任 务,否则组织和团队将受制于个人英雄主义,即便是强有力的工程过程,也无法 克服由于缺乏健全管理实践而引发的不稳定性。 具备一定规模的软件企业,对c m m 非常感兴趣并表示了极大的关注,有部 分公司也在积极实施c m m ,但正式推行c m m 需要在人力和经费上增加投入, 一般的软件中小企业有一定困难。所以在中小企业实施c m m ,要更注重实效性。 ( 路峰,2 0 0 5 ) 1 3 本文的研究内容及章节安排 本文详细阐述了某中小企业从产品经理给出需求到最终产品发布的各阶段 所经历的质量保证活动及各阶段基本流程。将整个产品开发周期分为:需求阶段、 6 第1 章c m m 概述 计划阶段、设计阶段、编码阶段、测试阶段及发布。其中,设计、编码、测试、 发布统称为项目执行,本文共分6 章: 第一章阐述了本课题的研究目的、国内实施现状。 第二章阐述了c m m 的定义、c m m 的结构和内容,c m m 的适用性、以及 在实施c m m 前要完成的准备工作,主要包括:建立开放式的企业文化、培i j i i 、 定义人员职责、软件生命周期的选择等。 第三章阐述了需求阶段质量保证活动,主要从产品经理给出需求开始,进行 需求评审、需求变更管理、需求跟踪与监督,并对需求阶段的流程提出了进一步 的改进想法。 第四章阐述了计划阶段的质量保证活动,计划阶段主要的产物为四大计划: 配置管理计划、文档计划、开发计划、测试计划。该章节论述了四大计划的跟踪 和管理及质量保证活动,并对计划阶段提出了改进想法。 第五章阐述了项目执行过程中的质量保证活动和项目跟踪活动,并对项目执 行过程提出了改进想法。 第六章对整体的流程进行了总结,在执行质量保证管理的过程中的想法。同 时,提出一些根据目前实际情况的改进方法,作为下一阶段的工作方向。 7 第2 章实施c m m 的准备r 作 第2 章实施c m m 的准备工作 2 1c 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 lf o rs o f t w a r e ) 中文全称“软件能力成熟 度模型”,是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于 软件开发过程的管理及工程能力的提高与评估。 c m m 的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维 护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商 业目标。 c m m 的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与 改进能力,从而能按时地、不超预算地开发出高质量的软件。企业实施c m m 模 型并评估可为企业带来如下好处:指导软件组织提高软件开发管理能力;降低软 件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮助软件企业 识别开发和维护软件的有效过程和关键实践;帮助软件企业识别为达到c m m 更 高成熟等级所必须的关键实践;增加软件企业的国际竞争能力。 2 2c m m 的结构和内容 c m m 分为五个等级:一级为初始级,二级为可重复级,三级为己定义级, 四级为管理级,五级为优化级。 ( 1 ) 初始级,软件生产过程的特征是随机的,有时甚至是杂乱的。很少过程被 定义,成功依赖于个人的努力。 ( 2 ) 可重复级,建立基本的项目管理过程,以跟踪费用、进度和功能。设定必 要的过程纪律以重复以往在相同应用的项目的成功。 ( 3 ) 已定义级,管理和工程活动的软件过程已文档化、标准化、集成化到一个 标准的组织的软件过程。组织内所有的项目使用的软件过程是集体同意、裁剪过 的标准开发和维护软件的版本。 ( 4 ) 管理级,详细的软件过程和产品质量的特征已被收集。软件过程和产品已 被定量管理和控制。 ( 5 ) 优化级,能自觉利用各种经验和来自新技术、新思想的先导试验的定量反 馈信息,不断改进和优化组织统一的标准软件过程。( 杨向广,2 0 0 6 ) 第2 章实施c m m 的准器1 i 作 可莆复援但) 匿件配置管理 陵伟艇蚶鼯迁 f 硒铃理 凄日的逢踪垮糍薏 罐h 蕊链 譬帛静理 2 3 实施c m m 适用性 算箩 已控制级“) i e 型:竺 已定义缀婶 ;打汁审 i 秘协蔫 :骨产品j _ = 程 :哦辅荇管理 ,礴嚣理 树缸栏定义 图2 1c m m 层次图 c m m 不是万能的,并不一定对所有的软件企业都适合,实施c m m 的企业 也有失败的例子。在实施前,先对照以下条款,看您所在的公司是否适合实施 c m m 。 2 3 1 适合全面实施c m m 企业的特征 1 外向型的,特别是向北美市场出口的企业。这些企业都是市场导向明显的企 业,应该全面实施c m m 。 2 为解决问题而实篪c m m 。企业在自己的业务实践中,确确实实感觉到需要 改进自己的过程,而且自己有一些教训,这些教训很深刻。在这种情况下,企业 领导者要下决心,实施c m m ,从根本上解决存在的问题。 3 企业需要有一定的实力。实施c m m 的企业少的要花费几十万元,多的要花 近百万元,而且需要企业下大工夫,从这个角度上看,实施c m m 是昂贵的。有 些企业如果处于初创时期,资金还不雄厚,还有许多火烧眉毛的事情,最好不要 着急全面实施c m m ,可以自己先按实际情况实施其中的一些关键域,不要马上 请人评估。 2 3 2 不适合实施c m m 企业的特征 1 初创的小企业。一个企业还没建立多久,经济效益还不理想,当前的主要问 题还是怎么样立足,怎么样扭亏。这样的情况下,企业不要着急做c m m ,此时, c m m 对这样的企业来说可能是奢侈品。 2 企业的管理还处于一个十分薄弱的环节。实施c m m 需要一定的管理基础, 如果企业的内部管理混乱,连规章制度都不健全,质量管理还无从谈起,经常发 9 第2 章实施c m m 的准备t 作 生内战,这样的企业如果头脑一热盲目实施c m m ,那肯定会是一场灾难。 3 i s 0 9 0 0 0 认证没有真正成功的企业。如果企业i s 0 9 0 0 0 认证没有成功,就不 要着急实施c m m ,可以先做好i s 0 9 0 0 0 。现在许多企业很看重c m m ,似乎 i s 0 9 0 0 0 已经不重要。其实,i s 0 9 0 0 0 还是不错的,只是被一些“歪嘴的和尚念 歪了经”,现在i s 0 9 0 0 0 出了2 0 0 0 版,改得比较好,总结得比较精炼。如果企 业认认真真严格进行i s 0 9 0 0 0 认证的话,肯定会在质量管理上有大的收获的。 4 准备不充分的企业。如果一个企业没有真正解决为什么要做c m m 的问题, 企业领导者还没有真正下决心,企业还没有做好充分的思想准备,这样的企业不 要急于实施c m m 。 2 4 建立开放式的企业文化 一旦决定实施时,会遇到的诸多问题,包括领导重视程度不够,开发人员、 项目经理抵触情绪,质保人员和软件工程人员得不到应有的尊重和权威等等,归 根结底是文化冲突。i s 0 9 0 0 0 和c m m 体系都是基于法治的体系,而国人普遍习 惯于人治的氛围,大到整个国家小到一个企业莫不如此,这种冲突正是很多问题 的根源。 以c m m 的组织结构为例,它推荐在最高领导之下设立s e p g ( 软件工程过 程组) 、s q a ( 质量保证组) 、s e g ( 软件工程组) ,这三个组构成是立法、监督 和执法的制衡体系,体现的是西方文化的法治观念。而我们在整体企业管理上推 行制度化都困难重重,何况是质量管理。这种冲突体现在两个层面上,一是社会 的文化环境与少数企业制度化要求的冲突,二是企业基础管理的不完全制度化和 质量管理的制度化特质的冲突。( 雅行,2 0 0 5 ) c m m 倡导的是一种相互协作的开放式的文化,在严格的制度下,它希望企 业能同时提供一个宽松的人际环境,鼓励员工之间、同行之间尽可能多的交流, 通过培训、同行评审、组问协调等一系列人与人之间的沟通行为和活动,来保证 技术和产品在可重用基础上的不断提高。最终通过提升整个组织的能力,达到提 高产品质量,降低开发成本,加快开发进度的目的。( 佚名,2 0 0 6 ) c m m 倡导的文化与传统中国的企业文化存在一些冲突,在引入一段时间后, 对于c m m 是否符合中国的国情带来了一些质疑。其实,在管理上有很多东西是 相通的,c m m 的核心思想以及规范化的管理方法是非常值得国内企业学习的。 所以,国内企业在决定实旖c m m 时,必须把它作为一项企业的管理变革来 实施,领导首先应该转变观念,接受西方科学的管理方法和文化理念。通过实施 c m m ,改造了传统企业文化,使我们的软件企业能尽快走向国际化的轨道。 在企业内树立不断改进的企业文化,避免使c m m 走向形式主义。 2 5 进行c m m 培训工作 一个新的规范的引进,要被所有的员工所认可,这个过程不是一蹴而就的。 解决这个问题的最好方法,就是要坚定实施c m m 的信心。具体说来,首先,要 从管理层做起。这就要求领导一定要重视,一定要坚定地实施整个过程,要给员 工一个很好的学习的环境,将c m m 的核心融入公司的文化中去,形成公司自己 l o 第2 章实施c m m 的准备下作 的理念。培训在这罩就显得尤为重要了。 首先,是对管理层的培训。其实当c m m 引进公司之前,公司就需要组织管 理层对c m m 相关的知识进行过系统的学习。这个过程,实际上就是先要有管理 层对于c m m 的正确地把握,把握c m m 的核心思想和实质,从而坚定实施c m m 的信心。这样,在实施c m m 的过程中,员工一旦遇到问题,管理者才能很好地 解决。 对于员工来说,要让员工从观念上有一个很大的转变,就需要让员工理解和 支持各项改革。针对c m m 实旌过程中制定的各种规范,员工并不会被限制其创 造性。实际上是确定了一套标准,不管你处于哪个阶段,在什么公司,都是相通 的,所以,对于开发者来说,这个不会束缚他的创造力,只会增强他的实力,养 成一个良好的开发习惯。 培训的方式有很多,第一,向有关专业培训咨询机构进行咨询。这些培训公 司为c m m 知识的导入起着主导作用。第二,利用互联网资源进行咨询和培训。 可以报名参加c m m 网校等网站进行系统的学习。第三,聘请有关c m m 专家到 企业实地指导c m m 的实施。企业可在被指导过程中逐步掌握c m m 的要领和实 施过程。值得注意的是,企业最开始阶段必须聘请一位经验丰富的c m m 专家, 但以后一定要培养自己的专家,这样不仅能节约开支,还能使企业自己具有一个 对c m m 深刻理解的、有实践经验的专家,为企业今后的继续升级打下一个良好 的基础。 最好是新员工入公司时,按照培训过的流程实践一个m i n i 项目,加深对流 程的理解和运用,并派一个s q a 进行流程监督,及时汇报项目中的不足之处, 然后重点培训,并把员工对流程的意见或者建议对上反映。 2 6 定义角色和职责 一般来说,大致会包括以下几个角色,公司可以根据本身的实际情况来调整 一些角色。 高层经理 高层经理其实是个很笼统的说法,也就是实际主管公司软件开发工作的那个 人。他不一定直接管理项目或项目经理,但是他对有关软件开发的事务做出最终 决策。 产品经理需求分析师 分析用户需求,编写需求文档,进行产品生命周期管理和开发过程指导和跟 踪,为市场、营销、实施和服务各环节提供产品应用支持。具体职责如下: 1 进行市场调研,了解客户的潜在需求 2 对产品进行定义和设计,将客户需求具体化、功能化,写出具体的产品规 格说明书,给予研发工程师明确的功能 3 保持与客户持续沟通,反馈协调设计与概念的差距,引导客户需求。 4 项目管理是指带领来自不同团队的人员( 包括工程师、q a 、u i 设计师、 市场、销售、客服等) ,在预算内按时开发并发布产品。 在大型公司里,通常会有项目经理来处理大部分项目管理工作,产品经理只 需提供支持。不过在创业公司里,产品经理通常需要自己进行项目管理。在有些 公司,技术负责人也可能作为项目经理,处理大部分项i f l 管理事宜。 第2 章实旋c m m 的准备r 作 5 产品生命周期管理,指那些随着产品经历概念化 发布_ 成熟 退出市场 整个生命周期中的产品管理活动。 软件项目经理 对整个项目负完全责任,是指导、控制、管理和规范某个软件和软硬件系 统建设的人。软件项目经理的基本职责: 1 制定项目计划,并根据各种变化修改项目计划 2 实施项目的管理、开发、质量保证过程,确保客户的成本、进度、绩 效和质量目标 3 制定有效的项目决策过程 4 确保在项目生命周期中遵循是实施公司的管理和质量政策 5 选择一个能够精确衡量项目成本、进度、质量、绩效的项目矩阵 6 风险管理 7 招聘和培训必须的项目成员 8 确定项目的人员组织结构 9 定期举行项目评估( r e v i e w ) 会议 1 0 为项目所有成员提供足够的设备、有效的工具和项目开发过程 1 1 有效管理项目资源 s c c b ( 软件变更控制委员会) 该委员会监督变更流程,由所有利益方,包括客户、开发人员和用户的代表 组成。在小型项目中,项目经理或系统分析员一人即可担当此角色。对大多数项 目而言,s c c b 至少应该包括:项目经理、s c m 负责人、s q a 负责人、高级开 发人员、客户代表等,s c c b 的职责: a 保证所有的已提交的基线变更都必须在c c b 控制之下,且已得到适当的 评估和分类。 b 审核和批准提交的变更。 c 保证必须经批准之后才能实旌变更。 d 为合并变更的确定优先权 s q a 软件质量保证( s o f t w a r eq u a l i t y a s s u v o m c e ) 监督机构,对所有的项目提供过程监督。但在项目团队内部,s q a 却是一 个“独立的”团队,就是该项目的s q a 不能是该项目组的开发人员、配置管理 人员或测试人员,这意味着s q a 并不直接向项目管理人员汇报工作( 但是,s q a 必须向项目管理人员提供报告,并与他们密切合作) 。s q a 向高层经理以上的高 层管理者汇报,他们实现管理者对过程遵从性的深入视察,其工作跨越组织内部 的各个项目组。s q a 监督每个项目的各个阶段与各种活动,以保证项目均按照 已发表的计划与已确定的规程向前推进。当s q a 发现任何偏离时,他们便会同 项目经理一起进行研究,做出计划,以便将偏离修正回来。 软件质量保证( s q a ) 是一种应用于整个软件过程的活动,它包含: 1 、一种质量管理方法 2 、有效的软件工程技术( 方法和工具) 3 、在整个软件过程中采用的正式技术评审 4 ,一种多层次的测试策略 5 、对软件文档及其修改的控制 6 、保证软件遵从软件开发标准 7 、度量和报告机制 1 2 第2 章实施c m m 的准备 作 软件过程组( s e p g 组) 立法机构,主要的任务就是负责软件过程的改进,负责制定软件过程、规程、 模板、文档。并且对s q a 采集的数据进行分析,提出有效的对策。进行过程培 训,帮助项目组制定项目过程,帮助项目组进行策划;从而帮助项目组有效地工 作,有效的执行过程。如果项目和s q a 对过程的理解发生争持,s e p g 作为最 终仲裁者,所以s e p g 组的成员中需要有高层经理组成。 如果企业的s e p g 人员具有较为深厚的开发背景,可以兼任s q a 工作,这 样利于过程的不断改进;但是由于立法、执法集于一身也容易造成s q a 过于强 势,影响项目的独立性。以下为s e p g 活动: l 、组织级过程定义,定义过程、指导书、表格、模板、标准 2 、过程培训,主要是组织级的培训,包括流程修订培训 3 、组织级度量分析,收集分析项目度量数据,输出度量分析报告,发布过 程能力基线 4 、新工具的标识、评估和开发 5 、过程改进建议的评估,流程修订 6 、组织级过程数据库如:风险库、缺陷库、经验教训库的维护 7 、项目过程裁剪的评估,定义新度量项的评估,协助项目进行度量分析、 缺陷预防工作 8 、组织级的内部审计工作 s c m 组 配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完 成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通 的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的 前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配 置管理小组的主要职责包括: 乱完善各个部门发送需要存档和进行版本控制的代码、文档( 包括外来文件) 和阶段性成果; b 对代码、文档等进行单向出入的控制; c 对所有存档的文档进行版本控制; d 提供文档规范,并传达到开发组中; e 对开发人员进行配置管理、工具等相关知识、技能的培训。 f 定期或事件驱动地执行项目的构建( b u i l d ) ; g 对代码、测试用例等进行定期备份。 h 执行所有版本的发布。 开发人员 在计划时间内,开发出符合需求的软件。 系统测试组 负责策划和完成独立的软件系统测试,测试的目的是为了确定软件产品是否 满足对它的要求。 a 负责项目产品的测试工作,分析产品需求,建立测试环境和计划,保证产 品质量以及测试工作的顺利进行: b 肢照软件工程规范和项目管理流程,实施、管理和知道软件开发不同阶段 的各种测试,并提交测试报告。测试的计划安排包括人员安排、进度、使用的软 硬件环境、测试的流程等; 第2 章实施c m m 的准备丁作 c 提交测试报告,并撰写用户说明书: d 参与软件测试技术和规范的改进和制定。 2 7 软件生命周期的选择 软件项目根据开发规模、技术路线被分为不同类型。不同类型的软件项目都 遵循着定的生命周期,一个软件项目必须确定其类型和生命周期才能唯一地确 定它应该遵循的开发过程。 在此强调一点,对于那些研究性的项目,c m m 是不适用的,搞上c m m , 等于把自己打进了死牢。研究性的项目需要创新的思想,需要更多的实验与思维, 给与研究人员更多的创新空间,而不是能够在短时间内出产品的,不是需要更多 的文档和过程。所以,需要搞清楚你的项目是研究性的,还是产品性的,不要盲 从c m m 。 2 7 1 瀑布模型改进的瀑布模型( w a t e r f a l lm o d e l ) 1 定义 将软件生命周期的各项活动规定为依据固定顺序联接的若干阶段工作,形如 瀑布流水,最终得到软件产品。这是最早存在的开发模型,并且现在使用的也比 较多。 图2 2 瀑布模型蹦 2 优点: 强调开发的阶段性: 强调早期计划及需求调查: 强调产品测试。 3 缺点: 依赖于早期进行的唯一的一次需求调查,不能适应需求的变化; 由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; 风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会。 第2 章实施c m m 的准备t 作 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和 最有效的一种可供选择的软件开发生命周期模型。瀑布模型要求软件开发严格按 照需求- 分析 设计一 编码一 测试的阶段进行,每一个阶段都可以定义明确的产 出物和验证准则。瀑布模型在每一个阶段完成后都可以组织相关的评审和验证, 只有在评审通过后才能够进入到下一个阶段。 由于需要对每一个阶段进行验证,瀑布模型要求每一个阶段都有明确的文档 产出,对于严格的瀑布模型每一个阶段都不应该重叠,而应该是在评审通过,相 关的产出物都已经基线后才能够进入到下一个阶段。 瀑布模型的优点仍然是可以保证整个软件产品较高的质量,保证缺陷能够提 前的被发现和解决。采用瀑布模型可以保证系统在整体上的充分把握,使系统具 备良好的扩展性和可维护性。但对于前期需求不明确,而又很难短时问明确清楚 的项目则很难很好的利用瀑布模型。另外对于中小型的项目,需求设计和开发人 员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,因此采用瀑布 模型会导致项目人力资源过多的闲置的情况,这也是必须要考虑的问题。 很多人往往会以进度约束而不选择瀑布模型,这往往是一个错误的观点。导 致这种情况的一个关键因素往往是概念需求阶段人力不足。因此,在概念需求阶 段人力能够得到充分保证的情况下,瀑布模型和迭代模型在开发周期上并不会存 在太大的差别。反而是很多项目对于迭代或敏捷模型用不好,为了赶进度在前期 需求不明确,没有经过一个总体的架构设计情况下就开始编码,后期出现大量的 返工而严重影响进度。( 李晔,2 0 0 2 ) 4 适合哪些类型的项目: 需求简单清楚,并在项目初期就可以明确所有的需求; 阶段审核和文档控制要求做好; 不需要二次开发; 2 7 2 原型法 原型实现模型从需求收集开始,开发者和客户在一起定义软件的总体目标, 标识出已知的需求,并规划出需要进一步定义的区域。然后是“快速设计”,即 集中于软件中那些对用户客户可见的部分的表示。这将导致原型的创建,并由 用户客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的 要求,而同时也使开发者对将要做的事情有更好的理解。这个过程是迭代的,其 流程从听取客户意见开始,随后是建造修改原型、客户测试运行原型。然后往 复循环,直到客户对原型满意为止。 第2 章实施c m m 的准备t 作 图2 3 快速原型法 原型法的优点是开发周期短,费用较少,同时可以较有效地避免因开发者和 用户的认识隔阂所产生的失败,其缺点是系统的开发缺乏统一的规划和开发标 准,难以对系统的开发过程加以控制。 原型法一般适用于开发规模不大、不太复杂或需求经常发生变化的系统。 2 7 3 几种常见生命周期模型总结 下面是比较常用的生命周期模型的适用范围的一些给大家做一些参考,在此 不作深入讨论: 1 在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型。 2 在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型。 3 在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋 模型。 4 在需求不稳定情况下尽量采用增量迭代模型。 5 在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进 行发布。 6 对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应 该遵循瀑布模型。 7 对于全新系统的开发必须在总体设计完成后再开始增量或并行。 8 对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型。 9 增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和 出口准则, 2 8 其他 另外,c m m 是一次管理上的变革,离不开包括上至上层领导,下至开发人 员在内的所有员工的配合,他们都是c m m 培训的对象。 对于开发人员,如果能辅以必要的t s p 和p s p 培i ) i i ,那么实施c m m 将取 得更好的效果。 接下来谈一下c m m 在某公司的实践。某公司是选择瀑布模型为主,辅以快 速原型法来实现流程定义的。 1 6 第3 章需求规范和管理 第3 章需求阶段管理 3 1 实施前某公司的情况及实施目标 某公司属自主研发产品,在已有产品的基础上,增加新需求。需求是从国外 产品经理处直接获得,需求已经过提炼与基本的分析,但是仍经常出现下列问题: a 需求不明确。 b 需求已经非常明确的情况下,还时有发生需求被遗漏的现象。 c 需求文档过期,更新不及时,甚至不更新等情况。 d 由于测试人员在测试时参照的未及时更新的需求文档,导致测试中提出的 b u g 质量下降。 e 在项目后期,仍然会有需求方面的问题提出来,导致项目整体进度滞后。 f 需求变更太随意,导致偏离计划,进度滞后。 g 部分需求缺少文档记录。 从以上列出的问题点可以看出,主要问题集中在需求管理上,为了解决上述 问题,我们对该公司的在需求阶段的流程进行了改进。使流程能够实现以下目标: 乱需求文档化,并实时更新; b 产品经理、管理人员与技术团队三方对需求的理解是一致的: c 厢目计划,产品和活动与需求保持一致; d 确保需求可跟踪,一旦需求产生变更,可以知道它们产生的影响。 3 2 需求分析和管理 需求阶段包括两个主要活动:需求分析及规范和需求变更管理。需求分析及 规范活动发生在项目之始,而需求变更一般是在项目进行中发生的,所以我们分 开讨论。 3 2 1 需求分析和分类总体过程 图3 1o v e r a l lp r o c e s sf o rr e q u i r e m e n t sa n da n a l y s i sa n ds p e c i f i c a t i o n 第3 章需求规范和管理 需求阶段的活动主要集中在两个问题上:问题分析和产品描述( a m d a v i s 。1 9 9 3 ) 。问题分析又分成三个阶段( 橙色线以上的部分) ,准备阶段、需求 收集阶段、分析阶段。产品描述也被分成三个阶段( 橙色线以下部分) :准备软 件需求规格说明书( s r s ) 、审查、获得批准。以下是每个阶段所涉及的一些活 动: 1 准备阶段: 阅读本行业相关的商业技术资料 夺为获取信息准备调查单 制定需求分类的标准 制定客户访问计划 2 需求收集阶段: 夺对收集来的需求,进行整理分类 夺准备软件原型( 可选项) 3 分析阶段: 夺讨论技术上的可行性 令评估原型( 可选项) 4 准备软件需求规格说明书: 夺编写软件需求规格说明书,对功能进行编号( p a n k a jj a l o t e ,2 0 0 9 ) 在编写s r s 时,要对照检需求分析查单( r e q u i r e m e n t sa n a l y s i sc h e c k l i s t ) 进行逐项检查,以确保s r s 不产生常见问题。检查单可以根据以往的经验逐渐 增加和删除检查项,表3 1 为需求检查单样表: 表3 1 需求检查单样表 n a m e t e a m p r o j e c t d a t e f i l en a m e l i s t y e s n o ( e xp i a n a t ;o n s ) d o e st h er e q u i r e m e n ta d e q u a t ew i t ht h eb u s i n e s s g o a lo f t h ep r o j e c t ? d o e st h er e q u i r e m e n tc o n f l i c tw i t hs a d o r n a m c o n s t r a i n t p o l i c i e so rr e g u l a s o n ? d o e st h er e q u i r e m e n ti n c l u d ep r e m a t u r ed e s i g no r i m p l e m e n t a t i o ni n f o r m a t i o n ? i st h er e q “m m e n tn e n e s s e n p d o e st h er e q u i r e m e n tr e q u i r en o n - s t a n d a r d h a r d w a r eo rm u s ts o l , w a r eb eu s e d 7 i st h er e q u i r e m e n ta m b i g u o u s c o u l dd i f e m n t p e r s o n sr e a di t i nd i f f e r e n tw a y s ? w h a ta l et h e d i f f e r e n ti n t e r p r e t a t i o n sf o r t h er e q u i r e m e n t ? i st h er e q u i r e m e n tr e a l i s t i cg i v e nt h et e c h n o l o g y t h a tw i l lu s e dt oi m p l e m e n tt h es y s t e m ? d o e st

温馨提示

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

评论

0/150

提交评论