SE02 软件开发模型_第1页
SE02 软件开发模型_第2页
SE02 软件开发模型_第3页
SE02 软件开发模型_第4页
SE02 软件开发模型_第5页
已阅读5页,还剩43页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、软件开发模型2主要内容软件生命周期软件开发模型3软件开发模型传统开发模型瀑布模型(waterfall model)快速原型模型(rapid prototype model)演化开发模型增量模型(incremental model)螺旋模型(spiral model)基于四代技术的模型面向对象开发模型构件集成模型(component integration model) 形式化开发模型转换模型(transformational model)净室模型(cleanroom model)42.1软件生命周期生存周期(Life Cycle)定义 一个软件从开始计划起,到废弃不用为止,称为软件的生存周期。

2、软件生存周期包括:计划、开发与运行3个时期,每一时期又可细分为若干更小的阶段。将软件开发过程划分生存周期的目的: 把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理。5典型的软件生存周期问题定义(系统需求)可行性研究需求分析(软件需求)软件设计(概要、详细)编码测试运 行 维护计划时期开发时期运行时期6(1)计划时期 主要任务:调查和分析,调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。包括两个阶段:问题定义 主要弄清“用户需要计算机解决什么问题”,由系统分析员根据对问题的理解,提

3、出关于“系统与范围的说明”,交由用户审查和认可。可行性分析 对问题的解决给出在技术上可行、且在经济上有较高效益的可操作解决方案,并写出“可行性论证报告”,如若项目不值得进行,应提出终止该项目的建议。生存周期每一时期的任务7Feasibility studyOperational Feasibility 操作可行性Technical Feasibility 技术可行性Schedule Feasibility 时间可行性Economic Feasibility经济可行性技术可行性经济可行性运行可行性法律可行性8(2)开发时期主要任务:系统分析、设计和实现。包括四个阶段需求分析 弄清用户对软件系统的

4、全部需求,并用“需求规格说明书”的形式准确地表达出来。 做什么 SRS文档软件设计 将需求转变为软件的表示形式,确定软件的总体结构、数据结构、用户界面和算法细节。又可分为概要设计(总体设计)和详细设计两个阶段。编码 按照选定的语言,把设计的过程性描述翻译为源程序。测试 发现软件中隐藏的各种错误,是保证软件质量的重要手段。生存周期每一时期的任务9(3)运行时期主要任务:做好软件维护,使软件在整个生存周期内保证满足用户的需求和延长使用寿命。一个阶段:软件维护纠错性维护适应性维护功能性维护预防性维护生存周期每一时期的任务10计划阶段定义问题确认系统的可行性制定项目进度表为项目安排人员启动项目分析阶段

5、收集信息确定系统需求建立需求发现的原型划分需求的优先级产生并评估可替换方案与管理人员一起审查建议设计阶段设计并集成网络设计应用程序结构设计用户界面设计系统界面设计并集成数据库设计细节的原型化设计并集成系统控制实现阶段构建软件的部件检验并测试开发调整原型转换数据培训与文档安装系统支持阶段目标:保证系统在安装后有效地运行对最终用户的支持帮助台,由技术人员组成培训计划维护并增强计算机系统增强升级维护系统开发生命周期 (SDLC,systems development life cycle)图 系统开发生命周期112.2 传统软件开发模型软件开发模型(Software Developement Mod

6、el)的概念在软件开发过程中包含了很多不同的开发活动,根据软件生存周期为各项开发活动的流程确定一个合理的框架,称为软件生存周期模型或软件开发模型。由多种不同的软件开发策略,形成了不同的软件开发模型。如传统模型、演化模型和面向对象模型等。不同的软件开发模型分别适用于不同特征的软件项目。12软件开发模型(Software Developement Model)的概念各个不同的软件开发模型都包含计划、开发、维护三类活动(基本活动)。在不同的软件开发模型中,活动可顺序展开,也可反复循环,所用的方法与工具可随所用的模型而异。各开发组织可探索适合自己的开发模型。13传统软件开发模型至今仍广泛使用的开发模型

7、包括瀑布模型-线性顺序模型或生存周期模型快速原型模型14(1)瀑布模型(Waterfall Model)问题定义可行性研究需求分析软件设计编码测试维护计划时期开发时期运行时期在这种模型中,各个阶段的工作顺序展开,恰如奔腾不息拾级而下的瀑布,总是从上面的台阶依次流向下面的台阶。1970 W.Royce15(1)阶段的顺序性和依赖性只有等前一阶段的工作完成以后,后一阶段的工作才能开始;顺序性想在后阶段获得正确的结果,必须在前阶段有正确的输出;依赖性因此,如果在生存期某一阶段出现了问题,往往要追溯到在它之前的一些阶段,必要时还要修改前面已经完成的文档。瀑布模型特点16瀑布模型特点(续)(2)实现的观

8、点过早考虑程序的实现,常常导致大量返工,容易给开发带来灾难性的后果,因此把逻辑设计与物理设计清楚地划分开来,尽可能推迟程序的物理实现。(3)质量保证的观点每一阶段都要完成规定的文档,是文档驱动的模型。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。及时复审是保证软件质量、降低开发成本的重要措施。17瀑布模型的阶段与文档各阶段产生的文档及其相互关系需求分析概要(总体)设计详细设计编 码单元测试系统测试确认测试综合测试用户要求需求规格说明软件结构图模块说明程序清单18瀑布模型的缺点存在问题不适合需求模糊或需求经常变动的系统由于开销的逐步升级问题,它不希望存在早期阶段的反馈在一个系统

9、完成以前,它无法预测一个新系统引入一个机构的影响它不能恰当地研究和解决使用系统时的人为因素如果突然地把一个计算机系统引入一个机构是很危险的,因为用户会抵制这种突然的变革在用户可能需要较长等待时间来获得一个可供使用的系统,也许会给用户的信任程度带来影响和打击最终产品往往反映用户的初始需求而不是最终需求一旦开始使用和学习了解系统之后,观点和意向可能会发生变化。而这种变化常常是无法预测的。适合某些领域:嵌入式、实时控制;对其它应用领域不适合。19(2)快速原型模型(Rapid Prototype Model)首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符

10、合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户要求的新系统。需求分析原型开发最终系统设计原型评价最终系统实现用户反馈20原型化方法 Why?在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件项目。用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。软件开发者对于所要解决的应用问题认识更是模糊不清随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都会

11、成为软件开发顺利推进的障碍。为了解决这些问题,逐渐形成了软件系统的快速原型的概念。21软件原型的分类在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。探索型:目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型:这种原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。进化型:这种原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。Throwaway Prototyping 抛弃型 Evolutionary Prototyping 渐进型(演化型)22建立快速原型好处增进软件开发

12、者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。软件原型化方法提供了一种有力的学习手段。使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。23特点使用快速开发工具循环低成本可在较短时间获取用户的需求问题临时可运行版本,非最终版本为了加快开发速度,开发人员往往有一些折中处理种类渐进型(演化型)抛弃型242.3 软件演化模型(Evolutionary Model)传统软件开发

13、模型的共同特征“线性思维”,将软件的开发活动处理成线性的或主要是线性的。但现在大部分复杂软件采用渐增式或迭代的开发方法,使所开发的软件在迭代中逐步达到完善,称之为演化模型。演化模型为渐进式开发模型,包括:增量模型螺旋模型25(1) 增量模型(Incremental Model)把瀑布模型的顺序特征与快速原型法的迭代特征相结合将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。规格说明设计实现和集成交付客户增量2增量3增量n增量1规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户规格说明组设计组实现和集成组26增量小而可用的软件

14、特点在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型迭代的思路27(2)螺旋模型(Spiral Model)在瀑布模型与快速原型的基础上,增加了风险分析。是一种迭代模型,每迭代一次,螺旋线就前进一周。螺旋模型的四个组成部分:需求定义、风险分析、工程实现、评审28螺旋模型(Spiral Model) 确定目标 评估方案制定计划 选择方案 风险分析 识别风险 设定约束 排除风险 评价开发方案 客户评估 提出修改意见 开发 实施工程 验证下一级产品风险 分析 原形1需求、生命周期计划风险 分析 原形2 软件 需求 需求 确认 开 发 计 划 风险 分析 原形3 软件产 品设计设计

15、确认 验证 集成与 测试计划风险 分析 可运行 原形 模拟 模型 基准 详细 设计 编码 单元测试集成测试 实现 验收测试 图螺旋模型29一个螺旋周期内的工作步骤确定目标,选择方案,选定完成目标的策略 需求定义分析该策略可能存在的风险 风险分析启动一个开发阶段 工程实现评价前一步的结果,计划下一轮的工作 评审螺旋模型的特点将瀑布模型和演化模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。迭代式开发方式是一种风险驱动的模型,适合于大型软件的开发。但是,使用该模型需要有相当丰富的风险评估经验和专门知识,这使该模型的应用受到一定限制。302.4 基于四代技术的模型4GL由R.R

16、oss于1981年提出。面向结果的非过程式语言。 4GL工具 SQL 生成器 适合小型应用系统需求分析设计策略用4GL实现测 试用四代技术开发软件的模型312.5 面向对象开发模型面向对象的基本概念对象(Object)类(Class)继承(Inheritance)消息(Message) 面向对象对象+类+继承+消息通信32OO方法与传统方法相结合的较好方案在整个开发过程中,都采用OO方法保留传统的分析方法,采用OO的设计与实现保留传统的实现(用过程性语言)方法,采用OO的分析与设计采用OO的分析和传统的设计与实现采用OO的实现和传统的分析与设计33(1)对象(Object)客观世界中的个体或事

17、物的抽象表示,是它的属性和相关操作的统一封装体。属性(静态属性 Attributes) 表示对象的性质,属性值规定了对象所有可能的状态。操作(动态行为 Methods) 指该对象可以展现的外部服务。对象:=IdentifierMethod SetData StructureMessage Interface对象的特点以数据为中心对象是主动的实现数据封装本质上有并行性模块独立性好34(2)类(Class)和实例(Instance)类相同属性和行为的对象的抽象。实例特定类所描述的一个具体对象,即对象是类的实例。35(3)继承(Inheritance)子类直接继承父类的数据和操作继承的传递性,单继承

18、、多重继承家具桌子椅子衣柜床椅子的实例36(4)消息(Message)对象间的交互手段,对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息完成固有的某些操作,从而服务于其他对象。形式:Message:dest,op,paraDestination ObjectOperationParameters37 什么叫做“面向对象”?Coad和Yourdon认为,在软件开发过程中采用对象、类、继承、消息这四种概念进行开发的软件系统可以认为是面向对象的。面向对象对象+类+继承+消息通信38(1)构件集成模型构件(Component)是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。构件代表系统中的一部分物理实施,包括软件代码(源代码、二进制代码或可执行代码)或其等价物(如脚本或命令文件)。构件集成模型利用预先封装好的软件构件来构造应用软件系统,融合了螺旋模型的很多特征,支持迭代方法。39构件集成模型40特点面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法 软件重用412.5 形式化方法模型(1)转换模型(Transformational Model)结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。采用严格的数学表示体系来表示软件规格说明,然后进行一系列自动

温馨提示

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

评论

0/150

提交评论