软件工程模型方法

上传人:文*** 文档编号:253151467 上传时间:2024-11-29 格式:PPT 页数:49 大小:195KB
返回 下载 相关 举报
软件工程模型方法_第1页
第1页 / 共49页
软件工程模型方法_第2页
第2页 / 共49页
软件工程模型方法_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,-软件过程模型,软件工程,1,软件过程与软件过程模型,软件工程方法,面向功能的方法,面向对象方法,内容提要,2,软件过程,软件过程,是指开发软件产品的一组活动及其结果。,即是人们用于开发和维护软件及其相关过程的一系列活动,包括软件工程活动和软件管理活动。,3,软件过程模型,软件过程模型是从一特定角度提出的,软件过程的简化描述,。,“模型的本质在于简化”,软件过程模型就是对描述的实际过程的抽象,它包括构成软件过程的各种活动、软件产品及软件工程人员参与的不同角色。,4,软件过程模型的分类,以软件需求完全确定为基础的瀑布模型;,在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;,以形式化开发方法为基础的变换模型、基于四代技术的模型(,4G,模型);,基于知识的智能模型等等。,在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。,5,瀑布模型,瀑布模型(waterfall model)是由W.Royce于1970年提出来的。又称为软件生存周期模型。,瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种,以文档作为驱动,的模型。,6,瀑布模型,验收测试,组装测试,实现,详细设计,概要设计,需求分析,退役,可行性研究,使用与维护,特点:,阶段间具有顺序性和依赖性,推迟实现的观点,质量保证的观点,7,瀑布模型的优点,可强迫开发人员采用的规范方法;,严格规定了每一阶段必须提交的文档;,要求每一阶段交付之产品都必须经过质量保证小组的仔细审查;,清晰区分了逻辑设计与物理设计,尽可能推迟程序的物理实现。,“一种文档驱动的模型”,提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要的地位。,8,瀑布模型的不足,它将项目生硬的分解为确切的阶段,委托事项一定要在过程的早期阶段清晰给出,这意味着对用户需求变更响应困难。,因为生成和确认文档成本很高且很费时,因此经过少量的反复后,要冻结部分开发过程,继续进行后面的开发阶段。这种对需求的冻结使需求相当不成熟,系统不能满足用户需求。,作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。,9,瀑布模型的适应场合,瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。,10,原型模型,原型模型(prototyping model)的基本框架是,软件开发人员根据用户提出的软件基本需求快速开发一个原型,,以便向用户展示软件系统应有的部分或全部功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。软件需求确定后,便可进行设计,编码、测试等以后的各个开发步骤。,11,快速原型方法,建造/修改原型,用户测试,运行原型,听取用户意见,12,初步需求,分析,快速设计,建造原型,用户评估原,型(新需求),对原型加工,开发产品,开始,结束,用户,/,客户给出软件产品的一般需求,开发小组和用户共同定义软件总体目标,标识已知需求,对界面、功能、人机交互方式等,进行设计并建造原型,强调“快速”,釆用基于构件的软件开发方法,尽量缩短软件开发周期,不宜釆用过多的新技术,用户,/,客户对原型进行评估,修改需求、更新设计、完善原型直至确定需求。,原型模型示意图,13,快速原型的开发途径,仅模拟软件系统的人机界面和人机交互方式。,开发一个工作模型,实现软件系统中重要的或容易产生误解的功能。,利用一个或几个类似的正在运行的软件向用户展示软件需求中的部分或全部功能。,建造原型应尽量采用相应的软件工具和环境,并尽量采用软件重用技术,在运行效率方面可做出让步,以便尽快提供。同时,原型应充分展示软件系统的可见部分,如人机界面、数据的输入方式和输出格式等。,14,采用原型模型的软件生命周期,生成,原型,测试,分析定义,系统需求,系统,设计,程序,设计,含原型化的,软件生存期,原型化,运 行,和维护,编码,15,原型模型的优点,原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。,它产生的正式需求文挡,是软件开发的基础。,如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。,原型的开发和评审是系统分析员和用户,/,客户共同参予的迭代过程,每个迭代循环都是线性过程。,16,原型模型的缺点,对于大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。,原型模型要求,开发者,和,客户,在一段时间内,共同完成原型系统的开发,,如果任何一方没有实现承诺,会导致原型开发的失败。,如果系统难以模块化,建造原型所需构件就有问题;如果高性能是一个指标,原型模型也可能不奏效。,原型模型不适合采用很多新技术的项目。,17,原型模型的适应场合,它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。,18,螺旋模型,螺旋模型(spiral model)是B.Boehm于1988年提出的。它综合了瀑布模型和原型模型的优点,即将两者结合,并加入了风险分析机制。螺旋模型的基本框架如图:,19,螺旋模型,第一圈 产生产品规格说明,第二圈 产生一个用于开发的原型,第三圈 产生软件产品的初始版本,第四圈 产生软件产品比较完善的新版本,原型1,原型2,原型3,风险,分析,风险分析,风险分析,风险分析,操作原型,评审,需求计划和生,存周期计划,操作的概念,软件需求,需求有效,性验证,预估可选方案,,明,确并解决风险,验收测试计划,组装测试计划,规划下阶段工作,设计验证,与确认,产品,设计,详细设计,编码,单元,测试,组装,测试,验收,测试,运行,维护,开发验证下一级产品,对目标、,可选方,案和约束的确定,提交线,制定计划,风险分析,实施工程,客户评估,建模,模拟,评价,需求评价,需求精化计划,开发计划,实现计划,顺时针为进展方向,20,螺旋模型,螺旋模型的每一个周期都包括计划(需求定义)、风险分析、工程实现和评审4个阶段。,1)计划(需求定义),首先开始利用需求分析技术理解应用领域,获取初步用户需求,制定项目开发计划(即整个软件生命周期计划)和需求分析计划。然后根据用户和开发人员对上一周期工作成果评价和评审,修改、完善需求,明确下一周期软件开发的目标、约束条件,并据此制定新一轮的软件开发计划。,21,螺旋模型,2)风险分析,根据本轮制定的开发计划,进行风险分析,评估可选方案,并构造原型进一步分析风险,给出消除或减少风险的途径。此时根据风险分析的结果决策项目是否继续。所以,螺旋模型是一个,风险驱动,的模型。,3)工程实现,利用构造的原型进行需求建模或进行系统模拟,直至实现软件系统。,22,螺旋模型,4)用户评价与阶段评审,将原型提交用户使用并征求改进意见。开发人员应在用户的密切配合下进一步完善用户需求,直到用户认为原型可满足需求,或对软件产品设计进行评价或确认等。,螺旋模型从第一个周期的计划开始,一个周期、一个周期地不断迭代,直到整个软件系统开发完成。,23,螺旋模型的优点,支持用户需求的,动态变化,。支持软件系统的,可维护性,,每次维护过程只是沿螺旋模型继续多走一两个周期。,这符合人们认识现实世界和软件开发的客观规律,。,原型可看作形式的,可执行的需求规格说明,,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。,开发者和用户共同参与软件开发,可尽早发现软件中的错误,。,螺旋模型特别强调原型的可扩充性和可修改性,,原型的进化贯穿整个软件生存周期,,这将有助于目标软件的适应能力。,既保持瀑布模型的系统性、阶段性,又可利用原型评估降低开发风险,。,螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。,24,螺旋模型的缺点,如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;,使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。,25,螺旋模型适应场合,支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。,26,变换模型,变换模型是基于形式化规格说明语言以及程序变换技术的软件系统开发模型,它主要用于软件的形式化开发方法。,在软件需求分析确定以后,便用形式化的规格说明语言将其描述为“形式化软件规格说明”,然后对其进行一系列自动或半自动的变换,最终得到软件系统的目标程序。,27,变换模型,形式化软件规,格说明(M,0,),模型检查,需求分析,形式化软件设,计说明(M,1,),(M,2,),目标程序(M),变换,28,变换模型,变换模型也应引入迭代机制。即将第一次用变换模型得来的目标程序作为“原型”,让用户评价,以便使用户需求精确化、完全化,再把精化后的需求作为输入,第二次用变换模型进行变换,等等。,以形式化开发方法为基础的变换模型需要逻辑、代数等严格的数学理论和诸如形式化的需求规格说明语言、程序变换工具、定理证明工具等一整套开发环境的支持。,形式化开发方法提出的比较早,但到目前为止,其在理论和实践等方面离工程实际应用还有较长一段距离。,29,喷泉模型,喷泉模型是近几年提出来的软件生存周期模型。它是以面向对象的软件开发方法为基础,以用户需求为动力,以,对象来驱动,的模型。,维 护,测 试,实 现,设 计,分 析,30,喷泉模型的特点,软件系统可维护性较好;,各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡;,整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代;,模型具有增量开发特性,即能做到分析一点、设计一点、实现一点,测试一点,使相关功能随之加入到演化的系统中。,模型是对象驱动的,对象是各阶段活动的主体,也是项目管理的基本内容。,该模型很自然地支持软部件的重用。,31,软件工程方法,软件工程方法是完成软件工程项目的技术手段。它支持软件开发与维护的全部过程。,软件工程方法划分为:,面向功能的方法,结构化分析方法,Jackson,方法,Warnier,方法,面向对象方法,UML,软件工程方法是软件开发的结构化方法,软件工程过程是方法的使用活动,32,结构化分析方法,一种面向数据流的开发方法。图形表示方法为数据流图,(DFD),和模块层次结构图,(SC),。,现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。,结构化方法总的指导思想自顶向下、逐步求精,分解成若干个具有合适大小和功能的模块并对各个模块进行定义和描述,其实质就是功能分解和抽象。,33,结构化方法的发展,70,年代初 结构化程序设计方法,SP,法,(Structured Program),70,年代中 结构化设计方法,SD,法,(Structured Design),70,年代末 结构化分析方法,SA,法,(Structured Analysis),SA,,,SD,,,SP,法相互衔接,形成了一整套开发方法。若将,SA,,,SD,法结合起来,又称为结构化分析与设计技术,即,SDAT,技术。,34,Jackson方法,Jackson,方法是最典型的面向数据结构的设计方法
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人力资源


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!