第二章 软件项目管理.ppt
软件项目管理教材PPT89页

范围计划 进度计划 成本计划
--成本基准,进度基准
0
软件项目管理
第三讲 软件项目范围计划
1
本章要点
一、软件需求管理过程 二、任务分解定义 三、任务分解的类型 四、任务分解的过程 五、案例分析
2
1 软件项目需求管理
影响软件项目成败的因素
其它
过少的用户输入
13%
12% 50%
场景串联提供了用户界面以说明系统操作流程,它容易创 建和修改,能让用户知道系统的操作方式和流程。
根据与用户交互的方式,场景串联被分成三种模式:静态 的场景串联、动态的场景串联以及交互的场景串联。
选择提供哪种场景串联是根据系统的复杂性和需求缺陷的 风险来确定的。
23
如何记录需求------需求跟踪矩阵
Inadequate communications for system integration 8
系统集成阶段 , 交流与沟通不充分
9
Insufficient experience as team 团队缺乏经验
10 Shortage of application domain experts
缺乏应用领域专家
4
1 软件项目需求管理
软件开发的目标——按时按预算开发出满足用户真实需要的软件。 需求—— 一个软件项目的开始阶段。在软件工程中,需求分析阶 段是 包括客户、用户、业务或需求分析员、开发人员、测试人员、用 户文档编写者、项目管理者和客户管理者在内的所有的风险承担者都 需要参与的阶段。
5
1 软件项目需求管理
结构化分析方法的优点与局限性。
28
需求规格
需求分析工作完成的一个基本标志是形成 了一份完整的、规范的需求规格说明书
第二章 项目管理过程 《项目管理》PPT课件

表2-2 联想复盘模板
标准复盘REVIEW
地点(Location): 用时(Holding Time):
开始做 (Start Doing)
继续做 (Continue Doing)
停止做 (Stop Doing)
2.1 接活
2.美国陆军的事后回顾 事后回顾(After Action Review,简称AAR)的操作指南,可参考第 4章案例资料附录4.1中的案例。 美国柏克德(Bechtel)工程公司将事后回顾称为“经验学习会”。项 目小组通过两个途径获取经验:首先,是每次的星期例会,要求管理人 员带来他们习得的经验;其次,在每个项目结束时,项目经理召集所有 的员工开一整天会,集中讨论学到的知识。
2.1 接活
2.1.1.2 组织过程资产的作用 合理、有效、规范、详尽的OPA可以为后续的项目管理提供有力的类 比、支持和参考。 牛顿曾说:“我之所以取得现在的成就,是因为我站在巨人的肩膀 上。”OPA在企业项目管理工作中所起的作用正是“巨人的肩膀”。 这里,以英国石油公司(BP)为例加以简要说明。
内隐化 (Internalization)
2.1 接活
5.日本石川馨教授的根本原因分析法 根本原因分析法(Root Cause Analysis,简称RCA),是一 种结构化的问题解决方法,就是针对项目实施过程中的事件/ 事故进行挖掘,逐步挖掘到根本原因并加以解决。
ቤተ መጻሕፍቲ ባይዱ
2.1 接活 三个步骤:
• 发生了什么?
2.1.5 相关方谈判
2.1.6.1项目章程签发 2.1.6.2项目团队组建 2.1.6.3启动会召开
对应工具 ·工具2:项目知识库(PR)
·工具3:项目健康诊断(PHD)
软件项目管理概述 ppt课件

Scale: 5 = Very Serious
1 = No Serious
20
Source: Carnegie-Mellon University, Software Engineering Institute
20
本章要点
一、项目与软件项目
二、项目管理与软件项目管理
三、项目管理的范围
Changes in requirements 需求的改变 Shortage of systems engineers 缺乏系统工程师 Shortage of software managers 缺乏了解软件特性的经理人 Shortage of qualified project managers 缺乏合格项目经理 Shortage of software engineers 缺乏软件工程师 Fixed- price contract 固定价合同 Inadequate communications for system integration 系统集成阶段 , 交流与沟通不充分 团队缺乏经验 Insufficient experience as team Shortage of application domain experts 缺乏应用领域专家 3 = Serious
新生运动会
社会中的大项目
微软的操作系统 神州飞船计划 三峡大坝的建设
16
ppt课件
16
项目管理定义
项目管理是伴随着项目的进行而进行的、目的是为了确保 项目能够达到期望的结果的一系列管理行为。
战略管理
项目管理
运作管理
ppt课件
17
17
软件项目管理
定义:是为了使软件项目能够按照预定的成本、进度、质 量顺利完成,而对成本、人员、进度、质量、风险等进行 分析和管理的活动。
软件项目管理目录

第一章.软件项目开发管理概述●管理是重要的P7-10●什么是软件项目管理P12●软件项目管理的主要内容P151.过程管理(过程定义和剪裁、软件项目计划、软件度量、软件项目的跟踪和监督、风险管理)P16-212.人员管理(软件项目团队、纪律和激励机制)P22-243.产品管理(软件需求管理、软件质量保证、软件配置管理)P25-28●软件项目管理的规范和标准(CMM、ISO9001)P301.CMMP31-65第二章.软件开发过程的定义、剪裁和改进●什么是软件开发过程1.什么是过程P122.什么是软件项目开发过程P13-143.软件开发活动P15-184.软件开发活动间的关系P19●为什么需要过程P21●软件开发过程模型P231.瀑布模型P242.原型模型P253.增量模型P264.迭代模型P275.螺旋模型P28●如何定义过程1.定义软件开发过程的要求P302.定义软件开发过程的步骤P31-68步骤1:确定软件开发过程模型步骤2:确定和描述活动步骤3:确定和描述活动间的关系步骤4:文档化软件开发过程步骤5:文档化如何剪裁过程步骤6:文档化如何改善过程步骤7:过程评审、认可和发布步骤8:员工培训3.软件开发过程定义注意事项P69-734.软件开发过程定义文档P74●如何剪裁过程P76第三章.软件度量和估算●什么是软件度量1.基本概念P10-13●为什么需要软件度量P15-16●软件度量的内容P18-20●软件度量的方法--估算1.面向规模的度量P23-252.面向功能的度量P26-323.成本和工作量估算P33-341)代码行、功能和工作量估算P352)经验估算模型P44-504.软件质量度量P51-521)质量要素P53-542)质量要素的评价准则P55-563)软件质量的度量P57●在软件开发过程中进行软件度量1.软件开发过程中集成度量P59-60第四章.软件项目计划●什么是软件项目计划1.什么是软件项目计划P162.软件项目计划的内容P17-193.制定软件项目计划的基础和依据P204.制定软件项目计划的时机P215.初步和详细的软件项目计划P22-24●为什么需要软件项目计划●制定软件项目计划应考虑的因素1.制定软件项目计划的方法P282.软件项目计划制定的方式P29-313.软件开发活动关系的类型P32-354.估算活动的周期P36-395.确定里程碑P40-426.活动责任矩阵P43-467.描述项目进度计划(甘特图和网络图)P48-528.关键路径P53-559.参与、承诺和分发P56●制定软件项目计划的步骤P58-78指定项目进度协调者确定要使用的工具准备项目进度计划会议召开项目进度计划会议提交和分析数据使用工具创建进度计划评审项目进度计划使用工具更改项目进度计划批准项目进度计划分发项目进度计划●CMM对软件项目计划的要求P80-811.目标P822.制定方针政策P83-853.确保必备条件P86-904.实施过程活动P91-1095.度量和分析P1106.验证实施P111-113●成功的和过于乐观的软件开发计划1.成功的软件开发计划P1162.过于乐观的软件开发计划P1173.为什么会产生过于乐观的软件开发计划P118第五章.软件项目跟踪●什么是软件项目跟踪P101.软件项目跟踪的对象P112.软件项目风险P12-153.项目进展P16-184.开发活动进展P19-205.开发活动问题P21-226.项目展望P237.软件项目跟踪的基础P248.软件项目跟踪的方式P259.软件项目跟踪的目标P2610.软件项目跟踪示意图P27●为什么需要对软件项目进行跟踪P29●软件项目跟踪会议1.何时召开会议P322.谁来参加会议P333.跟踪会议的组织和召开P344.修复计划P355.问题升级P36●软件项目跟踪的过程和步骤P38-47指派PTT (Project T race T eam)负责人选定要用的工具和表格实施PTT培训准备PTT会议召开PTT会议开展工作/问题升级会议分发PTT会议记录转到第5步直到项目结束●CMM对软件项目跟踪的要求P49-511.目标P522.制定方针政策P53-543.确保必备条件P55-594.实施软件过程P60-735.度量和分析P746.验证实施P75-77第六章.软件开发的风险管理●什么是软件风险P14●如何进行风险管理1.什么是软件风险管理P172.风险管理的策略P18-193.风险管理的组成P20-22●风险评估1.风险识别(风险的类别:计划编制、组织和管理、开发环境、最终用户、客户、承包商、需求、产品外部环境、人员、设计和实现、过程)P25-412.风险分析P42-48评估风险发生的概率估算风险造成损失的大小计算风险危险度(Risk Explosure)风险优先级●风险控制1.风险管理计划P51-522.风险化解P53-543.风险监控P55-56第七章.软件需求管理●什么是软件需求1.什么是软件需求P10-132.获取软件需求的重要性P143.获取软件需求的复杂性P15-164.解决的方法和手段P17●如何进行软件需求分析1.什么是软件需求分析P202.软件需求分析的任务P213.软件需求分析的目标P224.软件需求分析的过程和步骤P23-31(收集软件需求、软件需求建模、文档化软件需求、评审软件需求)●软件需求管理为什么需要对软件需求进行管理P34需求管理的内容P35收集软件需求(如何收集软件需求、文档化所收集的软件需求、软件需求收集的注意事项)P36-42软件需求建模(为什么需要对软件需求进行建模、如何对软件需求进行建模)P43-46 撰写SRS(软件需求规格说明书)P47-48评审软件需求(为什么需要对软件需求进行评审、如何进行评审、软件需求评审结果)P49-54控制软件需求的变更(控制SRS、控制软件需求的变更)P55-59●CMM对需求管理的要求P61-631.目标P642.制定方针政策P653.确定必备条件P66-694.实施软件过程P70-725.度量和分析P736.验证实施P74-76第八章.软件质量保证●软件质量1.什么是软件质量P12-142.为什么需要关注软件质量P15●软件质量保证1.什么是软件质量保证P18-192.从哪些方面关注软件质量P20-223.谁来执行和实施软件质量保证P234.如何保证软件质量(正确理解用户的要求、制定标准和规程、审查软件开发活动、审核软件工作产品、测试源程序代码、记录开发活动和软件产品的偏差、记录所有不符合项并报告高级管理者)P24-31●软件质量保证计划及其实施P33-34●CMM对软件质量保证的要求P36-381.目标P392.制定方针政策P403.确保必备条件P41-444.实施软件过程P45-525.度量和分析P536.验证实施P54-56第九章.软件配置管理●什么是软件配置管理P91.软件配置项P10-132.基线P14-173.软件配置管理P18-22●如何进行软件配置管理1.SCI标识P25-322.版本控制P33-343.变更控制P35-374.软件配置审计P38-395.状态报告P40-436.谁来实施软件配置管理P44●软件配置管理计划P46-48●CMM对软件配置管理的要求P50-521.目标P532.制定方针政策P543.确保必备条件P55-594.执行活动P60-695.度量和分析P706.验证实施P71-74●软件配置管理工具P76第十章.软件开发团队的管理●什么是团队P3●团队管理的内容P5-6●团队的组织结构1.组件团队结构应考虑的因素(明确团队的目标、明确团队的种类、高效团队的特征)P8-122.团队的模式(业务团队、首席程序员团队、臭鼬项目团队、特征团队、搜索救援团队、战术(SW AT)团队、大型团队)P13-20●成功团队VS失败团队1.成功团队的特点P222.典型错误P23-253.技术人员需要增强沟通技能P264.沟通和协调的方法和工具P275.有效的非正式口头沟通P286.如何管理高业绩团队P297.团队为什么会失败P308.长期的团队建设P319.人是进行项目管理中最大的变数P3210.看曹操是怎么用人的P3311.团队领导的实践指南P34-36●团队激励机制(激励机制、开发人员的激励因素、项目经理的激励因素、成就感、发展机遇、工作乐趣、个人生活、成为技术主管的机会、奖励和认可、正确评价业绩、典型错误—士气杀手)P38-49●做一个好的项目经理P511.项目经理的技能P522.有效的&低效的项目经理P533.项目经理的职责P544.激励组员P555.关心下属的成长P566.永远支持组员P577.“信者,至诚,至实,至一,至公也”P588.项目经理的影响力和权力P599.正确使用权力P6010.提高办事效率P6111.持续改进P6212.学习过去P6313.利用沟通解决冲突P6414.项目经理要则P65。
软件项目管理教材PPT41页

3.2 项目经理的责任和权力
二.项目经理的权力 1.生产指挥权 2.项目团队的组建权 3.财权 4.技术决策权
责任大于权力!!!
3.2 项目经理的责任和权力
• 项目经理的能力
12. .获消H得除ot项障T目 碍ip资 和源 解的 决能问力题的能力
3.领导能力和权衡能力 4.沟通能力 5.管理时间的能力 6.灵敏性
这既是矩阵型组织的优点也是它的缺点。资源在 项目经理之间流动容易引起项目经理之间的争斗, 每个项目经理都更关心自己项目的成功,而不是 整个公司的目标。 ➢ 许多因素使矩阵项目团队非常难以管理。团队成 员觉得这样的团队是临时的,所以对团队的忠诚 是有限的。
3.3 项目组织类型
四. 项目组织的设计
1H.o目t标T一ip致性原则
3 .1 项目相关利益主体
• 项目相关利益主体之间的关系
1.业H主ot与T项ip目实施组织之间的利益关系
二者的利益关系中相互一致的一面使项目业主与项目的
实施组织最终形成一种委托和受托,或者委托与代理的关 系。但是双方的利益有一定的对立性和冲突,如果处理不
好会给项目的成功带来许多不利的影响。这种利益冲突一 般需要按照互利的原则,通过友好协商,最终达成项目合 同的方法解决。因此在项目管理中,项目业主与项目实施
矩阵项目组织类型-弱矩阵 弱矩阵型组织管理形式
矩阵项目组织类型-平衡矩阵 平衡矩阵型组织管理形式
矩阵项目组织类型-强矩阵 强矩阵型组织管理形式
3.3 项目组织类型
矩阵型组织结构具有以下优点:
➢H项矩ot目阵T是型ip工组作织的具重有点项,目项型目组经织理的负长责处管。理整个项目,
➢ 可以有效地利用资源,项目可以分享各个部门的 技术、人才和设备。当多个项目同时进行时,公 司可以平衡资源以保证各个项目都能完成各自的 进度、费用和质量要求。
第2章软件项目管理PPT学习教案

第9页/共78页
10
软件项目管理的主要内容:
• 定义问题(确定新系统的作用域-目标) • 确认项目的可行性 • 建立项目的进度计划 • 建立项目的质量保证体系 • 建立项目配置管理体系和准则 • 项目版本变更管理 • 跟踪、监控项目的进展 • 风险管理 • 团队建设(人员管理,包括绩效评估等)
2名在转换期间数据输入人员
$960
(40小时/名,12美元/小时)
第16页/共78页
17
培训: 三天的开发人员内部培训课程 30个用户,三天的内部培训课程
复印 磁盘、纸张等消耗品 购买硬件、软件:
20台工作站Windows软件 20台工作站内存升级 网络软件 20台工作站办公软件产品
系统开发总费用 (成本)
间接的度量一个软件过程的功效: • 软件发布之前发现的错误数 • 交付给用户后报告的缺陷数 • 花费的工作量、时间、成本 • 与进度计划是否一致
第21页/共78页
22
个体软件过程(如PSP)提供了表格、脚本、标准以帮 助开发人员估算、计划以及度量、跟踪自己工作的方法。
过程度量对于一个组织(如企业)提高其总体的过程 成熟度能提供很大的帮助。如一个产品中,需求规约缺陷 占了25.5%,原因如图所示。
第10页/共78页
11
2.2 可行性研究
1、 可行性研究的任务和目的
GB 8566-88 《计算机软件开发规范》中指出: 可行性研究的主要任务是了解客户的要求及现实环 境,从技术、经济和社会因素等方面研究并论证本软件 项目的可行性,编写可行性研究报告供项目管理人员评 审,以便作出是否开发软件项目的决策。
第2章软件项目管理
软件项目管理ppt课件

15
IT项目管理-项目风险管理-14
Q期望货币值
. 期望货币值(EMV)是风险事件概率和风险 事件货币值的乘积
. 用于组织决定应该从事什么项目
10/12/2023
16
IT项目管理-项目风险管理-15
期望货币值(EMV)示例
10/12/2023
17
IT项目管理-项目风险管理-16
Q计算风险因子
. 计算风险因子——代表各种具体事件的整体 风险的数字(基于其发生的概率和对项目造 成的影响)
– 成本加成本百分比合同
– 买方向卖方支付容许的完成任务的成本,加上事先约 定的总成本的一定百分比。
. 单价合同
– 要求买方向卖方按单位服务的预定金额支付的合 同
10/12/2023
36
IT项目管理-项目采购管理-11
高
CPPC成 本加成 本百分 比合同
买方的风险
CPFF成 本加固 定费合
Q应急储备
. 是项目发起人为了应付项目范围或质量上可 能发生的变更而持有的预备资金
10/12/2023
22
IT项目管理-项目风险管理-21
Q风险应对控制
. 包括执行风险管理过程和风险管理计划,以 应对风险事件
. 执行风险管理过程是指确保风险意识是一项 在整个项目过程中、有全体项目团队成员执 行的不间断的活动
. 成本补偿合同
– 指向卖方支付直接和间接实际成本 – 成本加奖励费合同
– 买方向卖方支付容许的完成任务的成本以及事先决定 的费用和激励奖金
10/12/2023
35
IT项目管理-项目采购管理-10
– 成本加固定费合同
– 买方向卖方支付容许的完成任务的成本,加上按估算 成本一定百分比计算的固定费用。
第二章 软件项目整体管理

14
合同
如果项目是为外部顾客而进行的,则来自顾 客采购组织的合同属于依据。
15
SOW(工作说明书)
工作说明书是对应由项目提供的产品或服务的 文字说明。 对于内部项目,项目发起人或赞助人根 据经营需要、产品或服务要求提供一份工作说 明书。 对于外部项目,工作说明书属于顾客招 标文件的一部分,如建议邀请书、信息请求、 招标邀请书或合同中的一部分。
21
专家判断
项目实施组织中其他单位 咨询顾问或咨询公司 项目干系人包括客户 专业和技术协会 行业团队
22
制定项目章程—成果
项目章程是正式批准项目的文件。 该文件授权项目经理在项目活动中动用组织的 资源。
项目应尽早选定和委派项目经理。
项目经理任何时候都应在规划开始之前被委派, 最好是在制定项目章程之时。
61
监督和控制项目工作
用来监督项目启动、计划、执行和收尾,采 取纠正措施和预防措施控制项目绩效。
比较实际项目指标和项目管理基准计划; 评估绩效; 分析跟踪项目风险; 调节申请的变更的流程; 确定已批准的变更被实施; ……
62
63
监督和控制工作的输入
1、项目管理计划 2、工作绩效信息 3、绩效报告
9
项目章程示例
项目名称: 项目启动时间: 项目经理: 项目目标: 方法 角色与职责 姓名 张三 李四
计划完工时间:
角色 项目发起人 信息主管
职责 监督项目 监督项目,调配人员王五源自项目经理项目计划与实施
签名: 评述:
10
项目章程内容
项目名称和授权日期 项目经理与联系方式 项目简要范围说明书 计划的项目管理方法 角色与职责矩阵 签名 评述
《软件项目管理》PPT课件

22
Software Project Management
软件工程 软件开发经验 软件开发方法 程序设计语言
6.先导要求
23
Software Project Management
学习和掌握先导课程 理解知识点和思想
无需死记硬背 大胆提出你的想法和意见
掌握方法和工具 运用解决实际问题 阅读相关资料
布鲁克斯?
20世纪最后一年也就是1999年的图灵奖授予了年已69岁 的资深计算机科学家布鲁克斯(Frederick Phillips Brooks,Jr.)。布鲁克斯这个名字在中国知之者不多,但在 美国却是 大名鼎鼎的,因为他在60年代初只有29岁时就 主持与领导了被 称为人类从原子能时代进入信息时代标 志的IBM/360系列计算 机的开发工作,取得辉煌成功,从 而名噪一时。以后他作为硬 件和软件的双重专家和出色 的教育家始终活跃在计算机舞 台上,在计算机技术的诸 多领域中都做出了巨大的贡献。从某 种意义上说,对于 布鲁克斯而言,图灵奖是一个“迟到的荣誉”
7
Software Project Management
软件危机的表现(2 of 3)
软件质量得不到保证
软件应用面的扩大:科学计算、军事、航空航天、工业控制、企 业管理、办公、家庭
软件越来越多的应用于安全犹关(safety critical)的系统,对软件质 量提出更高的要求
80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误 美国阿托拉斯火箭的发射失败,原因是软件故障 英国1986年开发的办公室信息系统Folios经4年,因性能达不到要
11
Software Project Management
技术手段不能完全解决软件危机
到了20世纪90年代,软件危机依然存在,甚至更为严重
软件项目管理PPT课件

对项目变更进行严格控制和管理,确保变更不会对项目造成不利 影响。
项目收尾
01
项目验收
组织相关利益相关者对项目成果 进行验收,确保项目目标得以实 现。
项目总结
02
03
项目后评估
对项目过程中的经验教训进行总 结,为今后的项目提供参考和借 鉴。
评估项目的整体绩效,包括项目 的成本、进度和质量等方面,为 今后的项目提供改进方向。
加强团队成员培训与能力提升
提高团队成员对需求变更的敏感度和应对能力。
技术债务问题
技术债务的识别与解决策略
技术债务类型
代码质量差:代码缺乏规范和重构,导致维护 困难、性能低下和安全隐患。
技术债务问题
技术落后
采用已被淘汰或不推荐使用的技术和工具,影响项目进展和未来扩展性。
缺乏文档和注释
缺乏必要的文档和注释,导致团队成员难以理解和维护代码。
JUnit是Java语言的单元测试框架,用 于编写和执行测试用例。
项目管理软件
01
02
03
04
项目管理软件用于规划、跟 踪和管理软件项目,提高项 目执行效率和团队协作。常 用的项目管理软件包括Trello、
Asana和Jira。
Trello是一个看板式的项目管 理工具,通过拖放任务卡片 进行任务管理,适用于小型
软件项目管理ppt课件
目 录
• 软件项目管理概述 • 软件项目管理的核心概念 • 软件项目管理流程 • 软件项目管理工具与技术 • 软件项目管理挑战与解决方案 • 软件项目管理案例研究
01 软件项目管理概述
软件项目的定义与特点
定义
软件项目是为了实现特定目标,通过 计算机程序、数据库、文档等软件产 品来满足用户需求的过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
面向规模的度量-代码行估算
▪ 每行代码平均成本 Cl=S/L
其中 S 软件项目总开销(元/美元) Cl软件项目每千行代码的平均成本
▪ 文档与代码比 Dl=Pd/L
其中 Pd 软件项目文档页数 Dl 每千行代码的平均文档数
17
例:软件项目记录
项目
Aaa-01 Ccc-04 Fff-03
软件配置管理:制定配置管理计划;对程序、文档 和数据的各种版本进行管理,确保软件的完整性和 一致性。
5
软件项目管理特点
▪ 管理在软件工程项目中的地位和作用与其它工程项 目一样十分重要,必须对成本、人员、进度、质量、 风险等进行分析和管理。
▪ 软件产品是逻辑的,软件项目的施工是开发小组集 体的智力劳动,使用的开发工具是建立在计算机系 统上的软件。
23
面向功能的度量
▪ 软件规模的功能点度量没有直接涉及软件系统本身 的算法复杂性。
▪ 1986年Jones把软件项目中的算法复杂性因素引入到 功能点计算中来,为了避免混淆,我们把Albrecht 定义的功能点称为简单功能点,用FPs表示,把Jone s推广的功能点称为功能点,用FP表示。
▪ 推广的功能点包括计算机程序中用于各类问题求解 的算法因素,如求解线性代数方程组、遍历二叉树 的各个结点、处理中断等等。
第二章 软件项目管理
1
内容
软件项目估算 软件质量度量 软件复杂性度量 软件开发过程的管理 CMM
2
软件项目管理的目的
▪ 为了使软件项目能够在预定成本、进度、质量的前 提下顺利完成,必须对软件工程项目进行计划、组 织、监控和管理
3
软件项目管理任务
▪ 制定软件项目的实施计划和方案; ▪ 对人员进行组织和分工; ▪ 按照计划进度,以及成本管理、风险管理、质量管
∑Fi : 14个因素的复杂性调节值
Fi 取值 0,1,...,5
当 Fi = 0 时,表示 Fi 不起作用 Fi = 5 时,表示 Fi 作用最大
20
表2.3 功能点度量
测量参数
值 权值
用户输入数
□
*4 =
□
用户输出数
□
*5 =
□
用户查询数
□
*4 =
□
文件数
□
*7 =
□
外部界面数
□
*7 =
□
CT
能力; ▪ 采用代码行估算方法会对设计精巧的软件项目产生
不利的影响; ▪ 代码行估算只适用于过程式程序设计语言,不太适
用于非过程式的程序设计语言
19
Question:面向功能的度量?
软件功能点度量方法(三个步骤)
FP=CT[ 0.65+0.01∑Fi ] CT: 5个信息量的加权和(表2.3)
(2-5)
▪ 产品的外部属性 程序的可靠性 可用性 可维护性 软件的可理解性 有效性 可移植性
13
度量、测量和估算(7/8)
▪ 过程的内部属性 工作量 计划和进度 一段时间内某类事件发
生的次数 ▪ 过程的外部属性
成本 可控制性 可观察性 稳定性
14
度量、测量和估算(8/8)
▪ 资源的内部属性 人 软硬件环境
估算 estimation ▪ 对软件产品、过程、资源进行预测 ▪ 估算可以采用经验公式、或参考历史资料 ▪ 估算用于事前签订合同、立项、制定工作计划等
10
度量、测量和估算(4/8)
软件的ቤተ መጻሕፍቲ ባይዱ部属性和内部属性 ▪ 外部属性
软件产品、过程、资源与环境的关系 如,成本、效益、劳动生产率、可靠性、可维护性 ▪ 内部属性 软件产品、过程、资源、环境自身的属性 如,产品结构、模块化程度、复杂性、程序长度等。
11
度量、测量和估算(5/8)
▪ 用户和管理者关心外部属性,但在开发过程中无法 直接管理和控制。
▪ 由于外部属性是由内部属性决定的,因此必须建立 外部属性与内部属性的关系,并通过内部属性的度 量去度量外部属性。
12
度量、测量和估算(6/8)
▪ 产品的内部属性 程序代码长度 程序功能 模块化 重用性 控制流 数据流 模块耦合度与内聚度
8
度量、测量和估算 (2/8)
测量 measure ▪ 对软件开发过程、产品和资源进行实时和事后的定
量描述,涉及测量的要素、方法、过程、工具和数 值结果。 ▪ 直接测量和间接测量 直接测量用于不依赖于其它属性的简单属性; 间接测量用于依赖于若干其它属性的要素、准则和 属性。
9
度量、测量和估算 (3/8)
理的要求进行软件开发,完成软件项目的各项要求 和任务。
4
Question: 什么是软件项目管理?
成本管理:估算软件项目的成本,作为签订合同或 项目立项的依据;在软件开发过程中按计划管理经 费的使用。
质量管理:制定软件质量保证计划;按照软件质量 评价体系控制软件质量要素;对阶段性的软件产品 进行评审;对最终产品进行验证和确认,确保软件 产品的质量。
▪ 软件很多属性无法直接度量为软件定量分析和项目 管理增加困难。
6
软件度量
▪ 软件度量的意义 ▪ 软件度量的概念 ▪ 软件规模度量 ▪ 软件功能度量
7
度量、测量和估算 (1/8)
度量(metrics)
软件度量是软件产品、软件开发过程或资源简单属 性的定量描述。如程序规模、操作符个数、程序中 错误的个数等。
▪ 资源的外部属性 成本 时间
软件度量分类:
方法
经验
15
Question:面向规模的度量?
▪ 代码行估算方法
计算: ▪ 软件项目的生产率
Pl=L/E 其中 L 软件项目代码行数 E 软件项目工作量(人月 PM) Pl软件项目生产率(LOC/PM)
▪ 代码出错率 EQRl=Ne/L
其中Ne软件项目的代码错误数
=
□
21
面向功能的度量
表2.3中的五个信息量按下列方式取值
用户输入数 用户输出数 用户查询数
文件数 外部界面数
软件系统为用户提供的输出参数个数 一个联机输入确定一次查询,软件以 联机输出的形式,
统计所有机器可读的界面,利用这些 界面可以将信息从一个系统传送到另一个
22
面向功能的度量
Pf=FP/E 其中 Pf表示每人月完成的功能点数
工作量 PM
24
成本 万美元 16.8
代码行 kLOC 12.1
文档页数 Pd
365
错误数 Ne
29
人数 M
3
62
44.0
27.2 1224
86
5
43
31.4
20.2
1050
64
6
18
代码行估算软件规模的优缺点
优点: ▪ 简单,容易实行 缺点: ▪ 代码行数的估算依赖于程序设计语言的功能和表达