




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)中小软件企业过程改进及支持工具研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 目前我国软件产业中大部分企业属于中小型企业,其软件过程能力还比较薄弱,然 而对于如何改进,按照什么样的过程开展工作仍很茫然。因此急切需要一个适合我国中 小软件企业情况的、可操作性较强的软件过程改进模型,指导其过程改进。 本文通过分析我国软件产业发展现状和中小软件企业过程改进的困难,以及软件过 程改进相关的模型与标准,探讨解决软件过程改进问题的思路和方法。 在“非成熟领域迭代开发过程模型及其支持工具研究”项目成果的基础上,通过对 中小企业现在开发过程现状的调查,综合了各企业的特征,提出一个贴近实际的软件过 程改进模型同一生命周期分阶段改进模型。该模型包括需求分析、概要设计、详细 设计、编码和单元测试、集成和系统测试、验收和安装、维护等七个阶段,并根据软件 活动的行为特征把各阶段分成基本级、规范级和标准级。对各阶段中的规范级进行了比 较详细的描述,这些可作为企业开发过程中的模板参考。 支持工具能够很好地支持、管理并规范软件过程。同一生命周期分阶段改进模型的 支持工具包括过程流程工具、过程文档工具、人员管理工具,三种工具集成一体,统一 以w e b 形式表现。实践表明模型是比较切实可行的,有助于过程的改进。 关键词:中小软件企业;过程改进;生命周期;支持工具 河北火学i r 学硕十学位论文 a b s t r a c t t h em e d i u ma n ds m a l ls o f t w a r ee n t e r p r i s e sh a v eag r e a ti m p o r t a n tr o l ei ns o f t w a r e i n d u s t r yi nc h i n a , b u tt h e i rs o f t w a r ep r o c e s si sn o tv e r yc r i t e r i o n t h e ya r ev a g u ea b o u th o w t oi m p r o v ea n da c c o r d i n gt ow h a tp r o c e s st od o ,s ot h e yn e e das u i t e da n de x e r c i s a b l em o d e l t oh e l pt h e mi m p r o v i n gt h es o f t w a r ep r o c e s s a c c o r d i n gt oa n a l y z i n gt h ed e v e l o p m e n tp r o c e s sa n dc u r r e n td i f f i c u l t yo fm e d i u ma n d s m a l ls o f t w a r ee n t e r p r i s e si nc h i n aa n ds t u d y i n gt h em o d e lo fp r o c e s si m p r o v e m e n t ,t h e p a p e rd i s c u s s e dt h ei d e aa n dm e t h o dt os o l v et h ep r o b l e m ap r o c e s si m p r o v e m e n tm o d e ln a m e dt h es a m el i f ec y c l ep e r i o di m p r o v e m e n tm o d e li s e s t a b l i s h e d t h em o d e lt h a ti sc l o s et of a c ta n di n t e g r a t et h ec h a r a c t e r so fe n t e r p r i s e si sb a s e d o n a ni t e r a t i v em o d e lo fs o f t w a r ep r o c e s si nt h ei m m a t u r ed o m a i na n dt h es t u d yo na s s i s t a n t t o o l s ”a n da c c o r d i n gt ot h er e s e a r c ho fc u r r e n td e v e l o p m e n ts i t u a t i o n i tc o n s i s t so f r e q u i r e m e n ta n a l y s i s ,s u m m a r yd e s i g n ,p a r t i c u l a rd e s i g n ,c o d i n ga n dc e l lt e s t i n g ,i n t e g r a t i o n a n ds y s t e mt e s t i n g ,c h e c ka n da c c e p ta n di n s t a l l ,m a i n t e n a n c e i ti n c l u d e sb a s i cl e v e l , c a n o n i c a ll e v e la n dn o r m a t i v el e v e li ne v e r yp e r i o d t h ep a r t i c u l a rp r e s e n t a t i o ni nt h e c a n o n i c a ll e v e lc a nb eu s e di nt h ep r o c e s so fe n t e r p r i s e s i tc a nm a n a g ea n ds u s t a i nt h es o f t w a r ep r o c e s su s i n ga s s i s t a n tt o o l s t h et o o l so f i m p r o v e m e n tm o d e lc o n s i s t so fp r o c e s sf l o wt o o l s ,p r o c e s s f i l et o o l s ,p e r s o nm a n a g e m e n t t o o l s t h et o o l si si n t e g r a t e di nw e b f r o mt h ef e e d b a c ko fs o m ee n t e r p r i s e s ,t h em o d e li s f e a s i b l ea n dh e l p f u lf o rp r o c e s si m p r o v e m e n t k e y w o r d s :m e d i u ma n ds m a l ls o f t w a r ee n t e r p r i s e s ;p r o c e s si m p r o v e m e n t ;s o f t w a r el i f ec y c l e ; a s s i s t a n tt o o l s 河北大学 学位论文原创性声明 本人郑重声明: 所呈交的学位论文,是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写的研究成果,也不包含为获得河北大学或其他教 育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了致谢。 作者签名: 日期:丑年卫月捣日期:旦年丝月笪日 学位论文使用授权声明 本人完全了解河北大学有关保留、使用学位论文的规定,即:学校有权保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存 论文。 本学位论文属于 1 、保密口,在年月日解密后适用本授权声明。 2 、不保密留。 ( 请在以上相应方格内打“、 ) 作者签名: 导师签名:丝! 五 日期:卫年月日 ov从 日期: ! 年j 月! 一日 日期:? 乙年月盟日 第1 章绪论 1 1 问题的提出 第1 章绪论 熟悉计算机行业的人们通常都会感受到“软件危机”的痛苦。虽然与2 0 世纪7 0 年 代相比,我们开发软件的能力有了巨大的提高,但笼罩在软件业的这片乌云依然挥之不 去。软件危机的主要表现有:经费预算经常突破,完成时间一再拖延;开发的软件不能 满足用户要求、可维护性差、可靠性差、软件通常没有适当的文档资料;软件成本在计 算机系统总成本中所占比例逐年上升。最为突出的i b m 3 6 0 操作系统的历史教训已成为 软件开发项目中的典型事例被记入历史史册。2 0 世纪7 0 年代中期,美国国防部在调查 软件项目做不好的原因时发现,7 0 的失败项目是因为开发过程管理不善引起,并不是 因为技术实力不够,进而得出一个结论:管理是影响软件研发项目全局的因素,技术只 影响项目局部n 利。在商用软件开发中,这一现象尤为严重。1 9 9 5 年,美国共取消了 8 1 0 亿美元的软件项目,其中3 1 的项目未做完就取消了,5 3 的软件项目进度通常要延 长5 0 的时间,只有9 的软件项目能够及时交付。美国国防部对1 7 个主要的项目研究 发现:项目平均合同时间是2 8 个月,平均延迟2 0 个月口3 。美国总审计局( u sg o v e r n m e n t a c c o u n t i n go f f i c e ,g a o ) 的报告显示了耗资数十亿美元的系统无法如预期的那样工作, 成本以百万计的数字上升,进度的延误不是以月计而是以年计1 。 自从1 9 6 8 年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上 第一次提出了“软件危机”( s o f t w a r ec r i s i s ) 这个名词后,讨论和制定摆脱“软件危 机”对策的活动就从未停止过。为了满足在软件需求和复杂性方面同益增加的要求以及 因此导致的开发团队规模的不断扩大,结构化开发方法于2 0 世纪7 0 年代逐渐发展起来 了,这是软件行业的第一次浪潮。它是为了满足那些利用共享系统去建立复杂的交互式 商业应用以及对这些系统进行维护而发展的。结构化方法所关注的是方法本身,即需求 定义的正规化以及设计、创建那些可以在最终系统中加以追踪的需求的方法。已有的自 动化工具可以在某种程度上有助于进行部分此类转换。尽管这是将软件开发从“手工作 坊”向大规模生产转换的开端,但这还远远不够。而那些导致软件项目成功或者失败的 真实原因还未成为关注的焦点。软件过程改进是对不断提高的软件项目失败率的一种反 1 河北人学- t 学硕十学位论文 应。对过程的关注开始于美国国防部( d o d ) 最初对软件工程研究所( s e i ) 的赞助,s e i 为美国国防部提出了评估软件转包商能力的方法。w a t t sh u m p h r e y 作为s e i 过程计划 的主管,把在全世界制造业享有崇高声望的质量控制概念引入了软件开发中,将整个软 件任务看作是可控制的、可度量的、可改进的过程婶3 ,从那时起关于过程的讯息越来越 多地影响到全世界的软件行业,形成了软件行业的第二次浪潮:软件过程改进运动。过 程成熟度运动为软件行业的第三次浪潮铺平了道路,而第三次浪潮就是“软件工业化”。 在第三次浪潮中,软件开发将变得如同装配与制造过程一样。发动第三次浪潮的技术因 素包括面向对象技术以及重用组件库,这使得利用标准重用组件以装配软件成为可能。 第三次浪潮启动的关键因素是规范化的软件工程过程,在这个过程中,质量、进度与功 能都是可以预测的。 从2 0 世纪7 0 年代算起,国内的软件开发己经走过了3 0 多年的岁月。但放眼国内, 除了极少数几个可称得上“软件企业”的组织之外,我们的绝大部分组织仍然是“手工 作坊”式的软件组织,而我们的近邻印度,其软件出口额每年已高达几十亿美元之多。 产生这种差距的原因很多,但关键的一点还在于处于国内软件开发一线的大部分软件行 业的从业人员缺乏对软件开发科学的正确认识,缺乏正规有效的软件过程。可喜的是, 近年来国内越来越多的企业认识到了软件过程的重要性,也有越来越多的研究人员投入 到这个领域中。本文正是基于此,依托于我们几年来的研究成果:非成熟领域迭代开发 过程模型及支持工具开发,提出了自己的过程改进方法,希望能为我国的中小软件企业 提供过程改进支持及借鉴。 1 2 研究现状 1 。2 1 软件过程改进理论的发展 1 9 6 8 年秋,n a t o ( 北约) 的科技委员会召集了近5 0 名一流的编程人员、计算机 科学家和工业界巨头,讨论和制定摆脱“软件危机 的对策。在那次会议上第一次提出 了软件工程( s o f t w a r ee n g i n e e r i n g ) 这个概念。在i e e e 中软件工程定义为:将系统 化的、规范化的、可度量的方法应用于软件的开发、运行和维护,即将工程化应用于软 件伸3 。软件工程试图用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开 2 第1 章绪论 发出成本低、功能强、可靠性高的软件。 在过去几十年,随着技术的进步,软件工程学科发生了很大的演变,它所研究的对 象、适用范围和所包含的内容也在不断发展和变化。软件开发新技术、新方法的应用使 “软件危机 得到了一定程度的缓解,但是都没有从根本上根除“软件危机”。随着商 业环境的剧变和软件工程技术的发展,又出现了一些新的更严重的问题。这引发了人们 对软件工程理论和实践的重新思考,并逐渐认识到这些问题大多与组织管理相关,单靠 先进技术的应用而忽略组织和管理是不可能达到最佳效果的,先进技术的应用更需要合 适过程的配合。这些思考和实践推动了软件过程理论的快速发展。自2 0 世纪9 0 年代以 来,过程思维和软件过程改进已经成为软件工程学科的一个主流研究方向。目前世界上 关于软件过程的研究主要有三个体系:美国的c m m c m m i 、i s 0 9 0 0 0 系列以及 i s o s p i c e 标准。其中以美国s e i 的c m m c m m i 体系研究最为深入,应用最为广泛, 并且已经成为公认的软件过程改进标准盯h 刖。 c m m ( c a p a b i l i t ym a m f i wm o d e l 能力成熟度模型) 的本质是软件管理工程的一个部 分。它是对于软件组织在定义、实现、度量、控制和改善其软件过程的进程中各个发展 阶段的描述。目前世界最通用的c m m 版本是1 9 9 3 年公布的c m m l 1 版本。c m m 源 于工业界的最佳实践,经过s e i 的总结、提炼和抽象形成了一个系统地指导软件机构改 进软件过程能力的完整框架,它给出了软件机构过程能力改进的一个目标,但在实际操 作中,机构应该采取哪些合适的步骤,才能达到这一目标,c m m 并未清楚详细地提及, 而且关键实践所描述的活动并不一定适合不同背景的所有机构。针对这种情况,s e i 于 19 9 5 年后提出了t s p ( t e a ms o f t w a r ep r o c e s s ) 和p s p ( p e r s o n a ls o f t w a r ep r o c e s s ) ,用以 改善机构中小组过程能力和个体软件过程能力。c m m 发布后引起了业界的关注,在其 影响下近十几年来软件界出现了一系列有关软件过程成熟度评价或软件过程改进的实 践,并先后提出了若干模型、方案、标准。这些与c m m 相关的模型的出现推动了软件 过程成熟度运动的迅速发展。 1 2 2 国内软件过程改进的研究现状 我国在软件工程技术研究上投入了大量的人力物力,并取得了较好的效果。信息产 业部调集国内众多的软件专家和软件企业人士,在研究了国外c m m 和i s o i e ct r1 5 5 0 4 3 河北大学 :学硕十学位论文 等国际标准的基础上,结合我国多年软件工程和标准化的理论和实践的情况,于2 0 0 1 年发布了电子行业标准s j t11 2 3 4 - 2 0 0 1 软件过程能力评估模型和s j t 11 2 3 5 2 0 0 1 软件能力成熟度模型,并于2 0 0 1 年11 月1 9 日发布关于贯彻软件能力评估标准的 通知,对软件能力评估试点工作安排进行了部署。但是到目前此项工作并没有完全在 软件行业普遍推广。我国政府还出台了鼓励软件产业和集成电路产业发展若干政策 鼓励软件出口型企业通过i s 0 9 0 0 0 系列质量保证体系认证和c m m 认证,其认证费用通 过中央外贸发展基金适当予以支持扫1 。 中国工程院院士何新贵领导的一个研究小组,在对国内外情况和技术资料充分调查 和分析的基础上,参照s w - c m m 的总体框架,并吸取其有用的内容,提出了一个符合 我国国情和软件开发水平的能力成熟度模型c s c m m 。c s c m m 把软件过程的进化过程 分为6 个成熟度等级,在原c m m 等级1 和2 之间插入了一个基本级,使得成熟度等级 的划分更加均匀,易于软件开发组织的升级。c s c m m 是一个框架,它给试图提高软件 过程能力的软件开发组织描述一条改进其软件过程的途径【1 0 】【1 1 1 。 1 3 我国中小软件企业现状 严格来说,中小型如何定义并没有一个标准答案,目前采用的一种定义是:“小组 织为少于5 0 个软件开发人员的组织,小项目”为少于2 0 个开发人员从事的项目【1 2 】。 本文提到的中小型软件企业同样依据此定义。 2 0 0 6 年本研究对部分软件企业进行了随机问卷调查。问卷内容主要包括公司主要 业务、规模、在业务领域内的熟悉程度;软件开发过程及管理;软件复用程度及方式; 文档管理及其他辅助工具;过程管理工具;过程改进培训或认证等方面。问卷的回复率 达到了1 0 0 ,有效率7 5 。通过分析调查结果并结合国内其他学者的研究可以看到我 国中小软件企业具有以下几个特点: 1 我国的软件产业以中小企业为主,大部分是5 0 人以下的企业。2 0 0 4 年中国软件 年会上c c i d 公布数据显示,5 0 人以下的企业则占到全行业的6 5 9 ,而在我们的调 查中几乎达到了l o o 。 2 人员少,流动性大。企业的组织结构不像大企业那样健全,经常是一人多职,既作开 发人员,又作测试人员,甚至还作设计人员。 4 第】章绪论 3 资金不足,难以进行企业级的大规模的过程改进以及相关的培训活动。 4 软件开发过程不够规范,软件过程不明显,甚至没有明确定义的软件过程。 5 c m m 在企业还处于起步阶段。 总之,目前国内对软件过程改进还处于研究的起步阶段,尤其是针对广大中小企业 的过程改进更是如此。既要借鉴国外现有的模型与标准,又要适应企业的实际情况,同 时还要考虑可操作性。模型与标准有很多种,而且各有所长,但是对中小软件企业来说 都不能够照搬照抄。软件过程改进可以借鉴的软件工程标准和规范主要是国际标准、工 业标准、我国国家标准,以及一些研究组织和软件企业的研究成果j 。从我们的调查结 果可以看出,我国的软件企业在经过前几年对各种模型、标准、认证追捧遭遇挫折后已 经转向更加理性更加实际。因此,过程改进尤其是中小软件企业的改进应该从自身实际 需求出发,从可操作性出发,借鉴、裁减其他方案从而形成一套行之有效的改进方案。 1 4 论文的主要工作和内容安排 本文的主要工作是研究国内中小软件企业现状,对典型中小型软件开发企业进行调 查,根据c m m 模型对软件企业能力成熟度评估的标准,评价现有中小型软件企业软 件能力成熟度,并依托于“非成熟领域迭代开发过程模型”的成果,研究中小企业在 c m m 第2 级成熟度框架下开展软件复用的过程模型,开发相应管理软件过程的支持工 具并推广应用,希望通过支持工具能快速提高企业的软件复用率,缩短向成熟领域过渡 的时间,逐步提高该类企业的软件能力成熟度级别和软件生产率,实现规范化、制度化。 本文研究的对象主要是具有以下特点的中小型软件企业:1 、企业已经度过了原始 的创业期;2 、人员相对比较稳定;3 、涉及领域相对固定;4 、软件产品已经有一定的 客户;5 、软件开发过程有了一定的规范和制度;6 、需要对过程进行改进从而迸一步提 高生产率。 本论文课题来源于“河北省科技攻关计划项目中小软件企业软件过程改进及支持 工具研究,同时也是课题“非成熟领域迭代开发过程模型及支持工具开发 的进一步 延伸。通过研究,我们提出了一个面向中小型软件企业的过程改进方法:同一生命周期 阶段改进模型。 论文的内容安排: 气 河北人学工学硕十学位论文 第1 章绪论。分析了问题产生的来源,研究了软件过程理论的发展,总结了我国 中小软件企业的特点,介绍了论文的研究来源、对象、以及主要的工作。 第2 章软件过程及过程改进。本章主要对软件过程、软件过程的管理以及软件生 命周期的相关概念及理论进行介绍,重点介绍了软件过程改进的基本概念,改进的基本 要素以及改进的基本思想。 第3 章主要改进方法、模型及标准。本章介绍了当前比较流行几种改进模型的发 展背景、模型结构、适用环境及应用等情况,并对它们进行了分析比较,了解它们的优 势、缺陷以及相互之间的关系。这些模型与标准对过程改进有着不同的侧重点,适合不 同的需求。但它们主要是针对大型项目和组织的,对中小型软件企业的支持不够。中小 软件企业要想在实践中进行过程改进,必须借鉴这些模型的思想,对这些模型进行裁减, 帮助企业完成过程改进。 第4 章非成熟领域迭代开发过程模型。本章详细介绍非成熟领域迭代开发过程模 型的基本思想,模型结构,模型中的构件形式,构件库系统的结构、组成以及运行。 第5 章同一生命周期阶段改进模型。本章主要介绍模型的来源,基本思想的形成, 详细的过程改进方案。软件生命周期分为需求分析、概要设计、详细设计、编码与单元 测试、组装与系统测试、安装与验收、运行与维护等阶段,每个阶段又分成不同的成熟 度级别,每个级别包含或对应c m m 的不同关键过程域。企业在不同阶段可能属于不同 的级别,改进时可根据企业的实际情况在不同阶段分别向更高成熟度级别改进。 第6 章支持工具研究。从软件的特点、设计和功能上对支持工具进行描述,企业 通过支持工具管理开发过程及软件丌发过程中的资源。 第7 章总结。总结了论文的工作,并对论文研究中存在的不足提出今后需要进一 步完善的工作。 6 第2 章软件过程及过程改进 第2 章软件过程及过程改进 2 1 软件过程 1 9 6 8 年秋季,n a t o ( 北大西洋公约组织:n o r t ha t l a n t i ct r e a t yo r g a n i z a t i o n ) 的科技 委员会召集了近5 0 名一流的编程人员、计算机科学家和工业界巨头,在德国讨论和制 定摆脱“软件危机 的对策,通过对软件危机的表现和原因进行分析,经过不断的实践 和总结,人们越来越认识到:按照工程化的原则和方法组织软件开发工作,是摆脱软件 危机的一个主要出路。在会议上软件业乔第一次提出了软件工程( s o f t w a r ee n g i n e e r i n g ) 这个概念碑3 。但是随着软件需求的快速增长以及由此而引发的软件开发活动的增长,又 出现了一些新的更严重的问题。这引发了人们对软件工程理论和实践的重新思考,并逐 渐认识到这些问题大多与组织管理相关,单靠先进技术的应用而忽略组织和管理是不可 能达到最佳效果的,先进技术的应用更需要合适过程的配合。人们逐渐认识到提高软件 生产率和软件质量的瓶颈在于软件开发和维护过程中的管理和支持问题,意识到“软件 过程”是关键。这些思考和实践推动了软件过程和软件过程理论的快速发展。 软件过程是指人们用于开发和维护软件以及其相关产品( 例如项目计划、设计文 档、代码、测试用例和用户手册等) 的一系列活动、方法、实践及变换过程。随着一个 软件组织逐步走向成熟,其软件过程的定义也会同趋完善,并在整个组织内得到更一致 的实施n 引。关于过程还有其他定义,各定义的关注点不同,简单的说过程是用于生产以 及软件进化的一系列活动、方法及实践。 过程包括三个方面特性,其关系如图2 一l 所示: 图2 - 1 过程的三个方面 首先,过程的第一方面就是过程的定义,通常是将过程所包含的活动及程序文档 化;其次,过程的第二个方面是过程的学习,也就是说让过程的知识传授给需要执行过 7 河北火学工学硕十学位论文 程的每一个人,并以此驱动他们的行为与活动;第三,通过执行过程中的活动获得最终 ( 预期) 的过程结果,这就是过程的第三个方面。只有过程已被定义,而且人人都接受 了相应的培训,同时大家在实际工作中也都能按照过程的要求去做,这样才是一个真正 有效的过程。有效的软件过程可以标准化工作,提高软件的可重用性和组间的协作,从 而提高组织的生产能力;有效的软件过程可以有效地定义如何管理需求变更,在未来的 版本中恰当分配变更部分,使之平滑过渡,在具体操作和相关支持中定义如何平滑地改 造软件,并且这种具体操作和支持是可实施的,不可实施的软件过程将很快被束之高阁。 , 软件过程有三个基本要素:规程和方法、人员、技术和工具。人员使用规程、方法、 技术和工具执行的活动,把原料( 输入) 转换为对客户有价值的产品( 输出) 。其关系如图 2 - 2 。有效的软件过程把人员、工具和方法集成起来,成为一个统一的整体n 引。 规程与方法 技术与 人员 图2 - 2 过程的三要素 软件过程可概括为三类:基本过程类、支持过程类和组织过程类。基本过程类包 括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。支持过程类包括 文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计 过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。 软件过程主要针对软件生产和管理进行研究。为了获得满足工程目标的软件,不 仅涉及工程开发,而且还涉及工程支持和工程管理。对于一个特定的项目,可以通过剪 裁过程定义所需的活动和任务,并可使活动并发执行。软件企业或组织根据需要和目标, 可采用不同的过程、活动和任务。 第2 章软件过程及过程改进 2 2 软件过程管理 为了按照软件工程方法对软件过程进行有效的管理,就产生了软件过程管理。所 谓软件过程管理,就是指在软件开发过程中遵照一套规范化的管理方法对软件开发的各 阶段进行管理。软件过程管理侧重的是在软件过程中需求管理、计划安排、合同规范、 项目跟踪、资源分配、危机管理和质量管理等方面n 别,也就是对软件开发、维护全过程 规范化、透明化、标准化的管理。它对软件质量的提高、按时完成软件开发的全过程和 软件企业的发展起到了保证作用。 软件过程管理可以从人员组织管理、计划管理、标准化管理三方面实施u 引。人员 组织管理是在软件工程的各个阶段,根据需要配备各种层次的技术人员和管理人员,建 立分工明确而又高效的开发组织结构常见的人员角色有:项目经理、系统分析员、高 级程序员、程序员、测试工程师、q a 人员、软件配置管理人员( 或文档管理员) 、系统 管理员等;计划管理的前提是制定有效、可行的计划一个项目开发过程中主要的计划 包括:项目开发计划、质量保证计划、配置管理计划、软件测试计划、文档编制计划、 安装及培训计划;标准化管理是制定开发组织内部的项目开发规范和标准,是高质、高 效生产软件的前提,是需要在项目启动之初必须明确并培训的内容,包括开发过程标准 和文档标准。随着软件开发的深入、各种技术的不断创新和软件产业的发展壮大,人们 越来越意识到软件过程管理的重要性n 对n 嘲。 2 3 软件生命周期 软件生命周期( s o f t w a r el i f ec y c l e ) ,又称软件生存周期,即以需求为起点,提出 软件开发计划的那一刻开始直到软件完全报废为止的一个完整的软件生存周期。软件生 命周期是一个时间概念,而生命周期方法就是从时间角度对软件丌发和维护的复杂问题 进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务, 然后逐步完成每个阶段的任务。 把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单, 便于不同人员分工协作,从而降低整个软件开发工程的困难程度;在软件生命周期的每 个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结束之前都从技术和 9 河北火学t 学硕十学位论文 管理两个角度进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程 的全过程有条不紊的进行,保证软件的质量,特别是提高软件的可维护性。 软件生存周期的各个阶段的划分并没有一成不变的法则,不同的开发方式、软件 种类、软件规模和开发环境都会在不同程度上影响软件生存周期各阶段的划分,但无论 生存周期如何划分,都是旨在更好的利用手中的资源( 主要指人力资源、软件资源、技 术资源和源码资源) ,降低软件的开发风险、复杂度和开发成本( 主要以开发的时间和 投入资源为衡量标准) ,要做到对软件生存周期各阶段进行最好的划分,就必须遵循一 条基本的原则,那就是在各阶段的任务应尽可能的相对独立,同一阶段各项任务的性质 应尽可能的相同,从而达到降低每个阶段任务的复杂度,减少不同阶段任务之间的联系。 这样做对软件项目开发的组织管理是十分有必要的,同时对最终的软件项目开发成功是 不可或缺的。 尽管软件的生存周期各阶段的划分没有一个明确的法则,但就一般性而言,软件 生存周期包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编写代码、 软件测试和软件维护等活动( 有的开发项目把概要设计和详细设计合在一起,统称为软 件设计或设计) ,这些活动是软件开发过程中必须要经历的,所以我们应该将它们合理 的安排到各个阶段里面去。 对生存周期的不同划分方法,就会形成不同的软件生存周期模型。国家标准 g b t 8 5 6 6 2 0 0 1 信息技术软件生存周期过程f i9 】为软件生存周期过程建立了一个公共 框架,包括在含有软件的系统、独立软件产品和软件服务的获取以及在软件产品的供应、 开发、运作和维护期间需应用的过程、活动和任务。目前软件工业界比较典型的软件生 图2 - 3 瀑布模型 命周期模型有:瀑布模型、快速原型模型、螺旋模型等。 瀑布模型是最传统的生命周期模型,如图2 - 3 所示,是一种顺序的模型,自顶向下 l o 第2 章软件过程及过稃改进 把一个软件开发过程分为:需求分析、设计、编码、测试和维护等阶段。在开发过程中 这些阶段顺序进行,就像是一个飞流直下的瀑布。 瀑布模型是一种理想化的线性开发模型,它无法克服过程中的变化引发的问题。 如果前一步出现错误,则后一步不可避免地会将错就错。如果直到产品完成后才会发觉 软件中存在的问题,解决的办法只有从头开始修改。在该模型的基础上,衍生出了强调 测试活动的v 模型。它把瀑布模型的测试阶段进行细分,并与前面的阶段进行对应。 细分出来的这些阶段分别为:单元测试阶段、集成测试阶段和系统测试阶段。v 模型的 结构如图2 - 4 所示。 系统定义维护 一 需求分析 | 概要设计 | 系统测试 l 集成测试 | 详细设计单元测试 编码 图2 4v 模型 瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的 方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过 程。当所有的阶段都完成之后,该软件的开发过程也随之结束。瀑布模型的缺点正是它 自身的顺序性所导致的。实际的开发过程中,在需求阶段很难把用户的需求完全明确下 来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等 过程。实际的开发过程中,用得较多的就是瀑布模型,只是可以根据实际需要进行 阶段合并与裁减。 快速原型模型( 如图2 5 ) ,可以克服瀑布模型的缺点,减少由于软件需求不明确 带来的开发风险,具有显著的效果。首先快速建造一个原型,实现客户或未来的用户与 系统的交互,用户或客户对原型进行试验,进一步细化待开发软件的需求。通过逐步调 整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么,然后再在第一 步的基础上开发客户满意的软件产品。 河北人学t 学硕+ 学位论文 图2 - 5 快速原型模型 快速原型模型的特点体现在“快速”上。原型内部并不重要,在得到用户的需求之 后,原型将被抛弃。因为原型开发的速度很快,设计方面是几乎没有考虑的,如果保留 原型的话,在随后的开发中会为此付出极大的代价。 螺旋模型( 如图2 6 ) 由b a r r yb o e h m 于1 9 8 8 年正式发表,它将瀑布模型和快速 原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。 方案和限铹 迂线彬 窥一弋 誉豁二式嚆 封蠼鬈搿影 一兰竺蜥装;面蕞i 实现l 婺裴 毒i 堑 两 图2 6 螺旋慑翟 螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动: ( 1 ) 制定计划:确定软件目标,选定实施方案,再清项目开发的限制条件; ( 2 ) 风险分析:分析评估所选方案,考虑如何识别和消除风险; ( 3 ) 实施工程:实施软件开发和验证: ( 4 ) 客户评估:评价开发工作,提出修正建议,制定下一步计划。 1 2 第2 章软件过程及过群改进 沿着螺旋线自内向外每旋转一周,就意味着在前一个产品版本上开发出更完善的 版本。虽然模型比前面的模型都要完善,但却很少使用,主要是因为:螺旋模型强调风 险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这 种模型往往适应于内部的大规模软件开发:如果执行风险分析将大大影响项目的利润, 那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目;软件开发人员 应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。 r u p ( r a t i o n a lu n i f i e dp r o c e s s ) 是r a t i o n a l 公司推出的软件开发模型,是软件界迄今 为止最完善的、商品化的开发过程模型。但是r u p 被称作重量级过程模型,是面向高 端用户,对用户的财力、开发和管理能力上的要求都很高,并不能解决中国广大中小型 软件企业的软件过程问题。 除了上述模型,还有其他的一些模型,如喷泉模型、转换模型、智能模型、并发 开发模型、形式化方法模型、第四代技术模型等【1 8 】【2 0 l 。 2 4 软件过程改进 2 4 1 相关概念 软件过程改进( s o f t w a r ep r o c e s si m p r o v e m e n t ,s p i ) 帮助软件企业对其软件过程 的改变进行计划、制定以及实施。他的实施对象就是软件企业的软件过程,也就是软件 产品的生产过程,当然也包括软件维护之类的维护过程,而对于其他的过程并不关注。 软件生产是一个相当复杂的过程。在某种程度上,可以把软件产品看作是一件人类思维 的艺术品,是人的思想和创造力的体现。它的生产没有固定的模式,一般产品质量的保 证方法对于软件生产来说几乎无效,于是为了保证软件产品的质量和提高生产效率,人 们将注意力转移到了对软件生产过程中所需要的各种活动、资源研究和管理乜。 ( 1 ) 软件过程能力:描述( 软件组织或项目组) 通过执行其软件过程能够实现预期 结果的程度。软件过程能力既可适用整个软件组织也可适用于一个软件项目组。一个软 件组织或项目组的软件过程能力,提供一种预测该组织或项目组承担下一个软件项目时 最可能的预期结果的方法。 ( 2 ) 软件过程成熟度:一个特定软件过程得到清晰的定义、管理、测量、控制以 1 3 河北大学1 :学硕十学位论文 及有效的程度。成熟度可指明一个软件组织软件过程能力的增长潜力和可改进的方面, 并可表明一个组织的软件过程的丰富性,及其在组织内所有项目中应用它时的一致性。 随着软件组织的软件过程成熟度的提高,开发组织通过其方针政策、标准规范和组织机 构等的制度的建立,将软件过程规范化和具体化,使得开发组织明确定义一套相关管理 、 和工程的方法、实践和规程等,在现有人员离去后仍能持续下去陇1 。 ( 3 ) 软件能力成熟度等级:一个定义完善的、迈向成熟的软件过程的进化平台。 每一个成熟度等级为过程持续改进达到下一个更高的等级提供基础。每一个等级包含一 组过程目标,当其中一个目标满足时,能使软件过程的某一个重要部分稳定。达到成熟 度框架的每一个等级,就建立起软件过程的个不同的部分,从而导致组织过程能力的 增长n 帅。 ( 4 ) 关键过程域:互相关联的若干个软件实践活动和有关基础设施的集合。每个 软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程域,它们的实施对达到 该成熟度等级的目标起保证作用。这些过程域称为该成熟度等级的关键过程域。 2 4 2 改进的基本要素 整个软件过程的改进是基于许多小的进化的步骤,而不是通过一次革命性的创新 而实现的呦3 。因此,作为复杂的项目改进工作将会涉及众多因素,其中核心的就是人、 技术和工具、过程这三个因素。 人是软件过程改进的主体,软件过程能力如何与软件开发组织中的人有着密切的 关系。技术和工具作为软件开发的主要承担者,是软件过程及软件过程成熟度的重要表 现,技术和工具的优劣直接关系着软件企业的存亡,工具的使用可以保证开发组织遵守 规范的刚性,保障了规范在软件开发组织实施中的稳定性。过程不仅是三要素之一,更 是其他两个要素的纽带和助力点。有效的过程对软件质量的提高、按时完成软件开发的 全过程和软件企业的发展起到了保证作用。 2 4 3 基本思想 软件过程改进的基本思路就是首先形成定的软件过程,然后对其不断进行调整、 1 4 第2 章软件过程及过程改进 优化,使得过程能力不断提高。其中业界最有影响力的就是i d e a l 模型陋引,模型以过 程改进环的形式表示,如图2 - 7 所示。 i d e a l 模型将软件过程改进的过程分为五个阶段:开始( i n i t i a t i n g ) ,诊断 ( d i a g n o s i n g ) 、建立( e s t a b l i s h i n g ) 、行动( a c t i n g ) 、调节( l e v e r a g i n g ) 。i d e a l 取自于五 个单词的缩写。通过该模型,我们可以清楚的看到软件过程改进的基本思路与主要流程。 开始阶段为i d e a l 模型的起点,主要为软件过程改进提供准备,包括建立初始的 过程改进组织结构和基础,获得主管的支持,制定战术计划和改进目标等。 诊断阶段为组织走上持续软件过程改进循环奠定基础。此阶段的评估结果可作为 组织的软件过程成熟度基线,根据企业远景目标和当前的软件过程能力,完善软件过程 改进行动计划草案,提出组织需要采取的软件过程改进的行动建议。 行 动 图2 一ti d e a l 檩型示意图 建立阶段完善软件过程改进计划的策略和支持计划,为当前过程能力中存在的问题 划分处理优先等级。制定整体战略行动计划,用于指导软件过程改进的活动。此阶段的 任务是制定可度量的目标、定义度量标准、分配必要的资源。 行动阶段的任务是创建、指导、实施行动计划,采取有效的行动实现组织系统的改 进。这些改进是循序渐进的,以保证这些改进的延续性。 调节阶段的任务是通过实践、收集有用数据、完善度量和评价本次软件过程改进过 程中使用的策略、方法和构架是否合理、完善,以便今后进一步完善过程改进计划,为 l5 河北大学工学硕十学位论文 i d e a l 模型的下一次循环奠定良好的基础。 总之,对于软件企业来说,软件过程是整个企业最复杂、最重要的业务流程,软件 产品就是软件企业的生命,改进整个企业的业务流程,最重要的还是要改进它的软件过 程。对软件生产过程的管理在整个软件企业的管理中起了决定性作用。我国软件产业之 所以落后,不是因为技术落后,而是对软件生产的管理落后。在我国,中小型企业是我 国软件业界基础,要改变中国软件业的落后局面就必须把软件过程和过程改进的思想融 入中小软件企业的日常管理中。 1 6 第3 章主要改进方法、模型及标准 3 1c m m 第3 章主要改进方法、模型及标准 c m m ( c a p a b i l i t ym a m f i t ) rm o d e l 能力成熟度模型) 是由卡内基梅隆大学软件工程研 究所( s e i ) 开发出来的,它是基于关于软件过程的理论发展起来【2 副,本质是软件管理 工程的一个部分。其定义为:一种将软件组织对于软件过程的定义、实现、度量、控制 以及改进划分为不同的阶段的方法【4 】【13 1 。一个软件组织可以利用c m m 模型来判断当前 过程的能力,并找出影响软件质量与过程改进的关键部分,为选择软件过程改进战略提 供指南。c m m 描述了一条从无序的不成熟的过程到成熟的、规范化的过程的进化途径, 提供了个阶梯式的进化框架来管理软件组织逐步优化的过程。它将一个组织的成熟能 力分为5 个等级,每一个较低等级都是其上一等级的基础,从而使每一等级的实现具有 i 盎 连续性和坚实的基础。c m m 为组织的过程改进提供了指南,它引导组织明确问题的关 键所在,决定其每一阶段要改善过程应优先努力的目标,从而有效地走出第一步,并持 续不断地走下去。 3 1 1c m m 中成熟度的级别 对于软件组织来说,c m m 为其提供了一个框架,通过在此框架下的运作,可以帮 助组织改进过程,逐步达到五个不同的成熟度级别,从而获得最终的成功。这五个成熟 持续改进 的过程 图3 1c m m 中的五个成熟度等级 1 7 河北大学 :学硕士学位论文 度级别对应于组织的五种软件过程状况,在它的帮助下,组织能更好地设置改进活动的 优先级。每一个成熟度等级就是实现过程成熟过程中的架构,通过它可以标识组织当前 所处的位置。每个级别都是由一系列的过程目标所构成的,只有当过程满足了这些目标 的要求并且能稳定保持时才能说达到了指定的等级。通过软件开发所处的不同的c m m 等级,可以说明企业当前过程能力的高低,如图3 -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清明团日活动主题策划方案
- 山东省诸城市密州街道卢山初中九年级化学下册 12.1 人类重要的营养物质说课稿 (新版)新人教版
- 高效档案室组织管理与流程优化方案
- 昆虫标本采集制作工成本控制考核试卷及答案
- 剑麻栽培工设备维护与保养考核试卷及答案
- 会计员考试题目及答案
- 实体店生意营销方案模板
- 地震勘探工操作考核试卷及答案
- 水果园土壤盐渍化防治分析报告
- 光伏聚光组件制造工效率提升考核试卷及答案
- 秘密全集:世界上神奇的潜能开发训练
- 小针刀治疗的应急预案
- 业务外包作业人员培训管理办法
- 电梯五方通话布线方案
- 物理化学实验B智慧树知到课后章节答案2023年下北京科技大学
- 河南农业大学-毕业答辩PPT模板
- 技术类《核电站通用机械设备》第1部分(阀门)
- 田径运动会竞赛团体总分记录表
- 2023年一级建造师考试《建设工程法规及相关知识》真题及答案
- Analyst软件应用培训教程
- 匀变速直线运动的推论和比例式公开课一等奖市赛课一等奖课件
评论
0/150
提交评论