软件工程项目管理思考及探索课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程项目管理思考及探索课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 项目 管理 思考 探索 课件
- 资源描述:
-
1、软件工程项目管理思考及探索软件工程项目管理思考及探索主讲人:主讲人:冯旭鹏部部 门:门:信息技术科日日 期:期:2013.10.31主要内容主要内容 引言引言 软件工程软件工程 软件项目管理软件项目管理 昆工软件项目管理思考昆工软件项目管理思考 内容总结内容总结23引言引言 工作中遇到的问题工作中遇到的问题 “软件危机软件危机”现象现象软件工程软件工程4工作概述工作概述 建设“校园信息化”信息资源管理平台 建设和完善重点应用系统 .5我们所遇到的共性问题我们所遇到的共性问题 产品质量问题产品质量问题 项目进度问题项目进度问题 产品与要求相差甚远 没有提高工作效率,反而增加了繁琐的业务 一旦用户
2、增多,性能就变得非常差 交付的产品存在隐患,公司“钓鱼”,故意留下漏洞 . 公司拖拉,项目进度缓慢,而且总有各种托辞的借口与理由案例案例:教务处排课系统缺陷四六级报名系统缺陷. 公司研发人员态度差,难于沟通 出现问题时,互相扯皮 .6“软件危机软件危机”现象现象 危害严重危害严重 典型表现典型表现 伦敦地铁,司机没上车,地铁就驶离站台 丹佛机场行李系统,延期16个月,成本超出32亿美元 Ariane5,40秒爆炸,损失50亿美元 . 程序质量低下 错误频出 进度延误 费用剧增 . 软件危机软件危机 泛指在计算机软件的开发和维护过程中开发和维护过程中所遇到的一系列严重问题一系列严重问题。 软件软
3、件危机不可避免,也没有根治的途径危机不可避免,也没有根治的途径 要解决软件危机,需进行系统性的研究要解决软件危机,需进行系统性的研究 项目建设,项目建设,“知己知彼,百战不殆知己知彼,百战不殆”7利器利器 软件工程软件工程 软件工程(Software Engineering,SE) 一门集计算机科学、数学、逻辑学及管理学为一体的学科,意在通过借鉴传统工程的原则、方法,来进行软件开发的管理,从而提高软件质量、降低软件成本和改进软件性能。8软件工程软件工程 学科发展概述学科发展概述 学科知识体系学科知识体系 学科框架学科框架9软件工程发展概述软件工程发展概述 诞生诞生 定义定义 软件工程就是软件工
4、程就是采用工程的概念、原理、技术和方法采用工程的概念、原理、技术和方法来开发与维护软来开发与维护软件,把经过时间考验而证明正确的件,把经过时间考验而证明正确的管理方法和先进软件技术管理方法和先进软件技术结合起来,结合起来,运用到软件开发和维护过程中,来运用到软件开发和维护过程中,来解决软件危机解决软件危机。 思想思想 以系统性的、规范化的、可定量的过程化方法去开发和维护软件 使用经过时间考验而证明正确的管理技术 1968年,北大西洋公约组织(NATO)举办了软件工程学术会议,首次提出10软件工程知识体系软件工程知识体系含10个知识域,8个学科由软件工程协调委员会(SWECC)于2008年确立的
5、版本。11 软件工程框架软件工程框架 过程过程:生产目标产品所需要的步骤:生产目标产品所需要的步骤 目标目标:生产具有正确性、可用性以及开销合宜的软件产品:生产具有正确性、可用性以及开销合宜的软件产品 软件工程过程主要包括开发过程、运作过程、维护过程。 软件工程过程覆盖了需求分析、设计、实现、确认以及维护等活动。 正确性满足用户的各项功能需求 可用性软件及其使用文档方便为用户使用 开销合宜软件开发及运行的各项开销能够被用户接受 软件工程框架可概括为:软件工程框架可概括为:目标、过程目标、过程和和原则原则。 原则原则:围绕工程设计、工程支持以及工程管理在软件开发:围绕工程设计、工程支持以及工程管
6、理在软件开发过程中必须遵循的原则。过程中必须遵循的原则。12 软件工程的软件工程的“四项基本原则四项基本原则” 原则三:提供高质量的工程支持。原则三:提供高质量的工程支持。 原则二:采用合适的设计方法。原则二:采用合适的设计方法。 “工欲善其事,必先利其器”。软件工具与环境对软件过程的支持颇为重要。 软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征 原则一:选取适宜的开发范型。原则一:选取适宜的开发范型。 软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。必须认识需求定义的易变性必须认识需求定义的易变性,采用适宜的开发范型予以控制。 软件
7、工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。13 软件生命周期软件生命周期软件生命周期软件生命周期(Systems Development Life Cycle,SDLC) 问题的定义及规划 需求分析 软件设计 程序编码 软件测试 运行维护六个阶段六个阶段14软件项目开发及管理全过程软件项目开发及管理全过程15软件项目管理流程软件项目管理流程 立项阶段立项阶段 项目验收阶段项目验收阶段 判断验收时机已经成熟 验收流程的优化后续服务及维护条款 项目执行阶段项目执行阶段 经验总结阶段经验总结
8、阶段 制定项目建议书、可行性分析、产品调研、承包商选择技巧 招投标方式 合同上关于风险应对及责任明晰等内容制定 工作计划 质量监管、测试方案 进度监管16软件项目管理软件项目管理 项目管理复杂性分析项目管理复杂性分析 软件开发过程模型概述软件开发过程模型概述 软件项目管理流程软件项目管理流程 各阶段需要注意的事项各阶段需要注意的事项17软件项目管理的复杂之处软件项目管理的复杂之处 软件产品是智力产品,软件项目是设计型项目软件产品是智力产品,软件项目是设计型项目 “隔行如隔山隔行如隔山” 软件使用方在提业务需求时往往不能足够重视软件使用方在提业务需求时往往不能足够重视 需求变化频繁,变更难以控制
9、需求变化频繁,变更难以控制 难以估算工作量难以估算工作量 开发进度难以界定开发进度难以界定 交付成果交付成果难以难以明确明确 对开发人员依赖性大对开发人员依赖性大 承建商主要目的是利润,只想提供最少的功能、一定的质量,并在合理时间内完成承建商主要目的是利润,只想提供最少的功能、一定的质量,并在合理时间内完成 为达到更高利润,承建商可能对项目进行二次外包,管理更混乱为达到更高利润,承建商可能对项目进行二次外包,管理更混乱 18软件开发过程软件开发过程 重视软件开发过程重视软件开发过程 过程决定了软件建设的步骤与我们管理的方式 过程直接影响最终产品的质量 软件开发过程模型软件开发过程模型 瀑布模型
10、 快速原型模型 增量模型 构件组装模型 螺旋模型19软件过程模型软件过程模型瀑布模型瀑布模型( (Waterfall-model) ) 思想思想 软件开发划分阶段 各阶段顺序执行 特征特征 最早的、最简单的模型 “理想化”的顺序模型 单向性,工作不可逆转 优点优点 为项目提供分阶段的检查点当前活动完成,只需关注后续活动 模板清晰 缺点缺点 抵抗“需求不断变化”能力弱。 用户最终才能见产品,增加开发风险。 开发人员常常陷入“阻塞状态” 各阶段划分完全固定,产生大量文档,增加工作量。 由 Royce 于1970年提出20软件过程模型软件过程模型增量模型增量模型( (incremental mode
11、l) ) 思想思想 功能拆分,每个子功能按瀑布模型开发 最终合并所有“增量” 特征特征 分模块开发 多段瀑布模型 优点优点 抗变化能力比瀑布模型强 可以边开发,边应用 缺点缺点 所有子系统合并可能“不兼容” 对系统设计师的水平要求高举例:字处理软件解决方法:面向接口的编程方法解决方法:面向接口的编程方法适用于:小型或是交互型式的系统。大型系统的某些部分,例如用户界面。21软件过程模型软件过程模型快速原型模型快速原型模型( (rapid prototype) ) 思想思想 根据需求先较小代价、快速构建一个软件的“雏形” 根据用户反馈不断调整,最终确定产品 优点优点 开发方可快速对需求有明晰认识
12、能有效应对需求变化,降低风险 缺点缺点 快速建立起来的原型系统可能架构脆弱,不断修改,导致产品低下 建立快速原型的主要目的是快速获取与验证需求!建立快速原型的主要目的是快速获取与验证需求!22软件过程模型软件过程模型基于组件的开发模型基于组件的开发模型 思想:软件复用思想:软件复用 23软件过程模型软件过程模型螺旋模型螺旋模型( (Spiral Model) ) 思想思想 施工前先进行风险评估,通过后快速开发出原型,交由用户评估 沿螺旋线自内向外每旋转一圈,意味着开发出更加完善的版本 特征特征 瀑布模型和快速原型模型的联合体 适用于大型复杂项目,有效控制风险 由 Boehm于1988年提出 缺
13、点缺点 需要较高的风险评估技术 风险分析费用高,增加成本 应用较复杂24 软件过程模型使用总结软件过程模型使用总结 需求明确瀑布模型; 用户无信息系统使用经验,需求分析人员技能不足 快速原型模型 需求不确定因素多,无法提前计划 采用增量迭代和螺旋模型 资金和成本无法一次到位 增量模型,软件产品分多个版本进行发行 全新系统的开发 必须在总体设计完成后再开始增量或并行 编码人员经验较少 建议不要采用敏捷或迭代等生命周期模型 增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则25“哪种过程模型更好用?哪种过程模型更好用?” 比较比较 瀑布模型最简单,但抗需求变化能力最弱 增
14、量模型分模块开发,子系统集成怕不兼容 快速原型模型能最快实现需求一致性 螺旋模型一般只有大型公司或大型项目采用不要太在乎学术上的“先进”与“落后”,适用的就最好。 瀑布模型 增量模型 快速原型模型 螺旋模型我们最常见的系统都是采用增量模型、快速原型模型来开发。 当前对软件研发过程质量的评判主要是以SEI(Software Engineering Institute)颁布的CMMI(Capability Maturity Model Integration)作为研发标准。26软件项目管理流程软件项目管理流程 立项阶段立项阶段 项目验收阶段项目验收阶段 判断验收时机已经成熟 验收流程的优化后续服务
展开阅读全文