前言

在这里插入图片描述

项目管理概述

软件项目管理是为了让软件项目要能够按照预定的成本、质量、质量顺利完成,而对于人员、产品、过程和项目进行的分析和管理活动

项目与软件项目

项目是为了创造一个唯一的产品火提供一个唯一的服而进行的临时性的努力
项目的特征:目标性 相关性 临时性 独特性 资源约束性 不确定性
软件项目的特殊性:;逻辑实体 渐进明细 变更 相互作用的系统
软件项目要素:软件开发过程 软件开发结果 软件开发赖以生存的资源及软件项目的特定委托人
项目目标实现的制约因素:项目范围 成本 进度计划 客户满意度

项目管理与软件项目管理

项目管理是一系列的伴随着项目的进行而进行的,目的是为了确保项目能够到达期望结果的一系列管理行为
软件项目管理的四个要素:成本 进度 质量 风险
软件项目管理的根本目的是让软件项目尤其事大型项目的生命周期能在管理者的控制之下以预定成本安琪按质的完成软件项目并交付客户使用

项目管理知识体系

在这里插入图片描述
在这里插入图片描述
四个生命周期:启动项目 组织和准备 执行项目工作 完成项目
五个过程:启动 规划 执行 监控 收尾
核心管理过程组:计划 监控 执行
在这里插入图片描述
在这里插入图片描述

过程管理与软件项目管理的关系

过程管理就是对过程进行管理,目的是让过程能够被共享 复用,并得到持续的改进
过程定义:总结->服用
过程改进:优化

软件项目管理过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目初始-项目确立

项目立项

在这里插入图片描述

项目招投标

在这里插入图片描述
乙方项目分析:
在这里插入图片描述
招标的方式有:公开招标 有限招标 多方洽谈 直接谈判

项目授权

确认项目存在的文件,包括对项目的确认、对项目经历的授权和项目目标的概述
项目经理是领导团队实现项目目标的个人

敏捷开发总结

人 迭代 灵活

scrum模型——迭代式增量软件开发过程

scrum基于经验主义,糙用迭代增量式的方法优化可预测试和风险管理
一个迭代就是一个sprint(冲刺)
sprint周期被限制再一个月左右,sprint是scrum的核心
sprint通过确保至少每月一次达成目标的进度进行键是和调整来实现可预见性
sprint由sprint计划会议、每日站立会议、开发工作。sprint评审会议和sprint回顾会议构成

术语

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文档

在这里插入图片描述
在这里插入图片描述

scrum过程

  • 每一次冲刺产生产品订单(目标):按照优先级排列需要完成的工作的概要需求,哪些订单会被加入冲刺又冲刺计划会议决定
  • 每日站立会议
  • sprint评审会议
  • 冲刺回顾会议

XP模型

项目初始——生存期

生存期模型定义

描述了开发的主要阶段
定义了每个阶段药完成的主要过程和火丁
确定了每个阶段的输入和输出

传统生存期模型

瀑布模型
V模型
增量模型
快速原型模型
渐进式模型

敏捷生存期模型

上一节

软件需求——范围计划

需求式指用户对软件的功能和性能的要求

软件需求过程管理

在这里插入图片描述
在这里插入图片描述

需求建模基本方法

  • 原型方法
  • 结构化——数据流图 数据字典 系统流程图
  • 面向对象——用力 顺序 状态 活动
  • 功能列表

任务分解——范围计划

在这里插入图片描述

任务分解的定义

任务分解过程:将一个项目分解为更多的工作细目或者子项目,使项目变得更小,更易于管理,更易于操作
任务分解结果:WBS
在这里插入图片描述
wbs使队项目又粗到细的分解过程,是分级的树形结构
wbs是面向交付成果对项目元素是分组
wbs组织并定义了整个项目范围
wbs是最低层次的可交付成果,是wbs的最小元素
工作包应当由唯一主体负责

wbs的表示有清单形式和图表形式

任务分解的方法

模板参照

使用标准火半标准的wbs作为模板参考使用
在这里插入图片描述

类比

利用项目在某种程度上的相似性
使用类似项目的wbs作为参考
使用项目管理工具提供的一些wbs实例

自顶向下(一般到特殊)

在这里插入图片描述

自底向上(特殊到一般)

在这里插入图片描述

任务分解的步骤

在这里插入图片描述
wbs字典
分解标准:

  • 最底层的要素是否是实现目标的充分必要条件
  • 最底层元素是否有重复
  • 每个要素是否清淅完整定义
  • 最底层要素是否定义清淅的负责人
  • 始狗可以进行成本估算与进度安排

wbs分解建议:

  • 最底层是可控的可管理的,但不必要过细
  • 每个work package必须有一个提交物
  • 定义任务完成的标准
  • 有利于责任分配
  • 推荐任务分解到40h之内

成本计划

成本估算概述

在这里插入图片描述
软件项目规模即工作量(规划 管理 需求 设计 编码 测试 维护)
规模单位:LOC-源代码长度 FP-功能数量 人天 人月 人年

规模是成本的主要因素,是成本估算的基础,有个规模就确定了成本

成本估算方法

代码行估算法

从软件程序量的角度定义项目规模
这种定义方式与编程语言有关,要分解的足够详细,并且要有一定的经验数据

在这里插入图片描述

功能点估算法

FP(功能点)=UFC(未调整功能点计数)*TCF(技术复杂度因子)

UFC:
功能计数项:外部输入EI 外部输出EO 外部查询EQ 外部接口文件EIF 内部逻辑文件ILF
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TCF:
TCF=0.65+0.01*sun(fi)
在这里插入图片描述

用例点估算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类比(自顶向下)估算法

估算人员根据以往的类似项目来推算软件的总成本,是一种自上而下的估算形式

自下而上估算法

在这里插入图片描述

参数估算法

Walston-Felix

在这里插入图片描述

COCOMO

在这里插入图片描述
在这里插入图片描述

专家估算法

在这里插入图片描述

成本预算

项目预算是将项目的总成本按照项目的进度分摊到各个工作单元中去
目的:产生生产成本基线

三种分配项目成本预算的方法:
给任务分配资源成本:根据每个任务资源分配情况来计算这个任务的成本预算
分配固定资源成本:一个项目的资源需要固定数量资金的时候
分配固定成本:任务的成本是固定的

成本基线:每个时间段没的成本,是管理者度量和监控项目的依据

进度计划

按时完成项目是项目经理最大的挑战之一
时间是项目规划中灵活度最小的因素
进度问题是项目冲突的主要原因
在这里插入图片描述

进度管理基本概念

进度是最执行活动和里程碑指定的故作计划日期表

任务定义:WBS分解的结果
任务关系
在这里插入图片描述
网络图:PDM图 ADM图
甘特图
里程碑图
资源图:燃尽图

任务历时估算

估计任务路径项目的持续时间

定额估算法

在这里插入图片描述

经验导出模型

在这里插入图片描述

PERT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于承诺的进度估计

要求开发成员做出进度承诺
不进行中间工作量估计

有利于开发者对进度关注
有利于提高开发者工作热情
误差较大

Jones的一阶估算准则

在这里插入图片描述

进度计划编排

关键路径法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间压缩法

在不改变项目范围的前提下缩短项目工期的方法

应急法:不改变任务之间的逻辑
在这里插入图片描述
在这里插入图片描述
平行作业法:改变活动之间的逻辑关系,并行开展活动,增加返工并且增加风险

管理预留

加载项目末端的人为任务,不是加载任务间隔上,给项目增加一个储备时间

资源平衡

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

质量计划

软件质量基本概念

把影响软件质量的特性用软件质量模型来描述

Boehm模型
在这里插入图片描述
McCall模型
在这里插入图片描述
ISO/IEC9726模型
在这里插入图片描述

质量管理过程

质量管理对象:过程质量 产品质量
质量管理过程:软件质量计划 软件质量保证 软件质量控制

1.软件质量计划:
确定项目达到的质量标准
决定如何满足质量标准的计划安排和方法

2.质量保证
要点:对项目进行评价 推测是否能达到质量指标 简历项目信心
审计:项目执行过程审计 项目产品审计

3.质量控制
要点:检查工作结果 按照标准跟踪检查 确定错是消灭质量问题
活动:技术评审 代码走查 测试 返工

软件质量计划

质量成本是由于产品的第一次工作不正常而衍生的附加花费
包括:预防成本 缺陷成本
质量形成于产品或服务的开发过程中,而不是时候检查

方法:
试验设计
基准对照
质量成本分析
流程图方法
因果分析图

配置管理计划

软件项目配置管理概念

记录软件产品演化过程
得到精确的产品配置
保证软件的完整性 一致性 追溯性 可控性

配置管理的主要功能:版本管理 变更管理

基线提供了软件生存期中各个开发阶段的一个特定点

软件项目配置管理过程

版本控制是软件开发过程中各个程序代码、配置文件及说明文档等文件变化的管理
在这里插入图片描述

软件项目配置管理计划

配置管理计划大纲:
人员职责
配置项定义
基线定义
版本控制
定义变更控制系统

配置管理三要素:人 规范 工具

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐