软件项目管理期末复习上

一概述

1.1 项目

1.项目就是在特定的时间内解决特定的问题或达到特定的目标
2.特点:
目标性
独特性
一次性
约束性
关联性
多方面性
不可逆转性

1.1.2 项目管理
1、项目管理就是对项目进行的管理,即有计划的、有序的、有控制的做事
2、著名的项目管理知识体系有 :
美国PMI推出的项目管理知识体系(PMBOK)
英国政府商务部(OGC)出资研究开发的PRINCE
IBM公司的全球项目管理方法(WWPMM)

1.2 项目管理的本质

项目管理的目标,就是以最小的代价最大程度的满足软件用户或客户的需求和期望,也就是协调好质量、任务、成本和进度等要素相互之间的冲突,获取平衡。也就是说,项目管理的本质,就是在保证质量的前提下,寻求任务、时间和成本三者之间的最佳平衡
1、可以从以下方面来描述项目管理的本质
管理对象是项目或当做项目来处理的运作
管理思想是系统管理的系统方法论
管理组织通常是临时性、柔性、扁平化的组织
管理机制是项目经理负责制,强调责权的对等
管理方式是目标管理,包括进度、费用、技术和质量
管理要点是创造和保持一种使项目顺利进行的环境

1.2.1 项目管理的对象
有效的项目管理集中在对3P–人员(people),问题(problem)和过程(process)的管理上,其中人是决定性因素
3P对软件项目管理具有本质的影响 ,如下所示:
人员必须被组织成有效率的团队,他们的潜力才会被激发出来
问题在软件项目管理中表现为流程不清楚或控制不严,应用领域知识不足,需求不断变化和不一致,沟通不流畅等。其解决办法是找出引出问题的根本原因在哪里,然后真多问题本身找到解决办法,以求彻底解决问题。
过程必须适应于人员的需求和问题的解决,人员的需求主要体现在能力、沟通、协调等上,问题能在整个项目实施过程中得到预防、跟踪、控制和解决

1.2.2 项目管理成功要素
项目管理其主要职能
识别需求,确定项目实施的范围
在项目计划和执行过程中阐明项目干系人各种需求、担心和期望
在项目干系人之间建立、维护和积极、有效和协作的沟通
管理项目干系人以满足项目需求,成功的实现项目的交付
平衡项目各种限制或条件

项目成功的标志
在规定时间内完成项目
项目成本控制在预算之内
功能特性达到规格说明书要求的水平
项目通过客户或用户的验收
项目范围变化是最小的或可控的
没有干扰或严重影响整个软件组织的主要工作流程
没有改变公司文化或改进了公司的文化

项目成功的要素
缺少目标
没有组织的保障
没有流程
没有管理
没有工具的帮助

1.3 项目管理的基本方法

项目管理会涉及以下模型
组队模型:用于解决人力资源管理,包括明确相互依赖的角色和责任,沟通机制等
过程模型: 用于解决软件开发过程管理,包括时间管理、基于里程碑的阶段划分、阶段性成果及基线的管理,保障项目的顺利实施
应用模型: 用于具体应用领域的需求管理和变更管理等,并在用户、业务和数据3个层面上定义协作的、分布的、可重用的业务逻辑网络

基本方法:
阶段化管理:讲项目的生命周期分为若干阶段,再根据不同的阶段所具有的不同特点来进行针对性管理
量化管理:针对影响项目成功的因素制定指标、收集数据、分析数据,从而完成对项目的控制和优化
优化管理: 分析项目每部分所蕴含的知识,不断吸取教训,总结经验,讲知识和实践更好的融合在一起,从而对项目计划,实施办法进行优化,获取项目的最佳效益

1.4 项目的生命周期

项目生命周期划分为3个基本阶段–计划、实施监控和总结
根据PMBOK,项目生命周期分为5个阶段
启动
计划
执行
控制
结束

1.5 项目管理知识体系

PMBOK项目管理的内容
综合管理
范围管理
时间管理
成本管理
质量管理
人力资源管理
沟通管理
风险管理
干系人管理

受控环境中的项目(PRINCE)是组织、管理和控制的方法,强调通过管理使项目环境得到有效的控制
PRINCE2通过整合现有用户的需求,提炼特点的方法称为面向所有用户的通用的项目管理方法,内容有如下
组织
控制
项目阶段
风险管理
在项目环境中的质量
配置管理
变化控制

WWPMM项目管理的内容
变更管理
沟通管理
交付管理
事件管理
人力资源管理
项目定义
质量管理
资助人协议管理
风险管理
跟踪和控制
技术环境管理
工作计划管理

1.5.1 软件项目管理的特点
软件项目是设计型项目
软件过程模型
需求变化频繁
难以估算工作量
主要的成本是人力成本
以人为本的管理

1.6 软件项目的主要任务一般包括需求获取、系统设计、原型制作、代码编写、代码评审、测试等

软件项目管理一般面临二个挑战
在范围、时间、质量和预算等条件下限制下达项目的各项目标
为满足预先定义的项目目标,需要进行各种资源的分配、整合和优化

1.7 软件项目的分类
按规模: 大型项目、中小型项目
按软件开发模式: 组织内部使用的软件项目、直接为用户开发的外部项目和软件外包项目
按产品不同的交付类型:产品型项目、一次型项目
按软件商业模式:软件产品销售、在线服务
按软件发布方式:新项目、重复项目
按项目待开发的产品:组织型、嵌入型、半独立型
按系统架构:B/S, C/S结构
按技术分:web应用、客户端应用、系统平台软件

2.1

项目建议书:就是项目的立项申请报告

内容:
项目的背景
项目的意义和必要性
项目产品或服务的市场预测
项目规模和期限
项目建设必需的条件
投资估算和资金筹措的设想
市场前景及经济效益的初步分析
其他需要说明的情况

2.2 项目可行性分析

内容:
可行性分析的前提
可行性分析因素
成本效益分析方法
技术风险分析方法
可行性分析结论

2.3 项目投标

基本可以分为2个阶段
第一个阶段是参与竞标的供应商在规定的时间内提交标书
第二个阶段是需求方(客户)对标书的评估

2.4 软件开发模型

	**瀑布模型
	快速原型实现模型
	从增量模型到敏捷方法
	极限编程
	行为驱动开发
	功能驱动开发
	敏捷开发模型Scrum**

**

3.1 软件项目计划

**
目的: 制定一套软件项目实施及管理的解决方法,其主要工作包括确定详细的项目实施范围、定义递交的工作成果、评估实施过程中的主要风险、制定项目实施的时间计划、成本、人力资源计划
目标: 为项目负责人提供一个框架,使之能够合理地估算软件项目开发所需的资源、经费和开发进度,并控制软件项目开发过程按此计划进行
作用:
指导软件项目实施
得到项目相关利益人的承诺
获得资源的承诺
明确项目人员的分工和工作责任
及早了解项目存在的问题和风险
获得组织在项目预算上的承诺
是软件项目实施结果估评的依据
软件项目实施过程的文档化

3.2 项目计划的内容

	目标
	策略
	流程
	标准
	质量
	进度安排
	预算
	资源
	风险
	配置管理

3.3 项目计划的方法

适合软件项目弹性计划方法主要有滚动计划方法、分层计划法、网络计划法
3.3.1 滚动计划方法
一种动态编制计划的方法, 它是按照“近细远粗”的原则制定一定时期的计划,然后按照计划的执行情况和环境变化,调整和修订未来的计划,并逐期向后移动, 把短期计划和中期计划结合起来的一种计划方法。
滚动计划方法是为了提高计划的连续性、适应性和灵活性而采用的一种新的计划编制方法,是动态平衡原理在计划工作中的应用
特点:
分而治之
逐步求精
动态规划
和谐过渡

3.3.2 WBS方法
WBS(工作分解结构)方法是一种将复杂的问题分解为简单的问题,然后根据分解的结构进行计划的方法。
WBS最低层次的项目可交付成果称为工作包
将项目分解到工作包的过程或结构应尽量做到以下的几点
某项具体的任务应该在一个工作包,且只能在一个工作包出现
WBS中某项任务的内容是其下所有WBS项的总和
一个工作包只能一个人负责,
任务的分解,尽量与实际执行方式保持一致
WBS不仅要合理,维护项目工作内容的稳定性,而且还要具有一定的适应性,能够应付无法避免的需求变更
鼓励项目团队成员积极参与与创建WBS,提高WBS的合理性和有效性
所有成果需要文档化

制定WBS计划主要有3个步骤
分解工作任务
定义各项活动/任务之间的依赖关系
安排进度和资源

3.3.4网络计划技术
网络计划方法是一种应用网络模型直观的表示软件开发众多工作之间的逻辑关系与时间关系,对完成软件工程项目所需时间、费用、资源进行求解和优化的计划方法,其基本类型是关键路线法\计划评审技术。
网络计划方法一般建立在WBS方法之上,先分解,才能优化

3.4 如何有效的完成项目计划

3.4.1 软件项目特点问题
时间紧迫性
项目独特性
软件项目的不确定性
软件项目管理可视性差
软件项目生产力的提高依赖于对软件开发人员潜力的发掘

3.4.2 软件项目的错误倾向
对计划不重视
计划片面
计划没考虑风险
计划过于粗糙

3.4.3 项目计划的原则
目标性原则
预防性原则
客观性原则
适应性原则
系统性原则

制定项目计划时的原则
以目标为导向
重视与客户的沟通
收集足够的信息
客观实用的制定计划
构建一个完整的循环过程
关注计划过程
计划有层次性

3.4.4 计划的输入
包括以下的方面
项目的目标和需求
项目可用的资源
项目干系人,即项目的相关利益人
项目设计的相关技术
质量政策和标准
组织流程
制约因素
历史数据

3.4.5 计划的流程
确定项目目标
确定项目的工作范围,
根据质量目标,可用制定质量计划
采用WBS方法,分解工作,确定各项具体的任务
针对具体的工作任务,估算工作量以及确定所需的资源
在上述的工作基础上,制定资源计划、进度计划和成本计划
在上述过程中,完成风险识别和分析,最终完成风险管理计划,包括风险应对计划
在资源加护和进度计划上,还可以完成辅助计划
在上述过程中,都需要和软件项目干系人沟通、审核,已达成一致意见
最后,项目计划获得有关方面的批准

3.5 计划各项内容的制定

3.5.1 确定项目范围
软件项目范围,简单来说就是项目做什么,有两个方面
软件产品规范,即一个软件产品应该包括哪些功能特性, 这就是产品需求文档所描述的
项目工作范围, 即为了交付具有上述功能特效的产品所必须要做的工作

项目的四大要素 --范围、资源、时间、质量
范围: 做哪些事情
质量:会做到如何出色
时间:项目需要做多长时间,或者说什么时候可用完成
资源: 项目要多少开销

3.5.3 资源计划
软件资源 可分为3类–人力、可复用的软构件或组件、软硬件环境。
对于软件项目来说,人力资源是最重要的资源,
项目资源计划重点在人力资源计划,我们要采取有效的方法进行人力资源计划
人力资源计划编制的依据:
目范围说明书
项目工作分解结构
历史项目的数据
项目组织的管理政策
活动工期估算, 软件界结束时间或进度的要求
其他制约因素

3.5.4 进度计划
进度计划的原则是: 以目标为导向,考虑进度的影响因素,留有余地,一般按不理的情况来决定,而不要过于乐观,导致项目计划的失败
制定进度计划的原则
项目的实际参与人员制定进度,
尽可能先安排难度较高的任务,后安排难度低的事
项目进度中都会设置若干个里程碑
进度表中必须留有缓冲时间
如果发现项目应交付的期限非常不合理,应和领导据理力争,请求放宽期限
当需求发生变化时, 就要重新评估进度表,从而决定是否需要进行相应的修正

3.5.5 成本计划
一般可以分为以下几类
人力资源成本
资产类成本
管理费用
项目特别费用

成本计划一般分为3个部分–成本估算、费用预算和费用控制

3.5.6 风险计划
风险对策计划是为了降低项目风险的损害而分析风险、制定风险应对策略的过程 , 包括识别风险、评估风险或量化风险,编制风险应对策略方案等过程

3.5.7 质量计划
内容包括
项目的质量目标,
质量目标分解
相关标准和规范
组织保障机制
质量属性满足的优先级和成本效益分析
项目的质量控制策略
软件产品质量特性的相互依赖关系的分析
潜在的质量问题分析
流程评审, 测试计划和测试用例评审等方面的具体要求
其他质量保证

3.6项目计划工具

常见的工具有:
project2007
OpenWorkbench
OraclePrimavera Project Planner(P3)
GanttProject
LiquidPlanner
XPlanner

4.项目估算

用一个单位反映软件规模或软件开发工作量

4.1 项目估算的挑战

复杂性和不确定性是相对过去经验而言的
复杂性和不确定性来源于软件规模

4.2 项目估算的基本内容

**
规模估算 :以代码行数、功能点数、对象点或特征点数来对软件项目所开发的产品进行估算
工作量估算:将任务分解并结合人力资源水平来估算,合理的分配研发资源和人力,获得最高的效率化
进度估算:通过任务分解、工作量估算和有效资源分配等对项目可能实施的进度给出正确的评估
风险估算:通过风险发生的概率和风险发生后带来的损失来评估风险
其他估算
**

4.3 基本估算方法

分解方法,采用分而治之的策略,对软件项目进行分解
算术模型法,通过估算模型(即带有多个变量的函数)来估算问题,如COCOMO模型、功能点分析(FPA)、特征点、对象点、Bang估算、模糊逻辑等
专家判断
比例法是比较科学的一种传统估算方法,是基于类比的估算技术

估算项目WBS每一层元素的工作量,可以采用自顶向下估算模式和自底向上估算模式

4.4 软件规模估算

**
德尔菲法
代码行估算方法
功能点分析方法
标准构件法
综合讨论
**

4.5 工作量估算

COCOMO方法:构造性成本模型方法
基本COCOMO,是一个静态单变量模型,它用于一个以估算出来的源代码行数为自变量的函数来计算函数来计算软件开发工作量
中间COCOMO:在用LOC为自变量的函数计算软件开发工作量的基础上,再用设计产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算
详细COCOMO:包括中间COCOMO的所有特性,还要考虑对软件工程中分析、设计等个步骤的影响

COCOMO方法具有估算精准、易于使用的特点,在该模型中使用的基本量有:
源指令条数(DSI),定义为代码行数,包括除煮熟行之外的全部代码
MM表示开发工作量
TDEV表示开发进度,有工作量决定

COCOMO方法重点考虑15种影响软件工作量的因素,这些因素主要分为以下4类
产品因素:包括软件可靠性、数据库规模、产品复杂性
硬件因素:包括执行时间限制、存储限制、虚拟机易变性、环境周转时间
人的因素:包括分析员能力、应用领域实际经验、程序员能力、虚拟机使用经验、程序语言使用经验
项目因素:包括现代程序设计技术、软件工具的使用、开发进度限制

4.5.2 多变量模型
受以下因素影响
组织过程的成熟度及管理水平
软件工程最佳实践被采用的程度
程序设计语言的影响
软件开发环境的状态
软件项目组的技术及经验
项目应用系统的复杂性

4.5.4RMC估算方法
RMC的工作量估算功能采用是是定量影响因子估算方法和自底向上估算模式
估算因子用来表示某个因素对完成一个任务或所需工作量的影响程度,如以下两个估算模型
用来估算模型
多因素估算模型

RMC中,定义和使用估算模型来计算某个项目工作量,可以分为3个步骤
创建估算模型、定义相关的估算因子
把估算模型的估算因子应用到WBS底层因素上,计算出他们的工作量
层层向上汇总,计算出项目WBS上层元素的工作量

4.5.5扑克牌估算方法
4.5.6 不同场景的估算方法
合同签订之前
基于WBS估算的多维验证
需求变更的工作量估计

4.6 资源估算

项目资源估算:**是指通过分析和识别各项活动的资源需求,确定出项目活动需要投入的资源种类以及资源投入的数量和资源投入的时间,从而制定出活动资源需求列表**
一般有两种情形:
**根据工作范围(WBS的分解结果),先分析多少人数是最合适的或最有效的
根据工作量和软件产品发布时间的限制,估算需要的人数**

根据WBS进行估算
由工作量和开发周期估算
资源特征描述: 这一类资源都可以用4个特征来描述:资源描述、可用性说明、需要该资源的时间及该资源被使用的持续时间。
将资源分配给任务
项目角色
人员分配
人月神话

4.7 工期估算和安排

项目活动工期估算方法常用的是专家估算法和基于历史数据的类比法

4.8 成本估算

方法: 专家评估法、经验法、比例法、WBS方法等
分解方式可以根据项目来定义: 常见的有基于模块估算、基于功能点估算、基于过程估算、基于用例估算和基于代码行估算
WBS成本估算分为自下而上、自上而下和差别估算法

5项目进度和成本 管理

其主要工作包括项目活动的标识、活动的排序、活动的资源估算、活动的成本估算、活动的工期估算、资源合理分配、制定项目完整的进度和完成计划、监控和控制项目进度及成本等相关内容

5.1 标识项目活动

把项目的工作量分解为易管理的具体任务,而每一项任务都要有明确的时间和资源的限制, 它是项目进度表编制的基础
主要两条主线考虑
软件开发生命周期
软件开发功能点

注意最后分解的项目活动应该是明确的,常用以下4中方法
逐层分解
使用模板
专家评定
滚动式规划

5.2 项目活动之间的关系

结束–开始(FS)
开始–开始(SS)
结束–结束(FF)

确定活动之间的关系后,就可以对活动进行排序,项目网络图是显示活动顺序的首选方法
创建项目网络图通常有两种方法:前导图法和箭线图法

5.3 网络模型的遍历 :正向遍历和反向遍历

5.4 里程碑

里程碑一般是项目中完成阶段性工作的标志,标志着上一个阶段结束、下一个阶段开始,将一个过程性的任务用一个结论性的标志来描述,明确任务的起止点。一系列的起止点就构成了引导整个项目进展的里程碑。里程碑定义了当前阶段完成的标志和下一个新阶段启动的条件或前提,,并具有以下的特征
里程碑的层次性,在一个父里程碑的下一个层次中定义子里程碑
不同类型的项目,里程碑可能不同
不同规模的里程碑数量不同,里程碑可以合并或分解
里程碑是 一个以目标为导向的关键检查点,表明为达到特点的目标需要完成的一系列的任务或活动

5.4.2 建立里程碑的方法
设立合理的里程碑检查点
制定里程碑的完成目标
明确里程碑的验证标准
确定里程碑的利益相关人
表示里程碑的进度百分比

5.4.3 管理里程碑
主要注意以下方面
重点关注
提前定期检查
及时总结

5.5.进度计划编制

制定软件项目进度计划,一般需要分为2个阶段进行
在软件产品需求范围确定之前的初步进度时间表
在软件产品需求范围确定之后的详细进度时间表

进度计划编制一般包括以下方面
项目具体活动及相互依赖关系
每一具体活动的计划开始日期和期望完成日期
活动负责人
资源的安排
备用的进度计划
进度风险估计、

5.5.2 进度编制策略
重视与客户的沟通
进度计划最好按需制定
项目组成员共同参与制定项目进度计划
任务分解与并行化
任务、人力资源、时间分配要与进度相协调
项目的工作安排一定要责任到人
工作量分布要合理
充分利用一些历史数据
考虑相关风险,计划意外事故换成时间
制定和使用进度计划检查清单

5.5.3 进度编制方法
常用的制定进度计划的方法有关键路径法(CPM)、计划评审技术(PERT)法、甘特图法(GANNT)和表格法

5.5.4 审查、变更进度表
软件项目进度计划审查可以按照以下几个步骤进行
进度计划的单元模块评审
进度计划的完整评审
修改项目进度计划
批准项目进度计划

5.6 进度和成本控制

5.6.1 影响软件项目进度的因素
从进度计划本身分析
从进度控制角度考虑
从团队协调方面考虑
从项目管理三角关系(范围、质量、成本)考虑

5.6.2 软件项目进度控制
项目阶段情况汇报与计划
定期和不定期的项目进度检查
制定适当的进度控制流程
调整各种项目目标之间的平衡

5.6.3 影响软件项目成本的因素
项目的质量对成本的影响
项目管理水平对成本的影响
人力资源对成本的影响

6 软件质量管理

6.1 质量管理概述

	**软件质量控制(SQC)是科学的策略过程状态的基本的方法
	软件质量保证(SQA)则是过程和程序的灿烂与指南的集合
	软件质量管理(SQM)才是操作的哲学,建立质量文化和管理思想**

软件质量的4种不同的管理水平
检查、保证、预防、完美

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值