《软件项目管理》笔记一
软件项目管理概述
项目管理属于软件工程的组成之一,另外两部分为:软件开发,过程改进。
参考书如下:
1.1 项目与软件项目
1、项目:
为了创造一个唯一的产品或提供一个唯一的服务而进行 的临时性的努力。
2、项目的目标:
1)成果性目标,通过项目开发出满足客户要求的产品、系统、服务和成果。
2)约束性目标,完成成果性目标需要的时间、成本、质量要求和约束。
1.2 项目管理与软件项目管理
企业的管理内容:战略管理、运作管理、项目管理
①项目管理:
是一系统的伴随着项目的进行而进行的、目的是为了确保项目能够达到期望的结果的一系列管理行为。
平衡:范围、时间、成本、质量、不同干系人、明确的需求和隐含的需求。
②项目管理的主要内容:
管理职能角度: 项目计划、组织、人事安排、控制、协调等
项目活动: 项目决策、招投标、规划设计、项目实施、项目评价
资源: 资金财务、人事劳动管理、材料设备等
目标和约束: 进度管理、成本管理、质量管理等
③软件危机的表现:
1)开发过程随心所欲
2)时间和费用估算缺乏现实的基础
3)管理人员更多的是在应付突发事件
4)产品质量缺乏客观控制
5)软件开发成败更多的依靠个人的能力
1.3 项目管理知识体系
①PMP
Project Management Professional
美国项目管理认证学会提出来的项目管理认证计划,全球认可程度最好的项目管理专业认证;
www.pmi.org
考试费用:大概几千
②PMBOK
Project Management Body of Knowledge
是PMI组织的关于项目管理的知识体系,是PMP考试的关键材料。
PMBOK-9个知识领域
项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目采购管理、项目沟通管理、项目风险管理、项目集成管理。
1.4 软件项目管理的范围
1、项目管理的5要素
技术
方法
团队建设
信息
沟通
1.5 过程管理与软件项目管理的关系
过程: 从技术上看,对于某个任务的一个过程,是由执行改任务时应当遵循的一个步骤序列组成。
软工过程:规定如何执行工程任务,例如需求规范、设计测试等。
项目管理过程:规定如何设置里程碑、人员组织、管理风险、监督进展等任务。
1、过程管理
定义:对过程进行管理,目的是让过程能被共享、复用,并得到持续的改进。
软件过程管理就是要注重循序渐进地积累,积累项目种的各个环节的实践经验和项目管理的实践经验,保证我们的生产力持续地发展。
2、过程管理与项目管理的关系
1)项目管理用于保证项目的成功。
2)过程管理用于管理最佳实践。目的是让过程能被共享、服用,并得到持续的改进。
3)两者不是相互孤立的,是有机地紧密地结合的。
3、项目管理与CMM
CMM由卡内基梅隆大学软件工程研究所(SEI)开发的,它体现了软件组织和其他组织在软件开发管理方面的最佳实践。
CMM规定了过程所必须的特征,没有规定专门的过程。
CMM(Capability Maturity Model)能力成熟度模型。
4、CMM
目的:对成熟的过程和不成熟的过程加以区别
1)过程能力:使用一个过程执行项目时能够从中期望得到的结果范围。
2)过程绩效:使用一个过程执行项目时所实现的实际结果。
3)成熟度等级:通往更高成熟度途中会经历一些良好定义的稳定状态。
5、CMM模型的能力成熟度等级
第1级:初始级
第2级:可重复级
第3级:已定义级
第4级:已管理级
第5级:优化级
①CMM1
初始级:项目按照团队和项目经历认为合适的方式进行开发。
②CMM2
可重复级:
需求管理、软件项目规划、软件项目跟踪与监督、软件转包管理、软件质量保证、软件配置管理。
③CMM3
已定义级:
组织过程焦点、组织过程定义、培训方法、集成软件管理、软件生产工程、组间协调、互相评审。
④CMM4
已管理级:
软件质量管理、定量过程管理。
⑤CMM5
优化级:
过程变更管理、技术变更管理、技术故障预防。
CMM的核心
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化。使企业能够更好的实现商业目标。
CMM实施中强调以下几点:
1)凡事有计划,按计划办
2)事事有规程,人走之后做事能重复
3)注重评审和验证,关键工作产品要经过正式评审
4)实现定期监控
5)要求对所有发现的问题,所有措施项都要进行跟踪,而且一直到跟踪结束
6)通过SQA,保证过程得到遵守和不断修改
7)注意采集度量
1.6 软件项目管理过程
过程包括:启动-》计划-》控制-》结束
其中:
项目启动——做什么?
项目规划——怎么做?
项目跟踪控制——保证做好
项目结束——收尾和评审
项目计划
范围、时间、成本、质量、人力、沟通、风险、合同、配置管理、集成。