在软件开发过程中常见的控制软件质量的方法有哪些
以软件过程管理为核心,软件过程管理围绕软件过程改进的5个方面展开描述,循序渐进地提出软件过程改进模型,为软件开发组织提高管理能力提供了引路的"灯塔"。
本书首先描述了软件过程管理框架及其在软件过程评估中的作用,阐述了开始有效过程改进的步骤;其次确定了软件过程管理所需要的活动;接着又提出相关概念,确定开发过程和管理及控制过程所需要的技术和管理;随后介绍了对软件过程进行量化控制的方法;最后引导人们如何防患于未然,将工作重心从解决问题转移到预防问题。
软件开发项目中,过程管理文档包括哪些
在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!展开全部 需求阶段 1、可行性分析报告 说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。
2、项目开发计划 为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。
3、软件需求说明书(软件规格说明书) 对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。
它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。
该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。
设计阶段 4、概要设计说明书 该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
5、详细设计说明书 着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。
开发阶段 6、开发进度月报 该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。
测试阶段 7、测试计划 为做好集成测试和验收测试,需为如何组织测试制订实施计划。
计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。
8、测试分析报告 测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。
收尾阶段 9、用户操作手册 本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。
10、项目开发总结报告 软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。
11、软件维护手册 主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。
维护阶段 12、软件问题报告 指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软 件修改提供准备文档。
13、软件修改报告 软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。
软件配置管理在软件开发过程中是什么管理的重要组成部分
定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合。
软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。
软件配置管理无论是对于软件企业管理人员还是研发人员都有着重要的意义。
软件配置管理可以提炼为三个方面的内容:VersionControl-版本控制ChangeControl-变更控制ProcessSupport-过程支持[1] 关键活动包括:配置项、工作空间管理、版本控制、变更控制、状态报告、配置审计等。
常用软件开发模式方法及优劣对比有哪些
快速原型模型:(需要迅速造一个可以运行的软件原型,以便理解和澄清问题) 快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型(展示待开发软件的全部或部分功能和性能 (过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善) 优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险 缺点:A、 所选用的开发技术和工具不一定符合主流的发展 B、 快速建立起来的系统加上连续的修改可能会造成 产品质量底下 增量模型:(采用随着日程时间的进展而交错的线性序列,每一个线性徐磊产生软件的一个可发布的“增量”,第一个增量往往就是核心的产品) 与其他模型共同之处:它与原型实现模型和其他演化方法一样,本质都是迭代 与原型实现模型不同之处:它强调每一个增量均发布一个可操作产品,(它不需要等到所有需求都出来,只要摸个需求的增量包出来即可进行开发) 优点:1、 人员分配灵活,一开始不需要投入大量人力资源2、 当配备人员不能在限定的时间内完成产品时,它可以提供一种先推出核心产品的途径,可现发布部分功能给用户(对用户起镇静作用)3、 增量能够有计划的管理技术风险 缺点:1、 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析 注:这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程 原型模型:(样品模型,采用逐步求精的方法完善原型) 主要思想:先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的。
原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求,采用方法:原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应 优点:(1)开发人员和用户在“原型”上达成一致。
这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。
(2)缩短了开发周期,加快了工程进度。
(3)降低成本。
缺点:1、当重新生产该产品时,难以让用户接收,给工程继续开展带来不利因素。
2、不宜利用原型系统作为最终产品。
采用原型模型开发系统,用户和开发者必须达成一致:喷泉模型:(以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目) 它认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性 相互迭代:软件的摸个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分 无间隙:它在各项活动之间没有明显边界(如分析和设计活动之间) 优点:1、 可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程 不便之处:1、由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
2、这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况 螺旋模型:(适合用于需求经常变化的项目) 它主要是风险分析与评估,沿着螺线进行若干次迭代,过程:1、 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件2、 风险分析:分析评估所选方案,考虑如何识别和消除风险3、 实施工程:实施软件开发和验证;4、 客户评估:评价开发工作,提出修正建议,制定下一步计划。
优点:1、 它由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发中 缺点:1、 难以让用户确信这种烟花方法的结果是可以控制的2、 建设周期长(而软件技术发展比较快,所以经常会出现软件开发完毕后,和当前的技术水平有很大的差距,无法满足当前用户的需求)3、 除非软件开发人员擅长寻找可能的风险,准确的分析风险,否则将会带来更大的风险 瀑布模型:(从本质来讲,瀑布模型是一个软件开发架构,重复应用) (核心思想:按工序将问题化简,将功能的实现与设计分开,便于分工协作,采用结构化的分析与设计方法将逻辑实现与物理实现分开,依照软件生命周期自上而下,相互衔接的次序) 缺点:1、 在项目各个阶段之间极少有反馈,各个阶段的划分完全固定,阶段之间产生大量的文档,增加了工作量2、 用户只有在项目生命周期的后期才能看到结果,增加了开发的风险3、 需要过多的强制完成日期和里程碑来跟踪各个项目的阶段4、 在每个阶段都会产生循环反馈 (如果有信息未被覆盖或是发现问题了,必须返回到上一个阶段并进行适当的修改,只有当上一阶段都被确认后才进行下一阶段)5、 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果 优点:1、 为项目提供了按阶段分的检查点2、 当完成一个阶段后,只需要去关注后续阶段3、 可在迭代模型中应用瀑布模型 按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试
结构化设计方法的软件设计过程及原则
◆ 软件需求:解决“做什么”。
◆ 软件设计:解决“怎么做”。
◆ 软件设计的任务:从软件需求规格说明书出发,形成软件的具体设计方案。
(根据需求分析阶段确定的功能确定模块及每个模块算法和编写具体的代码)1、软件设计内容(1)软件设计定义软件设计是把软件需求(定义阶段)转换为软件的具体设计方案,即划分模块结构的过程,是软件开发阶段最重要的步骤。
(2)软件设计划分 划分 名称 按工程管理角度 概要设计 详细设计 按技术观点划分 结构设计 数据设计 接口设计 过程设计 一般过程:是一个迭代过程,先进行高层次结构设计;再进行低层次过程设计;穿插数据设计和接口设计。
(3)软件设计过程2、软件设计原则为了开发出高质量低成本的软件,在软件开发过程中必须遵循下列软件工程原则:(1)抽象(abstraction)抽取事物最基本的特性和行为,忽略非基本的细节。
采用分层次抽象的办法可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理。
(2)信息隐藏(informationhiding)信息隐蔽:采用封装技术,将程序模块的实现细节(过程或数据)隐藏起来,对于不需要这些信息的其它模块来说是不能访问的,使模块接口尽量简单。
按照信息隐藏的原则,系统中的模块应设计成“黑箱”,模块外部只能使用模块接口说明中给出的信息,如操作、数据类型等等。
(3)模块化(modularity)使程序有许多个逻辑上相对独立的模块组成。
模块(module)是程序中逻辑上相对独立的单元;模块的大小要适中;高内聚、低耦合。
(4)一致性(consistency)整个软件系统(包括文档和程序)的各个模块均应使用一致的概念、符号和术语;程序内部接口应保持一致;软件与硬件接口应保持一致;系统规格说明与系统行为应保持一致;实现一致性需要良好的软件设计工具(如数据字典、数据库、文档自动生成与一致性检查工具等等)、设计方法和编码风格的支持。
软件开发流程有哪些、软件后期维护怎么做?
樯杓啤⒈喑毯偷魇浴⒊绦蛄?骱筒馐砸约氨嘈础⑻峤怀绦颉 开发流程第一步:需求调研分析1相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。
这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
3 系统分析员向用户再次确认需求。
第二步:概要设计首先,开发者需要对软件系统进行概要设计,即系统设计。
概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
第三步:详细设计在概要设计的基础上,开发者需要进行软件系统的详细设计。
在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。
应当保证软件的需求完全分配给整个软件。
详细设计应当足够详细,能够根据详细设计报告进行编码。
第四步:编码在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和 模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
在规范化的研发流 程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块 之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现 过。
编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发 补丁的时候吗?从来没有!第六步:软件交付准备在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。
《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。
《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
第七步:验收用户验收。
软件维护1、软件数据库管理2、用户跟踪培训3、故障分析解决软件升级需求调整分析软件功能拓展优化系统报废处理软件不能适应业务发展新软件项目立项企业数据信息备份附注:软件工程师学习内容首先让我们来看一下软件工程师考试(高级)要求:(1)理解软件工程管理的概念和任务;(2)理解软件生存期过程;(3)理解软件工程标准;(4)掌握需求分析、测试、维护基本技术;(5)掌握软件度量、软件配置管理方法;(6)理解软件复用概念;(7)理解软件质量保证的手段;(8)理解软件项目对人员的需求;(9)理解软件知识产权的基本知识。
通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。
软件项目管理的基本信息
书 名: 软件项目管理 作 者:覃征 出版社: 清华大学出版社 出版时间: 2009-10-1 ISBN: 9787302209485 开本: 16开 定价: 39.00元 软件项目管理是软件工程和项目管理的交叉学科,是项目管理的原理和方法在软件工程领域的应用。
本书分为基础篇、管理篇和实践篇。
基础篇介绍了软件产业和软件项目管理导论,使读者从整体上了解软件项目管理的产生背景和概貌。
管理篇以项目管理知识体系(PMBOK)为核心,围绕着软件项目的开发全过程,从软件项目需求管理、软件项目成本管理、软件项目进度管理、软件项目风险管理、软件项目配置管理、软件项目资源管理、软件项目质量管理等方面对软件项目中的管理问题进行探讨。
实践篇将需求管理、成本管理、进度管理、风险管理、配置管理、资源管理和质量管理等相对独立的领域融合在软件过程框架中,介绍了在软件项目实践中如何集中使用相关理论和技术。
其中包括Rational统一过程、敏捷软件开发和6σ软件开发。
本书可作为高等学校信息、软件、计算机科学与技术等专业的学生的教材,也可供从事软件项目管理工作的人员参考。
信息之二 书 名: 软件项目管理 开本: 16开 定价: 32.00元 《软件项目管理》系统介绍了软件项目管理的理论、方法与案例,全书共分15章,内容包括软件项目管理、组织平台、软件项目立项、软件开发过程、软件估算、软件项目计划、软件配置管理、软件质量管理、软件度量、风险管理、软件外包管理、人力资源管理与团队建设、软件知识产权管理、项目经理面临的政治、项目管理技巧。
《软件项目管理》适合软件工程及计算机相关专业的研究生使用,也可作为软件领域开发人员的参考书。
第1章 软件项目管理导论1.1 软件项目管理概述1.1.1 项目管理的发展1.1.2 什么是项目1.1.3 什么是项目管理1.1.4 项目管理环境1.1.5 软件工程与项目管理1.2 软件项目分类1.3 企业愿景1.4 项目成功需要的关键投入1.5 软件项目开发过程1.6 软件项目管理的重要性1.6.1 失控项目定义1.6.2 失控项目特征1.6.3 技术问题1.7 CMM模型1.7.1 CMM概述1.7.2 CMM的内部结构1.7.3 CMM的5个等级1.7.4 CMM中5级的发展关系 第2章 组织平台2.1 组织机构与决策机制2.1.1 组织的定义2.1.2 组织平台与项目决策2.2 常见软件组织形式2.2.1 简单的软件开发组织2.2.2 普通的软件开发组织2.2.3 较成熟的软件开发组织2.2.4 开发组织的选择与设定2.3 CMM中的组织2.3.1 CMM中的关键工作组2.3.2 物理组与逻辑组2.3.3 组织的完善与独立性2.3.4 关键角色 第3章 软件项目立项3.1 识别潜在项目3.2 产品立项3.2.1 商业目标3.2.2 产品战略3.2.3 产品的5个层次3.2.4 产品定位战略3.2.5 产品开发立项3.2.6 产品立项报告3.3 定制项目立项3.3.1 项目选择3.3.2 合同签定要注意的问题3.3.3 定制项目立项报告3.4 立项评审3.5 技术人员在立项中的责任 第4章 软件开发过程4.1 需求确定4.1.1 把握系统需求4.1.2 需求管理的实施过程4.1.3 需求变更管理4.1.4 需求分析提交的结果4.1.5 角色划分4.2 软件设计4.2.1 概要设计4.2.2 详细设计4.3 编码4.3.1 编码标准4.3.2 编码风格4.3.3 命名规则4.4 测试4.4.1 测试目标4.4.2 测试原则4.4.3 软件测试过程管理4.5 发布、部署和维护4.5.1 发布4.5.2 部署4.5.3 维护 第5章 软件估算5.1 软件估算概述5.2 估算步骤5.2.1 确定软件范围5.2.2 确定工作所需资源5.2.3 确定估算内容5.2.4 估算改进5.3 估算方法5.3.1 FP功能点估算法5.3.2 LOC估算法5.3.3 COCOMO估算法5.3.4 软件方程式估算法5.3.5 类比估算法5.3.6 wBS估算法5.3.7 Delphi估算法5.3.8 PERT方法5.3.9 估算方法的综合应用5.4 估算的表达5.5 估算的原则与技巧 第6章 软件项目计划6.1 软件项目计划的层次6.2 软件项目计划编制的方针6.3 软件项目计划的内容6.3.1 项目介绍6.3.2 技术方案概述6.3.3 过程计划6.3.4 测试计划6.3.5 组织计划6.3.6 资源计划6.3.7 软件估算与预算6.3.8 进度表6.3.9 质量计划6.3.10 风险计划6.3.11 变更管理计划6.3.12 文档计划6.3.13 培训计划6.3.14 发布与实施计划6.4 软件项目计划成功的关键要素6.5 软件项目计划模板 第7章 软件配置管理7.1 软件配置管理概述7.1.1 术语与概念7.1.2 软件配置管理定义7.1.3 软件配置管理的基础7.2 软件配置管理的活动7.2.1 制定SCM计划7.2.2 软件配置标识与维护7.2.3 软件配置控制与变更管理7.2.4 版本管理7.2.5 软件配置状态发布7.2.6 软件配置审计7.2.7 软件发布管理7.3 配置管理工具7.3.1 几种配置管理工具介绍7.3.2 配置管理工具选择7.3.3 配置管理工具实施7.4 成功的关键7.5 职责分配与角色 第8章 软件质量管理8.1 软件质量管理基础8.1 一软件质量8.1.2 软件质量需求与质量特征8.1.3 软件质量管理8.2 软件质量保证 …… 第9章 软件度量 第10章 风险管理 第11章 软件外包管理 第12章 人力资源管理与团队建设 第13章 软件知识产权管理 第14章 项目经理面临的政治 第15章 项目管理技巧 参考文献
结构化软件开发过程内容包括哪些?
结构化软件开发过程包括五个部分:1.系统规划:确定信息系统目标;确定系统界面,系统与外部的信息联系;系统的主要功能;系统与企业其他计算机的应用。
2.系统分析:对组织内部整体管理状况和信息处理过程进行分析。
它侧重于从业务全过程的角度进行分析。
分析的主要内容是:业务和数据的流程是否通畅,是否合理;数据、业务过程和实现管理功能之间的关系;老系统管理模式改革和新系统管理方法的实现是否具有可行性等等。
3. 系统设计:系统设计是新系统的物理设计阶段。
根据系统分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。
4. 系统实施:系统实施阶段是将新系统付诸实现的过程。
它的主要活动是根据系统设计所提供的控制结构图、数据库设计、系统配置方案及详细设计资料,编制和调试程序,创建完整的管理系统,并进行系统的调试、新旧系统切换等工作,讲逻辑设计转化为物理实际系统。
5.系统运行与维护:为了清除系统运行中发生的故障和错误,软、硬件维护人员要对系统进行必要的修改与完善;为了使系统适应用户环境的变化,满足新提出的需要,也要对原系统做些局部的更新。
简述软件开发工具的演变过程和原因?
软件过程的概念包含了软件生命周期里所涉及的一系列相关过程,它为管理那些软件开发过程中较难控制的活动提供了一个统一的框架。
软件过程是在软件生命周期中所实施的一系列活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。
软件演化过程作为软件过程的一个分支,它同样也是一种软件过程,它通过对软件演化过程中的一些较难以控制的活动进行管理,试图为软件演化过程建立一个统一的流程框架。
软件演化能否取得成功在很大的程度上取决于组织所实施的软件演化过程。
因而,它对于软件的演化具有重要的意义。
同时,Osterweil提出的一个广泛被接受的观点"软件过程也是软件",软件演化过程作为软件过程的一个分支,同样,我们也可以像软件一样对其进行相关建模和编档。
软件演化是软件工程领域正逐步受到重视的研究方向,并将得到越来越多的关注。
文献从软件演化管理的角度,较为系统地讨论了软件演化过程的相关问题,包括软件演化过程元模型EPMM、软件演化过程描述语言EPDL、软件演化过程框架、软件演化过程建模方法、软件演化过程改进等。
文献还给出了一个软件演化过程的支撑工具,并提供了多个案例研究。
软件演化过程的目标就是在不违反系统约束的条件下,对软件系统的演化流程进行管理,从而使演化后的软件系统能够在功能满足用户的需求,同时它所展现出来的质量属性也维持在一个令人满意的水平上。
文献的作者认为软件演化过程应该具有如下的5个基本特征。
在招聘软件开发人员中应注意的几个问题
可忽视的误区 企业的软件开发能力取决于该企业的软件过程能力。
如果一个企业软件过程能力越成熟,那么该企业的软件开发能力就越有保证。
大量的实践经验表明,在体现企业软件开发能力的因素中,技术或工具并不是第一位的。
其实,许多问题不是出在不懂怎么做,而是没有安排做,做的次序不对,或不知道怎样做得更好。
目前,比照软件过程管理模型(如图一),中国的软件企业中还存在各种影响过程改进的因素和误区,主要表现在个体和组织两个方面。
在组织方面,首先,中国软件企业实施CMM往往缺乏高级管理者的支持。
其次,没有足够的SEPG资源。
从很多情况考虑,SEPG成员要比其他CMM相关组综合素质高一个层次,CMM相关组的管理素质需要比技术类组高一个层次,才能顺利开展工作。
第三,没有合适的先行者或者没有适当全局观的项目经理配合。
被组织选为先行者的人员经常说自己没有时间,由于这些人都是从各个项目中抽出来的,一般人很难有足够的权力让他们为配合CMM做工作。
最后,软件组织缺乏足够详细的项目计划和监督调整机制。
在个体方面,首先,手工作坊式的个人英雄主义情结成为实施CMM的制约。
其次,某些软件开发人员错误地认为过程管理会影响或压抑专业人员的创造性,其实这是不清楚过程的定义造成的。
第三,由于软件项目的成功更多地依赖于少数人员的杰出技术能力和项目管理能力,成功项目的经验不能得到最大限度的继承,软件生产的可重复性相对比较差。
最后,软件企业人员变更相对频繁也增加了实施CMM的难度。
“三七”法则 在过程改进总体建议方面,应该从三个方面做准备,分七步走。
首先,在组织方面的准备上,除了要求高层经理出资支持CMM改善软件过程,委托具有管理职责的人员负责CMM实施之外,须成立软件工程过程组(SEPG),研究CMM、编写/修改必要的文档并推广文档;成立软件质量保证组(SQAG),研究软件质量保证技术及过程,编写/修改必要的SQA文档并推广已编写的文档,测量和分析项目进展情况,反馈项目过程状态,准备和评审过程、计划和标准,审计指定的软件工作产品以检验其遵从性,审计软件工作过程的符合性;成立软件配置管理组(SCMG),研究软件配置管理技术及过程,编写/修改必要的SCM文档并推广已编写的文档,建立必要的工具支持。
在知识准备方面,要加强培训工作,建立内部过程评估队伍和庞大的过程改善队伍。
对各角色人员进行专项培训,普遍开展软件工程基础及CMM的培训,使每个岗位的人员都具备过程改进的意识,并掌握所必需的过程改进知识和技能。
此外,要重视对软件工程的研究,包括方法、工具和过程,加速培养过程改进的骨干队伍。
在能力准备方面,建立有效的软件项目管理,文档化且遵循软件项目管理过程,在建立管理过程中,使用组织的方针来指导项目,建立基本软件工作产品完成准则和检查单,并迅速实施,然后根据反馈意见及时修改。
坚持适当的监控机制,例如对项目进度进行跟踪而建立的例会制度,制度化的日报和周报活动。
做好实际数据收集、测量与分析工作等。
重复成功的以前项目的开发经验。
改进过程总体可以分为以下七个步骤。
确定目标:确定在一段时间内达到的改进等级。
状态诊断:把过程改进要达到的状态与目前的状态作比较,找出存在的差距。
制定计划:“凡事有计划,按计划办”不仅是CMM强调的,也是软件开发过程中应该注意的。
规程制定:过程改进的一个重要的地方就是“事事有规程,时时有记录”,这样,即使关键人走了,原来的事也能继续而不致产生过多的停顿。
过程试点:制定了规程后,要对行动计划按执行过程的情况进行适当调整。
其中,尤其要注重评审和验证,实现定期监控,注意采集度量数据。
反馈修正:总结过程试点的经验,修订规程。
过程推广:扩大应用范围。
软件过程改进实施步骤 公司的过程改进活动也是一个项目,并且是很大的项目,涉及的人员、技术和资源都很多,还要平衡现有产品或项目的进度等。
同时,它也是一个不断往复,螺旋上升的一个过程。
第一个步骤为高级经理下定决心,提供足够的资源来主持并完成前期的准备工作,这个阶段核心是评价SEPG组长的资格和资质,还包括评估培训、购买工具的预算及相应资金能否及时到位。
无论是软件商业化的过程或CMM实施的过程之中,建立规范化的易于操作的软件开发行为规范都是首先要做的工作。
但是,切记,编制规范的时间一定不能长,以10到12个工作日为宜,文档不宜过多,以5~6个规程为好(对应5个或6个关键过程域),这是第二个关键阶段。
评价标准可以是SEPG组长能够顺利、流畅地讲解其制定的规程。
在规程编制阶段必须有老板或常务副总直接领导CMM工作。
但是一定要记住,制定的过程要遵从“从实践中来,到实践中去”,同项目经理、有经验的开发人员研究、讨论,从而使SEPG组长能够及时反映工作中的问题,并且问题能够得到及时解决。
第三个步骤是制定并发布公司的评估方针和方案,包括开发体系重组过程中的激励措施,中层在此阶段必须介入,这关系着过程改进...
转载请注明出处51数据库 » 软件开发过程管理方法