课件-1软件开发过程绪论.ppt_第1页
课件-1软件开发过程绪论.ppt_第2页
课件-1软件开发过程绪论.ppt_第3页
课件-1软件开发过程绪论.ppt_第4页
课件-1软件开发过程绪论.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、软件方法与过程,第1章 绪论,第一章 绪论,1946年世界上第一台电子计算机诞生至今,计算机软件发展的三个阶段 第一阶段程序设计阶段 时间:六十年代 特点: 软件工作:程序设计 (+程序结构说明和使用说明 ) 软件质量:程序设计=数据结构+算法,编程技巧,第一章 绪论,第二阶段软件工程阶段 时间:七十年代 九十年代 特点:软件危机 软件工作: 代码编写+需求分析、测试、维持等等 软件工程 软件质量: 编程技巧 可读性、可理解性、可测试性和易修改性等工程化的原则,第一章 绪论,第三阶段软件过程阶段 时间:九十年代 特点: 软件工作: 软件开发过程 +软件管理过程 软件质量: +软件开发的效率,第

2、一章 绪论,1.1 现代软件产业的困境 1.2 软件生命周期模型及其局限性 1.3 走出困境软件过程模式 习题,1.1 现代软件产业的困境,1.1.1 困境中的现代软件产业,市场变幻莫测、需求日趋复杂、技术日新月异,市场许可的期限,有限资源,需求的产品,企业 成功,现代软件产业的总体情况并不理想,案例 Square-Cal 3.0 版本将要在2.0版本上市后的10个月内发布。项目经理Mickey和上司Kim讨论后决定:他们将为项目组成员提供私人办公室、最新型的计算机以及免费的碳酸饮料,并且要求开发者在前8个月按照预先设计好的接口各自开发,8个月之后进行可视化锁定,在最后2个月内完成系统集成一个

3、完美的计划。于是项目组成员各自做着自己的工作。随着可视化锁定日期的来临,他们开始进行代码集成。他们在可视化锁定最终截止日期前一天的下午两点开始工作,但很快发现程序不能编译通过,更不用说运行了。代码在编译时有数十个错误,而似乎每处理一个错误就会产生十个以上的新错误。他们一直干到午夜也没有结果,只好决定第二天再说。但测试发现问题的速度远比开发人员解决问题的速度快,处理系统这一部分的错误经常会导致其它部分的问题。项目超期了,项目组成员在巨大的压力下工作,士气逐渐低落。最后整个软件开发过程花了15个月的时间,即超过了项目计划时间的0%,公司错过了最佳的发布日期。产品发布后,用户对Square-Cal

4、3.0版本反映冷淡,几个月的时间内 其市场份额从第二位下降到第四位。,现代软件产业的总体情况并不理想,一组统计数据,进度延期、成本超出预算、而且运行经常不可靠,软件开发的滑铁卢(Software Runaways) 死亡之旅(Death March),1.1 现代软件产业的困境,1.1.2 陷入困境的根源 沿用二、三十年前的软件组织方式和开发方法 开发当今用户需求的复杂软件产品 不完整、不现实的项目需求描述 缺乏用户参与 、交流模糊 不完整、不准确、需求项过多、难度过高 对需求的变更束手无策 需求变更是现实世界变化的反映 对需求变更无应对能力,1.1 现代软件产业的困境,脆弱的构架 程序块间互

5、不兼容,不易扩展、裁剪和移植 采用不成熟的技术 新技术不具有要求的功能 新技术存在局限性 新技术是问题的错误解决方案 测试的不充分性 未检测出需求、设计和实现三者之间的不一致,1.1 现代软件产业的困境,拙劣的进度计划和评估 过于乐观 霍夫斯塔特(Hofstadter)定律: 开发软件的 时间总比想象的时间长,即使注意了霍夫斯塔特定律也是如此。,1.1 现代软件产业的困境,缺乏资源 经费、人员、场地、时间 尤其是资深人员 不具备项目管理方法 风险的预估和驾驭 软件质量的度量,1.1 现代软件产业的困境,缺少管理层的支持 企业高层的支持的必要性 需要获取足够的资源 需要获取对项目特殊要求的审批

6、需要与其他部门人员进行合作 需要在某些时候得到适当的指导和帮助 符合企业总体的发展规划和经营目标,1.2 软件生命周期模型及其局限性,1.2.1 困境中的消极态度,项目 遇到 障碍,指责:,老板,项目管理人员,用户,颓废 :,死亡之旅,不相干的事,恶性循环,相信自己 是完美的,1.2 软件生命周期模型及其局限性,1.2.2 困境中的积极探索 思考、反省,1.2 软件生命周期模型及其局限性,例证1:微软公司,例证2:嵌入式软件产品与服务的提供商 风河(Wind River)公司,1.2 软件生命周期模型及其局限性,1.2.2 困境中的积极探索,?微软等,成功经验,失败教训,演变为体系 化研究成果

7、,软件生命周期模型,软件过程,软件开发 实践经验总结,汇总,新的软件 项目开发,指导,1.2 软件生命周期模型及其局限性,1.2.3 软件过程 1定义 定义1-1 软件过程是从软件项目需求定义开始直至软件经使用后废弃为止的跨越软件整个生存期内的系统开发、运行和维护等全部活动及相关项的总和。,1.2 软件生命周期模型及其局限性,2内容 软件过程包括:5个主要过程、8个支持过程和4个组织过程。 5个主要过程为:获取过程、供应过程、开发过程、运行过程、维护过程。 8个支持过程为:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程。 4个组织过程为:管理

8、过程、基础设施过程、改进过程、培训过程。,1.2 软件生命周期模型及其局限性,3软件过程能力评估标准和改进方案 三种最具影响力的软件过程能力评估标准和改进方案: CMM (Capability Maturity Model) : 起源:1987年由美国卡内基梅隆大学提出 适用范围:国际贸易中的软件 内容:软件能力成熟度从低到高分为五级初始级、可重复级、已定义级、已定量管理级、优化级,软件企业可按这五级对其软件过程进行持续改进 ISO9000: 起源:1987年由国际标准化组织颁布 适用范围:国际贸易中的软件+国际贸易中的硬件和服务。,1.2 软件生命周期模型及其局限性,六西格玛(Six Sig

9、ma, 6) : 历史 起源于制造业,质量度量管理方法 20世纪90年代中期,通用电气公司的企业过程设计、 改造和优化的方法体系,各个行业 内容: 采用统计学技术的质量度量和管理方法 将所有工作作为一种过程或流程,采用量化的方法分析过程中影响质量的因素,找出最关键的因素加以改进,从而达到更高的客户满意度,1.2 软件生命周期模型及其局限性,1.2.4 软件生命周期模型及其局限性 1定义 定义1-2 软件生命周期模型是软件过程中全部活动生命周期结构框架的一种形式化描述,也称为软件生存期模型。,1.2 软件生命周期模型及其局限性,2种类 瀑布模型 内容:各阶段活动 特征: 瀑布状: 自上而下,相互

10、衔接 各阶段及其活动 : 多种模型的基本细粒度元素 适用范围 需求较明确、且较稳定,演化模型(原型模型) 内容: 第一步:原型 弄清需求并探索可行性 第二步:开发产品 特征及适用范围:减少了需求不明确带来的风险,1.2 软件生命周期模型及其局限性,1.2 软件生命周期模型及其局限性,螺旋模型 内容: 螺线旋转一圈 (笛卡儿坐标 四个象限) 一个原型,1.2 软件生命周期模型及其局限性,螺旋模型 特征 加入风险分析 迭代演化 识别每个演化层的风险 自上而下(见右图 ) 适用范围 需求不太稳定,1.2 软件生命周期模型及其局限性,喷泉模型 内容: 面向对象的分析设计方法 特征: 喷泉状:自底向上

11、迭代演化 对象统一范式 无缝衔接,复用,并行与集成 适用范围 需求较不稳定,1.2 软件生命周期模型及其局限性,3总体局限性 定义1-1 软件过程是从软件项目需求定义开始直至软件经使用后废弃为止的跨越软件整个生存期内的系统开发、运行和维护等全部活动及相关项的总和。 定义1-2 软件生命周期模型是软件过程中全部活动生命周期结构框架的一种形式化描述,也称为软件生存期模型。,?活动的相关项 (执行者 、方法 和工具、目标),软件生命周期模型较差的 可操作性,寻求 新的,1.3 走出困境软件过程模式,1.3.1 软件过程模式定义 定义1-3 软件过程模式从成功或失败的软件开发实践中总结而成,是软件过程

12、中生命周期、人员、方法、产品四大类要素的有机关联整体。,1.3 走出困境软件过程模式,定义理解: 谁、为实现什么、如何、做什么,其中 人员:表示“谁”; 产品:表示“为实现什么”; 方法:表示“如何”; 生命周期:表示“(何时)做什么”。 关系:软件生命周期模型软件过程模式,1.3 走出困境软件过程模式,过程模式定义的补充说明 过程模式一书 (Process Patterns:Building Large-Scale Systems Using Object Technology. SCOTT W.AMBLER) 模式:对一个常见问题的通用解决方案的描述,从中可以确定针对具体问题的细节化的解决

13、方案;软件开发模式有多种形式,包括分析模式、设计模式和过程模式等,但不限于这些。 过程模式:一种模式,描述了已被证实为成功的软件开发的方法或一系列的行为。 尚无统一定义,仅供参考,1.3 走出困境软件过程模式,1.3.2 几种典型的软件过程模式 符合定义1-4且目前在软件界影响较大的三种软件过程模式 : Rational统一过程(RUP,Rational Unified Process) 敏捷过程(AP,Agile Process) 微软过程(MP,Microsoft Process),1. Rational统一过程(RUP,Rational Unified Process) 起源: Rati

14、onal公司推出的软件过程产品 三位杰出的专家Grady Booch、James Rumbaugh和Ivar Jacobson 面向对象领域 +UML的创立者,1.3 走出困境软件过程模式,应用领域:全球有上千家公司已经在使用 电信业:Ericsson、Alcatel、MCI 交通、航空、国防;Lockheed-Martin、British Aerospace 制造业:Xerox、Volvo、Intel 金融业:Visa、Merrill Lynch、Schwab 系统集成业:Ernst Young、Oracle、Deloitte & Touche RUP的多功能性和广泛的适用性,1.3 走出困

15、境软件过程模式,内容:从软件过程模式的角度 生命周期: 迭代与增量的二维生命周期结构 横轴:生命周期的四个阶段先启、精化、构建和产品化 纵轴:九个核心工作流程业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境 人员 : 角色及活动,1.3 走出困境软件过程模式,方法 : UML可视化建模 基于用例驱动 以构架为中心 一整套支持开发工具Rational Solutions, 如UML建模工具Rose、文档自动生成工具SoDA、测试工具Purify和Quality、配置管理工具ClearCase、变更管理工具ClearQuest等 产品 : 工件定义 ,工件类型规范 ,提供

16、工件模板,1.3 走出困境软件过程模式,2敏捷过程(AP,Agile Process) 起源: 矫正某些官僚烦琐的软件过程 2001年2月,17个方法学家发起成立了敏捷 软件开发联盟(), 简称为敏捷联盟(Agile Alliance)。 4条价值观+12条原则,1.3 走出困境软件过程模式,内容:从软件过程模式的角度 生命周期: “经常性地交付可用软件,从几个星期到几个月,尽可能做到较短的时间间隔” 人员 : “个体和交互胜过过程和工具” 强调客户的重要性“客户合作胜过合同谈判”,1.3 走出困境软件过程模式,方法 : 简单化方法 “简单把不做的工作最大化的艺术是最关键的” 面对面的交流 产

17、品: “可以工作的软件胜过面面俱到的文档”,1.3 走出困境软件过程模式,3. 微软过程(MP,Microsoft Process) 起源: 微软三十多年的软件开发实践经验总结 MSF(Microsoft Solution Framework ) 应用: 微软自身的成功实践史 可实践性与有效性,1.3 走出困境软件过程模式,内容:从软件过程模式的角度 生命周期: 过程分为五个阶段构想、计划、开发、稳定和发布,里程碑 采用递进的版本发布策略 人员 : 六种角色:产品管理、程序管理、开发、测试、用户体验、发布管理 人员的组织结构 矩阵结构模式,1.3 走出困境软件过程模式,方法 : 需求分析方面以

18、产品特性及优先级指导整个项目 设计方面模块化和水平化的设计结构,并使项目结构反映产品结构 实现方面源代码控制与每日编译 测试方面手工测试与自动化测试,零缺陷管理 产品: 产品规范包括:项目前景/范围说明书、功能说明书、源代码、测试说明书与测试用例等,1.3 走出困境软件过程模式,其它:如个体/小组软件过程(PSP/TSP) 特点: 强调质量优先于效率和成本 对过程的管理和评估基于对历史数据的统计分析和度量 适用范围: 环境和需求相对稳定、开发质量关键工程以及一些外包项目,1.3 走出困境软件过程模式,1.3 走出困境软件过程模式,1.3.3 软件过程模式提出的意义 相对软件生命周期模型 关注四要素及相互关系的有机整体,非一个要素 全面反映了软件过程中的各个层面和各个环节 是项目计划、风险评估、质量保证的重要依据 ,指导软件开发具有可操作性 从软件过程模式的角度分析RUP、AP

温馨提示

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

评论

0/150

提交评论