软件生命周期和软件过程课件_第1页
软件生命周期和软件过程课件_第2页
软件生命周期和软件过程课件_第3页
软件生命周期和软件过程课件_第4页
软件生命周期和软件过程课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第二章

软件过程

(2)1软件工程-2011-第二章软件过程第二章内容概要过程、软件过程和软件生命周期经典软件过程模型现代软件过程模型Rational统一过程敏捷过程与极限编程微软过程★2软件工程-2011-第二章软件过程开发经验(最佳实践)迭代式开发容纳需求变更/减少风险管理需求使用用例和脚本使用基于构件的体系结构可视化建模验证软件质量质量评估内建在贯穿于整个开发过程的、由全体成员参与的所有活动中控制软件变更RUP(RationalUnifiedProcess)3软件工程-2011-第二章软件过程RUP软件开发生命周期4软件工程-2011-第二章软件过程核心工作流业务建模需求分析与设计实现测试部署

生成目标系统的可运行版本,移交给用户配置与变更管理跟踪维护开发过程中Artifacts的完整性和一致性项目管理提供项目管理框架,为软件开发项目制定计划、人员配备、执行和监控等方面的使用准则,并为风险管理提供框架环境提供软件开发环境,包括过程管理和工具支持RUP软件开发生命周期5软件工程-2011-第二章软件过程RUP软件开发生命周期6软件工程-2011-第二章软件过程7软件工程-2011-第二章软件过程Tips:UseCase&Scenario8软件工程-2011-第二章软件过程9软件工程-2011-第二章软件过程10软件工程-2011-第二章软件过程RUP软件开发生命周期11软件工程-2011-第二章软件过程12软件工程-2011-第二章软件过程工作阶段Inception:建立业务模型,定义最终产品视图,确定项目的范围Elaboration:设计并确定系统的体系结构,制定项目计划,确定资源需求Construction:开发所有构件和程序,集成为可户需要的产品,测试所有功能Transition:把开发出的产品提交给用户使用RUP软件开发生命周期13软件工程-2011-第二章软件过程敏捷过程敏捷过程(2001/2—敏捷软件开发宣言TheManifestooftheAgileAlliance

)敏捷过程的价值观个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划14软件工程-2011-第二章软件过程敏捷过程的原则我们最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意即使到了开发的后期,也欢迎改变需求.敏捷过程利用变化来为客户创造竞争优势经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好在整个项目开发期间,业务人员和开发人员必须天天都在一起工作围绕被激励起来的个人来构建项目.给他们提供所需要的环境和支持,并且信任他们能够完成工作敏捷过程15软件工程-2011-第二章软件过程敏捷过程的原则(续)在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈工作的软件是首要的进度度量标准敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度不断地关注优秀的技能和好的设计会增强敏捷能力简单是根本的最好的架构、需求和设计出自于自组织的团队每隔一段时间,团队就会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整敏捷过程16软件工程-2011-第二章软件过程SCRUM:Schwaber,K.,&Beddle,M.(2002).AgileSoftwareDevelopmentwithScrum.NJ:PrenticeHall.

Crystal:Cockburn,A.(2002).AgileSoftwareDevelopment.Boston:Addison-Wesley.

FeatureDrivenDevelopment(FDD)

:PeterCoad,EricLefebvre,andJeffDeLuca(1999).JavaModelingInColorwithUML:EnterpriseComponentsandProcess.PrenticeHall.AdaptiveSoftwareDevelopment

(ADP):JamesA.HighsmithIII(2000).AdaptiveSoftwareDevelopment,DorsetHousePublishing.eXtremeProgramming(XP)敏捷过程17软件工程-2011-第二章软件过程极限编程是敏捷过程中最富盛名的一个,其中“极限”的含义是指把最好的开发实践运用到极致。目前极限编程已经成为一个典型的开发方法,广泛应用于需求模糊且经常改变的场合。特点:对变化和不确定性反应更快速,更敏捷快速的同时保持可持续的开发速度极限编程(eXtremeProgramming,XP)18软件工程-2011-第二章软件过程客户作为开发团队的成员使用用户素材短交付周期(每两周完成一次迭代)验收测试结对编程测试驱动的开发集体所有(程序代码属于整个开发小组,每个成员都有修改代码的权利,都对全部代码负责)极限编程的有效实践19软件工程-2011-第二章软件过程持续集成(一日内多次集成,不断回归测试)可持续的开发速度(周工作时间不超过40小时,连续加班不超过两周)开放的工作空间及时调整计划重构使用隐喻(隐喻是把整个系统联系在一起的全局视图,描述系统如何运做,如何把新功能加入到系统中)极限编程(eXtremeProgramming,XP)20软件工程-2011-第二章软件过程极限编程的整体开发过程体系结构试探制订交付计划难点试探验收测试迭代开发不确定的估计确定的估计隐喻交付计划最新版本需求新用户故事差错下一次迭代用户认可小交付测试用例用户故事21软件工程-2011-第二章软件过程极限编程的迭代过程制订迭代计划站立会议代码共享编程验收测试交流与讨论未完成的任务用户故事交付计划项目速率任务分配下一个任务或未通过验收的模块测试用例差错用户认可小交付共享的信息新用户故事新项目速率新功能最新版本结对编程与人员轮换;持续地优化设计;循环冗余检测22软件工程-2011-第二章软件过程Microsoft公司自己独特的软件开发过程,综合了RUP和XP的许多优点,是对众多成功项目的开发经验的正确总结不足:方法工具和产品等方面的论述不如RUP和XP全面人们对它的某些准则本身也有不同意见详细论述参见《微软软件开发解决方案框架》(第二版),麦中凡、陶伟编著,北京航空航天大学出版社微软过程23软件工程-2011-第二章软件过程项目计划应该兼顾未来的不确定因素用有效的风险管理来减少不确定的因素经常生成并快速地测试软件的过渡版本采用快速循环、递进的开发过程用创造性的工作来平衡产品特性和产品成本项目进度表应该具有较高的稳定性和权威性使用小型项目组并发地完成开发工作在项目早期把软件配置项基线化微软过程准则24软件工程-2011-第二章软件过程使用原型验证概念把零缺陷作为追求的目标里程碑评审会强调改进工作,避免相互指责微软过程准则(续)25软件工程-2011-第二章软件过程微软软件生命周期项目目标得到认可完成产品设计完成开发工作准备好可发布版本完成产品发布规划阶段设计阶段发布阶段稳定阶段开发阶段26软件工程-2011-第二章软件过程规划阶段确定产品目标获取竞争对手的信息完成对客户和市场的调研分析确定新版本产品应该具备的主要特性确定相对于前一版本而言,新版本应该解决的问题和需要增加的功能微软软件生命周期27软件工程-2011-第二章软件过程设计阶段根据产品目标编写系统的特性规格说明书,这份说明书主要描述软件特性、系统结构、各构件之间的相关性以及接口标准从系统高层开始着手进行系统设计描述整个系统的设计方案绘制系统结构图确定系统中存在的风险因素分析系统的可重用性微软软件生命周期28软件工程-2011-第二章软

温馨提示

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

评论

0/150

提交评论