第16章软件项目管理与过程改进-v2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题:
如何根据开发组织、软件项目和开发人员的特点来组建项 目团队
如何采取有效的措施来加强和促进人员之间的交流、沟通 和合作
如何提高团队的合作精神
2017/6/14
19
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理 • 纪律和激励机制 任务: 制定和实施纪律约束团体,通过激励机制激发人员的激情, 严格的纪律,饱满的激情 问题: 如何制定有效的纪律确保项目得以顺利地实施 如何制定措施激励员工的积极性和热情 ……
2017/6/14
25
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (2) L2可重复级 建立了基本的项目管理体系 制定了基本的软件过程管理和控制措施 制定了必要的过程纪律 可重复以前类似项目所取得的成功
2017/6/14
26
缺陷的预防 过程变更管理
组织级过程定义 集中的软件管理 组间协调
软件质量管理 技术更新管理
2017/6/14
31
2017/6/14
ቤተ መጻሕፍቲ ባይዱ
15
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理
• 软件质量保证 任务: 在软件项目实施过程中为软件产品的质量提供某种可视 性,知道 哪些地方有质量问题,便于改进方法和措施,提高软件产品的质 量 问题: 高质量的软件体现在哪些方面 如何保证软件产品质量,发现软件的质量问题 如何制定软件产品质量保证计划 如何有效落实和实施计划,提供工具支持软件质量保证……
2017/6/14
20
16.1 软件项目管理
管理在软件项目中的重要性
70%的软件项目由于管理不善导致难以控制进度、成本和质量, 三分之一左右的软件项目在时间和成本上超出额定限度 125% 以上
管理是影响软件项目成功实施的全局性因素,而技术仅仅是 局部因素
如果软件开发组织不能对软件项目进行有效管理,就难以充 分发挥软件开发方法和工具的潜力,也无法高效地开发出高 质量的软件产品
2017/6/14
4
16.1 软件项目管理
软件项目实施方法
• 工程化手段 过程 文档 质量 工具 评审 抽象 规范
2017/6/14
5
16.1 软件项目管理
软件项目管理的内容
管理软件过程:过程定义、软件度量、制定计划、跟踪过 程、风险控制
管理软件产品:明确产品、规范文档、质量保证、配置管 理、管理变化、风险控制
2017/6/14
17
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理 • 软件项目团队 • 纪律激励机制
2017/6/14
18
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理
• 软件项目团队 任务:
确定团体的结构、明确人员的角色和任务、加强人员间的 交流与合作,结构合理、任务明确、团结协作、交流顺畅
管理项目人员:组建有效和高效团队、调动团队成员的积 极性、团队建设与沟通、风险控制
2017/6/14
6
16.1 软件项目管理
软件项目管理的内容
2017/6/14
7
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 过程定义 • 软件度量 • 项目计划 • 项目跟踪 • 风险管理
2017/6/14
2017/6/14
29
16.2 软件过程改进
• CMM(Capability Maturity Model) 关键过程域(key process area):描述软件过程的属性,通 过完成一组相互关联的活动,实现建立过程能力至关重要的 一组目标。 关键实践(key practices):对关键过程域的有效实施和制度 化起重要作用的基础设施和活动。描述做什么。
软件项目管理的内容
(1)过程管理 • 软件度量
对软件项目的过程、产品、资源的属性的宣描述,如软件项 目的规模、成本、工作量、质量等 目的是为了对软件项目进行更好的管理,如制定计划 、质量 保证等 问题:需要对哪些方面进行度量
如何度量 如何将度量的结果指导软件项目的管理 有哪些工具和模型可辅助进行软件度量……
2017/6/14
10
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 项目计划 :制定和文档化软件项目计划,确保软件开发 计划是科学和符合实际的
问题: 要对软件开发过程中哪些方面制定计划? 制定软件项目计划的基础和依据是什么? 要考虑哪些方面的问题? 如何确保计划是科学的和可行的?(软件度量) 如何描述计划? 利用哪些工具可辅助计划的制定?
2017/6/14
27
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (4) L4已管理级 重视软件度量、注意收集软件过程和制品质量的度量值 对软件过程和制品有定量的理解和控制
2017/6/14
28
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (4) L5优化级 能够有效地确定软件过程的优势和薄弱环节 重视并利用软件开发和维护过程中的反馈信息进行过程和制 品质量的定量控制 能够采用的思想、方法和技术改进软件过程、提高组织的软 件过程能力。
2017/6/14
30
16.2 软件过程改进
表16.26 CMM 的能力成熟度级别及关键过程域
成熟度等级
过程域
L2可重复级 需求管理 项目跟踪和监督 软件质量保证
软件项目计划 分包合同管理 软件配置管理
L3己定义级
L4己管理级 L5优化级
组织级过程焦点 培训大纲 软件制品工程 同行评审 定量的过程管理
2017/6/14
11
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 项目跟踪
跟踪和及时调整项目开发计划,提供项目情况的可视性,保 证计划的适时调整 问题: 要对哪些方面进行跟踪 如何跟踪 当项目不能按计划实施,如何调整计划 当跟踪发现问题时如何处理 如何提供工具辅助对软件项目进行跟踪……
2017/6/14
22
16.2 软件过程改进
• CMM(Capability Maturity Model) CMM模型是一个概念模型,模型框架和表示不能随意改变,但 模型的解释和实现有一定弹性。 CMM源于大型软件开发实践,反映了软件过程评估和软件过程 改进的需要,是一个有效的大型软件开发、维护过程模型。 CMM的应用进一步规范、指导软件开发组织的自身建设,使软 件开发组织向有纪律的、高效的成熟状态转变。 CMM为社会评价软件开发组织的能力成熟度提供了标准和依据。 CMM涵盖了软件开发和维护过程的全部关键步骤和环节。
8
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 过程定义
任务:定义、文档化软件开发过程、明确软件开发活动,得 到一个良好定义、全面、灵活、简洁和可供剪裁的软件开发 过程 问题:如何定义
如何文档化 如何确保有效性、简洁性 如何根据项目的特点剪裁过程
2017/6/14
9
16.1 软件项目管理
第16章 软件项目管理与过程改进
16.1 软件项目管理 16.2 软件过程改进
2017/6/14
1
16.1 软件项目管理
软件项目管理的概念
• 项目:为创建一个唯一的产品或者提供唯一的服务而进行 的努力
• 项目的特点: 目标性:获得预期的结果 进度性:在限定的期间完成 约束性:基于有限的资源 多方性:涉及不同人和组织 独立性:项目间无重复性 不确定性:项目的实施及其结果不确定
2017/6/14
12
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 风险管理: 对软件开发过程中各种风险进行分析、预测、 评估、监控的过程
问题: 什么是软件开发风险 可能有哪些风险 如何客观地预测风险 如何评估风险带来的影响 如何避免和消除风险 如何提供工具支持风险分析……
2017/6/14
2017/6/14
2
16.1 软件项目管理
软件项目管理的概念
• 软件项目的特点: 对象:作为逻辑产品的软件 过程:不是以制造为主,也没有重复生产过程 属性:项目实施基本要素难以度量和估算,如成本、进度、 质量 复杂性:作为逻辑产品的复杂性非常高 易变性:软件需求通常难以确定且经常变化
2017/6/14
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (3) L3已定义级 将管理和工程两方面 的软件过程标准化、文档化和制度化 剪建立软件过程标准 所有的软件项目都使用自己的软件过程标准或根据项目需要 剪裁一个子集来开发和维护软件
2017/6/14
23
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 L1初始级 L2可重复级 L3己定义级 L4己管理级 L5优化级
2017/6/14
24
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (1) L1初始级 软件过程无序、混乱 软件开发过程不稳定 成功取决于个人或者小组的努力 无法复制成功:能力是个人特征而非机构特征
13
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理 • 软件需求管理 • 软件质量保证 • 软件配置管理 • 风险管理
2017/6/14
14
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理 • 软件需求管理 任务: 获取、文档化和评审用户需求,并对用户需求的变更进行 控制和管理 问题: 如何获取需求 如何撰写软件需求规格说明书 如何对需求进行评审以发现需求文档中的问题 如何控制需求的变更,提供工具支持需求管理… …
历史上由于管理不善而导致软件项目失败的例子比比皆是, 如美国国税局的税收现代化系统、美国银行的MasterNet系统
2017/6/14
21
16.2 软件过程改进
• ISO 9001 软件开发的质量体系 关注软件质量的保证 • CMM(Capability Maturity Model) 持续过程能力的改进和提高 软件开发能力的评估、评价和改进
3
16.1 软件项目管理
软件项目管理的概念
• 软件项目管理 对软件项目开发过程中所涉及的过程、人员、成本和进
度等要素进行度量、分析、规划、组织和控制的过程,以确 保软件项目按照预定的进度、质量顺利完成 • 软件项目管理的对象
过程管理:怎么做 (How) 人员管理:谁来做 (Who) 产品管理:结果 (What)
2017/6/14
16
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理
• 软件配置管理 任务:对软件产品进行标识、存储、更动和发放,记录、 报告其状态,验证软件产品的正确性和一致性,并对上述 工作的审计的过程 问题:如何标识软件产品
如何描述软件产品 如何对软件产品的版本进行控制 如何控制软件产品的变更 如何制定软件配置计划 如何利用工具支持软件配置活动……
如何根据开发组织、软件项目和开发人员的特点来组建项 目团队
如何采取有效的措施来加强和促进人员之间的交流、沟通 和合作
如何提高团队的合作精神
2017/6/14
19
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理 • 纪律和激励机制 任务: 制定和实施纪律约束团体,通过激励机制激发人员的激情, 严格的纪律,饱满的激情 问题: 如何制定有效的纪律确保项目得以顺利地实施 如何制定措施激励员工的积极性和热情 ……
2017/6/14
25
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (2) L2可重复级 建立了基本的项目管理体系 制定了基本的软件过程管理和控制措施 制定了必要的过程纪律 可重复以前类似项目所取得的成功
2017/6/14
26
缺陷的预防 过程变更管理
组织级过程定义 集中的软件管理 组间协调
软件质量管理 技术更新管理
2017/6/14
31
2017/6/14
ቤተ መጻሕፍቲ ባይዱ
15
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理
• 软件质量保证 任务: 在软件项目实施过程中为软件产品的质量提供某种可视 性,知道 哪些地方有质量问题,便于改进方法和措施,提高软件产品的质 量 问题: 高质量的软件体现在哪些方面 如何保证软件产品质量,发现软件的质量问题 如何制定软件产品质量保证计划 如何有效落实和实施计划,提供工具支持软件质量保证……
2017/6/14
20
16.1 软件项目管理
管理在软件项目中的重要性
70%的软件项目由于管理不善导致难以控制进度、成本和质量, 三分之一左右的软件项目在时间和成本上超出额定限度 125% 以上
管理是影响软件项目成功实施的全局性因素,而技术仅仅是 局部因素
如果软件开发组织不能对软件项目进行有效管理,就难以充 分发挥软件开发方法和工具的潜力,也无法高效地开发出高 质量的软件产品
2017/6/14
4
16.1 软件项目管理
软件项目实施方法
• 工程化手段 过程 文档 质量 工具 评审 抽象 规范
2017/6/14
5
16.1 软件项目管理
软件项目管理的内容
管理软件过程:过程定义、软件度量、制定计划、跟踪过 程、风险控制
管理软件产品:明确产品、规范文档、质量保证、配置管 理、管理变化、风险控制
2017/6/14
17
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理 • 软件项目团队 • 纪律激励机制
2017/6/14
18
16.1 软件项目管理
软件项目管理的内容
(3) 人员管理
• 软件项目团队 任务:
确定团体的结构、明确人员的角色和任务、加强人员间的 交流与合作,结构合理、任务明确、团结协作、交流顺畅
管理项目人员:组建有效和高效团队、调动团队成员的积 极性、团队建设与沟通、风险控制
2017/6/14
6
16.1 软件项目管理
软件项目管理的内容
2017/6/14
7
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 过程定义 • 软件度量 • 项目计划 • 项目跟踪 • 风险管理
2017/6/14
2017/6/14
29
16.2 软件过程改进
• CMM(Capability Maturity Model) 关键过程域(key process area):描述软件过程的属性,通 过完成一组相互关联的活动,实现建立过程能力至关重要的 一组目标。 关键实践(key practices):对关键过程域的有效实施和制度 化起重要作用的基础设施和活动。描述做什么。
软件项目管理的内容
(1)过程管理 • 软件度量
对软件项目的过程、产品、资源的属性的宣描述,如软件项 目的规模、成本、工作量、质量等 目的是为了对软件项目进行更好的管理,如制定计划 、质量 保证等 问题:需要对哪些方面进行度量
如何度量 如何将度量的结果指导软件项目的管理 有哪些工具和模型可辅助进行软件度量……
2017/6/14
10
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 项目计划 :制定和文档化软件项目计划,确保软件开发 计划是科学和符合实际的
问题: 要对软件开发过程中哪些方面制定计划? 制定软件项目计划的基础和依据是什么? 要考虑哪些方面的问题? 如何确保计划是科学的和可行的?(软件度量) 如何描述计划? 利用哪些工具可辅助计划的制定?
2017/6/14
27
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (4) L4已管理级 重视软件度量、注意收集软件过程和制品质量的度量值 对软件过程和制品有定量的理解和控制
2017/6/14
28
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (4) L5优化级 能够有效地确定软件过程的优势和薄弱环节 重视并利用软件开发和维护过程中的反馈信息进行过程和制 品质量的定量控制 能够采用的思想、方法和技术改进软件过程、提高组织的软 件过程能力。
2017/6/14
30
16.2 软件过程改进
表16.26 CMM 的能力成熟度级别及关键过程域
成熟度等级
过程域
L2可重复级 需求管理 项目跟踪和监督 软件质量保证
软件项目计划 分包合同管理 软件配置管理
L3己定义级
L4己管理级 L5优化级
组织级过程焦点 培训大纲 软件制品工程 同行评审 定量的过程管理
2017/6/14
11
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 项目跟踪
跟踪和及时调整项目开发计划,提供项目情况的可视性,保 证计划的适时调整 问题: 要对哪些方面进行跟踪 如何跟踪 当项目不能按计划实施,如何调整计划 当跟踪发现问题时如何处理 如何提供工具辅助对软件项目进行跟踪……
2017/6/14
22
16.2 软件过程改进
• CMM(Capability Maturity Model) CMM模型是一个概念模型,模型框架和表示不能随意改变,但 模型的解释和实现有一定弹性。 CMM源于大型软件开发实践,反映了软件过程评估和软件过程 改进的需要,是一个有效的大型软件开发、维护过程模型。 CMM的应用进一步规范、指导软件开发组织的自身建设,使软 件开发组织向有纪律的、高效的成熟状态转变。 CMM为社会评价软件开发组织的能力成熟度提供了标准和依据。 CMM涵盖了软件开发和维护过程的全部关键步骤和环节。
8
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 过程定义
任务:定义、文档化软件开发过程、明确软件开发活动,得 到一个良好定义、全面、灵活、简洁和可供剪裁的软件开发 过程 问题:如何定义
如何文档化 如何确保有效性、简洁性 如何根据项目的特点剪裁过程
2017/6/14
9
16.1 软件项目管理
第16章 软件项目管理与过程改进
16.1 软件项目管理 16.2 软件过程改进
2017/6/14
1
16.1 软件项目管理
软件项目管理的概念
• 项目:为创建一个唯一的产品或者提供唯一的服务而进行 的努力
• 项目的特点: 目标性:获得预期的结果 进度性:在限定的期间完成 约束性:基于有限的资源 多方性:涉及不同人和组织 独立性:项目间无重复性 不确定性:项目的实施及其结果不确定
2017/6/14
12
16.1 软件项目管理
软件项目管理的内容
(1)过程管理 • 风险管理: 对软件开发过程中各种风险进行分析、预测、 评估、监控的过程
问题: 什么是软件开发风险 可能有哪些风险 如何客观地预测风险 如何评估风险带来的影响 如何避免和消除风险 如何提供工具支持风险分析……
2017/6/14
2017/6/14
2
16.1 软件项目管理
软件项目管理的概念
• 软件项目的特点: 对象:作为逻辑产品的软件 过程:不是以制造为主,也没有重复生产过程 属性:项目实施基本要素难以度量和估算,如成本、进度、 质量 复杂性:作为逻辑产品的复杂性非常高 易变性:软件需求通常难以确定且经常变化
2017/6/14
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (3) L3已定义级 将管理和工程两方面 的软件过程标准化、文档化和制度化 剪建立软件过程标准 所有的软件项目都使用自己的软件过程标准或根据项目需要 剪裁一个子集来开发和维护软件
2017/6/14
23
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 L1初始级 L2可重复级 L3己定义级 L4己管理级 L5优化级
2017/6/14
24
16.2 软件过程改进
• CMM(Capability Maturity Model) 定义了5个不同的能力成熟度级别 (1) L1初始级 软件过程无序、混乱 软件开发过程不稳定 成功取决于个人或者小组的努力 无法复制成功:能力是个人特征而非机构特征
13
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理 • 软件需求管理 • 软件质量保证 • 软件配置管理 • 风险管理
2017/6/14
14
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理 • 软件需求管理 任务: 获取、文档化和评审用户需求,并对用户需求的变更进行 控制和管理 问题: 如何获取需求 如何撰写软件需求规格说明书 如何对需求进行评审以发现需求文档中的问题 如何控制需求的变更,提供工具支持需求管理… …
历史上由于管理不善而导致软件项目失败的例子比比皆是, 如美国国税局的税收现代化系统、美国银行的MasterNet系统
2017/6/14
21
16.2 软件过程改进
• ISO 9001 软件开发的质量体系 关注软件质量的保证 • CMM(Capability Maturity Model) 持续过程能力的改进和提高 软件开发能力的评估、评价和改进
3
16.1 软件项目管理
软件项目管理的概念
• 软件项目管理 对软件项目开发过程中所涉及的过程、人员、成本和进
度等要素进行度量、分析、规划、组织和控制的过程,以确 保软件项目按照预定的进度、质量顺利完成 • 软件项目管理的对象
过程管理:怎么做 (How) 人员管理:谁来做 (Who) 产品管理:结果 (What)
2017/6/14
16
16.1 软件项目管理
软件项目管理的内容
(2) 产品管理
• 软件配置管理 任务:对软件产品进行标识、存储、更动和发放,记录、 报告其状态,验证软件产品的正确性和一致性,并对上述 工作的审计的过程 问题:如何标识软件产品
如何描述软件产品 如何对软件产品的版本进行控制 如何控制软件产品的变更 如何制定软件配置计划 如何利用工具支持软件配置活动……