本文主要是介绍NEFU软件项目管理阶段复习总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
课程评价:软件工程为什么要开这门课啊 ???
一、项目管理概述
软件项目管理是为了让软件项目要能够按照预定的成本、质量、质量顺利完成,而对于人员、产品、过程和项目进行的分析和管理活动
项目与软件项目
项目定义
项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
日常运作与项目
- 项目是一次性的,日常运作是重复进行的;
- 项目存在大量的变更管理,日常运作基本保持持续的连贯性。
软件项目
项目的特征:目标性 相关性 临时性 独特性 资源约束性 不确定性
软件项目的特殊性:;逻辑实体 渐进明细 变更 相互作用的系统
软件项目要素:软件开发过程 软件开发结果 软件开发赖以生存的资源及软件项目的特定委托人
项目目标实现的制约因素:项目范围 成本 进度计划 客户满意度
项目管理与软件项目管理
项目管理概述
软件项目管理是为了让软件项目要能够按照预定的成本、质量、质量顺利完成,而对于人员、产品、过程和项目进行的分析和管理活动
项目管理是一系列的伴随着项目的进行而进行的,目的是为了确保项目能够到达期望结果的一系列管理行为
软件项目管理的四个要素:成本 进度 质量 风险
软件项目管理的根本目的是让软件项目尤其事大型项目的生命周期能在管理者的控制之下以预定成本安琪按质的完成软件项目并交付客户使用
软件项目管理5个过程组
初始---计划---控制---执行---结束
项目管理知识体系
PMBOK(A guide to the Project management Body Of Knowledge:项目管理知识体系指南)
四个生命周期:启动项目 组织和准备 执行项目工作 完成项目
五个过程:启动 规划 执行 监控 收尾
核心管理过程组:计划 监控 执行
过程管理与软件项目管理的关系
过程管理就是对过程进行管理,目的是让过程能够被共享 复用,并得到持续的改进
过程定义:总结->服用
过程改进:优化
软件项目管理过程
敏捷项目管理
敏捷模型是一种迭代、循序渐进的开发方法
软件项目管理过程
- 项目初始
- 项目计划
- 项目执行控制
- 项目结束
习题
选择题
1. (单选题)下列选项中不是项目与日常运作的区别的是( )。
- A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。
- B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。
- C. 项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。
- D. 项目是一次性的,日常运作是重复性的。
2. (单选题)下列选项中最能体现项目的特征( )。
- A. 运用进度计划技巧
- B. 整合范围与成本
- C. 确定期限
- D. 利用网络进行跟踪
3. (单选题)下列选项中不是项目的特征的是( )。
- A. 项目具有明确的目标
- B. 项目具有限定的周期
- C. 项目可以重复进行
- D. 项目对资源成本具有约束性
4、下面选项中不是PMBOK的知识域的是(A)
A.招聘管理 B.质量管理 C.范围管理 D.风险管理
5、下面选项中不是《敏捷宣言》中的内容的是(c)
A.个体和交互胜过过程和工具
B.可以工作的软件胜过面面俱到的文档
C.敏捷开发过程是自适应的过程
D.响应变化胜过遵循计划
6.项目管理专业人员资格是指( C )。
A) PMI B) ERP C) PMP D) SAP
7. (判断题)日常运作存在大量的变更管理,而项目基本保持连贯性的。
- A. 对
- B. 错
8.相比传统开发的预测性过程,敏捷开发属于自适应过程(对)参见教材p20
- A. 对
- B. 错
填空题
1、敏捷模型包括4个核心价值,对应12个敏捷原则。
2、项目管理包括(启动过程组)、(计划过程组)、(执行过程组)、(控制过程组)、(收尾过程组)5个过程组。
3、过程管理目的是要让过程能够被共享、复用,并得到持续的改进。
4、项目的特征是什么。
答:目标性、相关性、临时性、独特性、资源约束性、不确定性
二、软件项目确立
项目立项
明确项目的目标、时间表、项目使用的资源 和经费,而且得到执行该项目的项目经理 和项目发起人的认可 .
Make or Buy 决策
项目招投标
甲方招标书定义过程
招标书主要包括三部分内容: 技术说明、商务说明、投标说明。
乙方项目分析
项目章程
确认项目存在的文件,包括对项目的确认、 对项目经理的授权和项目目标的概述等。
项目经理是领导团队实现项目目标的个人
敏捷项目章程
基本要素: 项目目标 发布标准 预期的工作流
敏捷强调: 仆人式领导方式
习题
选择题
1. (单选题)项目建议书是( )阶段开发的文档。
- A. 项目执行
- B. 项目结尾
- C. 项目初始
- D. 项目计划
2.. (单选题)以下哪项不包括在项目章程中?
- A. 对项目的确认
- B. 对项目经理的授权
- C. 对项目风险的分析
- D. 项目目标的描述
3、项目建议书是(C)阶段开发的文档
A.项目执行 B.项目结尾 C.项目初始 D.项目计划
3.乙方即供方(有时也称卖方)是为顾客提供产品或服务的一方。(对)
4、在软件项目合同中,甲方是需求放,乙方是供方。(对)
5、敏捷项目采取的是仆人式管理方式。(对)
填空题
项目经理的主要责任是(开发计划)、(组织实施)、(项目控制)。
PMI人才三角重点关注(技术项目管理)、(领导力)、(战略和商务管理)3个关键技能
甲方在招投标阶段的主要任务是:招标书定义、供方选择、合同签署
乙方在招投标阶段的主要任务是:进行项目选择。
招标书主要包括三部分内容: 技术说明、商务说明、投标说明。
三、项目初始——生存期
生存期模型定义
描述了开发的主要阶段
定义了每个阶段药完成的主要过程和火丁
确定了每个阶段的输入和输出
生存期模型选择
预测型: □提前进行大量的计划工作,然后一次性执行;执行是一个连续的过程。
迭代型: □允许对未完成的工作进行反馈,从而改进和修改该工作。
增量型: □向客户提供各个已完成的,可能立即使用的可交付成果。
敏捷型: □既有迭代,也有增量,便于完善工作,频繁交付。
预测型-模型
- 瀑布模型
- V模型
瀑布模型适用范围:
- 适合于软件需求很明确的软件项目
- 短期项目可以采用瀑布模型
迭代模型
- 原型模型
适用范围:
需求:不明确
项目:复杂性高,变更频繁
增量模型
敏捷开发
人 迭代 灵活
scrum模型——迭代式增量软件开发过程
scrum基于经验主义,糙用迭代增量式的方法优化可预测试和风险管理
一个迭代就是一个sprint(冲刺)
sprint周期被限制再一个月左右,sprint是scrum的核心
sprint通过确保至少每月一次达成目标的进度进行键是和调整来实现可预见性
sprint由sprint计划会议、每日站立会议、开发工作。sprint评审会议和sprint回顾会议构成
产品订单(产品目标)是指按照优先级排列的需要完成的工作的概要的需求(目标)
XP模型
极限编程模型
持续集成--持续部署--持续交付
DevOps
DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障( QA)部门之间的沟通、协作与整合。
混合模型
对于整个项目,没有必要使用单一的方法。为达到特定的目标,项目经常要结合不同的声明周期要素。预测、迭代、增量和敏捷方法的组合就是一种混合方法。其中包括先敏捷后预测型的综合方法,敏捷和预测综合方法,以预测法为主、敏捷方法为辅的方法,以敏捷方法为主、预测方法为辅的方法。
参见教材p60
习题
选择题
1. (单选题)对于某项目,甲方提供了详细、准确的需求文档。我们的解决方案也很明确。且安全性要求非常严格。此项目采用( )生存期模型比较合适。
- A. 瀑布模型
- B. 增量式模型
- C. V模型
- D. XP模型
2. (单选题)XP模型的实践原则不包括以下哪一点?
- A. 快速反馈
- B. 假设简单
- C. 包容变化
- D. 详细设计
3、下列关于敏捷模型描述不正确的是(D)
A:与传统模型相比,敏捷模型属于自适应过程
B:可以应对需求的不断变化
C:Scrum模型、XP模型、DevOps模型等都属于敏捷模型
D:敏捷模型是预测型和迭代型的混合模型
9. (判断题)V模型适合的项目类型是需求很明确、解决方案很明确,而且对系统的性能要求比较严格的项目。
- A. 对
- B. 错
10. (判断题)在瀑布生存期模型中,要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。
- A. 对
- B. 错
填空题
敏捷开发通过( 迭代 )和快速用户反馈应对管理的不确定性和变更。
1.瀑布模型生存期模型中,要求项目所有的活动都严格按照顺序进行,一个阶段的输入时下一个阶段的输入。
2、总体上,项目生存期模型可以是预测型或者适应型 参见教材p43
3、DevOps是 Development和Operations 的组合。 参见教材p59
问答题
写出三种你熟悉的生存期模型,并说明这些模型适用于什么情况下的项目。
(1)瀑布模型
适用于软件需求很明确的软件项目,即一般适用于功能明确、完成、无重大变化的软件系统的开发,即:
- 在项目开始前,项目的需求已经被很好的理解、也很明确,而且项目经理很熟悉为实现这一模型所需要的过程。
- 解决方案在项目开始前也很明确。
- 短期项目可采用瀑布模型。
(2)V模型
适用于项目需求在项目开始前很明确、解决方案在项目开始前也很明确,项目对系统的安全很严格,如航天飞机控制系统、公司的财务系统等。
(3)快速原型模型
适用于项目的需求在项目开始前不明确,需要减少项目的不确定性的时候。
四、软件需求——范围计划
软件需求定义
需求式指用户对软件的功能和性能的要求
软件需求过程管理
需求确认
需求分析
需求分析是为最终用户所看到的系统建立 一个概念模型,是对需求的抽象描述
需求 规格说明书
需求验证
需求变更管理
- 确定需求变更控制过程
- 建立变更控制委员会(SCCB)
- 建立需求基准版本和需求控制版本文档
需求建模
- 原型方法
- 结构化——数据流图 数据字典 系统流程图
- 是一种自顶向下逐步求精的分析方法
- 面向对象——用力 顺序 状态 活动(UML)
- 功能列表,敏捷需求分析
习题
选择题
1. (单选题)下列不属于结构化方法设计的是?
- A. 数据流图
- B. 数据字典
- C. 系统流程图
- D. 系统用例图
2、下列不属于数据字典组成部分的是?(D)
A:数据项 B:数据流 C:数据文件 D:数据库
3、敏捷项目需求一般采用下面(C)描述。
A:用户用例 B:DFD C:用户故事 D:数据字典
4、下列关于用户故事描述不正确的是(D)
A:英文称:user story B:不使用技术语言来描述
C:可以描述敏捷需求 D:一种数据结构
5. (判断题)需求规格说明可以包括系统的运行环境。
- A. 对
- B. 错
6.数据流分析方法是一种自下而上逐步求精的分析方法。(错)
7.用例分析方法采用一种面向过程的情景分析方法。(错)
填空题
需求管理包括需求获取、需求分析、需求规格编写、需求验证、需求变更 5个过程。
五、任务分解——范围计划
任务分解是项目 管理的基础
任务分解的定义
任务分解过程:将一个项目分解为更多的工作细目或者子项目,使项目变得更小,更易于管理,更易于操作
任务分解结果:WBS
WBS是对项目由粗到细的分解过程。
面向交付成果的
WBS组织并定义了整个项目范围
工作包是最低层次的可交付成果,是wbs的最小元素
工作包应当由唯一主体负责
wbs的表示有清单形式和图表形式
分解方法
1.模板参照
2.类比
3.自顶向下
4.自底向上
模板参照
使用标准火半标准的wbs作为模板参考使用
类比
利用项目在某种程度上的相似性
使用类似项目的wbs作为参考
使用项目管理工具提供的一些wbs实例
自顶向下(一般到特殊)
自底向上(特殊到一般)
分解标准:
- 最底层的要素是否是实现目标的充分必要条件
- 最底层元素是否有重复
- 每个要素是否清淅完整定义
- 最底层要素是否定义清淅的负责人
- 始狗可以进行成本估算与进度安排
习题
填空题
1.任务分解是将一个项目分解为更多的工作细目或者子项目,是项目变得更小、更易管理、更易操作。
2.WBS的全称是任务分解结构Work Breakdown Structure。
3.WBS最底层次可交付成果是工作包work package。
4.一般来说,进行项目分解时,可以采用清单或图表两种形式来表达任务分解的结果。
选择题
1. (单选题)WBS中的每一个具体细目通常都指定唯一的( )。
- A. 编码
- B. 地点
- C. 功能模块
- D. 提交截至期限
2.WBS非常重要,因为下列原因,除了(D)
A.帮助组织工作B.防止遗漏工作C.为项目估算提供依据D.确定团队成员责任
3.下列关于WBS的说法,不正确的是(D)
A.WBS是任务分解的结果
B.不包括在WBS中的任务就不是该项目的工作
C.可以采用提纲式或者组织结构图形式表示WBS的结果
D.如果项目是一个崭新的项目,则最好采用自顶向下方法开发WBS
4、为了有效地管理项目,应该将工作分解为更小的部分,以下各项中,哪一项不能说明任务应该分解到什么程度?( B )
A) 可以在80小时内完成 B) 可由一个人完成
C) 不能再进一步进行逻辑细分了 D) 可以进行实际估算
5. (判断题)WBS提供了项目范围基线。
- A. 对
- B. 错
6. (判断题)如果开发人员对项目比较熟悉或者对项目大局有把握,开发WBS时最好采用自底向上方法。
- A. 对
- B. 错
7. (判断题)对于一个没有做过的项目,开发WBS时可以采用自底向上方法。
- A. 对
- B. 错
8.WBS的最底层任务是能分配到一个人完成的任务。(√)
原文:工作包应当由唯一主体负责,可以分配给另外一位项目经理通过子项目的方式完成。
问答题
试写出任务分解的方法和步骤。
答:任务分解的基本步骤:
- 确认并分解项目的组成要素(WBS编号)。
- 确定分解标准,按照项目实施管理的方法分解,而且分解的标准要统一。
- 确认分解是否详细,是否可以作为费用和时间估计的标准,明确责任。
- 确定项目交付成果(可以编制WBS字典)。
- 验证分解正确性。验证分解正确后,建立一套编号系统。
任务分解方法:
- 模板参照方法
- 类比方法
- 自上而下
- 自下而上
六、成本计划
估算过程概念
软件项目规模即工作量(规划 管理 需求 设计 编码 测试 维护)
规模单位:LOC-源代码长度 FP-功能数量 人天 人月 人年
规模是成本的主要因素,是成本估算的基础,有个规模就确定了成本
传统估算方法
代码行估算法
从软件程序量的角度定义项目规模
这种定义方式与编程语言有关,要分解的足够详细,并且要有一定的经验数据
功能点估算法
FP(功能点)=UFC(未调整功能点计数)*TCF(技术复杂度因子)
UFC:
功能计数项:外部输入EI 外部输出EO 外部查询EQ 外部接口文件EIF 内部逻辑文件ILF
FP计数的规则
从用例图求UFC
TCF-技术复杂度因子
用例点估算法
类比(自顶向下)估算法(了解即可)
是一种自上而下的估算形式
使用情况:
- 有类似的历史项目数据
- 信息不足(例如市场招标)的时候
- 要求不是非常精确估算的时候
自下而上估算法
利用任务分解图(WBS),对各个具体工作包进行详细的 成本估算,然后将结果累加起来得出项目总成本。
自下而上估算---特点
- 相对比较准确,它的准确度来源于每个任务 的估算情况
- 花费时间
三点估算
最可能成本(CM):比较现实的估算成本。
最乐观成本(CO):最好情况所得到的估算成本。
最悲观成本(CP):最差情况所得到的估算成本
三角分布: CE = ( CO + CM + CP) / 3
贝塔分布: CE = ( CO + 4 CM + CP) / 6
参数估算法
有两类:静态单变量模型和动态多变量模型。
面向LOC驱动的,面向FP驱动的(功能点)
两个模型
- Walston-Felix模型
- COCOMO模型
COCOMO
项目类型:
- ·有机:Organic
- 嵌入式:Embedded
- ·半嵌入:Semidetached
专家估算法
敏捷估算方法
- 采用轻量级估算方法快速生成高层级估算
- 短期规划可以进行详细的估算
Story point估算方法
Story point(故事点)用来度量实现一个Story 需要付 出的工作量的相对估算。
成本预算
项目预算是将项目的总成本按照项目的进度分摊到各个工作单元中去
目的:产生生产成本基线
三种分配项目成本预算的方法:
给任务分配资源成本:根据每个任务资源分配情况来计算这个任务的成本预算
分配固定资源成本:一个项目的资源需要固定数量资金的时候
分配固定成本:任务的成本是固定的
成本基线:每个时间段没的成本,是管理者度量和监控项目的依据
习题
选择题
1. (单选题)在项目初期,进行竞标合同时,一般采用的成本估算方法是( )。
- A. 参数估算法
- B. 类比估算法
- C. 专家估算法
- D. 功能点估算法
2.(B)是成本的主要因素,是成本估算的基础。
A.计划 B.规模 C.风险 D.利润
3.下列不是软件项目规模单位的是(D)
A.源代码长度(LOC) B.功能点(FP) C.人天、人月、人年 D.小时
4.在成本管理过程中,每个时间段中的各个工作单元的成本是(B)
A.估算 B.预算 C.直接成本 D.间接成本
5. (判断题)COCOMO81有3个等级的模型:有机型、嵌入型、半嵌入型。
- A. 对
- B. 错
6.软件项目规模就是软件项目工作量。(√)
填空题
1.软件项目成本包括直接成本和间接成本,一般而言,项目人力成本归属于直接成本。
2.在项目初期,一般采用的成本估算方法是类比估算法。
3.功能点方法中5类功能组件的计数项是外部输入、外部输出、外部查询、内部逻辑文件、外部接口文件。
4.敏捷项目一般采用故事点估算方法。
5.用例点方法通过分析用例角色、场景和技术与环境因子等来进行软件估算。
6.软件项目的主要成本是人的劳动的消耗所需要的代价。
七、进度计划
按时完成项目是项目经理最大的挑战之一
时间是项目规划中灵活度最小的因素
进度问题是项目冲突的主要原因
进度的定义
进度是对执行的活动和里程碑制定的工作计划日期表
进度管理基本概念
进度是最执行活动和里程碑指定的故作计划日期表
进度管理的主要目标是在给定的限制条件下,用最短时间、最少成本,以最小风险完成项目工作。
任务定义:
WBS分解的结果
任务定义是面向活动的,是对WBS进一步分解的结果,称“活动”为一个具体的“任务”。
任务关系:
进度管理图示
网络图:PDM图 ADM图
甘特图
里程碑图
资源图:燃尽图
包括剩余时间燃尽图和故事点燃尽图。故事点燃尽图才真正实现了敏捷原则(可工作的软件是进度的首要衡量指标)
PDM图例
任务历时估算
估计任务路径项目的持续时间
定额估算法
经验导出模型
PERT
- 利用网络顺序图逻辑关系 项目中某项单独的活动,存在很大的不确定 性。
- 估计具有一定的风险性时采用这种方法
预留分析
- 应急预留
- 管理预留
应急预留是包含在进度基准中的一段储备时间, 用来应对已经接受的已识别风险, 以应对进度方面 的不确定性
Jones的一阶估算准则
基于承诺的进度估计
要求开发成员做出进度承诺
不进行中间工作量估计
有利于开发者对进度关注
有利于提高开发者工作热情
误差较大
敏捷估算方法:
- 举手表决
- 基于故事点生产率的估算
- 基于迭代生产率的估算
项目进度规划模型
超前(Lead)与滞后(Lag)
关键路径法
时间压缩法
时间压缩法是在不改变项目范围的前提下缩短项 目工期的方法
应急法:不改变任务之间的逻辑 赶工
(1)时间成本平衡(2)速度压缩因子
平行作业法:改变活动之间的逻辑关系,并行开展活动,增加返工并且增加风险
资源优化
根据资源供需情况,调整活动的开始和完 成日期。
资源优化配置,形成最有效的利用资源
- 使资源闲置的时间最小化
- 尽量避免超出资源能力
资源平衡
- 通过调整任务的时间来协调资源的冲突
- 资源平衡往往导致关键路径改变
习题
填空题
- 关键路径决定了项目在给定的金钱关系和资源条件下完成项目所需的最短时间。
- 在ADM网络图中,箭线表示活动(任务)。
-
应急法和平行作业法都是时间压缩法。
-
任务(活动)之间的排序依据主要有强制性依赖关系、软逻辑关系、外部依赖关系等。
选择题
1. (单选题)( )是项目冲突的主要原因,尤其在项目后期。
- A. 优先级问题
- B. 人力问题
- C. 进度问题
- D. 费用问题
2. (单选题)( )可以显示任务的基本信息,使用该类图能方便的查看任务的工期、开始时间、结束时间以及资源的信息。
- A. 甘特图
- B. 资源图
- C. 里程碑图
- D. 网络图
3. (B)可以表示敏捷项目的进度,并且可以表示出剩余的任务。
A.燃起图 B.燃尽图 C.里程碑图 D.网络图
4.敏捷项目一般采取远粗近细的计划模式,敏捷的发布计划相当于远期计划,迭代计划相当于近期计划。(√)
5.当估算某活动时间,存在很大不确定性时应采用CPM估计。
这篇关于NEFU软件项目管理阶段复习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!