度量的过程度量
展开全部 软件过程性能 过程度量是对软件开发过程的各个方面进行度量,目的在于预测过程的未来性能,减少过程结果的偏差,对软件过程的行为进行目标管理,为过程控制、过程评价持续改善提供定量性基础。
过程度量与软件开发流程密切相关,具有战略性意义。
软件过程质量的好坏会直接影响软件产品质量的好坏,度量并评估过程、提高过程成熟度可以改进产品质量。
相反,度量并评估软件产品质量会为提高软件过程质量提供必要的反馈和依据。
过程度量与软件过程的成熟度密切相关,其度量模型如图7-2所示:软件过程性能的度量模型软件过程管理中的过程度量弗罗哈克(William A.Florac)、帕克(Robert E.Park)和卡尔顿(Anita D.Carleton)在《实用软件度量:过程管理和改善之度量》(Practical Software Measurement:Measuring for Process Management and Improvement)中描述了过程管理和项目管理的关系。
认为软件项目团队生产产品基于三大要素:产品需求、项目计划和已定义软件过程。
度量数据在项目管理中将被用来:(1)识别和描述需求,(2)准备能够实现目标的计划,(3)执行计划,(4)跟踪基于项目计划目标的工作执行状态和进展。
而过程管理也能使用相同的数据和相关度量来控制和改善软件过程本身。
这就意味着,软件组织能使用建构和维持度量活动的共同框架来为过程管理和项目管理两大管理功能提供数据。
软件过程管理包括定义过程、计划度量、执行软件过程、应用度量、控制过程和改善过程,其中计划度量和应用度量是软件过程管理中的重要步骤,也是软件过程度量的核心内容。
计划度量建立在对已定义软件过程的理解之上,产品、过程、资源的相关事项和属性已经被识别,收集和使用度量以进行过程性能跟踪的规定都被集成到软件过程之中。
应用度量通过过程度量将执行软件过程所获得的数据,以及通过产品度量将产品相关数据用来控制和改善软件过程。
软件过程度量的内容软件过程度量主要包括三大方面的内容,一是成熟度度量(maturity metrics),主要包括组织度量、资源度量、培训度量、文档标准化度量、数据管理与分析度量、过程质量度量等等;二是管理度量(management metrics),主要包括项目管理度量(如里程碑管理度量、风险度量、作业流程度量、控制度量、管理数据库度量等)、质量管理度量(如质量审查度量、质量测试度量、质量保证度量等)、配置管理度量(如式样变更控制度量、版本管理控制度量等);三是生命周期度量(life cycle metrics),主要包括问题定义度量、需求分析度量、设计度量、制造度量、维护度量等。
软件过程度量流程软件过程的度量,需要按照已经明确定义的度量流程加以实施,这样能使软件过程度量作业具有可控制性和可跟踪性,从而提高度量的有效性。
软件过程度量的一般流程主要包括:确认过程问题;收集过程数据;分析过程数据;解释过程数据;汇报过程分析;提出过程建议;实施过程行动;实施监督和控制。
这一度量过程的流程质量能保证软件过程度量获得有关软件过程的数据和问题,并进而对软件过程实施改善。
度量的项目度量
项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。
规
有什么优秀的项目任务管理软件
软件项目成功最重要的要素是什么?大型软件项目是依靠一个组织来完成的,如果这个组织在管理上是无序的,开发过程是非正式和混乱的,计划期限和成本目标通常超限,项目的成功取决于个人英雄式的行为,在人员发生变动时项目往往陷入灾难,那么很难说这个项目会获得成功。
从这个意义上说,软件项目管理和过程管理是项目成功的关键因素。
我们今天所面对的软件开发问题,最重要的莫过于如何用一种有效的方式来组织项目,确保软件开发的高效率。
这就需要研究项目管理的本质,更加清醒地审视软件开发中的问题,根据软件的特点与文化背景创造出更好的管理方法。
但是经验告诉我们,软件项目管理之难超出了人们的想象。
在软件项目中存在着各种变化因素,包括客户需求的不断变化导致产品的不确定性;研究型项目带来技术手段的不确定性;人这样的最重要因素天生具有的不确定性等。
成功项目管理必须在这种技术含量高、变化速度快、资源有限的环境下,实现软件生产规模化、规范化、国际化,这也是当前我国软件行业面临的最大挑战。
在这样复杂的背景下,我们该如何去思考如何去做呢? 1、多年以来,经典的软件工程学以它的规范性和一致性,在大型复杂项目的开发中占有重要的地位。
管理确实要强调标准和有序,但是仅仅有秩序是不够的,关键是如何让组织在秩序下发挥最大的效率,高效地完成工作。
每个项目都是独一无二的,项目管理人员必须评估项目背景(项目、团队、公司),然后实事求是的选择合适的管理方法,运用各种方法和技巧来降低项目的风险,才能确保项目最终走向成功。
2、一个项目就是一场战役,这个战役真正的敌人是各种潜藏不露的风险,以往的各种经验往往并不足以发现一个全新项目中危害极大的潜在风险。
这就需要我们运用成体系的思考和分析能力,运用前人总结和提炼出来的精髓和理论,面对开发过程中瞬息万变的种种情态采取正确而有效的措施,而不是死板僵化的处理问题。
3、度量为什么重要呢?因为无数科学实践都告诉我们:无法控制的东西就无法管理,而无法度量的东西就无法控制。
软件度量可以帮助我们发现问题和解决问题,作为一个高水平的软件项目管理者,必须对软件度量及其应用有透彻的理解。
本课程将辟出很大的篇幅讨论项目估算与度量的工程实践方法。
4、软件开发过程的成功有赖于完善而正确的项目监控,如果没有度量作为监控的信息,事实上监控将没办法实现,更不可能进行正确的项目调整。
我们将通过一个完整的面临崩溃的项目案例,通过项目监控和启动拯救过程的实践,讨论在监控过程中如何充分利用度量数据,以有序的、理智的、经过很多成功拯救经验积累出来的方法,使项目重新走向成功的经验,来理解项目监控的本质。
5、根据统计,需求变更是项目失败的最大原因,这促使业内研究更加合理的软件过程。
敏捷过程就是为解决这类问题提出的一种工程方法。
但是敏捷过程的动态性和非线性给项目管理、预估与规划带来新的必须解决的课题。
由于现代大型项目的复杂性和多样性,在项目中融合规范和敏捷这两种看似对立的方法论是一种重要的能力。
我们必须认真思考如何把需求变更由破坏性因素转变为项目成功的新机会,同时确保项目的一致性和规范性,让工程过程的标准化与开发效率两者之间实现正向支撑。
6、从软件项目实施的过程来看,很少有一个项目能完全按照实施计划来进行的,因为再好的计划也不能完全预见所有的问题并事先制订出对策。
软件开发的柔性过程需要沟通来弥补,项目管理人员在开发过程中与相关人员密切沟通互动是解决这一问题的唯一办法。
但是沟通需要有机制和平台,合理的软件过程必须有助于创建这种沟通平台。
称职的软件项目管理者必须具备项目团队可持续发展意识,在有效的完成每个项目同时,大力提升人力资本的素质,确保企业不断做大做强。
7、利用精益思想可以帮助我们实现高质量的软件项目管理,因此我们必须研究精益思想的本质,研究在过程中如何及时发现问题和风险,持续的进行过程改进与优化。
高质量项目管理也是一个不断改进的过程,因此我们必须对过程优化的思考工具、组织工具和行动工具有透彻的理解,从而使软件项目管理水平上升到一个更高的高度。
软件项目管理的基本信息
书 名: 软件项目管理作 者:覃征出版社: 清华大学出版社出版时间: 2009-10-1ISBN: 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)是一次性的,一个项目不能以同样的方式重复。
管理是将一些理论知识、技能、工具和技巧应用到项目活动中去的行为或艺术。
所以,软件项目管理主要专注于软件项目活动的一些行为分析与管理。
一个项目管理需要考虑的远不止我们想象的那么多,往往需要在众多的、甚至是相互冲突的要求中寻求一种平衡,以达到满足每个团体各方面的利益:范围、时间、成本和质量有不同需求和期望的项目涉及人员明确表示出来的要求(需求)和未明确表达的要求(期望)比如,部门主管可能希望新的项目在成本方面,而系统工程师却更注重技术的完善,而市场人员却希望在尽可能短的时间内完成项目以便尽快满足市场、占有市场份额。
而项目管理者所要做的,就是夹在这不同的需求和利益中,寻求一种解决这些冲突,满足不同需要的适当的方法。
项目管理知识体系主体和项目管理过程图
个人软件过程的概述
随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。
目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。
但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们应该做什么,而没有告诉我们应该怎样做,并未提供有关实现关键过程域所需要的具体知识和技能。
为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal Software Process,PSP)。
在CMM1.1版本的18个关键过程域中有12个与PSP有关,据统计,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。
因此,一个单位的软件开发人员如能接受PSP培训,对该单位软件能力成熟度的升级是一个有力的保证。
CMM侧重于软件企业中有关软件过程的宏观管理,面向软件开发单位,PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人员。
二者互相支持,互相补充,缺一不可。
按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的需求。
接着就是度量产品质量,有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此,必须对目标进行分解和度量,使软件质量能够测量。
然后就是理解当前过程,查找问题,并对过程进行调整。
最后应用调整后的过程,度量实践结果,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。
就象CMM为软件企业的能力提供一个阶梯式的进化框架一样,PSP为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了新的元素。
这个进化框架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具,使其清楚地认识到自己的表现和潜力,从而可以提高自己的技能和水平。
程序员,在开发的过程中应该注意哪些安全方面的问题
可忽视的误区 企业的软件开发能力取决于该企业的软件过程能力。
如果一个企业软件过程能力越成熟,那么该企业的软件开发能力就越有保证。
大量的实践经验表明,在体现企业软件开发能力的因素中,技术或工具并不是第一位的。
其实,许多问题不是出在不懂怎么做,而是没有安排做,做的次序不对,或不知道怎样做得更好。
目前,比照软件过程管理模型(如图一),中国的软件企业中还存在各种影响过程改进的因素和误区,主要表现在个体和组织两个方面。
在组织方面,首先,中国软件企业实施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组长能够及时反映工作中的问题,并且问题能够得到及时解决。
第三个步骤是制定并发布公司的评估方针和方案,包括开发体系重组过程中的激励措施,中层在此阶段必须介入,这关系着过程改进...
就这么愉快的撅腚了1