




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章软件开发模型§2.1软件生存周期§2.2传统软件开发模型§2.3软件演化模型§2.4面向对象开发模型§2.5形式化方法模型教学内容:教学目的:初步了解软件的生存周期模型,软件生存期各个阶段的特点和内容1软件工程软件开发模型lyh软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为软件的生存期软件生存期包含三个阶段:软件定义、软件开发及软件运行维护。软件生存期模型是软件工程思想的具体化,是跨越软件生存期的系统开发、运行、维护所实施的全部活动和任务的过程框架。软件生存期一般划分为计划、开发、运行三个时期,每一个时期又区分为若干个阶段。计划时期有问题定义和可行性研究两个阶段;开发时期有需求分析、系统设计、编码和测试4个阶段;运行时期主要是系统维护阶段。2软件工程软件开发模型lyh软件生存周期计划时期的主要任务是调查和分析:调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。开发时期要完成设计和实现两个任务。其中设计任务用需求分析、软件设计两个阶段完成,实现任务用编码和测试来完成。运行时期的主要任务是做好软件的维护。软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。3软件工程软件开发模型lyh2.2传统软件开发模型“What——How——Change”概括了软件开发活动(定义、开发、维护)中的主要特征。传统的软件开发模型主要有瀑布模型与快速原型模型。4软件工程软件开发模型lyh2.2.1瀑布模型需求定义系统与软件设计集成与系统测试实现与单元测试运行与维护各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入-处理-输出-评审)中。5软件工程软件开发模型lyh制定计划确定要开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;估计可利用的资源(硬件,软件,人力等)、成本、效益、开发进度;制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。6软件工程软件开发模型lyh需求分析和定义对用户提出的要求进行分析并给出详细的定义;编写软件需求说明书或系统功能说明书及初步的系统用户手册;提交管理机构评审。7软件工程软件开发模型lyh软件设计概要设计—把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应;详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础;编写设计说明书,提交评审。8软件工程软件开发模型lyh程序编写把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”;写出的程序应当是结构良好、清晰易读的,且与设计相一致的。9软件工程软件开发模型lyh软件测试单元测试,查找各模块在功能和结构上存在的问题并加以纠正;组装测试,将已测试过的模块按一定顺序组装起来;按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。10软件工程软件开发模型lyh运行/维护纠正性维护运行中发现了软件中的错误需要修正;适应性维护为了适应变化了的软件工作环境,需做适当变更;完善性维护为了增强软件的功能需做变更。预防性维护11软件工程软件开发模型lyh
按照传统瀑布模型开发软件的特点
1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。软件工程软件开发模型lyh传统瀑布模型开发软件带来的问题:过程基本不可迭代需求在开始的不确定性错误到最后才能发现开发进程呈现塞阻状态13软件工程软件开发模型lyh软件生存期循环14软件工程软件开发模型lyh2.2.2快速原型模型快速原型模型(RapidPrototypeModel)的主要做法是:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。快速原型系统的优越性主要体现在:软件开发人员向用户提供一个“样品”,用户向开发人员迅速作出“反馈”。15软件工程软件开发模型lyh快速原型模型图示用户测试,运行原型建造修改/原型听取用户意见16软件工程软件开发模型lyh原型模型
原型产生步骤17软件工程软件开发模型lyh如何产生快速原型系统?原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。把原型系统作为基础,通过补充与修改获得最终的实际系统。18软件工程软件开发模型lyh快速原型模型带来的问题:需要足够的人力资源•用户和设计都成为关键适用于MIS形式的系统19软件工程软件开发模型lyh
2.3软件演化模型
传统开发模型共同特征:线性思维而大部分复杂软件采用渐增式或迭代的开发方法,它们属于软件演化模型。软件工程软件开发模型lyh演化模型由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次;第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求;第二次则在此基础上获得较为满意的软件产品。21软件工程软件开发模型lyh演化模型需求的采集与细化客户评价原型快速设计建造原型加工原型产生样品停止开始先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。22软件工程软件开发模型lyh演化模型增量模型(IncrementalModel)螺旋模型(SprialModel)
23软件工程软件开发模型lyh
1.增量模型(递增模型)
先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求。系统的总体设计在初始子集设计阶段就应作出设想。软件工程软件开发模型lyh增量演化模型分析设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试增量2增量3增量4增量1第1个增量的发布第2个增量的发布第3个增量的发布第4增量的发布要点:•顺序过程和原型过程相结合•强调版本升级•每个版本的开发遵循顺序过程
25软件工程软件开发模型lyh增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。增量开发方法的新演进版本叫做“极限程序设计(eXtremeProgramming)”。
定义基本需求将需求赋予增量构件设计系统体系结构开发增量构件确认增量构件集成增量构件确认系统26软件工程软件开发模型lyh2.螺旋模型结合瀑布模型与快速原型的基础上增加了风险分析软件工程软件开发模型lyh螺旋模型
螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析分析所选方案,考虑如何识别和消除风险;实施工程实施软件开发客户评估评价开发,提出修正建议。28软件工程软件开发模型lyh螺旋模型决定目标、方案和限制评价方案、识别风险、弱化风险开发、验证、下一级产品
计划下一阶段集成测试29软件工程软件开发模型lyh风险分析工程构造及发布用户评估客户交流计划项目入口螺旋模型轴线与增量模型的区别:•活动划分不同•更强调“计划”、“风险分析”和“用户评估”•版本有更明确的目标
要点:相似于增量模型,是顺序过程与原型过程的统一,强调版本和版本升级。
版本的明确目标:概念项目→增量项目→维护项目30软件工程软件开发模型lyh螺旋模型螺旋模型将瀑布模型与快速原形模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。
31软件工程软件开发模型lyh2.4面向对象模型为什么要引入面向对象的设计方法面向对象的设计方法与面向过程的设计方法有什么关系软件工程软件开发模型lyh面向过程程序设计缺点的根源在于数据与数据处理分离。面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(object),同类对象还可抽象出共性,形成类(class)。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。33软件工程软件开发模型lyh对象(object)类(class)消息(message)1基本概念34软件工程软件开发模型lyh属性行为表针旋钮其他机械机构调节旋钮对象1基本概念35软件工程软件开发模型lyh类是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和行为。
手表一块手表类对象描述这类对象共有的、本质的属性和行为类的一个具体实现,称为实例手表共有的属性(表针、旋钮、内部结构)和行为(调节旋钮)具体到一只圆形的或方形的手表类1基本概念36软件工程软件开发模型lyh我们把对象之间产生相互作用所传递的信息称做消息。
消息启动发送消息接收并响应消息1基本概念37软件工程软件开发模型lyh消息我们把对象之间产生相互作用所传递的信息称做消息。
发送消息接收并响应消息转向1基本概念38软件工程软件开发模型lyh面向对象软件开发的根本合理性在于它符合客观世界的组成方式和大脑的思维方式。在大型程序开发过程中,编码只是其中很小一部分,应当采用工程化的方法,并将面向对象的思想贯穿于软件开发全过程,这就是面向对象的软件工程。面相对象的软件工程同样遵循分层抽象、逐步细化的原则。软件开发过程包括以下五个阶段:2面向对象的软件开发方法39软件工程软件开发模型lyh测试的任务在于发现并改正程序中的错误。面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)分析阶段的主要任务是按照面向对象的概念和方法,从问题中识别出有意义的对象,以及对象的属性、行为和对象间的通信,进而抽象出类结构,最终将它们描述出来,形成一个需求模型。设计阶段从需求模型出发,分别进行类的设计和应用程序的设计。编程阶段实现由设计表示到面向对象程序设计语言描述的转换。面向对象的维护(OOSM)2面向对象的软件开发方法40软件工程软件开发模型lyh封装性(2)继承与派生性(3)多态性3
“面向对象”程序设计的特点41软件工程软件开发模型lyh封装性内外机械零件动作调节旋钮读表盘对象是一个封装体,在其中封装了该对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只能通过接口对对象进行操作。封装性增加了对象的独立性,从而保证了数据的可靠性。一个定义完好的类可以作为独立模块使用。3
“面向对象”程序设计的特点42软件工程软件开发模型lyh汽车客车货车小轿车大客车载货载人小,速度快大,速度慢继承与派生以汽车为例看客观世界描述事物的方式:当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类中只需描述自己所特有的属性和操作。面向对象程序设计提供了类似的机制
继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率。新类称为子类或派生类,原来的类称为基类。派生可以一直进行下去,形成一个派生树。3
“面向对象”程序设计的特点43软件工程软件开发模型lyh语文、数学、英语、政治、物理、化学、生物多态性多态性指,同一个消息被不同对象接收时,产生不同结果,即实现同一接口,不同方法。高中生计算平均成绩3
“面向对象”程序设计的特点计算平均成绩大学生高数、英语、计算机、线性代数44软件工程软件开发模型lyh继承和多态性组合,可以生成很多相似但又独一无二的对象。继承性使得这些对象可以共享许多相似特性,而多态又使同一个操作对不同对象产生不同表现形式。这样不仅提高了程序设计的灵活性,而且减轻了分别设计的负担。3
“面向对象”程序设计的特点45软件工程软件开发模型lyh
面向对象模型喷泉模型(FountainModel)可重用部件组装模型(构件集成模型ComponentIntegrationModel)46软件工程软件开发模型lyh喷泉模型体现了迭代和无间隙的特性。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。
47软件工程软件开发模型lyh需求阶段分析阶段设计阶段编程阶段集成与测试阶段维护与演进阶段要点:•体现认识事物的往返过程•开发活动之间的无间隙性和循环迭代性•适用于面向对象的开发过程•强调无明显的活动阶段划分48软件工程软件开发模型lyh可重用部件组装模型(构件集成模型)构件集成模型产生的可能性:
经过适当设计和实现的类也可以称为构件,他们在某个领域中具有一定的通用性,可以在不同的计算机软件系统中复用。将这些构件储存起来变成一个构件库,就为基于构件的软件开发模型提供了技术基础。软件工程软件开发模型lyh基于构件的开发技术构件库问题域识别构件查找构件生成构件组装系统查到构件未查到构件要点:•基于软件复用性•形成统一开发过程•产生统一建模语言50软件工程软件开发模型lyh可重用部件组装模型(构件集成模型)构件(components):可重用的软件成份可复用性(Reusability)集成化软件开发环境(ISEE)51软件工程软件开发模型lyh可重用部件组装模型(构件集成模型)
它融合了螺旋模型的很多特征,支持软件开发的迭代方法52软件工程软件开发模型lyh可重用部件组装模型用户通信计划产品开发及发布用户评估风险分析标志候选构件查找构件若存在则提取构件若不存在则构造构件进行下一次迭代将新构件存入库中软件工程软件开发模型lyh2.5形式化方法模型转换模型(TransformationalModel)净室模型(CleanroomModel)软件工程软件开发模型lyh转换模型
结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。
它用严格的、数学的表示体系来表示软件规格说明,然后进行一系列自动或半自动的程序变换,最后转换为计算机系统能够接受的目标程序系统。55软件工程软件开发模型lyh转换模型形式化规格说明与需求比较后修正形式化开发记录变换n变换2变换1测试系统需求目标系统…软件工程软件开发模型lyh
形式化规格语言及其变换技术基于模型的规格说明及其变换技术基于代数结构及其变换技术基于时序逻辑的规格说明和验证技术基于可视形式化技术软件工程软件开发模型lyh2.净室模型(形式化的增量开发模型)基于思想:
力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。三个关键技术:置于统计过程控制之下的增量开发;基于函数的规范、设计、验证;统计测试和软件认证。软件工程软件开发模型lyh净室模型盒结构规约需求收集形式化设计正确性验证代码检查测试计划统计性使用测试验证增量#1盒结构规约需求收集形式化设计正确性验证代码检查测试计划统计性使用测试验证增量#2盒结构规约需求收集形式化设计正确性验证代码检查测试计划统计性使用测试验证增量#1............软件工程软件开发模型lyh新的开发模型(技术)•并行开发技术•基于构件的开发技术•形式化方法技术•第4代技术•过程技术工具60软件工程软件开发模型lyh2.6开发模型选用实例(P27-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校班班通管理制度
- 学生休闲室管理制度
- 学生科学生管理制度
- 宅急送薪酬管理制度
- 安全色标志管理制度
- 安生产责任管理制度
- 安装及维修管理制度
- 定制化服务管理制度
- 实训室考核管理制度
- 客服直播间管理制度
- 沟通与演讲2023学习通超星课后章节答案期末考试题库2023年
- 《数据采集与预处理》教学教案(全)
- 2022年《内蒙古自治区建设工程费用定额》取费说明
- DVD在线租赁的分配问题
- Q∕GDW 10799.6-2018 国家电网有限公司电力安全工作规程 第6部分:光伏电站部分
- 暴雨产流计算(推理公式_四川省)
- 焊接技能训练教案.
- 断路器的控制回路和信号回路
- 内部控制专项审计实施方案
- 硅胶管检验管理规定
- 劳动工资统计培训PPT课件
评论
0/150
提交评论