软件项目管理.ppt_第1页
软件项目管理.ppt_第2页
软件项目管理.ppt_第3页
软件项目管理.ppt_第4页
软件项目管理.ppt_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,软件工程,$5000,$10000,$50000,Unit 4 软件项目管理,70年代中期,70%的项目是由于管理不善引起的,而并不是因为技术实力不够,管理是影响软件研发项目全局的因素,而技术因素只影响局部。,90年代中期 美国软件工程实施现状的调查:,10%的项目能够在预定的费用和进度下交付。,成为软件项目开发中 最重要的核心问题之一。,软件项目管理,什么是软件项目管理?,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 软件项目管理的对象是软件工程项目,他所涉及的范围覆盖了整个软件工程过程。,Meiler Pag

2、e-Jones: 我拜访了很多商业公司,我也观察了很多数据处理的管理者,我常常恐惧地看到这些管理者徒劳地与恶梦般的项目斗争着,在根本不可能的最后期限下苦苦挣扎,或是在交付了使其用户极为不满的系统之后,又继续花费大量的时间去维护该系统。,Q,B,T,管理的范围,有效的项目管理集中于三个P 上: People 项目参与者 项目负责人 软件项目组 协调和通讯 Problem 软件范围 问题分解 Process 合并问题和过程 过程分解,软件项目管理,软件项目计划 风险管理 项目成本预算,1. 软件项目计划,软件项目计划 Software Project Planning,对估算的观察 Observa

3、tions on Estimating 项目计划目标 Project Planning Objectives 软件范围 Software Scope 资源 Resources 软件项目估算 Software Project Estimation 分解技术 Decomposition 经验估算模型 Empirical Estimation Models 自行开发或购买的决策 The Make/Buy Decision,软件项目计划Observations on Estimating,A leading executive was once asked: “ What single charact

4、eristic was most important when selecting a project manager?” His response:,“A person with the ability to know what will go wrong before it actually does”,And the courage to estimate when the future is cloudy.”,软件项目计划Observations on Estimating,估算需要: 经验 experience 了解以前有用的信息 access to good historical

5、information 当仅存定性数据时进行定量测量的勇气 the courage to commit to quantitative predictions when qualitative information is all that exists.,软件项目计划Observations on Estimating,Key points Project complexity, project size, and the degree of structural uncertainty all affect the reliability of estimate.,亚里斯多德: 记住:应该

6、满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确,软件项目计划Project Planning Objectives,提供一个框架,使得管理者能够对资源、成本及进度进行合理的估算。 一个限定的时间框架内 “最好的情况” 及“最坏的情况” 通过一个信息发现的过程实现的,软件项目计划Project Planning Objectives,Advice: The more you know, the better you estimate. Therefore, update your estimates as the project progresses.,软件项目计划S

7、oftware Scope,Key point: A consideration of software scope must include on evaluation of all externalinterfaces.,软件项目计划Software Scope,软件项目计划的第一个活动是软件范围的确定。 软件范围描述了功能、性能、约束条件、接口及可靠性。,软件项目计划Software Scope,范围是通过回答下列问题来定义的: 背景:待建造的软件如何适应于大型的系统、产品或商业的背景,在该背景下要加什么约束? 信息目标:软件要产生什么样的客户可见的数据对象输出,需要什么样的数据对象输入

8、? 功能和性能:软件执行什么样的功能使得输入数据才能变换成为输出数据?需要满足什么特殊的性能特征吗?,软件项目计划Software Scope,Advice: Technical feasibility is important, but business need is even more important. It does no good to build a high tech system or product that no one really wants.,软件项目计划Resources,Key Point: To be reused effectively, software

9、 components must be cataloged, standardized, and validated.,软件项目计划Resources,硬件/软件工具,可复用构件,人员,提供支持开发 工作的基础,极大地降低开发成本,时间,主要资源,软件项目计划Resources,人力资源 描述组织的职位及专业技能等 可复用软件资源 可直接使用的构件 具有完全经验的构件 具有部分经验的构件 新构件 环境资源 硬件及软件,软件项目计划Resources,资源说明四特征 资源描述 可用性说明 需要该资源的时间 被使用的持续时间,软件项目计划Resources,软件成本及工作量估算永远不会是一门精确的

10、科学。 可以从神秘的技巧向一系列系统化的步骤转化,软件项目计划Software Project Estimation,几种可考虑的选择 将估算拖延到项目的最后 基于已经完成的类似项目 使用简单的分解技术 使用经验模型,软件项目计划Software Project Estimation,Advice When collecting productivity metrics for projects, be sure to establish a taxonomy of project types. This will enable you to compute domain specific a

11、verages, making estimation more accurate.,软件项目计划Decomposition,分解问题, 将项目分解成若干主要功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量的估算 问题分解 “分而治之” 过程分解 回答“如何完成公共过程框架?”,软件项目计划Empirical Estimation Models,Key Point An estimation model reflects the population of projects from which it has been derived. Therefore, the model is

12、 domain sensitive.,软件项目计划Empirical Estimation Models,估算模型的结构 E=A+B*(ev)C A、B、C是由经验导出的常数, E是以人月为单位的工作量 ev 是估算变量,软件项目计划Empirical Estimation Models,面向LOC的估算模型 E=5.2*(KLOC)0.91Walston-Felix模型 E=5.5+0.73*(KLOC)1.16Bailey-Basili模型 E=3.2*(KLOC)1.05Boehm模型 E=5.288*(KLOC)1.047Doty模型 面向FP的估算模型 E=-13.39+0.0545

13、FPAlbrecht 和Gaffney E=60.62*7.728*10(-8)*FP3Kemerer E=585.7+5.12FPMaston、Barnett 和Mellichamp,软件项目计划Empirical Estimation Models,COCOMO 模型(Constructive Cost MOdel) 软件估算模型的层次体系 模型1:基本COCOMO模型,将软件开发工作量及成本作为程序规模的函数进行计算,程序规模已估算的代码来表示。 模型2:中级COCOMO模型,将软件开发工作量及成本作为程序规模及一组“成本驱动因子”的函数来进行计算,其中“成本驱动因子”包括对产品、硬件、

14、人员、及项目属性的主管评估。 模型3:高级COCOMO模型,包含了中级莫茨能够的所有特性,并结合了成本驱动因子对软件工程过程中每一步骤的影响评估。,软件项目计划Empirical Estimation Models,软件方程式 是一个多变量模型,他假设在软件开发项目的整个生命周期中的一个特定的工作量分布。 E=LOC*B0.333/P3*(1/t4),软件项目计划Empirical Estimation Models,Advice: None of these models should be used without careful calibration to your environme

15、nt.,软件项目计划The Make/Buy Decision,自行开发/购选择 购买可直接使用的软件 购买“具有完全经验”或“具有部分经验”的软件构件,修改,集成 外包,软件项目计划The Make/Buy Decision,低成本的软件 昂贵的软件产品 建立性能及性能规约,可测量性 估算内部开发的成本及交付日期 选择三到四个候选软件 选择能够有助于建造所需软件的可复用构件 建立比较矩阵,对关键功能进行比较/测试 根据以前产品的质量、开发商的支持、产品的方向、以及其名声评估候选软件包后构件 联系该软件的其他用户并询问其意见,软件项目计划The Make/Buy Decision,自行开发/购

16、买 时间 成本,软件项目计划The Make/Buy Decision,系统 X,建造,复用,购买,承包,简单(0.30),困难(0.70),小改动(0.40),大改动(0.6),简单(0.2),复杂(0.8),小改动(0.70),大改动(0.7),不改动(0.6),有改动(0.4),$380,000,$450,000,$275,000,$310,000,$490,000,$210,000,$400,000,$350,000,$500,000,$429,000,$382,000,$267,000,$410,000,决策树,软件项目计划The Make/Buy Decision,Advice T

17、here are times when off-the-shelf software provides a “perfect” solution except for a few special features that you cant live without. In many cases, its worth living without the special features!,软件项目计划 Software Project Planning,对估算的观察 Observations on Estimating 项目计划目标 Project Planning Objectives 软

18、件范围 Software Scope 资源 Resources 软件项目估算 Software Project Estimation 分解技术 Decomposition 经验估算模型 Empirical Estimation Models 自行开发或购买的决策 The Make/Buy Decision,最常见的进度计划风险,功能无限蔓延 需求镀金或开发人员镀金 质量不定 计划过于乐观 设计欠佳 银弹综合症 研发导向的开发 人员薄弱 签约商失败 研发人员与客户的摩擦,2. 风险管理,What is Risk Management?,Risk is introduced by many fac

19、tors, but risk management is the identification, assessment and planning for any unfavorable event that could impact a project. Managing risk is essential to prepare for a project so it: Comes in under budget Has enough resources Finishes before its deadline,Why to manage risk?,Life is full of uncer

20、tainty! If you do not actively attack risks, they will actively attack you!,Why to manage risk?,Fine any project problems. Determine if a project can be achieved Find any items that may badly effect or kill the project Reduce or eliminate nasty surprises Prepare for any risks and deal with them,风险管理

21、 Risk Management,风险管理要素 Risk Management Principles 风险识别 Risk Identification 风险分析 Risk Analysis 风险的优先级 Risk Prioritization 风险管理计划 Risk Management planning 风险化解 Risk Resolution 风险监视 Risk Monitoring,Risk Management Principles,赌博 1988, Peat Marwick 针对600 家成功公司的调查结果显示,35%的公司有过软件项目失控的经历。,Risk Management P

22、rinciples,Software is Risky Business PKMG study 55% of runaway projects did no risk management 38% did some, but half of those didnt use their risk findings after the project was underway 7% didnt know whether they did risk management Total: About 80% of runaway projects did no meaningful risk manag

23、ement,Risk Management Principles,Risk Management Principles,风险管理,风险评估,风险控制,风险识别,风险分析,风险优先级,风险管理计划,风险化解,风险监控,风险评估 风险识别提出一个潜在破坏项目进度的风险列表。 风险分析评估每一个风险出现的可能性及其影响,判定风险的级别。 风险优先级按风险影响大小排出一个风险优先级,这个风险列表将作为风险控制的基础。,风险控制 风险管理计划制定一个应对每个重要风险的方案,同时确保每一个单独的风险管理计划之间以及与整体项目计划之间相一致。 风险化解每个重要风险所对应计划的执行。 风险监控对解决风险的过程

24、进行监控,还可以包括识别新的风险并将其反馈到正在进行的风险管理进程中。,软件项目风险管理五种状态,危机管理风险已经造成麻烦后才处理。 失败处理觉察到风险并迅速处理。 风险缓解事先制订好风险发生后的补救 措施,但不作任何防范措施。 着力预防将识别和防范作为项目一部分 加以规划和执行。 消灭根源识别和消除风险根源。,软件项目风险管理原则,区分风险和已存在的现有问题 通过风险的管理变被动的面对风险,即消防状态为主动面对风险,即钓鱼状态 最小化项目失败的潜在可能 创造风险管理的气氛,Risk Identification,如果你不问关于风险的问题, 你就可能是正在问所遇到麻烦的 问题 Tom Gilb

25、,确定可能对项目造成影响的风险,并且把每一风险的特性编制成文档。 风险识别不是一次性活动,必须在整个项目过程中经常进行 风险识别的工具和办法: 风险检查列表 调查问卷 interviewing Delphi 头脑风暴法 Brainstorming,风险检查列表,产品规模与要建造或要修改的软件的总体规模相关的风险。 商业影响与管理或市场所加诸的约束相关的风险。 客户特性与客户的素质以及开发者和客户定期通信的能力相关的风险。 过程定义与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。 开发环境与用以建造产品的工具的可用性及质量相关的风险。 建造的技术与待开发软件的复杂性及系统所包含技

26、术的“新奇性”相关的风险。 人员数目与经验与参与工作的软件工程师的总体技术水平及项目经验相关的风险。,The Software Development Risk Taxonomy,Risk Analysis,重要的是量化不确定程度及与每个风险相关的损失的程度。 Probability Very low, low, medium, high and very high Impact Negligible, marginal, critical and catastrophic Overall Risk,风险因素,性能风险产品能够满足需求且符合于其 使用目的的不确定的程度。 成本风险项目预算能够被

27、维持的不确定 的程度。 支持风险软件易于纠错、适应及增强的 不确定的程度。 进度风险项目进度能够被维持且产品能 按时交付的不确定的程度。,Overall Risk,风险暴露量(Risk Exposure),RE=不希望的损失的概率*损失的程度 RE= risk likelihood * risk impact,损失和概率的评估方法,由最熟悉系统的人评估每个风险的发生概率,然后保留一份风险评估审核文件。 使用Delphi法:从一组专家中得到一致的意见,来预测未来的发展。 少数服从多数法,Risk Prioritization,由于风险管理需要一定的成本,因此需要确定风险的优先级,以便明确风险管理

28、要专注的重点。,定量,按风暴暴露量排序,确定风险优先级,定性,Risk Management Planning,Risk management planning is The Process of deciding of how to approach and plan for risk management activities for a project and the main output of this process is risk management plan. A risk management plan documents the procedures for managi

29、ng risk throughout the project.,Question addressed in,Why is it important ? What is the specific risk? How is the risk going to be mitigated? Who are the individuals responsible for implementing ? When will the milestone associated with the mitigation approach occur? How much is required in terms of

30、 resources to mitigate risk?,安排风险管理计划的进度,将风险管理计划和标准项目管理过程结合,确保计划的执行 把风险管理计划的任务安排到项目进度表中,Risk Resolution,避免风险 将风险从系统的一部分转移到另一部分 购买关于风险的信息 消除产生风险的根源 接受风险 发布风险 控制风险 记住风险,Example,Risk:Loss of key team members Determine causes of job turnover Eliminate causes before project starts After project starts, a

31、ssume turnover is going to occur and work to ensure continuity Make sure teams are organized and distribute information widely Define documentation standards and be sure documents are produced in a timely manner. Define backup staff *p102 of Rogers,Risk Monitoring,检查每个风险的化解程度,并确定随着它们的消失而带来的新的风险。,不断的

32、识别新的风险 不断识别新的风险 不断的分析风险的产生概率 不断的整理风险表 不断的规避优先级别最高的风险,Same Example,监控因素 项目组成员对于项目压力的一般态度 项目组的凝聚力 项目组成员彼此之间的关系 与报酬和利益相关的潜在问题 在公司内和公司外工作的可能性 文档,Using Software Tool,Database Keep track of risk Spreadsheets Aid in tracking and quantifying risk Microsoft Project 2000 Perform PERT analysis Risk+ (by C/S So

33、lution, Inc.) Monte Carlo Simulations,Risk Management Review,风险管理要素 Risk Management Principles 风险识别 Risk Identification 风险分析 Risk Analysis 风险的优先级 Risk Prioritization 风险管理计划 Risk Management planning 风险化解 Risk Resolution 风险监视 Risk Monitoring,The BIGGEST risk?,Not knowing what the risks are!,知己知彼 百战不殆,

34、3. 项目成本预算,软件成本 软件报价,软件成本,涉及到软件成本的常见问题:,情境一: 你们帮我们设计个办公自动化系统,需要多少钱? 情境二: 我们预算投入20万建立公司的信息管理系统,你们能不能做的到? 情境三: 对方公司希望与我们合作,捆绑销售,我们的软件许可证一份收多少钱?,软件成本的构成,一: 人员工资 差旅费 通讯费 硬件 工具 福利费 招待费等等,二: 管理费用分摊 人员招聘费用 风险费用 培训成本费 技术支持费 用户教育费 包装制作费 市场推广费等等,软件成本的快速估算(1) 以人月为基础:,(人员数开发周期单位工资)3(成本系数) 例如: 人员平均工资5000元,共需要6名工程

35、师,项目开发周期为4个月 则简单的成本估算为(6人4月5000元)3360000元,历史经验: 人员规模越大,成本系数越高。 技术水平越高,成本系数越高。 开发周期越长,成本系数越高。 一般系数为:1.53.0之间。,特征: 简单,容易估算 需要建立在工作量计算的基础上进行估算 不够准确,弹性大,软件成本的快速估算(2) 以功能点为基础:,(功能模块单价)功能块点数 例如 :某个系统可分为10个模块,每个模块按照历史的经验计算,其中3个为15000元,5个为20000元,2个为4000元,则系统的成本为: (15000 3)+(20000 5)(4000 2)=1530000元,功能模块单价功能点数开发系数 例如 :某个系统可分为10个模块,每个模块按照历史的经验计算,其中: 3个为15000元,开发难度系数为2 5个为20000元,开发难度系数为3 2个为4000元,开发难度系数为1 则系统的成本为: (15000 3) 2 +(20000 5)3 (4000 2) 1 =398000元,历史经验: 系统越复杂,开发难度系数越高 开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论