软件过程模型 (2)幻灯片.ppt
《软件过程模型 (2)幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件过程模型 (2)幻灯片.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件过程模型第1页,共70页,编辑于2022年,星期三上次课的基本知识点回顾上次课的基本知识点回顾传统软件过程模型传统软件过程模型原型模型原型模型螺旋模型螺旋模型喷泉模型喷泉模型现代软件过程模型现代软件过程模型基于构件的开发模型基于构件的开发模型形式化方法模型形式化方法模型第2页,共70页,编辑于2022年,星期三如何选择软件过程模型如何选择软件过程模型软件过程模型是不断发展的软件过程模型是不断发展的各种软件过程模型各有优缺点和适用各种软件过程模型各有优缺点和适用场合场合选用时不必拘泥于某种模型选用时不必拘泥于某种模型可组合多种模型可组合多种模型也可根据实际创造新的模型也可根据实际创造新的模型
2、第3页,共70页,编辑于2022年,星期三应用举例应用举例v开发一个类似于开发一个类似于Word的字处理软件。的字处理软件。迭代迭代1:提供基本的文件管理、编辑和文档生成功能。:提供基本的文件管理、编辑和文档生成功能。迭代迭代2:提供高级的文档编辑功能。:提供高级的文档编辑功能。迭代迭代3:实现拼写和语法检查功能。:实现拼写和语法检查功能。迭代迭代4:完成高级的页面排版功能:完成高级的页面排版功能。第4页,共70页,编辑于2022年,星期三应用举例应用举例v应用举例:开发一个教务管理系统。应用举例:开发一个教务管理系统。第一次迭代:完成基本的学籍管理、选课和成绩管理功能。第一次迭代:完成基本的
3、学籍管理、选课和成绩管理功能。(6周)周)客户反馈:基本满意,但是对大数据量运行速度慢效率,不需客户反馈:基本满意,但是对大数据量运行速度慢效率,不需要学生自己维护学籍的功能等。要学生自己维护学籍的功能等。第二次迭代:修改细节,提高成绩统计和报表执行效率(第二次迭代:修改细节,提高成绩统计和报表执行效率(2周)。周)。客户反馈:需要严格的权限控制,报表打印格式不符合要客户反馈:需要严格的权限控制,报表打印格式不符合要求。求。第三次迭代:完善打印和权限控制功能。(第三次迭代:完善打印和权限控制功能。(2周)周)客户反馈:可以进行正式应用验证。客户反馈:可以进行正式应用验证。第5页,共70页,编辑
4、于2022年,星期三面向方面的软件开发面向方面的软件开发随着现代计算机系统变得更加复杂,随着现代计算机系统变得更加复杂,某些关注点某些关注点客户客户需要的属性或技术兴趣点需要的属性或技术兴趣点已经体现在整个架构设计中。已经体现在整个架构设计中。某些关注点是系统的高层属性(例如安全性、容错能力),某些关注点是系统的高层属性(例如安全性、容错能力),某些关注点影响了系统的功能等。某些关注点影响了系统的功能等。如果某个关注点涉及系统多个方面的功能、特性和如果某个关注点涉及系统多个方面的功能、特性和信息,这些关注点通常称为信息,这些关注点通常称为横切关注点横切关注点。第6页,共70页,编辑于2022年
5、,星期三面向方面的软件开发面向方面的软件开发方面需求定义那些对整个软件体系结构产生影响的横切方面需求定义那些对整个软件体系结构产生影响的横切关注点。关注点。面向方面的软件开发(面向方面的软件开发(AOSDAOSD)通常称为面向方面编程)通常称为面向方面编程(AOPAOP),为定义、说明、设计和构建方面提供过程和),为定义、说明、设计和构建方面提供过程和方法,是对横切关注点局部表示的一种机制,超越了子方法,是对横切关注点局部表示的一种机制,超越了子程序和继承的方法。程序和继承的方法。第7页,共70页,编辑于2022年,星期三面向方面的构件工程(AOCE)AOCEAOCE对纵向分解的软件构件进行横
6、向切片,称为对纵向分解的软件构件进行横向切片,称为“方面方面”,以表示构件功能及非功能的横切属性。以表示构件功能及非功能的横切属性。系统的方面包括用户接口、协同工作、发布、持续性、存储系统的方面包括用户接口、协同工作、发布、持续性、存储器管理、事务处理、安全、完整性等。器管理、事务处理、安全、完整性等。构件也许提供或需要某一方面的构件也许提供或需要某一方面的“方面细节信息方面细节信息”,如视图机制、可,如视图机制、可扩展性和接口类型(用户接口方面);事件生成、传输和接收(分布扩展性和接口类型(用户接口方面);事件生成、传输和接收(分布式方面);数据存取式方面);数据存取/查询和索引(持久性方面
7、);认证、编码查询和索引(持久性方面);认证、编码和访问权限(安全方面);原子事务、协同控制和登录策略和访问权限(安全方面);原子事务、协同控制和登录策略(事务方面)等。(事务方面)等。第8页,共70页,编辑于2022年,星期三RationalRational统一过程统一过程Unified Process(UP)以用例驱动、以架构为核心,迭代增量模型的软件过程以用例驱动、以架构为核心,迭代增量模型的软件过程描述了如何为软件开发团队有效的部署经过商业化验证的描述了如何为软件开发团队有效的部署经过商业化验证的软件开发方法。它们被称为软件开发方法。它们被称为“最佳实践最佳实践”,UP为每个团队为每个
8、团队成员提供了必要准则、模板和工具指导。成员提供了必要准则、模板和工具指导。获得广泛使用获得广泛使用基于面向对象方法学基于面向对象方法学使用统一建模语言使用统一建模语言UMLUML第9页,共70页,编辑于2022年,星期三统一过程的三个特点统一过程的三个特点用例驱动用例驱动所有的软件开发都是用户需求驱动的。所有的软件开发都是用户需求驱动的。UP采用用例来描采用用例来描述用户需求,同时提供一套方法把用例转化为设计的类述用户需求,同时提供一套方法把用例转化为设计的类图,进一步变成最终的程序代码。在整个软件开发过程图,进一步变成最终的程序代码。在整个软件开发过程中,要求用例是可跟踪的,即在设计和实现
9、阶段,都可中,要求用例是可跟踪的,即在设计和实现阶段,都可以找到相应的需求。以找到相应的需求。以架构为核心以架构为核心架构刻画了系统的整体设计,舍弃细节,突出重要特征。架构刻画了系统的整体设计,舍弃细节,突出重要特征。UP提供了创建架构的方法和过程。提供了创建架构的方法和过程。第10页,共70页,编辑于2022年,星期三统一过程的三个特点统一过程的三个特点UP采用迭代和增量的开发模式,把一个软件产品划采用迭代和增量的开发模式,把一个软件产品划分成多个较小的部分,每次完成一个部分,每次迭分成多个较小的部分,每次完成一个部分,每次迭代都是产品的一个增量。代都是产品的一个增量。优点:把一个复杂系统分
10、解成多个简单系统,提供优点:把一个复杂系统分解成多个简单系统,提供软件项目的可控性,降低软件开发的风险,有效的软件项目的可控性,降低软件开发的风险,有效的应对需求变更。应对需求变更。第11页,共70页,编辑于2022年,星期三UPUP起源起源v面向对象面向对象 60年代年代 Alan Kay发明发明OO语言语言 Smalltalk和面向对象编程和面向对象编程(Object-Orientedprogramming,OOP)1982年年Grady Booch提出面向对象设计(提出面向对象设计(Object-Oriented Design,OOD)80年代末,年代末,Peter Coad创建完整的创
11、建完整的OOA/D方法方法v 三剑客及其建模方法三剑客及其建模方法 James Rumbaugh提出了提出了OMT方法方法 Grady Booch提出了提出了Booch方法方法 Ivar Jacobson提出了提出了Objectory(Object Factory)方法)方法第12页,共70页,编辑于2022年,星期三UP起源起源UML 1994年年James Rumbaugh和和Grady Booch创建了统一方法(创建了统一方法(Unified Method),即),即UML第一个草案第一个草案 三人加入三人加入Rational公司(后被公司(后被IBM收购),领导了收购),领导了OMG的
12、建模标准制定的建模标准制定 1997年年UML1.0发布,发布,2004年年UML2.0发布,成为发布,成为OO建模标准建模标准第13页,共70页,编辑于2022年,星期三UP起源起源UP历史第14页,共70页,编辑于2022年,星期三RationalRational统一过程统一过程从从3 3个视角描述软件开发过程个视角描述软件开发过程动态视角动态视角:随时间变化的各个阶段:随时间变化的各个阶段静态视角静态视角:所进行的活动:所进行的活动实践视角实践视角:可采用的良好实践建议:可采用的良好实践建议第15页,共70页,编辑于2022年,星期三RationalRational统一过程统一过程初始初
13、始:项目计划、:项目计划、评估风险;评估风险;精化精化:设计系统:设计系统的体系结构、制定的体系结构、制定项目计划、确定资项目计划、确定资源需求;源需求;构建构建:开发出所:开发出所有组件和应用程有组件和应用程序,集成并进行序,集成并进行详尽测试;详尽测试;产品化产品化:将产品:将产品移交给用户。移交给用户。动态视角动态视角静静态态视视角角第16页,共70页,编辑于2022年,星期三统一过程的最佳实践准则统一过程的最佳实践准则实践视角:实践视角:6 6条最佳实践条最佳实践1.1.迭代式开发迭代式开发需求变更不可避免需求变更不可避免每次迭代产生一个可交付版本,用户反馈,减少风险每次迭代产生一个可
14、交付版本,用户反馈,减少风险根据客户的轻重缓急来规划增量,先开发和交付优先级根据客户的轻重缓急来规划增量,先开发和交付优先级最高的增量最高的增量2.2.管理需求管理需求采用采用用例用例分析来捕获需求,由用例驱动设计和实现分析来捕获需求,由用例驱动设计和实现对需求及其变更进行管理对需求及其变更进行管理第17页,共70页,编辑于2022年,星期三3.3.使用基于构件的体系结构使用基于构件的体系结构将体系结构组建成基于构件的将体系结构组建成基于构件的提高软件复用率提高软件复用率4.4.可视化建模可视化建模使用统一建模语言(使用统一建模语言(UMLUML)对系统进行可视化建模)对系统进行可视化建模5.
15、5.验证软件质量验证软件质量软件质量评估贯穿于整个开发过程的所有活动中软件质量评估贯穿于整个开发过程的所有活动中全体成员参与全体成员参与6.6.控制软件变更控制软件变更描述了如何控制和跟踪软件的变更描述了如何控制和跟踪软件的变更统一过程的最佳实践准则统一过程的最佳实践准则第18页,共70页,编辑于2022年,星期三RationalRational统一过程统一过程初始初始:项目计划、:项目计划、评估风险;评估风险;精化精化:设计系统:设计系统的体系结构、制的体系结构、制定项目计划、确定项目计划、确定资源需求;定资源需求;构建构建:开发出所:开发出所有组件和应用程有组件和应用程序,集成并进行序,集
16、成并进行详尽测试;详尽测试;产品化产品化:将产品:将产品移交给用户。移交给用户。动态视角动态视角静静态态视视角角第19页,共70页,编辑于2022年,星期三v起始阶段起始阶段(inception):沟通、策划沟通、策划包括客户包括客户沟通和策划沟通和策划活动。该阶段识别基本的业务需求,并活动。该阶段识别基本的业务需求,并初步用初步用“用例用例”描述每一类描述每一类用户所需要的主要特征和功能用户所需要的主要特征和功能。此。此时的架构仅是主要子系统及其功能、特性的试探性概括。策划活时的架构仅是主要子系统及其功能、特性的试探性概括。策划活动识别各种资源,评估主要风险,定义进度计划,并为用于软件动识别
17、各种资源,评估主要风险,定义进度计划,并为用于软件增量开发的各个阶段建立基础。增量开发的各个阶段建立基础。统一过程的阶段统一过程的阶段第20页,共70页,编辑于2022年,星期三统一过程的阶段统一过程的阶段v细化阶段细化阶段(elaboration)策划、建模策划、建模包括用户沟通和通过过程模型的建模活动。该阶段扩展了包括用户沟通和通过过程模型的建模活动。该阶段扩展了起始阶段定义的用例,并扩展体系结构以包括软件的五种视起始阶段定义的用例,并扩展体系结构以包括软件的五种视图图用例模型、分析模型、设计模型、实现模型和部署模用例模型、分析模型、设计模型、实现模型和部署模型型。体系结构基线证明了体系结
18、构的可实现性,但没有提供体系结构基线证明了体系结构的可实现性,但没有提供系统使用所需的所有功能和特性。另外,在细化的最终阶段系统使用所需的所有功能和特性。另外,在细化的最终阶段将评审项目计划以确保项目的范围、风险和交付日期合理。将评审项目计划以确保项目的范围、风险和交付日期合理。同时对项目计划进行修订。同时对项目计划进行修订。第21页,共70页,编辑于2022年,星期三统一过程的阶段统一过程的阶段v构建阶段构建阶段(construction):部署部署与通用软件过程中的构建活动相同。该阶段采用体系结构与通用软件过程中的构建活动相同。该阶段采用体系结构模型作为输入,开发或获取软件构件,使得最终用
19、户能够操模型作为输入,开发或获取软件构件,使得最终用户能够操作用例。作用例。v转换阶段转换阶段(transition):构建、部署构建、部署包括通用构建活动的后期阶段以及第一部分通用部署活动。包括通用构建活动的后期阶段以及第一部分通用部署活动。软件被提交给最终用户进行软件被提交给最终用户进行Beta测试,用户反馈缺陷及必要测试,用户反馈缺陷及必要的变更。另外,软件开发团队创建系统发布所必要的支持信的变更。另外,软件开发团队创建系统发布所必要的支持信息。息。第22页,共70页,编辑于2022年,星期三统一过程的阶段统一过程的阶段v生产阶段生产阶段(production):发布发布与通用过程的部署
20、活动一致。在该阶段,监控软件的持续与通用过程的部署活动一致。在该阶段,监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。求。一个软件工程的工作流分布在所有一个软件工程的工作流分布在所有UP阶段。阶段。第23页,共70页,编辑于2022年,星期三统一过程工作产品统一过程工作产品UP每一个阶段产生的主要工作产品第24页,共70页,编辑于2022年,星期三产品与过程产品与过程如果过程很薄弱,最终产品必将受到影响。但是对过如果过程很薄弱,最终产品必将受到影响。但是对过程的过于依赖也是很危险的。程的过于依赖也是很危险的。第25页,共
21、70页,编辑于2022年,星期三RationalRational统一过程统一过程适用场合适用场合适合大团队大项目。适合大团队大项目。第26页,共70页,编辑于2022年,星期三敏捷软件开发敏捷软件开发Agile software developmentAgile software development高效工作、快速响应变化高效工作、快速响应变化20012001年年2 2月,月,1717位编程大师发表位编程大师发表敏捷软件开发宣言敏捷软件开发宣言个体和交互个体和交互胜过过程和工具胜过过程和工具可以工作的软件可以工作的软件胜过面面俱到的文档胜过面面俱到的文档客户合作客户合作胜过合同谈判胜过合同谈
22、判响应变化响应变化胜过遵循计划胜过遵循计划虽然右边的项有价值,但我们更重视左边的项虽然右边的项有价值,但我们更重视左边的项敏捷敏捷Agility第27页,共70页,编辑于2022年,星期三敏捷软件开发的基本原则敏捷软件开发的基本原则客户参与到开发团队中客户参与到开发团队中确定系统需求、对需求排序、确定系统需求、对需求排序、评估系统等评估系统等软件以增量的方式进行开发软件以增量的方式进行开发和交付和交付开发团队的技术和开发团队开发团队的技术和开发团队的风格应得到认可的风格应得到认可接受变更,设计软件适应变接受变更,设计软件适应变更更保持所开发软件和开发过程的保持所开发软件和开发过程的简单性简单性
23、实践中的困难实践中的困难客户不一定愿意参与到开发客户不一定愿意参与到开发团队中团队中团队成员的性格团队成员的性格需求和变更的优先级不容需求和变更的优先级不容易确定易确定维护简单性需要额外的时维护简单性需要额外的时间间企业文化很难改变企业文化很难改变第28页,共70页,编辑于2022年,星期三敏捷开发方法敏捷开发方法极限编程:极限编程:eXtreme Programming/XPeXtreme Programming/XP自适应软件开发自适应软件开发Adaptive Software Development/ASDAdaptive Software Development/ASD并列争球法:并列
24、争球法:ScrumScrum动态系统开发方法动态系统开发方法Dynamic System Development Method/DSDMDynamic System Development Method/DSDM水晶法:水晶法:CrystalCrystal特征驱动开发:特征驱动开发:Feature-Driven Development/FDDFeature-Driven Development/FDD精益软件开发:精益软件开发:Lean Software Development/LSDLean Software Development/LSD扩展扩展内容内容第29页,共70页,编辑于2022年
25、,星期三极限编程极限编程eXtreme Programming XPeXtreme Programming XP把好的开发实践运用到极致把好的开发实践运用到极致为当前版本选择故事情节/需求(Scenario)将故事情节分解成任务规划版本开发/集成/测试软件发布软件评估系统结对编程先写测试用例再编程第30页,共70页,编辑于2022年,星期三极限编程极限编程XPvXPXP使用面向对象方法作为推荐的开发范型。使用面向对象方法作为推荐的开发范型。XPXP包含了包含了策划、设计、编码和测试策划、设计、编码和测试4 4个框架活动个框架活动的规则和实践。的规则和实践。如图如图3-23-2所示。所示。第31
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件过程模型 2幻灯片 软件 过程 模型 幻灯片
限制150内