《软件工程模型方法.ppt》由会员分享,可在线阅读,更多相关《软件工程模型方法.ppt(49页珍藏版)》请在优知文库上搜索。
1、-软件过程模型软件过程模型软件工程软件工程软件过程与软件过程模型软件过程与软件过程模型软件工程方法软件工程方法面向功能的方法面向功能的方法面向对象方法面向对象方法内容提要内容提要软件过程软件过程软件过程软件过程是指开发软件产品的一组活动及其是指开发软件产品的一组活动及其结果。结果。即是人们用于开发和维护软件及即是人们用于开发和维护软件及其相关过程的一系列活动,包括其相关过程的一系列活动,包括软件工程活动和软件管理活动。软件工程活动和软件管理活动。软件过程模型软件过程模型软件过程模型是从一特定角度提出的软件过程模型是从一特定角度提出的软件过程的软件过程的简化描述简化描述。“模型的本质在于简化模型
2、的本质在于简化”软件过程模型就是对描述的实际过程的抽象,它软件过程模型就是对描述的实际过程的抽象,它包括构成软件过程的各种活动、软件产品及软件包括构成软件过程的各种活动、软件产品及软件工程人员参与的不同角色。工程人员参与的不同角色。软件过程模型的分类软件过程模型的分类以软件需求完全确定为基础的瀑布模型;以软件需求完全确定为基础的瀑布模型;在开发初期仅给出基本需求的渐进式模型,如原型在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;模型、螺旋模型、喷泉模型等;以形式化开发方法为基础的变换模型、基于四代技以形式化开发方法为基础的变换模型、基于四代技术的模型(术的模型(4G4G
3、模型);模型);基于知识的智能模型等等。基于知识的智能模型等等。在实际开发时,应根据项目的特点和现有的条在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使件选取合适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。用以便充分利用各模型的优点。瀑布模型瀑布模型瀑布模型(瀑布模型(waterfall modelwaterfall model)是由)是由W. RoyceW. Royce于于19701970年提出来的。又称为软件生存周期模型。年提出来的。又称为软件生存周期模型。 瀑布模型严格按照软件生存周期各个阶段来进行开瀑布模型严格按照软件生存周期各个阶
4、段来进行开发,上一阶段的输出即是下一阶段的输入,并强调发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种才能开始下一阶段的工作。因此,它是一种以文档以文档作为驱动作为驱动的模型。的模型。瀑布模型瀑布模型验收测试验收测试组装测试组装测试实现实现详细设计详细设计概要设计概要设计需求分析需求分析退役退役可行性
5、研究可行性研究使用与维护使用与维护特点:特点:1) 阶段间具有顺序性阶段间具有顺序性和依赖性和依赖性2) 推迟实现的观点推迟实现的观点3) 质量保证的观点质量保证的观点瀑布模型的优点瀑布模型的优点 可强迫开发人员采用的规范方法;可强迫开发人员采用的规范方法; 严格规定了每一阶段必须提交的文档;严格规定了每一阶段必须提交的文档; 要求每一阶段交付之产品都必须经过质量保证小组的仔细要求每一阶段交付之产品都必须经过质量保证小组的仔细审查;审查; 清晰区分了逻辑设计与物理设计,尽可能推迟程序的物理清晰区分了逻辑设计与物理设计,尽可能推迟程序的物理实现。实现。“一种文档驱动的模型一种文档驱动的模型”提供
6、了软件开发的基本框架,有利于大型软件开发过程中提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要的地位。使用,因此,在软件工程中占有重要的地位。瀑布模型的不足瀑布模型的不足 它将项目生硬的分解为确切的阶段,委托事项一它将项目生硬的分解为确切的阶段,委托事项一定要在过程的早期阶段清晰给出,这意味着对用定要在过程的早期阶段清晰给出,这意味着对用户需求变更响应困难。户需求变更响应困难。 因为生成和确认文档成本很高且很费时,因此经因为生成和确认文档成本很高且很费时,因此经
7、过少量的反复后,要冻结部分开发过程,继续进过少量的反复后,要冻结部分开发过程,继续进行后面的开发阶段。这种对需求的冻结使需求相行后面的开发阶段。这种对需求的冻结使需求相当不成熟,系统不能满足用户需求。当不成熟,系统不能满足用户需求。 作为整体开发的瀑布模型,由于不支持产品的演作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现错误,化,缺乏灵活性,对开发过程中很难发现错误,只有在最终产品运行时才能暴露出来,从而使软只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。件产品难以维护。瀑布模型的适应场合瀑布模型的适应场合瀑布模型一般适用于功能、性能明确、瀑布模型一般
8、适用于功能、性能明确、完整、无重大变化的软件系统的开发。例完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。等系统软件的开发。应用有一定的局限性。原型模型原型模型原型模型(原型模型(prototyping modelprototyping model)的基本框架是)的基本框架是软软件开发人员根据用户提出的软件基本需求快速开发件开发人员根据用户提出的软件基本需求快速开发一个原型一个原型,以便向用户展示软件系统应有的部分或,以便向用户展示软件系统应有的部分或全部功能和性能,在征求用户对原型的评价意见后,
9、全部功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。软件需求软件系统的需求并达成一致的理解为止。软件需求确定后,便可进行设计,编码、测试等以后的各个确定后,便可进行设计,编码、测试等以后的各个开发步骤。开发步骤。快速原型方法快速原型方法建造建造/ /修修改原型改原型用户测试用户测试运行原型运行原型听取用听取用户意见户意见初步需初步需求求分析分析快速设计快速设计建造建造原型原型用户评估原用户评
10、估原型型(新需求新需求)对原型对原型加工加工开发开发产品产品开始开始结束结束u 用户用户/ /客户给出软件客户给出软件产品的一般需求产品的一般需求u 开发小组和用户共同开发小组和用户共同定义软件总体目标,定义软件总体目标,标识已知需求标识已知需求u 对界面、功能、人机对界面、功能、人机交互方式等,进行设交互方式等,进行设计并建造原型计并建造原型u 强调强调“快速快速”,釆用,釆用基于构件的软件开发基于构件的软件开发方法方法, ,尽量缩短软件尽量缩短软件开发周期开发周期, ,不宜釆用不宜釆用过多的新技术过多的新技术u 用户用户/ /客户对原型进客户对原型进行评估行评估u 修改需求、更新设计、修改
11、需求、更新设计、完善原型直至确定需完善原型直至确定需求。求。原型模型示意图原型模型示意图快速原型的开发途径快速原型的开发途径1)1) 仅模拟软件系统的人机界面和人机交互方式。仅模拟软件系统的人机界面和人机交互方式。2)2) 开发一个工作模型,实现软件系统中重要的或容易开发一个工作模型,实现软件系统中重要的或容易产生误解的功能。产生误解的功能。3)3) 利用一个或几个类似的正在运行的软件向用户展示利用一个或几个类似的正在运行的软件向用户展示软件需求中的部分或全部功能。软件需求中的部分或全部功能。建造原型应尽量采用相应的软件工具和环境,建造原型应尽量采用相应的软件工具和环境,并尽量采用软件重用技术
12、,在运行效率方面可做并尽量采用软件重用技术,在运行效率方面可做出让步,以便尽快提供。同时,原型应充分展示出让步,以便尽快提供。同时,原型应充分展示软件系统的可见部分,如人机界面、数据的输入软件系统的可见部分,如人机界面、数据的输入方式和输出格式等。方式和输出格式等。采用原型模型的软件生命周期采用原型模型的软件生命周期生成生成原型原型测试测试分析定义分析定义系统需求系统需求系统系统设计设计程序程序设计设计含原型化的含原型化的软件生存期软件生存期原型化原型化运运 行行和维护和维护编码编码原型模型的优点原型模型的优点1)1) 原型模型比瀑布模型更符合人们认识事物的过程原型模型比瀑布模型更符合人们认识
13、事物的过程和规律,是一种较实用的开发框架。和规律,是一种较实用的开发框架。2)2) 它产生的正式需求文挡,是软件开发的基础。它产生的正式需求文挡,是软件开发的基础。3)3) 如果开发的原型是可运行的,它的若干高质量的如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。程序片段和开发工具可用于工作程序的开发。4)4) 原型的开发和评审是系统分析员和用户原型的开发和评审是系统分析员和用户/ /客户共客户共同参予的迭代过程,每个迭代循环都是线性过程。同参予的迭代过程,每个迭代循环都是线性过程。原型模型的缺点原型模型的缺点1) 对于大型软件项目,原型模型需要足够的人力对于
14、大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。资源以建立足够的原型组。2) 原型模型要求原型模型要求开发者开发者和和客户客户在一段时间内在一段时间内共同共同完成原型系统的开发完成原型系统的开发,如果任何一方没有实现,如果任何一方没有实现承诺,会导致原型开发的失败。承诺,会导致原型开发的失败。3) 如果系统难以模块化,建造原型所需构件就有如果系统难以模块化,建造原型所需构件就有问题;如果高性能是一个指标,原型模型也可问题;如果高性能是一个指标,原型模型也可能不奏效。能不奏效。4) 原型模型不适合采用很多新技术的项目。原型模型不适合采用很多新技术的项目。原型模型的适应场合原型模型的适
15、应场合它适合于那些不能预先确切定义需求的它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。不能很好交流或通信有困难的情况。螺旋模型螺旋模型螺旋模型(螺旋模型(spiral model)是)是B. Boehm于于1988年提出的。它综合了瀑布模型和原型模年提出的。它综合了瀑布模型和原型模型的优点,即将两者结合,并加入了风险分型的优点,即将两者结合,并加入了风险分析机制。螺旋模型的基本框架如图:析机制。螺旋模型的基本框架如图:螺旋模型螺
16、旋模型第一圈第一圈 产生产生产品规格说明产品规格说明第二圈第二圈 产生一个产生一个用于开发的原型用于开发的原型第三圈第三圈 产生产生软件产品的软件产品的初始版本初始版本第四圈第四圈 产生产生软件产品比较软件产品比较完善的新版本完善的新版本原型原型1 1原型原型2 2原型原型3 3风险风险分析分析风险分析风险分析风险分析风险分析风险分析风险分析操作原型操作原型评审评审需求计划需求计划和生和生存周存周期计划期计划操作的概念操作的概念软件需求软件需求需求有效需求有效性验证性验证预估可选方案,预估可选方案,明明确并解决风险确并解决风险验收测试计划验收测试计划组装测试计划组装测试计划规划下阶段工作规划下阶段工作设计验证设计验证与确认与确认产品产品设计设计详细设计详细设计编码编码单元单元测试测试组装组装测试测试验收验收测试测试运行运行维护维护开发验证下一级产品开发验证下一级产品对目标、对目标、可选方可选方案和约束的确定案和约束的确定提交线提交线制定计划制定计划风险分析风险分析实施工程实施工程客户评估客户评估建模建模模拟模拟评价评价需求评价需求评价需求精化计划需求精化计划开发计划开发计划实现计划实现