软件项目是一种特殊的项目,她所创造的唯一产品或服务是逻辑载体,没有具体的形状和尺寸,只有逻辑的规模和运行的效果。
启动过程组:
主要确定一个项目或一个阶段可以开始了,并要求着手实行;定义和授权项目或者项目的某个阶段
计划过程组:
为完成项目所要达到的商业要求而进行的实际可行的工作计划的设计、维护,确保实现项目的既定商业目标。计划基准是后面跟踪和监控的基础。
执行过程组:
根据制定的基准计划,协调人力和其他资源,执行项目管理计划或相关的子计划。执行过程存在两个方面的输入,一个是根据原来的基准来执行,另一个是根据监控中发现的变更来执行。主要变更必须在整体变更控制得到批准后才能够执行。
控制过程组:
通过监督和检测过程确保项目达到目标,必要时采取一些修正措施。集成变更控制是一个重要的过程。
收尾过程组:
去的项目或阶段的正式认可并且有序地结束该项目或阶段。向客户提交相关产品,发布相关的结束报告,更新组织过程资产并释放资源。
各个过程通过其结果进行连接,一个过程组的结果或输出是另一个过程组的输入。其中,计划过程组、执行过程组和控制过程组是核心管理过程组。
明确项目的目标、时间表、项目使用的资源和经费,而且得到项目发起人的认可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4qwFacL-1652110626063)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509174335486.png)]
在立项阶段,产品负责人进行自造-购买决策,确定待开发产品的哪些部分应当采购、外包开发或自主研发。
流程如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gkhdn1sC-1652110626064)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509174623462.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yrSNeH2b-1652110626065)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509174650230.png)]
我们来梳理下甲方和乙方两者各自的区别:
甲方(需方) —— 提供需求方,一般是企业,作为客户。
乙方(供方) —— 满足需求方,一般是软件开发商。
甲方(需方) —— 招标书定义,供方选择,合同签署。
乙方(供方) —— 项目分析,竞标,合同签署。
项目章程,也可以称为是授权书。它包含以下两个部分:
(1) 一份正式批准项目并且授权项目经理在项目活动中使用组织资源的文件。
(2) 确认项目存在的文件,包括对项目的确认、对项目经历的授权和项目目标的概述等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0skzalEG-1652110626068)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509175310809.png)]
生存期的模型的分类有以下四种,分别是:
选择生存期模型的步骤如下:
①熟悉各种生存期模型→②评审、分析项目的特性→③选择适合项目的生存期模型→④表示生存期模型与项目不一致地方,并进行裁减。
提前进行大量计划工作,然后一次性执行;执行是一个连续的过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTxGdXfO-1652110626073)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509180419153.png)]
只能从上往下,不能返回。编码阶段不能修改需求和设计。
管理方便,只需要严格控制项目的执行顺序。
项目的可变性无法适应瀑布模型的要求。
一般对需求很明确,且方案也很明确的项目使用,短期项目比较适应。
V模型是瀑布模型的一个变种,但强调测试与开发的利益关系,对系统性能、安全等有严格要求。
运行对未完成的工作进行反馈,从而改进和修改该工作
通过构建不断构造原型来设计方案,最后确定了项目需求和系统设计。
可以应对需求的变化
适应于需求不明确,复杂度高,变更频繁的项目b
不同时开发项目需求,而是将需求分段,使其成为一系列增量产品,每一个增量可以分别实施。
每一个增量都是一个可交付成果,第一个往往是实现基本需求的核心产品。
①需求基本明确,但也有可能发生变化;②对于市场和用户把握需要逐步了解;③系统改造需要一步步实施。
渐进式阶段模型是一种特殊的增量型生存期模型,每一个增量就是一个比较完整的系统
核心是迭代和增量
一个迭代就是一个Sprint(冲刺),Sprint的周期被限制在一个月左右。Sprint是Scrum的核心。
软件需求是值用户对软件的功能和性能要求,就是用户希望软件能做什么事情,完成什么功能,达到什么样的性能。软件需求的层次有以下三个方面的内容:
业务需求→用户需求→功能需求
可以保证软件需求以一种形式描述一个产品应该具有的功能、性能等。需求过程的一个重要活动是系统需求,并建立相应的文档,好处是在开发后期和整个维护阶段的返工的工作量可以大大减少。
软件需求管理过程包含两个方面的内容,分别是需求开发和需求管理。
需求开发的路径是:需求获取→需求分析→需求规格编写→需求验证;而需求管理指的是:需求变更。
软件的需求具有模糊性、不确定性、变化性和主观性的特点。
首先我们要先分析用户的要求,分析完成之后,那么我们就要去获取这个用户的要求,并让软件去实现它。随之,软件就得到了软件需求。如下图所示:
任务是借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统”做什么“的问题
需求分析是为最终用户所看到的系统建立一个概念模型,是对需求的抽象描述。 如下图所示:
需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书。
在确定了需求之后,我们需要进行以下验证:
是软件项目一个突出的特点,也是软件项目最为普遍的一个特点,是导致项目失败的主要原因之一
在软件的某些周期,我们总会遇到需求变更的问题。那对于需求变更来说,主要需要了解以下内容。
需求变更管理的主要工作有:
(SCCB)
原型分析方法是一种需求模型建模方法,需要经过三个步骤,分别是需求分析→原型方法→原型评价。如下图所示:
(DFD)
(DD)
E-R
图
现在,我们来看一个基于功能列表的实例。如下图所示:
敏捷分析法包含以下三个部分,分别是:
用户故事模板
As a,
I want,
So that.
123
用户故事常常写在卡片上,然后将其部署到墙上,便于讨论。
评价用户故事
用户故事迭代优先级
第一组:
①must have;②should have;③could
第二组:
have/want to have
(1)定义
(2)WBS和工作包
WBS
,即 Work Breakdown Structure
,表示任务分解结构。WBS
是任务分解的结果。WBS
最低层次的可交付结果,是 WBS
的最小元素。(3)WBS和工作包的区别
WBS
和工作包的区别如下:
WBS
是对项目由粗到细的分解过程;WBS
是面向交互结果的;WBS
组织定义了整个项目范围;WBS
中最低层次的可交付成果(如下图所示);任务分解主要有两种形式,分别为:
提纲式WSB
将任务分解的结果以清单的表述形式进行层层分解的方式
类似于下方这样:
1 变化计数器
1.1 比较两个版本的程序
1.1.1
1.1.2
1.1.3
1.2 找出修改后的程序中增加和删除的代码行
1.2.1
1.2.2
1.3 统计修改后的程序中增加和删除的代码行数
1.3.1
1.3.2
图表形式WBS(组织机构图式WBS)
任务分解的过程要经过三个过程,输入→分解→ WBS
。有以下步骤:
任务分解的过程有两大标准,分别是:
任务分解有4种方法,分别是:
WBS
作为参考。Work package
必须有一个提交物;LOC
(Line of Code) → 表示源代码长度的测量;FP
(Function Point) → 用系统的功能数量来测量;成本单位通常是各种货币单位,比如:
直接成本: 与具体项目相关的成本(如:人员工资、材料费、外包外购成本等)
间接成本: 可以分摊到各个具体项目中的成本(如:培训、房租水电、员工福利、市场费用、管理费、其他等等)
与开发的项目具体直接相关的成本(如人员的工资、材料费、外包外购成本等)
不能归属于一个具体的项目,是企业的运营成本,可以分摊到各个具体项目中的成本(如房租、水电、员工福利、税收等)
需求、资源要求、资源消耗率、进度规划、历史项目数据、学习曲线等
采用一定的估算方法进行,包含直接成本和间接成本的估算。
以简略或详细的形式表示,对项目所需的所有资源的成本均需要加以估计。
代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。
从处理逻辑的角度出发, UFC
可以分为 5
个功能计数项。分别是:
接下来我们将依据这 5
个功能计数项进行详细细述。
1)外部输入(External Inputs:EI)
给软件提供面向应用的数据的项(如屏幕、表单、对话框、控件,文件等);在这个过程中,数据穿越外部边界进入到系统内部。 如下图所示:
2)外部输出(External Outputs:EO)
向用户提供(经过处理的)面向应用的信息,例如,报表和出错信息等。 如下图所示:
3)外部查询(External Inquiry:EQ)
外部查询是一个输入引出一个即时的简单输出,没有处理过程。 如下图所示:
4)外部接口文件(External Interface Files :EIF’s)
用户可以识别的一组逻辑相关数据,这组数据只能被引用。用这些接口把信息传送给另一个系统。 如下图所示:
5)内部逻辑文件(Internal Logical Files:ILF’S)
用户可以识别的一组逻辑相关的数据,而且完全存在于应用的边界之内,并且通过外部输入维护,是逻辑主文件的数目。 如下图所示:
下面给出功能计数项的复杂度等级,如下图所示:
下面,我们用一个例子来举例。
某外贸订单项目的需求评估为:
外部输入: 3
项;外部输出: 1
项;外部查询: 1
项;外部接口文件: 1
项;内部逻辑文件: 2
项。请计算出该项目的 UFC
。
他们的复杂程度如下表所示:
功能点 | |||
---|---|---|---|
项 | 简单 | 一般 | 复杂 |
外部输入 | 2 * 3 | 1 * 4 | 0 * 6 |
外部输出 | 0 * 4 | 0 * 5 | 1 * 7 |
外部查询 | 0 * 3 | 1 * 4 | 0 * 6 |
外部接口文件 | 0 * 5 | 1 * 7 | 0 * 10 |
内部逻辑文件 | 1 * 7 | 1 * 10 | 0 * 15 |
总计 | 13 | 25 | 7 |
UFC | 45 |
TCF = 0.65 + 0.01(sum(Fi)),其中 Fi
为技术复杂度因子,其范围是 0-5
, TCF
的取值范围是 0.65-1.35
。
Fi
技术复杂度因子有 14
项,如下表所示:
技术复杂度因子 | |||
---|---|---|---|
F1 | 可靠的备份和恢复 | F2 | 数据通信 |
F3 | 分布式函数 | F4 | 性能 |
F5 | 大量使用的配置 | F6 | 联机数据输入 |
F7 | 操作简单性 | F8 | 在线升级 |
F9 | 复杂界面 | F10 | 复杂数据处理 |
F11 | 重复使用性 | F12 | 安装简易型 |
F13 | 多重站点 | F14 | 易于修改 |
技术复杂度因子的取值范围,如下表所示:
调整系数 | 描述 |
---|---|
0 | 不存在或者没有影响 |
1 | 不显著的影响 |
2 | 相当的影响 |
3 | 平均的影响 |
4 | 显著的影响 |
5 | 强大的影响 |
同样,我们用外贸订单项目的例子来计算 TCF
。假设 14
个复杂度因子的影响值都是平均,计算出该项目的功能点。
① U F C = 45 UFC=45UFC=45
② T C F = 0.65 + 0.01 ( 14 ∗ 3 ) = 1.07 TCF=0.65+0.01(143)=1.07TCF*=0.65+0.01(14∗3)=1.07
③ F P = U F C ∗ T C F = 45 ∗ 1.07 = 48 FP=UFCTCF=451.07=48F**P=UFC∗TCF=45∗1.07=48
④ 如 果 P E = 15 工 时 / 功 能 点 , 那 么 : E f f o r t = 48 ∗ 15 = 720 工 时 如果PE=15工时/功能点,那么:Effort=4815=720工时如果PE*=15工时/功能点,那么:*Effort*=48∗15=720工时
语言 | 代码行/FP |
---|---|
Assembly | 320 |
C | 150 |
COBOL | 105 |
FORTRAN | 105 |
PASCAL | 91 |
ADA | 71 |
PL/1 | 65 |
PROLOG/LISP | 64 |
SMALLTALK | 21 |
SPREADSHEET | 6 |
用例模型如下图所示:
用例点估算方法的基本步骤为:
UAW
;UUCW
;UUCP
;TCF
和 ECF
;UCP
;man-hours
) 。接下来将依据这几个内容进行展开介绍。
公式: U A W = ∑ C = c a W e i g h t ( c ) × a C a r d i n a l i t y ( c ) UAW=∑_{C=c}aWeight© × aCardinality©UAW=∑C=caWeigh**t(c)×aCardinalit**y(c)
下面给出 Actor
权值定义表,如下表所示:
序号 | 复杂度级别 | 复杂度标准 | 权值 |
---|---|---|---|
1 | simple | 角色通过API与系统交互 | 1 |
2 | average | 角色通过协议与系统交互 | 2 |
3 | complex | 用户通过GUI与系统交互 | 3 |
公式: U u c w = ∑ C = c u W e i g h t ( c ) × u C a r d i n a l i t y ( c ) Uucw=∑_{C=c}uWeight© × uCardinality©Uuc**w=∑C=cuWeigh**t(c)×uCardinalit**y(c)
下面给出 Use Case
权值定义表,如下表所示:
序号 | 复杂度级别 | 事务/场景个数 | 权值 |
---|---|---|---|
1 | simple | 1-3 | 5 |
2 | average | 4-7 | 10 |
3 | complex | >7 | 15 |
公式: U U C P = U A W + U U C W UUCP=UAW+UUCWUUC**P=UAW+UUC**W。例如:
表1: Actor
权值
序号 | 复杂度级别 | 权值 | 参与角色数 | UAWi |
---|---|---|---|---|
1 | simple | 1 | 2 | 2 |
2 | average | 2 | 4 | 8 |
3 | complex | 3 | 5 | 15 |
表2:Use Case
权值
序号 | 复杂度级别 | 权值 | 用例数 | UUCWi |
---|---|---|---|---|
1 | simple | 5 | 5 | 25 |
2 | average | 10 | 2 | 20 |
3 | complex | 15 | 3 | 45 |
公式: KaTeX parse error: Expected group after ‘_’ at position 19: …=0.6+(0.01×\sum_̲\limits{i=1}^{1…_W e i g h t i × V a l u e i Weight_i×Value_iWeighti×Value**i 。
假设现有某项目的复杂度因子如下图表所示:
序号 | 技术因子 | 说明 | 权值 |
---|---|---|---|
1 | TCF1 | 分布式系统 | 2.0 |
2 | TCF2 | 性能要求 | 1.0 |
3 | TCF3 | 最终用户使用效率 | 1.0 |
4 | TCF4 | 内部处理复杂度 | 1.0 |
5 | TCF5 | 复用程度 | 1.0 |
6 | TCF6 | 易于安装 | 0.5 |
7 | TCF7 | 系统易于使用 | 0.5 |
8 | TCF8 | 可移植性 | 2.0 |
9 | TCF9 | 系统易于修改 | 1.0 |
10 | TCF10 | 并发性 | 1.0 |
11 | TCF11 | 安全功能特性 | 1.0 |
12 | TCF12 | 为第三方系统提供直接系统直接系统访问 | 1.0 |
13 | TCF13 | 特殊的用户培训设施 | 1.0 |
具体的 TCF
值为:
T C F = 0.6 + 0.01 × ( 2.0 × 3 + 1.0 × 5 + 1.0 × 3 + 1.0 × 5 + 1.0 × 0 + 0.5 × 3 + 0.5 × 5 + 2.0 × 3 + 1.0 × 5 + 1.0 × 3 + 1.0 × 5 + 1.0 × 0 + 1.0 × 0 ) = 1.02 TCF=0.6+0.01×(2.0×3+1.0×5+1.0×3+1.0×5+1.0×0+0.5×3+0.5×5+2.0×3+1.0×5+1.0×3+1.0×5+1.0×0+1.0×0)=1.02TCF=0.6+0.01×(2.0×3+1.0×5+1.0×3+1.0×5+1.0×0+0.5×3+0.5×5+2.0×3+1.0×5+1.0×3+1.0×5+1.0×0+1.0×0)=1.02
其中,调整系数为给定数值。
公式: KaTeX parse error: Expected group after ‘_’ at position 20: …1.4+(-0.03×\sum_̲\limits{i=1}^{8…_W e i g h t i × V a l u e i ) Weight_i×Value_i)Weighti×Value**i) 。
假设现有某项目的环境因子如下表所示:
序号 | 环境因子 | 说明 | 权值 |
---|---|---|---|
1 | ECF1 | UML 精通程度 | 1.5 |
2 | ECF2 | 系统应用经验 | 0.5 |
3 | ECF3 | 面向对象经验 | 1.0 |
4 | ECF4 | 系统分析员能力 | 0.5 |
5 | ECF5 | 团队士气 | 1.0 |
6 | ECF6 | 需求稳定度 | 2.0 |
7 | ECF7 | 兼职人员比例高低 | 1.0 |
8 | ECF8 | 编程语言难易程度 | 1.0 |
假设调整系数已给定,那么具体的 ECF
值为:
E C F = 1.4 + ( − 0.03 × ( 1.5 × 3 + 0.5 × 3 + 1.0 × 3 + 0.5 × 5 + 1.0 × 3 + 2.0 × 3 + 1.0 × 0 + 1.0 × 0 ) ) = 0.785 ECF=1.4+(-0.03×(1.5×3+0.5×3+1.0×3+0.5×5+1.0×3+2.0×3+1.0×0+1.0×0))=0.785ECF=1.4+(−0.03×(1.5×3+0.5×3+1.0×3+0.5×5+1.0×3+2.0×3+1.0×0+1.0×0))=0.785
公式: U C P = U U C P × T C F × E C F UCP=UUCP×TCF×ECFUCP=UUC**P×TCF×ECF 。
依据上面所给出的结果,那么最终 U C P = U U C P × T C F × E C F = 115 × 1.02 × 0.785 = 92 UCP =UUCP×TCF×ECF = 115×1.02×0.785 = 92UCP=UUC**P×TCF×ECF=115×1.02×0.785=92。
公式: E f f o r t = U C P × P E Effort=UCP×PEEffor**t=UCP×P**E 。
依据上面的数据,假设 PE=20工时/用例点
。那么: E f f o r t = U C P × P E = 92 × 20 = 1840 工 时 = 230 人 天 Effort=UCP×PE=92×20=1840工时=230人天Effor**t=UCP×P**E=92×20=1840工时=230人天
对于类比估算法来说,估算人员根据以往完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件总成本(或工作量),然后按比例将它分配到各个开发任务单元中。
是一种自上而下的估算形式。
假设现在要开发某个证券交易网站,它的需求与往常开发的网站项目类似,且其历史数据是10万的开发成本。因此,用类比估算法来进行估算,它也是10万的开发成本。
利用任务分解图(WBS
),对各个具体的工具包进行详细的成本估算,然后将结果累加起来得出项目总成本。如下图所示:
大家可以看到,左下方是一些估算的内容,自下而上的原则,右上方是估算的结果。
使用三种估算值来界定活动成本的近似区间,
最可能成本(CM):与现实比较估算出来的结果
最乐观成本(CO):基于活动最好情况所得到的结果
最悲观成本(CP):基于活动最差情况所得到的结果
三角分布:CE=(CO+CM+CP)/3
贝塔分布: CE=(CO+4CM+CP)/6
通过参数模型来估算(规模)成本的方法。
使用该模型的条件如下:
1)面向LOC驱动的
2)面向FP驱动的
3)整体公式
整体公式为:E = a + b ∗ S C E=a+bS^CE*=a+b∗S**C
E:以人月表示的工作量
a,b,c:经验导出的系数
S:主要的输入参数(通常是 LOC
,FP
等)
由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。
N
个专家)。故事点是用来度量实现一个故事需要付出的工作量的相对估算值
估算标准有两种:
0,1,2,3,5,8,13,21,34,55,89,144,233,377,610,·······
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B2qeC0DR-1652110626091)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509213925275.png)]
0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,·······
所谓进度,是对执行活动和里程碑制定的工作计划日期表。
时间是一种特殊的资源,其单向性、不可重复性、不可替代性而有别于其它资源
所谓任务,是为了完成项目的各个交付成果所必须进行的各项具体活动。
产品和任务的关系如下图所示:
所谓任务关联关系,就是项目各项活动之间存在相互联系与相互依赖关系。之后,根据这些关系安排任务之间的顺序。
任务(活动)之间的关系如下图所示:
如下图所示:
有以下4种关系:
具有直观简明、容易学习、容易绘制的优点。可以显示任务的基本信息,工期,开始和结束时间,资源信息。不能反映某项任务变化对整个项目的影响,不能明显地表示各项任务彼此间的依赖关系,也不能明显地表示关键路径和关键任务。
甘特图有两种类型,分别是:
用于展示项目中各个活动及活动之间的逻辑关系,很容易识别关键路径和关键任务
Ⅰ. PDM(Precedence Diagramming Method)
PDM
,即优先图法,是一种节点法(单代号)网络图。具体图例如下:
下面我们来看一下 PDM
的特点:
PDM
网络图的基本要素是节点(BOX)现在我们用 PDM
来演示下某个项目的流程。具体如下:
Ⅱ. ADM(Arrow Diagramming Method)
ADM
,即箭线法,是一种箭线法(双代号)网络图。具体图例如下:
下面我们来看一下 ADM
的特点:
ADM
也称为双代号项目网络图下面我们来了解 ADM
中的虚活动。虚活动主要用途为:
具体图例如下:
里程碑事件的定义为:
0
的任务具体图例如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOKvUbLK-1652110626100)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509220009087.png)]
资源图,用来显示项目进展过程中资源的分配情况。
资源图图例如下:
燃尽图,描述随着时间的推移剩余的工作数量,可表示开发进度。
燃尽图图例如下:
燃起图,描述随着时间的推移已完成的工作数量,可表示开发进度。
燃起图图例如下:
所谓任务历时估计,即估计任务的持续时间。
历时估算的基本方法包含 4
种,分别是:
下面将依据这几种基本方法进行一一讲解。
公式
定额估算法的公式为:T=Q/(R*S)
其中: T
为活动历时; Q
为任务工作量; R
为人力数量; S
为工作效率(贡献率)。
举例
例子①:
假设Q=6人天,R=2人,S=1。所以:T=3天
例子②:
假设Q=6人天,R=2人,S=1.5。所以:T=2天
公式
定额估算法的公式为:D=a*Eb
其中: D
为进度(已月为单位); E
为工作量(以人月为单位); a
的范围在 2-4
之间; b
的值在 1/3
左右,依赖于项目的自然属性。
举例
假设: 导出模型D=3*E1/3,E=65人月,请计算出D值。
解: D=3*651/3=12月
定义
Program Evaluation and Review Technique
。计算
PERT采用加权平均得到期望值 E=(O+4M+P)/6
,其中:
① O
是最小估算值:乐观(Optimistic);
②P
是最大估算值:悲观(Pessimistic);
③M
是最大可能估算(Most Likely);
举例
假设现有某项目,乐观值是8天,最大可能值是10天,悲观值是24天。采用 PERT
方法,计算出其加权期望值 E
。
解: 加权平均期望值 E
为 8 + 4 × 10 + 24 6 = 12 天 \frac{8+4×10+24}{6}=12天68+4×10+24=12天
PERT的风险指标
标准差δ =(最大估算值-最小估算值)/6
方差δ2 = [(最大估算值-最小估算值)/6] 2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzsobnHw-1652110626101)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509220753451.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QpPc6Geq-1652110626103)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509220809356.png)]
定义
幂次表
Jones一阶估算准则的幂次表如下表所示:
软件类型 | 最优级 | 平均 | 最差级 |
---|---|---|---|
系统软件 | 0.43 | 0.45 | 0.48 |
商业软件 | 0.41 | 0.43 | 0.46 |
封装商品软件 | 0.39 | 0.42 | 0.45 |
举例
假设现有某平均水平的商业软件,其功能点为 FP=350
。请计算出其粗略的进度。
解:粗略的进度=3500.43=12月
Early start
Late start
Early finish
Late finish
Total Float
Free Float
Lead
Lag
对于 ES
、 EF
、 LS
和 LF
这四个概念来说,它们之间的关系如下图所示:
浮动时间是一个任务的机动性,它是一个任务在不影响其它任务或者项目完成的情况下可以延迟的时间量。
0
(Float=0) 的路径关于关键路径的计算,查看这篇文章:软件项目进度安排与跟踪,一招学会计算关键路径
时间压缩法,即在不改变项目范围的前提下缩短项目工期的方法。
一般有两种方法,具体为:
下面将依据这两种方法来进行一一详述。
Ⅰ. 定义
Ⅱ. 压缩时间与追加成本关系图
压缩时间与所追加成本的关系图如下所示:
Ⅲ. 关于进度压缩与费用增加的关系
下面将依据这两种方法来进行一一讲解。
I. 定义
前提条件:活动的正常与压缩
II. 计算
计算公式: 进度压缩单位成本=(压缩成本-正常成本)/(正常进度-压缩进度)
例如: 假设现有任务A,正常进度7周,成本5万;压缩到5周的成本是6.2万。
解: 那么进度压缩单位成本为:(6.2-5)/(7-5)=6000元/周=0.6w/周
;
如果压缩到 6
周的成本是:5+0.6=5.6万
。
III. 最短进度
项目存在一个可能的最短进度,如下图所示:
I. 计算公式
进度压缩因子=压缩进度/正常进度
压缩进度的工作量=正常工作量/进度压缩因子
II. 举例
例如: 初始进度估算是12月,初始工作量估算是78人月,如果进度压缩到10月,请计算出其进度压缩因子和压缩进度的工作量。
解: 进度压缩因子= 10/12=0.83
,则进度压缩后的工作量是:78/ 0.83=94人月
。
总结: 进度缩短17%,增加21%的工作量。
研究表明: 进度压缩因子 >0.75
,最多可以压缩 25%
。
平行作业法,即改变活动间的逻辑关系,并行开展某些活动。
(1)方法
资源优化有两种方式:
(2)资源平衡法
资源平衡法,即资源优化配置,形成最有效的利用资源。目的在于使资源闲置的时间最小化,尽量避免超出资源能力。
(3)资源平滑法
假设现有某项目,具体活动周期如下:
用资源平滑发分配的话,有以下两种方式:
第一种:所有活动都在同一天开始
第二种:活动C延迟两天进行
人们通常把影响软件质量的特性用软件质量模型来描述。
主要有几种模型:
Boehm
质量模型McCall
质量模型9126
质量模型25010
质量模型如下图所示:
如下图所示:
如下图所示:
如下图所示:
假设下图是某调度指挥通信系统的各项指标,请设计出其质量模型。
解: 该系统的质量模型如下图所示:
总是围着QA质量保证和QC质量控制两个方面进行
质量管理过程包含三个步骤,分别是:
下面将对上面三个步骤进行解读,具体如下:
下面我们对质量保证和质量控制进行深入剖析。
如下图所示:
敏捷项目的质量管理特征如下:
两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15%,但缺陷数少15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高,同时结对编程能够大幅促进团队能力提升和知识传播。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQUWsQRB-1652110626113)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509222900082.png)]
编制方法包括:
如下图所示:
对于软件质量改善的建议,有以下措施:
是一种常规的线性组织结构
这个组织结构适用于主要由一个部门完成的项目或技术比较成熟的项目。
是一种单目标的垂直组织方式。
存在一个项目就有一个类似部门的项目组,项目完成了就解散了,项目人员的去向是一个问题。
适用于开拓型等风险比较大的项目或进度、成本、质量等指标有严格要求的项目,不适合人才匮乏或规模小的企业。
使职能型和项目型组织结构的混合体,两类的特征都具有。
根据项目需求,从不同部门选择合适的人员组成一个临时项目组,项目组解体后,人员回原来的部门。
这种组织结构适用于管理规范、分工明确的公司或者跨职能部门的项目。
责任分配矩阵(RAM),即 Responsibility Assignment Matrix
,即用来对项目团队成员进行分工,明确其角色与职责的有效工具 。
RAM(责任分配矩阵)以图形方式展示项目团队成员及其报告关系,这样可以减少沟通渠道,减少沟通成本。
项目沟通的基本原则是:及时性、准确性、完整性、可理解性。
项目经理80%以上的时间都是用于沟通管理。
对于紧急的信息,应该通过口头的方式进行沟通;对于重要的信息,应该采用书面的方式进行沟通。
沟通是一种人与人之间的信息交流活动,所采用的方式应该是双方都可以理解的通用符号和技巧,这样可以保证信息的传送与接受畅通。
沟通活动可以按照多种维度进行分类:
此外沟通还有口头沟通(用词和音频变化)及非口头沟通(肢体语言和行为),以及层级沟通等。
沟通渠道公式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEnqRFsm-1652110626119)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509103810895.png)]
I是沟通渠道,E是人数
敏捷团队中的角色主要有三类:产品负责人、团队促进者、跨职能团队成员,分别对应Scrum的三个角色,即产品负责人(product owner)、Scrum主管(Scrum master)及开发团队。
Scrum团队的人数一般少于9人。
在敏捷开发中,要进行频繁沟通,主要的三个沟通会议是每日站立会议(一般是15分钟)、Sprint计划会议、Sprint复审会议。
风险的两个基本特征是不确定性和损失。
风险是对潜在的、未来可能发生损害的一种度量,如果风险发生了,则会对项目产生有害的或者负面的影响。
软件风险是指对软件开发过程及软件产品本身可能造成的伤害或损失。
⚪风险事件、⚪风险事件发生的概率、⚪风险造成的影响。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hoWyncxp-1652110626128)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509125550905.png)]
已知风险
可预测风险
不可预测风险
只能对已知风险和可预测风险进行规划,不可预测风险只能靠企业的能力来承担
风险管理过程就是分析风险3个要素的过程。旨在识别出风险,然后采取措施使他们对项目的影响最小化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ryVdVsFN-1652110626129)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509130702561.png)]
风险识别是试图系统化地确认对项目计划(估算、进度、资源分配)的威胁,识别已知和可预测的风险。
风险识别包括确定风险的来源、确定分析产生的条件,描述风险特征和确定哪些风险事件有可能影响本项目。风险识别相当于确定风险三要素中的风险事件。
风险识别不是一次性行为,而应有规律地贯穿于整个项目中。
7
个条目分别为:
对风险发生的概率进行估计和评价,对项目风险后果的严重程度进行估计和评价,对项目风险影响范围进行分析和评价,以及对项目风险发生时间进行估计和评价。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cI1YpAS8-1652110626130)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509132009571.png)]
有两种方法,分别为:定性风险评估方法和定量风险评估方法。
风险概率度量: 极高、高、中、低、极低
风险影响度量: 灾难,严重,轻微,可忽略
风险概率及后果估计,矩阵图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWmSWAe1-1652110626132)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509132214878.png)]
定量风险评估有五种方法,分别为:
EMV
,即损益期望值,是决策树的一种计算值;EMV
根据结果、发生的概率计算出一种期望的损益。50%
,收益是 10
,那么 EMV = 10×50% = 5
。有以下 4
种策略,分别为:
定义:
注意事项:
定义:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0SCHpOJR-1652110626133)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509142650690.png)]
实例:
人员的频繁流动是一项风险,基于过去的历史和管理经验,频繁流动可能性的估计值为 70%
,开发时间增加 15%
,总成本增加 12%
,为了缓解这一风险,项目经理采取的策略如下:
合同是具有法律效力的协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nK2b1mIw-1652110626146)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220509151959428.png)]
合同类型通常分为总价合同和成本补偿合同两大类,此外还有第三种常用的混合类型,即工料合同。
成本加固定费用(CPFF)
成本加激励费用合同(CPIF)
成本加奖励费用合同(CPAF)
也称单价合同,即只规定了卖方所提供产品的单价,根据卖方在合同执行中实际提供的产品数量计算总价,工料合同是兼具成本补偿合同和总价合同的某些特点的混合型合同,它与成本补偿合同的相似之处在于,它们是开口合同,合同价因成本增加而变化。适用范围:短期服务和小金额;工作范围未明确就要立即开始工作时,增加人员、聘请专家以及寻求其他外部支持。
看表格比较好
合同类型 | 属性 | 风险 |
---|---|---|
总价合同 | ||
成本加固定费用(CPFF) | 实际成本加上卖方利润 | 买方承担成本超出的风险。买方风险比较大。 |
成本加激励费用(CPIF) | 实际成本加上卖方利润,有奖励机制。 | 买方承担成本超出的风险。 |
成本加奖励费用(CPAF) | 实际成本加上卖方利润,有奖励机制。 | 买方承担成本超出的风险。 |
成本补偿合同 | ||
固定总价(FFP) | 双方就合同产品协商价格。 | 卖方承担风险 |
总价加激励费用(FPIF) | 双方就合同产品协商价格,其中包括对卖方的奖励金。 | 卖方承担风险 |
总价加经济价格调整(FPEPA) | 双方就合同产品协商价格,其中包括价格的调整要求。 | 卖方承担风险 |
工料 | 按照卖方使用的时间和材料来计算价格 | 没有最大开销约束的合同可以导致成本超支 |
防治不合理的范围扩张,包括范围蔓延和范围镀金。
图解控制方法是一种偏差分析方法
优点是可以一目了然的确定项目状况,缺点是只能提供视觉影响,不能提供其它重要量化信息
利用时间图、进度图、成本图、资源图等对项目的性能进行偏差分析,审查目标绩效与实际绩效之间的差异或偏差
在监控项目工作过程中,通过偏差分析对成本、时间、技术和资源偏差进行综合分析,以了解项目的总体偏差情况,便于采取合适的预防或纠正措施
Goal是项目希望花费的数额,或者预期将花费的数目。
难点在于计算BCWP
质量保证管理分类
要点
主要活动