现代软件工程软件生命周期过程.pptx
《现代软件工程软件生命周期过程.pptx》由会员分享,可在线阅读,更多相关《现代软件工程软件生命周期过程.pptx(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年4月20日1提纲第二章 软件生命周期过程2.1 软件生命周期2.2 基本过程2.3 支持过程2.4 组织过程第1页/共69页2023年4月20日22.1 软件生命周期2.1.1 软件生命周期定义2.1.2 软件生命周期模型 第2页/共69页2023年4月20日32.1.1 软件生命周期定义l1、软件生命周期:指软件产品从考虑其概念开始,到该软件产品不再能使用为止的整个时期。l一般包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装阶段以及交付使用阶段、运行阶段和维护阶段。有时还有退役阶段。l这些阶段可以有重复,执行时也可以有迭代。第3页/共69页2023年4月20日42.1.
2、1 软件生命周期定义l2、软件开发生命期:指软件产品从考虑其概念开始到该软件产品交付使用为止的整个时期。l一般包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装阶段,以及交付阶段。l这些阶段可以有重叠,执行时也可以有迭代。第4页/共69页2023年4月20日52.1.1 软件生命周期定义l3、软件开发过程:把用户的要求转变成软件产品的过程叫做软件开发过程。是人们用于开发和维护软件及其相关产品(项目计划、设计文件、编程代码、测试、用户手册)的一系列活动、方法、实践和改造。l软件过程的规划由不同开发机构针对不同应用项目确定,包括一些有组织的活动:1)对用户的要求(need)进行分析、2)
3、解释成软件需求(requirement)、3)把需求变换成设计、4)把设计用代码来实现、5)测试该代码,5)有时还要进行代码安装和把软件交付运行使用。进一步可以抽象为:1.软件规格说明:规定软件的功能及其运行限制;2.软件开发:产生满足规格说明的软件;3.软件确认:确认软件能够完成客户提出的要求;4.软件演进:为满足客户的变更要求而进行演进。l这些活动可以重叠,执行时也可以迭代。第5页/共69页2023年4月20日62.1.1 软件生命周期定义l软件过程的研究重点:软件生产和管理。因此,不仅要有工程的观点,还要有系统的、管理的、运行的、用户的观点。l软件过程的分类:1.基本过程:与软件生产直接
4、相关的过程2.支持过程:支持软件生产的过程3.组织过程:与软件生产组织(单位)有关的过程4.剪裁过程:将上述过程和活动剪裁到具体应用中的过程。第6页/共69页2023年4月20日72.1.1 软件生命周期定义l4、软件过程的活动:实现软件开发生命期目标所必须完成的所有任务以及完成任务的步骤。l一般包括框架活动和伞形活动。l框架活动:是软件工程过程必须的主要步骤、是决定软件产品如何出现、存在的重要活动。包括:一组软件工程工作任务并指出什么算完(里程碑)?交付出什么?质量保证点是什么?l软件工程工作任务因产品特性而选用不同的过程模型展开。当然,最抽象的框架活动是定义、开发、维护。有了模型它就可以把
5、这三大步骤细化了。第7页/共69页2023年4月20日82.1.1 软件生命周期定义l伞形活动:是为保证高质量产品出现、存在的活动。它凌驾于框架活动之上,故谓之“伞形”,典型的伞形活动是:n软件项目追踪和管理(1)正式技术评审(2)软件质量保证(3)软件配置管理(4)文档的准备和制作n可重用管理n软件度量(指本项目特殊的度量)n风险管理第8页/共69页2023年4月20日92.1.1 软件生命周期定义l5、框架活动与项目特征l框架活动对某类项目、某开发单位相对固定,但变动比较大。l一般把软件项目分成五类。(1)概念开发项目:相当于我国科研体制中“预研”项目(2)新应用开发项目:例如,Word
6、1.0(3)应用增强项目:有重大改进如Word 3.0,6.0(4)应用维护项目:相对小的改进(5)重构工程项目:将已有项目部分或全部重构l概念开发项目可以采用线性顺序模型:(1)项目定义:概念范围定义 (2)作计划:初步概念计划和技术风险评估 (3)作工程/构建:概念证明 (4)发布:概念实现 (5)客户评价:客户反应第9页/共69页2023年4月20日102.1.1 软件生命周期定义l对于新应用开发和后续的增强和维护项目,可以采用螺旋模型,其框架活动是:(1)与客户通信:建立有效通信 (2)作计划:定义资源、时限、项目相关信息 (3)风险分析:技术和管理风险 (4)作工程:作出主要应用程序
7、表示 (5)构建和发布:构建、测试、安装并提供用户支持 (6)客户评价:收集反馈意见l这些框架活动可因公司(单位)项目而异。如RUP方法学把框架活动定义为线性顺序四阶段模型:(1)初始(Inception):定义环境、捕捉需求 (2)求精(Elaboration):定义需求、分析、设计 (3)构建(Construction):实现、测试 (4)移交(Transition):测试、布署l每个阶段内部都是迭代的,即支持原型。因此生存周期模型不同于传统一维模型,变为二维的模型,一维是框架活动,一维是可反复迭代的工程活动。第10页/共69页2023年4月20日112.1.2 软件生命周期模型l软件开发
8、模型:是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。第11页/共69页2023年4月20日122.1.2.1 瀑布模型l早期的瀑布模型即为线性顺序模型。它一次走完分析、设计、编码、测试和运行维护这些框架活动。l质量保证、文档制作、正式技术评审、配置管理等伞形活动穿插其中。第12页/共69页2023年4月20日132.1.2.1 瀑布模型第13页/共69页2023年4月20日142.1.2.1 瀑布模型l1970年,W.Royce提出瀑布模型。l特征:活动的输入来自上一活动的输出;完成该项活动的内容;活动的输出传给下一活
9、动;对活动的实施工作进行评审。l适合:需求明确的任务。l优点:以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。严格把关、错误尽早发现并消灭在前一阶段。l缺点:不允许变更、客户必须一开始就明白需求,成品时间长;缺乏灵活性。80年代中期发现严格按瀑布模型开发的大型系统成功率极低(低于23%)。第14页/共69页2023年4月20日152.1.2.1 瀑布模型l瀑布模型的变种V模型需求分析概要设计详细分析编码单元测试集成测试确认测试其他测试第15页/共69页2.1.2.2 增量模型2023年4月20日16沟通策划建模构建部署交付第1个增
10、量交付第2个增量交付第3个增量第16页/共69页2.1.2.2 增量模型l93年提出l特征:初始的软件需求明确,但是整个开发过程不宜用线性模型,同时,需要向用户迅速提供一套功能有限的软件产品。然后在后续版本中再细化和扩展功能;l特别适合既定商业项目在要求开发期限之前不可能找到足够的开发人员。增量模型可以规避继续风险。2023年4月20日17第17页/共69页2.1.2.3 快速原型开发2023年4月20日18沟通策划建模构建部署第18页/共69页2.1.2.3 快速原型开发l88年提出l特征:初始的软件需求不很明确,客户只说出了一些功能,但不知道详细的输入、处理、输出。开发人员对技术、效率、平
11、台也不清楚。但是整个开发过程不宜用线性模型,同时,需要向用户迅速提供一套功能有限的软件产品。然后在后续版本中再细化和扩展功能;2023年4月20日19第19页/共69页2023年4月20日202.1.2.4 演化模型l项目开发初始阶段对需求的认识不够清晰,使得开发工作出现再开发在所难免。经验告诉我们:开发“两次”后的软件能较好地满足用户的要求。l第一次:试验开发,目的是探索可行性,弄清楚项目的需求。l第二次:在第一次的原型基础上进行开发,从而获得较为满意的软件产品。第20页/共69页2023年4月20日212.1.2.4 演化模型需求分析软件设计程序编码软件测试软件集成软件评审需求分析软件设计
12、程序编码软件测试软件集成软件评审反馈“第一次”“第二次”适合:事先不能清晰和完整定义需求的软件开发。原型增加了开发的工作量,增加了管理上的困难。特别是原型过程步骤事先难于计划,不知道应反复几次,从哪里开始反复,预算进度均难于控制。但它具有切合实际,成功率较高的优点,故至今仍在使用。第21页/共69页2023年4月20日222.1.2.5 螺旋模型l88年由Boehm提出l对于大型项目而言,事先不能完整清晰地定义需求是常事,而且开发一个原型是远远不能解决问题的,需要开发内容逐步丰富的多个原型。l大型项目的规模和复杂性增加,软件开发过程中必然存在着许多风险问题,风险分析是保证项目成功的必要手段。l
13、结合了原型系统的迭代性和瀑布模型的系统性和可控性。第22页/共69页2023年4月20日232.1.2.5螺旋模型第23页/共69页2023年4月20日242.1.2.5 螺旋模型l螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:l制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件l风险分析分析所选方案,考虑如何识别和消除风险l实施工程实施软件开发l客户评估评价开发工作,提出修正建议第24页/共69页2023年4月20日252.1.2.5 螺旋模型第25页/共69页2023年4月20日262.1.2.6 喷泉模型l软件开发的固有特征:1、迭代 多次重复、演进。2、无间隙
14、 各阶段间无明显的界限。支持分析和设计结果的自然复用。适用:面向对象的软件开发过程。第26页/共69页2023年4月20日272.1.2.6 喷泉模型第27页/共69页2.1.2.7 快速应用开发模型lR(apid)A(pplication)D(evelopment)l91年提出lRAD是一种侧重于短暂的开发周期的增量软件过程模型。通过基于构件的构建方法实现快速开发,RAD模型能使开发团队在一段非常短的实践内创造出全功能系统。2023年4月20日28第28页/共69页2.1.2.7 快速应用开发模型2023年4月20日29沟通策划建模部署集成交互反馈第29页/共69页2.1.2.7 快速应用开
15、发模型l建模过程有以下步骤:l(1)业务模型:以什么信息驱动业务过程运作?要生成什么信息?谁生成它?信息流的去向?由谁处理?可以辅之以数据流图。l(2)数据模型:为支持业务过程的数据流,找数据对象集合,定义数据对象属性,与其它数据对象的关系构成数据模型,可辅之以E-R图。l(3)处理模型:如何使数据对象在信息流中完成各业务功能。描述数据对象的增加、修改、删除、查找。即细化数据流图中的处理框。l(4)应用程序生成:利用第四代语言(4GL)写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具,自动生成,构造出整个的应用系统。l(5)测试与交付,由于大量重用,一般只作总体测试,但新创建
16、的构件还是要测试的。2023年4月20日30第30页/共69页2023年4月20日312.1.2.7 其他模型l还有协同开发模型、并发开发模型:针对并发程序系统、组件开发模型和形式方法模型-净室软件工程:需要进行数学验证或函数式、逻辑式程序系统而设的。l面向方面的软件开发l统一过程模型:UP(Unified Process)第31页/共69页敏敏 捷捷 软软 件件 开开 发发-路宁路宁敏敏 捷视角下的过程捷视角下的过程 第32页/共69页疲于应付变化的需求质量不尽如人意无法按时交付第33页/共69页疲于应付需求变化疲于应付需求变化 满足需求变化增加软件价值 需求细化于发现新知识的时候 合理的需
17、求规模迭代式地挖掘、细化和实现需求应用敏捷实践使代码的设计简洁和灵活,易于变化(测试驱动开发,持续集成,结对编程)第34页/共69页质量不尽如人意质量不尽如人意 质量产生于开发过程,而非后期测试 质量产生于简约的设计,而非补丁全员参与质量保证测试提前,频繁,自动化地进行(TDD,持续集成)频繁、小量的重构持续优化设计第35页/共69页无法按时交付无法按时交付 及时交付可用功能为客户创造更多价值 成功交付前的所有工作都不能称为“完成”频繁交付,迭代式开发持续集成,确保软件随时处于“可用”状态第36页/共69页其它敏捷实践:其它敏捷实践:计划游戏 现场客户 可视化管理 代码共有 编码标准 第37页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 软件工程 软件 生命周期 过程
限制150内