《软件项目管理软件本科.ppt》由会员分享,可在线阅读,更多相关《软件项目管理软件本科.ppt(367页珍藏版)》请在金锄头文库上搜索。
1、软件项目管理 徐长青 Software Project management 使用的开发工具使用的开发工具 p p 配置管理 配置管理 Microsoft Visual SourceSafe VSS 微软Windows平台下的一个小型软件 配置管理工具 p p 项目管理 项目管理 Microsoft Project 微软Windows平 台下国际通用的项目管理软件 教材及参考资料教材及参考资料 p p 选用教材选用教材 1 PANKAJ JALOTE CMM in Practice Processes for Executing Software Projects at Infosys 高等教
2、育出版社 2000 p p 主要参考书主要参考书 1 M C Paulk Capability Maturity Model for Software SEI 91 TR 24 1991 2 Pankaj Jalote Software Project Management in Practice 2002 3 3 IT项目管理 美 凯西 施瓦尔贝 Kathy Schwalbe 2015 思考思考 p你是否参加过软件项目的开发 p你是否组织过软件项目的开发 p有哪些印象深刻的成功和失败案例 p你认为软件开发中最具挑战性的问题是什么 p你认为自己能否胜任以下职位 程序员 设计师 项目经理 开发顾
3、问 p你希望将来在IT企业中充当什么角色 如何达成 1 1 软件开发与软件项目管理 1 2 CMM简介 1 3 INFOSYS公司的项目管理实践 第一章第一章 绪论绪论 1 软件项目管理的重要性 2 软件危机的提出 3 世界软件产业发展现状及中国软件业的差距 1 11 1 软件开发与软件项目管理软件开发与软件项目管理 p 为何需要软件项目管理 软件的定义 是使计算机能够工作的指令集合和相应的数 据结构和文档 是一种产品 将计算机的硬 件能力发挥出来的一种工具 是传递信息的 一种工具 对信息的处理手段 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 p 软件的特征 1 软件是一种
4、逻辑元素 而不是物理元素 2 软件是开发出来的 而不是用传统的方法制造出 来的 3 软件不会被用坏 一般产品的失败概率都遵循浴 盆曲线 4 工业界已经是标准化装配时代 但软件还是定制 时代 5 创新性和人为因素更高 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 项目的定义 所谓项目 就是为创建某一独特产品或服 务或者成果 在一定的环境和约束条件下进行 的临时性的努力 即它是利用有限的资源 在有限的时间内 为特定客户完成特定目标的一次性工作 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 管理 管理是通过利用已有的和可以争取到的各种资源 如人 财 物 技术等 以
5、最少的投入获得最大的产出完成某种任务或达到 某个目标的软活动 任务有 发现问题 拟定方案 作出决策 管理有三个层次 高层 战略级 中层 策略级 基层 执行级 组织 组织是由人和其它资源组成 为达到一个目的的集合或系统 管理是组织的任务 管理为组织服务 确保组织达到预期目标 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 项目管理 一定的主体 为了实现其目标 综合 运用专门的知识 技能 工具和方法 对执 行中的项目周期的各阶段工作进行计划 组织 协调 控制 以满足甚至超越项目干系人的需求 和期望 项目干系人 参与项目和受项目影响的人 包 括项目发起人 项目组 支持人员 客户 最终
6、 用户 供应商 项目对手 项目的核心知识是范围 时间 成本和质量 辅 助知识是人力资源管理 风险管理和采购管理 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 软件项目管理是为了使软件项目能够按照预定的成 本 进度 质量顺利完成 而对人员 People 产品 Product 过程 Process 和项目 Project 进行分 析和管理的活动 软件项目管理的对象是软件工程项目 它所涉及的 范围覆盖了整个软件工程过程 为使软件项目开发获得成 功 关键问题是必须对软件项目的工作范围 可能风险 需要资源 人 硬件 软件 要实现的任务 经历的里 程碑 花费工作量 成本 进度安排等做到心
7、中有数 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 p 软件开发是一个高风险的过程 p 软件过程的管理是软件成功的关键 p 职业的发展方向 软件企业的生存的重要性 1 1 11 1 1 软件项目管理的重要性软件项目管理的重要性 软件危机 软件在开发和维护过程中遇到 的矛盾与问题 1 1 21 1 2 软件危机的提出软件危机的提出 p 软件危机 的主要原因 用户不易准确描述对软件的需求 经常存在二义性 遗漏甚至错误 1 1 21 1 2 软件危机的提出软件危机的提出 p 软件危机 的主要原因 大型软件往往需要成百上千人的合作 由于软件系统 结构复杂 如何有效组织管理 充分发挥
8、团队作用就 成为软件开发成功的关键 1 1 21 1 2 软件危机的提出软件危机的提出 个人 VS 团队 计算机软件和硬件费用比 60 70 80 90 p 软件危机 的主要原因 缺乏有效的软件开发方法和工具的支持 过分依靠程 序设计在开发中的技巧和创造性 加剧了软件产品的 个性化 开发过程没有统一 规范的方法论指导 文 档资料不齐全 1 1 21 1 2 软件危机的提出软件危机的提出 p 软件危机 的主要原因 缺乏软件开发经验及相关数据积累 无法准确估计经 费和进度 导致经费严重超支 完成期限一拖再拖 忽视测试阶段的工作 提交的产品质量差 1 1 21 1 2 软件危机的提出软件危机的提出
9、软件项目失败的案例软件项目失败的案例 1999 10月 美国NASA火箭气象卫星失踪 耗资1 25 亿美元 软件的错误 英制和公制的转换问题导致 1963 1966 美国IBM360机器的操作系统 5000人年 的工作量 1000多人进行开发 100万行代码 新版 本是在老版本中找出1000个以上的错误之后修正开发 当时的情况很不好 主要负责人Brooks 把他们当时 比作陷在泥潭的困兽 越挣扎越深 人月神话 软件项目失败案例软件项目失败案例 1999年8月 在美国的一个大型的商业高速数据网络里 软件的缺陷影响了7000多个商业用户 时间长达8天 1998年4月 美国的一个重要数据通讯网络出现
10、24小时的 故障 使大部分美国的信用卡业务受到影响 受影响的还 有美国的一些大银行 零售商和政府的数据系统 也是软 件故障 1997年8月 美国一家最主要的信用卡报告公司的新网站 开启2天就关闭了 主要是查询自己的信用卡使用情况 但 看到的是别人的账单 而不是自己的 软件项目失败案例软件项目失败案例 逻辑产品 不同于物理产品 复杂性高 逻辑产品 逻辑复杂性 远高于硬件复杂性 软件的复杂性随规模呈指数级上升 规模大 应用扩大 代码量仍在不断膨胀 影响软件生产率和质量的因素比较复杂 人员的能力和水平 团队合作 缺乏有效 系统原理 原则 方法和工具的指导和辅助 产生软件危机的根源产生软件危机的根源
11、总结总结 美国 印度 爱尔兰 1 1 31 1 3 世界软件产业发展现状及中国软件业差距世界软件产业发展现状及中国软件业差距 与印度的比较与反思 与印度的比较与反思 1 1 31 1 3 世界软件产业发展现状及中国软件业差距世界软件产业发展现状及中国软件业差距 软件产值的比较 软件产值 亿 印度中国 199953 267 5 200071 788 5 200196 3102 3 2002110124 2009年 我国软件收入去年已经达到人民币 7573亿元 印度700到800亿美元 算下来相当于 人民币6000亿左右 从这个角度说中国已经超越 印度 陈冲 中国软件行业协会理事长 软件出口的比较
12、 软件产值 亿 印度中国 1999392 5 2000624 200177 87 2 与印度的比较与反思 与印度的比较与反思 1 1 31 1 3 世界软件产业发展现状及中国软件业差距世界软件产业发展现状及中国软件业差距 1 1 31 1 3 世界软件产业发展现状及中国软件业差距世界软件产业发展现状及中国软件业差距 中国占世界软件外包行业的比重 软件产值 亿美元 世界软件外包规模中国 20043348 3 200541410 9 200651914 5 200764219 9 200878127 8 200994339 与印度的比较与反思 与印度的比较与反思 1 1 31 1 3 世界软件产业
13、发展现状及中国软件业差距世界软件产业发展现状及中国软件业差距 2006年软件外包份额 印度34 2 爱尔兰29 2 菲律宾2 9 中国2 4 世界软件外包介绍 1 1 软件开发与软件项目管理 1 2 CMM 软件能力成熟度模型 1 3 INFOSYS公司的项目管理实践 第一章第一章 绪论绪论 1 CMM简介 2 CMM的成熟度级别 3 不同级别的KPA 4 CMM 的评估方法 1 21 2 软件能力成熟度模型软件能力成熟度模型 1 21 2 软件能力成熟度模型软件能力成熟度模型 CMM Capability Maturity Model for Software 软件能力成熟度模型是一种描述有
14、效软件过程的关键 元素的框架 CMM描述一条从无序的不成熟的过程 到成熟的 有纪律的过程的进化的改进途径 CMM体系描述了在不同成熟度级别下的软件过 程的关键因素 CMM包括对软件开发和维护进行策划 工程化和管 理的实践 遵循这些关键实践 就能改进组织在实现 有关成本 进度 功能和产品质量等目标上的能力 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 SEI给CMM下的定义是 对于软件组织在 定义 实现 度量 控制和改善其软件过程的 进程中各个发展阶段的描述 CMM模型便于确定软件组织的现有过程 能力和查找出软件质量及过程改进方面的最关 键的问题 从而为选择过程改进战略提供
15、指南 CMM包括5个等级 共计18个过程域 52 个目标 300多个关键实践 CMM的起源与发展 CMM的起源 软件危机 1986 SEI CMU的软软件 工程研究所 正式着手这这 项项工作 1987年9月 发发布 能力成 熟度框架 和 成熟度问问卷 1991 8 CMM1 01993 CMM1 1 2002 CMM I 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 Capability Maturity Model Integration p1999年7月6日 由IBM和清华同方合资成立的北京鼎新信息系 统开发有限公司 在国内首次通过CMM2级 p 2000年左右 全球
16、60多家CMM5级的企业 印度占了40个 国内当时通过CMM5级的企业 有摩托罗拉中国研究院 华为 印度研究院 2007年东大阿尔派 东软前身 p 一般 外包企业比较适用于通过CMM评估 而以创造性为主的 软件公司 例如微软 IBM Google等 均没有进行CMM评估 p 大连海辉 华信都通过CMM5 主要做软件外包 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 我国的CMM发展情况 软件过程 软件过程能力 软件过程性能 软件过程成熟度 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 软件过程 人们用于开发和维护软件及其相关过程的一系列 活动 包括软件工程活动和软件管理活动 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 软件过程能力 描述 开发组织或项目组 遵循其软件过程能够 实现预期结果的程度 它既可对整个软件开发组织 而言 也可对一个软件项目而言 1 2 11 2 1 软件能力成熟度模型简介软件能力成熟度模型简介 软件过程性能 表示 开发组织或项目组 遵循其软件过程所得 到的实际结果 软件过程性能描述的是已得到的实