软件项目管理 PPT课件_第1页
软件项目管理 PPT课件_第2页
软件项目管理 PPT课件_第3页
软件项目管理 PPT课件_第4页
软件项目管理 PPT课件_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

软件项目管理 主要内容项目管理的概念软件项目计划风险管理项目成本预算 重点 难点 1 70年代中期 70 的项目是由于管理不善引起的 而并不是因为技术实力不够 管理是影响软件研发项目全局的因素 而技术因素只影响局部 2 90年代中期美国软件工程实施现状的调查 10 的项目能够在预定的费用和进度下交付 3 成为软件项目开发中最重要的核心问题之一 软件项目管理 4 1 项目管理的概念 Q B T 5 6 7 项目管理框架 8 1 项目管理的概念 9 项目管理的概念 什么是软件项目管理 软件项目管理是为了使软件项目能够按照预定的成本 进度 质量顺利完成 而对成本 人员 进度 质量 风险等进行分析和管理的活动 软件项目管理的对象是软件工程项目 他所涉及的范围覆盖了整个软件工程过程 10 项目管理的概念 MeilerPage Jones 我拜访了很多商业公司 我也观察了很多数据处理的管理者 我常常恐惧地看到这些管理者徒劳地与恶梦般的项目斗争着 在根本不可能的最后期限下苦苦挣扎 或是在交付了使其用户极为不满的系统之后 又继续花费大量的时间去维护该系统 11 项目管理的概念 管理的范围 有效的项目管理集中于三个P上 PeopleProblemProcess 12 项目管理的概念 人员 IEEE发表的一项研究中 三个大型的技术公司的主管工程的副总裁被问到一个成功的软件项目中最重要的一因素是什么 他们回答如下 第一位 我想如果必须在我们的环境中挑出一项最重要的因素 我必须承认它不是我们所用的工具 而是人 第二位 一个项目成功的最重要的因素是有聪明的人 我想不出其他因素 你为一个项目所做的最重要的事情是选择人员 软件开发组织的成功与其招募的优秀人才的能力密切相关 第三位 我在管理上唯一的准则是保证我有优秀的人员 真正优秀的人员 同时我也培养优秀的人员 我提供培养优秀人员的良好环境 13 项目管理的概念 管理的范围 有效的项目管理集中于三个P上 PeopleProblemProcess 14 项目管理的概念 People 项目参与者高级管理者项目 技术 管理者开发人员客户最终用户 15 项目管理的概念 人员 项目参与者项目负责人软件项目组协调和通讯问题 16 项目管理的概念 人员 项目负责人 JerryWeinbergMOI模型 MotivationOrganizationIdeasorInnovation项目负责人 Edgemon 解决问题管理者的身份成就影响和队伍建设 17 项目管理的概念 人员 软件项目组 Mantei 民主分权式 DemocraticDecentralized DD 控制分权式 ControlledDecentralized CD 控制集权式 ControlledCentralized CC 18 马云 我最欣赏唐僧师徒团队 平凡的人 做非凡的事 19 项目管理的概念 人员 协调和通讯问题正式的 非个人的方法正式的 个人间的规程非正式的 个人间的规程电子通讯个人间的网络 20 项目管理的概念 有效的项目管理集中于三个P上 PeopleProblemProcess 21 项目管理的概念 Problem 软件范围背景信息目标功能和性能问题分解软件需求分析和核心活动必须交付的功能交付所用的过程 22 项目管理的概念 Process 合并问题和过程软件组织定义的框架活动集合过程分解如何完成活动 23 项目管理的概念 管理的范围 有效的项目管理集中于三个P上 People项目参与者项目负责人软件项目组协调和通讯Problem软件范围问题分解Process合并问题和过程过程分解 24 25 项目管理的概念 项目 90 90规则项目开始时 必须花时间建立一个现实的计划 在项目进行中监控该计划 并在整个过程中控制质量和变化 26 2 软件项目计划 27 软件项目计划SoftwareProjectPlanning 对估算的观察ObservationsonEstimating项目计划目标ProjectPlanningObjectives软件范围SoftwareScope资源Resources软件项目估算SoftwareProjectEstimation分解技术Decomposition经验估算模型EmpiricalEstimationModels自行开发或购买的决策TheMake BuyDecision 28 软件项目计划 ObservationsonEstimating Aleadingexecutivewasonceasked Whatsinglecharacteristicwasmostimportantwhenselectingaprojectmanager Hisresponse Apersonwiththeabilitytoknowwhatwillgowrongbeforeitactuallydoes Andthecouragetoestimatewhenthefutureiscloudy 29 软件项目计划 ObservationsonEstimating 估算需要 经验experience了解以前有用的信息accesstogoodhistoricalinformation当仅存定性数据时进行定量测量的勇气thecouragetocommittoquantitativepredictionswhenqualitativeinformationisallthatexists 30 软件项目计划 ObservationsonEstimating KeypointsProjectcomplexity projectsize andthedegreeofstructuraluncertaintyallaffectthereliabilityofestimate 31 亚里斯多德 记住 应该满足于事物的本性所能容许的精确度 当只能近似于真理时 不要去寻求绝对的准确 32 软件项目计划 ProjectPlanningObjectives 提供一个框架 使得管理者能够对资源 成本及进度进行合理的估算 一个限定的时间框架内 最好的情况 及 最坏的情况 通过一个信息发现的过程实现的 33 软件项目计划 ProjectPlanningObjectives Advice Themoreyouknow thebetteryouestimate Therefore updateyourestimatesastheprojectprogresses 34 软件项目计划 SoftwareScope Keypoint Aconsiderationofsoftwarescopemustincludeonevaluationofallexternalinterfaces 35 软件项目计划 SoftwareScope 软件项目计划的第一个活动是软件范围的确定 软件范围描述了功能 性能 约束条件 接口及可靠性 36 软件项目计划 SoftwareScope 范围是通过回答下列问题来定义的 背景 待建造的软件如何适应于大型的系统 产品或商业的背景 在该背景下要加什么约束 信息目标 软件要产生什么样的客户可见的数据对象输出 需要什么样的数据对象输入 功能和性能 软件执行什么样的功能使得输入数据才能变换成为输出数据 需要满足什么特殊的性能特征吗 37 软件项目计划 SoftwareScope Advice Technicalfeasibilityisimportant butbusinessneedisevenmoreimportant Itdoesnogoodtobuildahightechsystemorproductthatnoonereallywants 38 软件项目计划 Resources KeyPoint Tobereusedeffectively softwarecomponentsmustbecataloged standardized andvalidated 39 软件项目计划 Resources 硬件 软件工具 可复用构件 人员 提供支持开发工作的基础 极大地降低开发成本 时间 主要资源 40 软件项目计划 Resources 人力资源描述组织的职位及专业技能等可复用软件资源可直接使用的构件具有完全经验的构件具有部分经验的构件新构件环境资源硬件及软件 41 软件项目计划 Resources 资源说明四特征资源描述可用性说明需要该资源的时间被使用的持续时间 42 软件项目计划 Resources 软件成本及工作量估算永远不会是一门精确的科学 可以从神秘的技巧向一系列系统化的步骤转化 43 软件项目计划 SoftwareProjectEstimation 几种可考虑的选择将估算拖延到项目的最后基于已经完成的类似项目使用简单的分解技术使用经验模型 44 软件项目计划 SoftwareProjectEstimation AdviceWhencollectingproductivitymetricsforprojects besuretoestablishataxonomyofprojecttypes Thiswillenableyoutocomputedomainspecificaverages makingestimationmoreaccurate 45 软件项目计划 Decomposition 分解问题 将项目分解成若干主要功能及相关的软件工程活动 通过逐步求精的方式进行成本及工作量的估算 问题分解 分而治之 过程分解回答 如何完成公共过程框架 46 软件项目计划 EmpiricalEstimationModels KeyPointAnestimationmodelreflectsthepopulationofprojectsfromwhichithasbeenderived Therefore themodelisdomainsensitive 47 软件项目计划 EmpiricalEstimationModels 估算模型的结构E A B ev CA B C是由经验导出的常数 E是以人月为单位的工作量ev是估算变量 48 软件项目计划 EmpiricalEstimationModels 面向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 0545FPAlbrecht和GaffneyE 60 62 7 728 10 8 FP 3KemererE 585 7 5 12FPMaston Barnett和Mellichamp 49 软件项目计划 EmpiricalEstimationModels COCOMO模型 ConstructiveCostMOdel 软件估算模型的层次体系模型1 基本COCOMO模型 将软件开发工作量及成本作为程序规模的函数进行计算 程序规模已估算的代码来表示 模型2 中级COCOMO模型 将软件开发工作量及成本作为程序规模及一组 成本驱动因子 的函数来进行计算 其中 成本驱动因子 包括对产品 硬件 人员 及项目属性的主管评估 模型3 高级COCOMO模型 包含了中级莫茨能够的所有特性 并结合了成本驱动因子对软件工程过程中每一步骤的影响评估 50 软件项目计划 EmpiricalEstimationModels 软件方程式是一个多变量模型 他假设在软件开发项目的整个生命周期中的一个特定的工作量分布 E LOC B 0 333 P 3 1 t 4 51 软件项目计划 EmpiricalEstimationModels Advice Noneofthesemodelsshouldbeusedwithoutcarefulcalibrationtoyourenvironment 52 软件项目计划 TheMake BuyDecision 自行开发 购选择购买可直接使用的软件购买 具有完全经验 或 具有部分经验 的软件构件 修改 集成外包 53 软件项目计划 TheMake BuyDecision 低成本的软件昂贵的软件产品建立性能及性能规约 可测量性估算内部开发的成本及交付日期选择三到四个候选软件选择能够有助于建造所需软件的可复用构件建立比较矩阵 对关键功能进行比较 测试根据以前产品的质量 开发商的支持 产品的方向 以及其名声评估候选软件包后构件联系该软件的其他用户并询问其意见 54 软件项目计划 TheMake BuyDecision 自行开发 购买时间成本 55 软件项目计划 TheMake BuyDecision 系统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 决策树 56 软件项目计划 TheMake BuyDecision AdviceTherearetimeswhenoff the shelfsoftwareprovidesa perfect solutionexceptforafewspecialfeaturesthatyoucan tlivewithout Inmanycases it sworthlivingwithoutthespecialfeatures 57 软件项目计划SoftwareProjectPlanning 对估算的观察ObservationsonEstimating项目计划目标ProjectPlanningObjectives软件范围SoftwareScope资源Resources软件项目估算SoftwareProjectEstimation分解技术Decomposition经验估算模型EmpiricalEstimationModels自行开发或购买的决策TheMake BuyDecision 58 最常见的进度计划风险 功能无限蔓延需求镀金或开发人员镀金质量不定计划过于乐观设计欠佳银弹综合症研发导向的开发人员薄弱签约商失败研发人员与客户的摩擦 59 3 风险管理 60 风险管理RiskManagement 风险管理要素RiskManagementPrinciples风险识别RiskIdentification风险分析RiskAnalysis风险的优先级RiskPrioritization风险管理计划RiskManagementplanning风险化解RiskResolution风险监视RiskMonitoring 61 RiskManagementPrinciples 1988 PeatMarwick针对600家成功公司的调查结果显示 35 的公司有过软件项目失控的经历 62 63 RiskManagementPrinciples 64 RiskManagementPrinciples 65 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 66 67 风险评估风险识别 提出一个潜在破坏项目进度的风险列表 风险分析 评估每一个风险出现的可能性及其影响 判定风险的级别 风险优先级 按风险影响大小排出一个风险优先级 这个风险列表将作为风险控制的基础 68 风险控制风险管理计划 制定一个应对每个重要风险的方案 同时确保每一个单独的风险管理计划之间以及与整体项目计划之间相一致 风险化解 每个重要风险所对应计划的执行 风险监控 对解决风险的过程进行监控 还可以包括识别新的风险并将其反馈到正在进行的风险管理进程中 69 软件项目风险管理五种状态 危机管理 风险已经造成麻烦后才处理 失败处理 觉察到风险并迅速处理 风险缓解 事先制订好风险发生后的补救措施 但不作任何防范措施 着力预防 将识别和防范作为项目一部分加以规划和执行 消灭根源 识别和消除风险根源 70 软件项目风险管理原则 区分风险和已存在的现有问题通过风险的管理变被动的面对风险 即消防状态为主动面对风险 即钓鱼状态最小化项目失败的潜在可能创造风险管理的气氛 71 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 72 RiskIdentification 如果你不问关于风险的问题 你就可能是正在问所遇到麻烦的问题 TomGilb 73 RiskIdentification 确定可能对项目造成影响的风险 并且把每一风险的特性编制成文档 风险识别不是一次性活动 必须在整个项目过程中经常进行风险识别的工具和办法 风险检查列表调查问卷interviewingDelphi头脑风暴法Brainstorming 74 RiskIdentification 风险检查列表 产品规模 与要建造或要修改的软件的总体规模相关的风险 商业影响 与管理或市场所加诸的约束相关的风险 客户特性 与客户的素质以及开发者和客户定期通信的能力相关的风险 过程定义 与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险 开发环境 与用以建造产品的工具的可用性及质量相关的风险 技术风险 与待开发软件的复杂性及系统所包含技术的 新奇性 相关的风险 人员数目与经验 与参与工作的软件工程师的总体技术水平及项目经验相关的风险 75 TheSoftwareDevelopmentRiskTaxonomy 76 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 77 RiskAnalysis 重要的是量化不确定程度及与每个风险相关的损失的程度 ProbabilityVerylow low medium highandveryhighImpactNegligible marginal criticalandcatastrophicOverallRisk 78 RiskAnalysis 风险因素 性能风险 产品能够满足需求且符合于其使用目的的不确定的程度 成本风险 项目预算能够被维持的不确定的程度 支持风险 软件易于纠错 适应及增强的不确定的程度 进度风险 项目进度能够被维持且产品能按时交付的不确定的程度 79 风险驱动因子对风险因素的四个影响类别 80 RiskAnalysis OverallRisk 81 RiskAnalysis 风险暴露量 RiskExposure RE 不希望的损失的概率 损失的程度RE risklikelihood riskimpact 82 RiskAnalysis 损失和概率的评估方法 由最熟悉系统的人评估每个风险的发生概率 然后保留一份风险评估审核文件 使用Delphi法 从一组专家中得到一致的意见 来预测未来的发展 少数服从多数法 83 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 84 RiskPrioritization 由于风险管理需要一定的成本 因此需要确定风险的优先级 以便明确风险管理要专注的重点 85 RiskPrioritization 定量 按风暴暴露量排序 确定风险优先级 86 RiskPrioritization 定性 87 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 88 安排风险管理计划的进度 将风险管理计划和标准项目管理过程结合 确保计划的执行把风险管理计划的任务安排到项目进度表中 89 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 90 RiskResolution 避免风险将风险从系统的一部分转移到另一部分购买关于风险的信息消除产生风险的根源接受风险发布风险控制风险记住风险 91 RiskResolution 92 风险管理 风险评估 风险控制 风险识别 风险分析 风险优先级 风险管理计划 风险化解 风险监控 93 RiskMonitoring 检查每个风险的化解程度 并确定随着它们的消失而带来的新的风险 94 RiskMonitoring 不断的识别新的风险不断的分析风险的产生概率不断的整理风险表不断的规避优先级别最高的风险 95 RiskMonitoring PreviousExample 监控因素项目组成员对于项目压力的一般态度项目组的凝聚力项目组成员彼此之间的关系与报酬和利益相关的潜在问题在公司内和公司外工作的可能性文档 96 RiskMonitoring UsingSoftwareTool DatabaseKeeptrackofriskSpreadsheetsAidintrackingandquantifyingriskMicrosoftProject2000PerformPERTanalysisRisk byC SSolution Inc MonteCarloSimulations 97 RiskManagementReview 风险管理要素RiskManagementPrinciples风险识别RiskIdentification风险分析RiskAnalysis风险的优先级RiskPrioritization风险管理计划RiskManagementplanning风险化解RiskResolution风险监视RiskMonitoring 98 TheBIGGESTrisk Notknowingwhattherisksare 99 知己知彼百战不殆 100 4 项目成本预算 101 项目成本预算 Outline 软件成本软件报价 102 项目成本预算 软件成本 涉及到软件成本的常见问题 情境三 对方公司希望与我们合作 捆绑销售 我们的软件许可证一份收多少钱 情境一 你们帮我们设计个办公自动化系统 需要多少钱 情境二 我们预算投入20万建立公司的信息管理系统 你们能不能做的到 103 项目成本预算 软件成本 软件成本的构成 一 人员工资差旅费通讯费硬件工具福利费招待费等等 二 管理费用分摊人员招聘费用风险费用培训成本费技术支持费用户教育费包装制作费市场推广费等等 104 项目成本预算 软件成本 软件成本的快速估算 1 以人月为基础 人员数 开发周期 单位工资 3 成本系数 例如 人员平均工资5000元 共需要6名工程师 项目开发周期为4个月则简单的成本估算为 6人 4月 5000元 3 360000元 105 项目成本预算 软件成本 以人月为基础 历史经验 人员规模越大 成本系数越高 技术水平越高 成本系数越高 开发周期越长 成本系数越高 一般系数为 1 5 3 0之间 106 项目成本预算 软件成本 以人月为基础 特征 简单 容易估算需要建立在工作量计算的基础上进行估算不够准确 弹性大 107 项目成本预算 软件成本 软件成本的快速估算 2 以功能点为基础 功能模块 单价 功能块点数例如 某个系统可分为10个模块 每个模块按照历史的经验计算 其中3个为15000元 5个为20000元 2个为4000元 则系统的成本为 15000 3 20000 5 4000 2 1530000元 108 项目成本预算 软件成本 以功能点为基础 功能模块单价 功能点数 开发系数例如 某个系统可分为10个模块 每个模块按照历史的经验计算 其中 3个为15000元 开发难度系数为25个为20000元 开发难度系数为32个为4000元 开发难度系数为1则系统的成本为 15000 3 2 20000 5 3 4000 2 1 398000元 109 项目成本预算 软件成本 以功能点为基础历史经验 系统越复杂 开发难度系数越高开发架构与语言越高级 开发难度越高功能点越精细 准确度越高团队开发历史越久 准确度越高功能点单价除了根据历史经验外可参考同等规模的同行报价 110 项目成本预算 软件成本 以功能点为基础功能点的估算办法 1 整理出项目功能列表 2 将功能列表进行归类 整理成模块 3 按照模块估算代码量和工作量 4 估算出功能点的成本 5 根据用户的需求和实现方式 估算开发系数 111 项目成本预算 软件成本 以功能点为基础特征 需要参照历史经验或者同类产品需要进行需求分析与概要设计准确度相对比较高 112 项目成本预算 软件成本 软件成本的成本估算 3 以代码量为基础 第一步 利用WBS workbreakdownstructure 方法 先把项目任务进行合理的细分 分到可以确认的程度 然后估算每个WBS要素的费用

温馨提示

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

评论

0/150

提交评论