当前课程知识点:软件理论与工程 >  第6章 项目管理 >  6.2 软件过程管理 >  6.2 软件过程管理

返回《软件理论与工程》慕课在线视频课程列表

6.2 软件过程管理在线视频

下一节:6.3 软件配置管理

返回《软件理论与工程》慕课在线视频列表

6.2 软件过程管理课程教案、知识点、字幕

大家好

那我们现在继续开始

软件理论与工程的第六章的讲解

我们今天讲第二讲

软件过程管理

我是主讲老师 高广宇

对于软件过程管理

我们首先

关注这么一个问题

对于过程管理

它其实是为了干什么

或者它关注的是什么点

我们首先回答一个问题

项目 为什么有的时候会被延误

其实这就关心到

我们整个过程管理的一个问题

项目为什么会被延误

有的时候

是因为一些不切实际的项目最后期限

这个期限当然是由

项目开发小组以外的人员所制定的

第二个

也有可能是客户需求

发生了一些变更

而这些变更

并没有在项目变更进度表上反映出来

当然也没有被传达到需求工程师

系统设计人员和系统开发人员

以及各个环节去

第三个也有可能

是对完成工作所需的工作量

或者资源的一个数量

前期估计不足

还有 包括项目开始时

没有考虑到

可预测的

或者是不可预测的一些风险

以及

包括出现了一些未曾考虑到的技术难题

人力问题以及甚至是交流不畅

等等一系列的问题

所以 就会导致项目须延误

那我们怎么样能够避免

上面提到的所有这些原因

所产生的项目延误

实际上

这有赖于我们要对项目进行

进度管理或者过程管理

那对于过程控制问题

当然 是我们值得去重视的一个现象

也是需要我们值得去认真关注的一个问题

那对于进度安排或者进度的一个管理

它有一些原则

比如这里面我们列了大概六类原则

第一类 是划分原则

我们要把整个系统

整个任务

去做完整的 科学的划分

去定义不同的一个任务

第二个 是相互的依赖性

我们要去

明确任务之间的相互关系

搞清楚它们之间的依赖关系

拓扑关系

从而能够知道

我们在整个项目开发的过程中

哪个在前

哪个在后

哪个是依赖于哪一个

这样才能保证我们更加科学的

按时按质按量的去完成我们的一个项目

第三个 是工作量的一个确认

我们要确保资源是可用的

要根据工作量去提前分配和资源

还有第四个

我们要去确定责任

我们要指定责任人

指定负责人

明确任务

还有

我们要定义输出结果

因为每一项任务

它必须要有输出结果

这样才能去校验任务的一个完成情况

也能够去梳理清楚不同的一些相互依赖关系

当然 最后我们还要去确定里程碑

就是确定你一些所谓的milestons

我们要对质量进行评审

这是我们基本的一个安排

但实际上

对于软件开发过程中工作量的分配来说

我们前期的一些活动看似不重要

但是实际上

它非常的重要

它前期的一些工作能占到40%到50%

包括跟客户的一些交流

也就包括前面我们第二章讲到

像需求分析的一些过程

一些分析设计的一些过程

真正的就是说在编码和代码生成

以及包括测试安装

其实它反而占的比重 会比前期活动少

当然它整体上占的比重还是蛮大的

而且尤其是包括测试和安装

也是非常重要的一个环节

我们在进行过程管理的时候

我们还需要定义任务集

也就包括 我们要确定项目的类型

我们要评估所需的严格程度

我们要去确定适用的标准

我们还需要去选择适当的软件工程任务

那任务集

我们当然也要去细化

去精益求精

比如这里面就像图示里面提到的

我们概念范围确定的项目的一个整体范围

我们首先要去定义一个任务

我们要去确定需求

我们需要去确定所需要的一些输入 输出

控制和驱动应用程序的输入事件以及等等

包括像它创建的范围 定义等等

如图所示

我们要去精细化地 把它给呈现出来

从而才能够有效的去划分任务

明确责任人

寻找依赖关系等等

所以精确的层次还是蛮细的

这是任务集 要去求精

我们把任务集求精了之后

我们要去定义任务的一个网络

也就是说

任务与任务之间的一个依赖关系

拓朴关系

从而能够驱动我们去制定一个

更加科学和合理的任务进度安排

因为有依赖关系

肯定在我们的任务进度上

是有一个先后顺序的

这样才能确保我们顺利的

高效地去完成我们所有的任务

有了网络拓朴结构之后

当然了我们还需要通过一些

依赖前面的网络依赖关系拓朴结构

以时序图的方式去明确到不同的任务

不同的时间段

它的一个起始和结束节点

以及它的一些重叠关系等等

这是我们常用的

像我们平时用的一些甘特图等等

就能够有效来表示所谓的时序图模型

当然我们也可以

通过对我们的一些需求规格说明

去使用自动化的一些工具

来自动导出一些时序图

现在也有一些工具

大家可以自己去找一下

当然大部分时候

我们可能是手动的自己去画一些时序图

对一些比较复杂的需求规格说明

可能通过一些自动化的工具

得到一个初始的时序

再人为去进行调整

也是比较合适的一个方式

那我们在确定一个时序图方式之后

我们还需要去对进度进行跟踪

这也是进度管理一个非常重要的环节

就包括了我们要去定期的举行

项目的一个状态会议

由项目团队中的各个成员

分别来报告进度和存在的问题

然后评估在软件工程过程中

我们进行的所有的评审的结果

我们还需要去判断正式的项目的里程碑

去确定它是否能够在预定时间内完成

还需要去比较项目表

也需要不断的去跟开发人员

进行非正式那些会谈

听取他们的一些意见

和以及可能会出现的一些问题

当然我们还需要去通过挣值分析

来定量地评估项目的一个进展

一个面向对象项目的一个进展来说

通常我们又包括说 技术里程碑

比如说 我们面向对象分析的一个完成阶段

我们面向对象的一个设计完成

这些都是我们前面提到的一个里程碑

有了这些里程碑之后

就是我们完成类似于一个阶段性的任务了

既能够对前期的工作做一个很好的总结

又能为后面的工作

基于前面的工作做一个重新的梳理

甚至一些调整

这是包括我们面向对象程序设计完成

和面向对象测试开始

这都是技术里程碑的一个实践

但前面提到的我们还需要去进行一些

比较科学的 客观的一些数值分析的方式

来评估我们项目进度

其中一个有效的方式

就是所谓的挣值分析

什么叫挣值

它是对项目进展的一种度量值

一种测量方式

它能够让我们采用定量分析的方法

而不是直接依靠主观感觉

来评估我们一个项目到底完成了多少

所以 我们后面讲一讲

挣值到底怎么样计算

在进行挣值分析的时候

我们需要为进度表中的每一个工作任务

确定它预计工作的一个预算成本

英文叫 budgeted cost of work scheduled BCWS

它是指我们的一个工作任务或者一个项目

我们计划的工作量

所有工作任务的计划工作量加起来

就可以得到我们整个项目

整个工作的一个预算

也就是说BAC

那也就对应到这里面的累加公式

所有的BCWS给累加起来

接下来

我们要计算已经完成工作的一个预算成本

也就是说BCWP

那个叫BCWS 这个叫BCWP

BCWP是已经完成了这部分工作

它的一个成本的预算

那BCWS和BCWP的不同点在于

前者表示计划要完成工作的一个预算

后者表示实际完成的工作预算

我们实际上通过它俩去做一个对比分析

就能得到我们的预算的精准度

或者也能够指导我们

就前面提到的

我们通过一些里程碑的实践

可以去指导我们后期的一些进度的估算

所以给定BCWS BAC和BCWP的值

我们就可以计算出重要的一些项目进展指标

比如说 我们把BCWP

也就已经完成工作预算成本 除以

我们计划或者预算完成工作的成本

我们就能得到我们整个进度表的一个执行指标

就我们实际完成的情况

和我们计划的情况做一个比值

同样 我们把BCWP和BCWS

做一个差值 也能得到

我们实际的进度

和我们估算的进度之间的一个偏差

也就是进度表的偏差

SPI其实是效率指标

它表示的项目使用预定资源的一个效率

当然是很有效的一个描述指标了

同时 在计算挣值的时候

我们还需要去计算预定完成的百分比

那也就是说

我的一个BCWS除以一个BAC

它表示是在时间点t

应该完成工作的一个百分比的一个值

还有一个

用BCWP去除以BAC

因为BCWP是实际完成的一个成本

而是一个进度估算

所以 它代表的是我们实际的一个完成百分比

它表示 在特定的时间点t

实际完成工作的一个百分比值

所以 已完成工作的实际成本ACWP

是指在项目进度表中 某个时间点

已经完成了工作任务所用的工作量之和

基于这个值我们就可以计算

成本执行指标CPI

也就是拿BCWP 已经完成的工作量

除以我们已经完成工作的实际成本

就得到我们实际的执行的一个指标

当然我们也可以得到它的成本偏差 CV

它等于BCWP减去ACWP

这个就是我们在整个项目进度管理中的

一些方法和内容

这一节 我们今天就讲到这里

好 谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

6.2 软件过程管理笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。