第12章 软件项目的计划和成本估计 本章主要内容:软件开发项目的特点;项目计划目的与作用;项目计划制定的原则、内容、编制过程及项目计划内容确定;成本估算的方法和经验模型;进度安排的制定过程及方法; 本章重点:项目计划目的与作用;项目计划制定的原则、内容, 成本估算的方法和经验模型 。 本章难点:软件开发的组织结构,人员的配备和团队的管理.

Slides:



Advertisements
Similar presentations
上海交通大学计算机系 概述  软件的概念  软件特征  什么是项目  什么是项目管理,项目管理的特征,涉及的知识 域  项目阶段,项目生命周期  软件项目及其特点,软件项目的阶段  软件项目的目标与人员  常见错误.
Advertisements

——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
工程建设基本程序 项目决策 初步设计 技术设计 施工图设计 招投标 项目实施 竣工验收.
第三章 网络计划技术.
第7章 网络计划技术.
绩效考评表格设计 班级:15服务4班 姓名:杨冬茜.
初级会计电算化 (用友T3) 制作人:张爱红.
案例2 胸卡的制作. 案例2 胸卡的制作 知识要点: 学习重点及制作思路 学习目的: 邀请函的制作步骤: 1.掌握邮件合并功能 2.掌握比较并合并文档方法 3.掌握页面插入背景图 4.熟练使用文本框 知识要点: 1.邮件合并功能 2.文档中插入域内容 3.文本框的使用 技能要点: 1.域、文档部件操作.
项目管理案例分析.
UI(用户界面)集训班 Illustrator 高级班.
软件工程学 中国科学技术大学网络学院.
会计学专业基础课堂之 基础会计(初级会计) 安徽财经大学会计学院.
“基于时政热点问题,政史地学科横向统整”的拓展型课程开发与实践研究
主讲:刘祖容 副教授 广西大学土木建筑工程学院
第三篇 组织工作.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
第一节 旅游规划的意义和种类 第二节 旅游规划的内容 第三节 旅游规划的编制 第四节 旅游景区规划
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
1.3 Project2010简介、新增功能及安装卸载.
Harvard ManageMentor®
Harvard ManageMentor®
扁平化精美IT工作实施规划 涛说PPT.
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
第 3 章 基本概念.
SOA – Experiment 3: Web Services Composition Challenge
项目管理 Project Management
走进编程 程序的顺序结构(二).
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
软件项目管理 项目管理过程 软件生产率和质量的度量 软件项目的估算 软件项目计划的目标 软件成本和工作量估算 进度安排 软件项目的组织与计划
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
Harvard ManageMentor®
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
第 5 章 IT软件项目计划管理 (2.5次、5课时).
数据挖掘工具性能比较.
动态规划(Dynamic Programming)
Windows 7 的系统设置.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
Harvard ManageMentor®
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
软件项目管理工具 Software Project Management Tool
第一章 專案管理基本理念 與 MS Project 重要功能
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
《产品设计工程应用》课程 陈兴波 顺德职业技术学院/设计学院/工业设计专业.
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
网页设计与制作 —— 学习情境二:网页模板设计
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
软件工程 Software Engineering 软件管理
系统权限管理概要 用 户 访问权限 对 象 用户和组 全局权限 类别 每个用户可以属于多个用户组 用户组可以与AD安全组同步 系统预置用户组
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第七、八次实验要求.
机械设备的完整性和可靠性管理 Maintenance integrity & reliability.
导 言 经济学的基本问题 经济学的基本研究方法 需求和供给.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
项目管理者提升路径 吴永达 项目管理者学习顾问.
1.概述 软件的概念 软件特征 什么是项目 什么是项目管理,项目管理的特征,涉及的知识域 项目阶段,项目生命周期
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
IT 方法 INTOSAI IT 审计培训.
Sssss.
Presentation transcript:

第12章 软件项目的计划和成本估计 本章主要内容:软件开发项目的特点;项目计划目的与作用;项目计划制定的原则、内容、编制过程及项目计划内容确定;成本估算的方法和经验模型;进度安排的制定过程及方法; 本章重点:项目计划目的与作用;项目计划制定的原则、内容, 成本估算的方法和经验模型 。 本章难点:软件开发的组织结构,人员的配备和团队的管理 。

第12章 软件项目的计划和成本估计 12.1软件的目标与项目计划 12.2 成本估算 12.3 进度计划

12.1软件的目标与项目计划 12.1.1软件开发项目的特点 与其他类型项目的共同点:项目成功与否不仅取决于项目过程中所采用的技术方法工具,还取决于项目管理的水平,特别是计划与控制的水平。

12.1.1软件开发项目的特点 与其他类型项目的不同点: (1) 软件产品和其他产品不同,软件产品是一种“逻辑”产品,是无形的,没有物理属性的,看不见、摸不着、难以理解。 (2) 需求难以明确且频繁变更:由于用户的成熟度或责任心的原因,用户开始无法给出明确的需求。在开发过程中,需求可能要经常修改,因此需要经常地修改程序与文档。 (3) 难以在早期发现问题:需求不明确,加上后期修改可能没有进行全局性的考虑,产生的问题难以从早期的文档中直观地发现,需要等系统设计出来后才会发现。 (4) 项目成员对文档的重视不够,符合用户需求的高质量软件,需要依赖于大量准确规范的文档编辑工作,但项目组成员对他并不感兴趣,很少愿意认真去做,因而直接影响了软件的质量。 (5) 劳动密集型+智力密集型:软件开发过程需要大量高强度的脑力劳动,并且都是手工劳动,这些劳动非常细致、高度复杂、容易出错,质量难以用简单的度量来衡量,使得软件的正确性难以保证。

12.1.2项目计划目的与作用 根据软件能力成熟度模型(简称CMM)集成CMMI,软件开发项目计划的目的是:建立和维护定义项目活动的计划。项目计划属于CMMI的第2级,其过程域包括开发项目计划、与相关人员交流、获取对计划的承诺、维护计划。 1. 项目计划的目标 (1) 项目计划的第一个目标:建立估计值,即建立和维护项目计划因素的估计值。

1. 项目计划的目标 (2) 项目计划的第二个目标:开发项目计划文档,即文档化项目计划,维护项目计划,并以此作为项目管理的基线。 (3) 项目计划的第三个目标:获得并维持所有项目干系人对项目的承诺。 项目计划是项目实施的基础。 任何项目计划都是为了解决三个问题:  确定项目目标;  确定为了达成项目目标的各项行动的顺序和时间;  确定项目中每项行动所需要的资源。

所以制定项目计划就是在明确项目目标的基础上,确定项目行动方案,分配相关资源的项目综合管理过程,就是通过对历史的、当前的、项目或组织内部的和项目或组织外部的有关信息进行分析和评价,对项目生命周期过程中可能的发展进行评估、预测,对新项目实施工作进行的各项活动做出尽可能周密的安排,最终形成一个所有项目干系人认可的、约定项目各项活动、作为项目实施工作基础的文件——项目计划。项目计划围绕项目目标的完成系统地确定项目的任务、安排任务进度、编制完成任务所需的资源预算等,从而保证项目能够在合理的工期内,用尽可能低的成本达到尽可能高的项目质量要求。在制定项目计划过程中必须明确五个基本问题:做什么、如何做、何时做、谁去做、需要多少资源。

2. 项目计划的作用 (1) 确定完成项目目标所需的各项任务范围,落实责任,制定各项任务的时间表,明确各项任务所需的人力、物力、财力; (2) 确定项目的工作规范,遵循的标准,成为项目实施的依据和指南; (3) 明确项目组各成员及其工作责任范围以及相应的职权;使项目组成员明确自己的工作目标、工作方法、工作途径、工作期限要求; (4) 保证项目进行过程中项目组成员和项目干系人之间的交流、沟通与协作,使得项目各项工作协调一致,增加客户满意度; (5) 为项目的跟踪控制提供基础。 (6) 项目计划在项目中起到承上启下的作用,计划批准后应当作为项目的工作指南。

12.1.3项目计划制定的原则 (1)目的性 (2)系统相关性 (3)经济性 (4)动态性

12.1.4项目计划的内容 1. 项目范围说明 2. 项目进度计划3. 项目质量计划 4. 项目资源计划 5. 项目沟通计划 6. 风险对策计划 7. 项目采购计划 8. 变更控制、配置管理计划

12.1.5项目计划编制过程 软件开发项目计划不可能是一个静态的计划,在项目启动时,可以先制定一个颗粒度相对比较粗的项目计划,先确定项目高层活动和预期里程碑。粗颗粒度的项目计划需要不断地更新迭代 项目计划从最初的粗颗粒度,变得非常详细。 制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真地制定计划,项目经理可以知道哪些要素是明确的,哪些要素是要逐渐明确的,通过渐近明细不断完善项目计划。 制定计划的过程,也是在进度、资源、范围之间寻求一种平衡的过程。 在于运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。

12.1.5项目计划编制过程 项目计划编写一般要按照以下过程: 1. 成立项目团队 正式在“项目立项文件”中指定的项目经理组织项目团队,成员可以随着项目的进展在不同时间加入项目团队,也可以随着分配的工作完成而退出项目团队。 2. 项目开发准备 项目经理组织前期加入的项目团队成员准备项目工作所需要的规范、工具、环境,如开发工具、源代码管理工具、配置环境、数据库环境等。

12.1.5项目计划编制过程 3. 项目信息收集 4. 编写《软件项目计划书》 项目经理负责组织编写《软件项目计划书》。《软件项目计划书》是项目策划活动的核心输出文档,它包括计划书主体和以附件形式存在的其他相关计划,如配置管理计划等。

12.1.5项目计划编制过程 编制项目计划的过程应当分为以下几个步骤: (1) 确定项目的应交付成果。 (2)任务分解:从项目目标开始,从上到下,层层分解,确定实现项目目标必须要做的各项工作,并画出完整的工作分解结构图。 (3)在资源独立的假设前提下确定各个任务之间的相互依赖关系,以确定各个任务开始和结束时间的先后顺序,获得项目各工作任务之间动态的工作流程。

12.1.5项目计划编制过程 (4)确定每个任务所需的时间,即根据经验或应用相关方法给任务需要耗费的时间;确定每个任务所需的人力资源要求,如需要什么技术、技能、知识、经验、熟练程度等等。 (5)确定项目团队成员可以支配的时间,即每个项目成员具体花在项目中的确切时间;确定每个项目团队成员的角色构成、职责、相互关系、沟通方式。 (6)确定管理工作,管理工作是贯穿项目生命周期的,如项目管理、项目会议、编写阶段报告。 (7)根据以上结果编制项目总体进度计划,总体进度计划应当体现任务名称、责任人、开始时间、结束时间、应提交的可检查的工作成果。 (8)考虑项目的费用预算、可能的风险分析及其对策、需要公司内部或客户或其他方面协调或支持的事宜。

5. 软件项目计划书评审、批准 项目计划书评审、批准是为了使相关人员达成共识、减少不必要的错误,使项目计划更合理更有效。 项目经理完成《软件项目计划书》后,首先组织项目团队内部的项目团队负责人、测试负责人、系统分析负责人、设计负责人、质量监督员等对项目计划书进行评审,评审可采取电子或会议方式,并进行阶段成果项目团队内评阅记录。应当要求所有相关人员在收到软件项目计划书后的一个约定时间内反馈对计划书的意见。项目经理确保与所 项目经理将已经达成一致的软件项目计划书提交项目高层分管领导或其授权人员进行审批,审批完成时间不能超过预先约定的时间。

5. 软件项目计划书评审、批准 批准后的软件项目计划书作为项目活动开展的依据和本企业进行项目控制和检查的依据,在必要时根据项目进展情况实施计划变更。 项目质量监督员根据《软件项目计划书》和《软件开发项目质量计划书规范》编制软件开发项目质量计划。 配置管理员根据计划书编制《项目配置管理计划》。 项目策划工作完毕,软件项目计划书通过评审,一般情况下,对软件开发项目来说,工作转入需求分析阶段。

12.1.6项目计划内容确定 项目计划内容的确定一般要按照以下过程: 1. 确定项目概貌 2. 确定项目团队 3. 明确项目团队内、外的协作沟通方法 4. 规划开发环境和规范 5. 编制工作进度计划 ⑴ 工作任务划分; ⑵ 显示项目各阶段或迭代的时间分配情况的时间线或甘特图; ⑶ 确定主要里程碑、阶段成果; ⑷ 要求用文字对项目工作计划做出解释。最终用一张时间表格来完整说明整个工工作计划

12.1.6项目计划内容确定 6. 编制项目的监控计划 7. 编制项目的风险计划 8. 制定辅助工作计划 9. 规划开发支持工作 10. 规划项目验收 11. 规划项目收尾与交接活动

12.2 成本估算 软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。 12.2 成本估算 软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。 成本估算是对完成项目所需费用的估计和计划,是项目计划中的一个重要组成部分。 要实行成本控制,首先要进行成本估算。

11.2.1成本估算的方法 1. 经验估算法 2. 因素估算法 3. WBS基础上的全面详细估算 采用这一方法的前提条件或先决步骤是: (1)对项目需求做出一个完整的限定。

(2)制定完成任务所必需的逻辑步骤。 (3)编制WBS表。 除此之外, (1) 类比估算法。 (2) 细分估算法 (3) 周期估算法

12.2.2成本估算的经验模型 1. Putnam 模型 此模型是Putnam于1978年提出的,它是一种动态多变量模型。 L = Ck * K1/3 * td4/3 其中: L-----------源代码行数(以LOC计) K----------整个开发过程所花费的工作量(以人年计) td----------开发持续时间(以年计) Ck---------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异

12.2.2成本估算的经验模型 2. COCOMO模型(constructive cost model) COCOMO模型中用到以下变量: DSI-------源指令条数。不包括注释,1KDSI = 1000DSI。 MM-------开发工作量(以人月计) 。1MM = 19 人日 = 152 人时 =1/12 人年 TDEV-----开发进度 (以月计)。

12.2.2成本估算的经验模型 COCOMO模型中,考虑开发环境,软件开发项目的类型可以分为3种: (1) 组织型(organic):相对较小、较简单的软件项目。 (2) 嵌入型(embedded):要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起,对接口,数据结构,算法的要求高,软件规模任意,如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。 (3) 半独立型(semidetached):介于上述两种软件之间。规模和复杂度属于中等或更高,最大可达30万行。 估算公式: 基本COCOMO模型估算工作量和进度的公式如下: 工作量: MM = r*(KDSI)c 进度: TDKV = a(MM)b 其中经验常数 r, c, a, b 取决于项目的总体类型。

12.3 进度计划 安排进度计划的目的是为了控制时间和节约时间,而项目的主要特点之一即是有严格的时间期限要求 12.3.1进度安排的制定过程 12.3 进度计划 安排进度计划的目的是为了控制时间和节约时间,而项目的主要特点之一即是有严格的时间期限要求 12.3.1进度安排的制定过程 软件项目的进度安排主要是考虑软件交付用户使用前的这一段开发时间的安排 利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不致被拖延。

软件开发项目的进度安排往往有两种考虑方式: (1) 系统最终交付日期已经确定,不能更改,软件开发部门必须在规定期限内完成任务,开发团队在这一约束条件下安排进度计划。 (2) 系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定。 项目整体进度安排的过程如下: (1) 根据项目总体进度目标,编制人员计划。 (2) 将各阶段所需要的资源和可以取得的资源进行比较,确定各阶段的初步进度,然后确定整个项目的初步进度。 (3) 对初步进度计划进行评审,确保该计划满足要求,否则就要重复上面的步骤。—般都需要多次调整。

12.3.2任务的并行性 进行进度安排时要考虑的一个主要问题是任务的并行性问题。

12.3.3进度安排的方法 进度是计划的时间表。 1. 关键日期表 2. 甘特图 甘特图(Gantt Chart),又称横道图,是各项任务与时间的对照图表。用水平线表示任务的工作阶段,其中线段的长度表示完成任务所需要的时间,起点和终点分别对应启始和结束时间。

甘特图

3. 网络图 用网络分析的方法编制的进度计划称为网络图。 关键路线法(Critical Path Method,简称CPM)和计划评审技术(Program Evaluationand Review Technique,简称PERT)是20世纪50年代后期几乎同时出现的两种计划方法。 注意: 关键日期表编制时间最短,费用最低。甘特图所需时间要长一些,费用也高一些。CPM要把每个活动都加以分析,若活动数目较多,还需用计算机求出总工期和关键路线,因此花费的时间和费用将更多。PERT法可以说是制订项目进度计划方法中最复杂的一种,所以花费时间和费用也最多。

采用哪一种进度计划方法,主要应考虑下列因素: (1)项目的规模大小。 (2)项目的复杂程度。 (3)项目的紧急性。 (5)总进度是否由一、两项关键事项所决定。 影响项目管理中成本的三因素 项目成本管理有效建议