


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 2 章 软件开发模型复习与训练主要内容传统生存期模型瀑布模型演化模型原型模型增量模型螺旋模型四代技术混合模型 面向对象生存期模型 统一软件开发过程 基于软件构件的软件开发 软件工程学科发展到今天, 已经有了很多方法和规范, 学之不尽。 本章只在宏观上讨论 了软件工程的一些思想, 更具体的内容将在后面的章节论述。 无论是什么好方法, 贵在理解 与灵活运用,而不可当成灵丹妙药,不会象 “吃了脑黄金或脑白金,就能使一亿人先聪明起 来”。主要知识点软件工程的主要环节 软件工程的主要环节包括人员管理、 项目管理、 需求分析、 系统设计、 程序设计、 测试、 维护等。如何用一定的流程将各个环节连接起来
2、, 并可用规范的方式操作全过程, 好比工厂的生 产线?需要对软件过程的建模,一种软件工程模型支持! 软件开发过程都要经过三个典型阶段定义( definition )阶段:开发人员要弄清软件做什么;分为三个基础步骤:系统分 析、软件项目计划、需求分析开发( development )阶段:开发人员要确定软件怎么做;有三个步骤:软件设计、编码、测试维护(maintenance)阶段:对各种修改进行再定义和再开发;分为三种类型:改 正、适应、完善软件工程模式 软件工程模式是对软件过程的建模, 描述了软件开发全部过程、 活动和任务的一种范式。软件工程模式又称为范型、范例、风范、模式 (Pattern)
3、或模型。根据软件项目的性质灵活选 用开发模式。每个开发模式都有它的支持者和用户; 每个开发模式都特别适合于某种类型的问题或子问题; 每一个开发模式都用不同的方式考虑问题; 每一个开发模式都使用不同的方法来分解问题; 每一个开发模式都导致不同种类的块、过程、产生规则。软件工程模型 软件工程模型是对软件过程的建模, 描述了软件开发全部过程、 活动和任务的一种范式。软件工程模型能清晰、 直观地表达软件开发全过程, 明确规定要完成主要的活动与任务, 用 来作为软件项目工作的基础。模型应该是稳定和普遍适用的。概念相同、背景有别的名词有:软件工程模型,软件工程模式,软件工程范例,软件生存期模型、软件工程过
4、程,软 件过程。本质与目的:表征了软件开发活动的组织,给出了软件求解的计算逻辑。瀑布模型( waterfall model )是软件生存期的的经典范例, 给出了固定的顺序, 将生存期活动从上一个阶段向下一个 阶段逐级过渡,形如流水下泻,逐级下落,最终得到软件产品。适合需求容易析取、处理规 范的大型项目开发。 瀑布模型的特点:是软件生存期的经典模型, 阶段工作具有顺序性、 依赖性, 可提高大型软件开发的 质量和效率;各阶段有明确的工作任务、 成果文档与审查验证, 有利于软件开发方法和工具的研 究与使用;有利于大型软件开发过程中人员的分工、组织与管理;回馈修改不方便。 瀑布模型的不足缺乏回馈的灵活
5、性, 需求分析要求特别高。 下游阶段发现错误时, 事实上,很多软件开发的初始阶段指明软件系统的全部需求是困难的, 有时甚至是 不现实的;无法通过并发活动澄清本来不够确切的需求, 容易掩饰早期错误。 需求确定后, 用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户对 这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力、 时间方面的损失。如何改善?瀑布模型为基础,较大限度的反馈迭代!这是演化模型、原型模型、螺旋模型、混合模型产生的思想。演化模型( evolvement model )在项目开发的初始阶段, 软件需求常常不够清晰, 难于做到一次开发成功, 出
6、现返工再 开发在所难免。做两次:第一次试验开发,探索可行性,目的是弄清软件需求; 第二次则在此基础上获得较为满意的软件产品。原型模型( prototype model )又名:雏形发展法, 快速原型法。 借助开发工具快速构造系统的简 化原型版本,用于开发者与用户之间进行交流,得到用户反馈意见,获得用户的需求; 再根 据需求增加系统的功能, 以支持系统的最终设计和实现。 实际上, 原型模型是获取需求的一 种机制,适合需求难以获取的软件开发。特点:容易析取需求;阶段工作模糊;用户参与好。不足:阶段审查难;易管中窥豹; 错误易放大。增量模型( Incremental model )软件被作为一系列的
7、增量构件来设计、 实现、 集成和测试。 每个构件由多个相互作用的 模块构成, 并且能够完成特定的功能。 各个阶段并不交付可运行的完整产品, 而是交付满足 客户需求的可运行的一个子集产品。即: 第一个增量往往是核心产品; 每一个增量均发布一个可操作的子集产品; 早期的增量是最终产品的“可拆卸”版本。例如,使用增量模型开发字处理软件,可以考虑: 第一个增量发布基本的文件管理、编辑、生成功能; 第二个增量发布更完善的编辑和文档生成能力; 第三个增量实现拼写和文法检查功能; 第四个增量完成高级的页面布局功能。增量模型也存在以下缺陷:( 1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须
8、不破坏已 构造好的系统部分,这需要软件具备开放式的体系结构。(2)增量模型的灵活性可以适应需求变化的能力大大优于瀑布模型和快速原型模型, 但也容易退化为边做边改模型,从而是软件过程的控制失去整体性。螺旋模型( spiral model ) 综合了生存期与原型模型的优点, 增加了风险分析, 弥补他们的不足。 风险分析可对设 计方案的风险进行识别,并设法消除风险。通常用来指导大型软件项目的开发。风险分析可对设计方案的风险进行分析、 评价、 识别并设法消除。 通常用来指导大型软 件项目的开发。螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开
9、发的限制风险分析一一分析所选方案,考虑如何识别和消除风险原型开发实施软件开发用户平审一一评价开发工作,提出修正建议螺旋模型特点: 风险驱动的模型; 可选方案和约束条件有助于软件重用; 风险分析可控 制软件质量。四代技术( Fourth-Generation Techniques, 4GT )拥有一组工具。 每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方法需要四代语言( 4GL )的支持。 4GL 不同于三代语言,其主要特征是用户界面 极端友好, 即使没有受过训练的非专业程序员,也能用它编写程序;它是一种声明式、交互 式、非过程性编程语言
10、。 4GL 还具有高效的程序代码、智能缺省假设、完备的数据库和应 用程序生成器。目前市场上流行的 4GL (如 Foxpro 等)都不同程度地具有上述特征。 4GT 目前主要限 于事务信息系统的中、小型应用程序的开发。混合模型( hybrid model ) 组合多种模型,沿着最有效的路径推进,也称过程开发模型。特征:开发划分为分析、综合、运行、废弃等4 阶段;各阶段之间的重叠,提供了有效途径的选择 ; 可根据不同性质的需求,灵活采用相应的开发模型。 混合采用多种模型,可以扬长避短。面向对象生存期模型面向对象方法 (OO ):出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法与过程
11、尽可能接近人认识和实践的习惯, 使问题的描述空间与解法空间在结构上尽可 能一致。特征:把对象作为融合了数据及其操作的软件构件; 把所有对象都划分成包含了数据和服务的类; 按照父类与子类的关系,把若干个相关类组成一个层次结构的系统;象彼此间仅能通过发送消息互相联系。 在分析、设计、实现等阶段都对象模型,阶段工作能平滑过渡。OOSE 演化模型及其特点:OO 设计是类设计、应用程序设计的两阶段过程。类设计建立公共与专用功能需要 的类属层次结构;应用程序设计是利用已设计好的类属结构来构造的。设计和编码循环为快速更新代码生成提供了基础。迭代这是原型开发生存期的精 髓,这种迭代过程有利于减少软件开发的风险
12、。OOSE 增量迭代模型(喷泉模型) : 类似于原型开发中的增量模型; 不同的是下一个增量的分析阶段可以与当前增量的实现阶段重叠, 这种迭代过程有 利于减少软件开发的风险。喷泉模型特征: 软件生存期的各个阶段可以相互重叠和多次重复, 就像水喷上去又落下来, 既可以 落在下一层,也可以落在最底层。喷泉模型是典型的 OOSE 增量迭代模型,体现了 OO 软件开发的迭代性和无间隙 性。为避免喷泉模型的开发过程过分无序,应该把一个线性过程作为总目标。 RUP 统一的软件开发过程( Rational Unified Process )UML 是基于 OO 方法的可视化建模语言, 不是统一建模过程;UML
13、 之后, Rational Software 公司的 Jacobson、 Booch 和 Rumbaugh 三人推出的业 界第一的 OOSE 建模工具产品 RUP ;UML 、 RUP 组成了完整的 OOSE 的开发模式; 支持软件生存期的循环迭代,每次循环在时间上经历四个阶段:初始、 细化、 构造 和移交; 分析与设计工作依靠三个关键思想:用例驱动;体系结构为中心;迭代增量开发。时间上经历的四个阶段: 初始确定生存期的目标: 主要对提出的有关基本思想进行充分论证, 考虑项目 效益,确定项目规模。精化确定生存期的框架: 主要收集更为详细的需求, 进行高层分解和设计, 定 义系统的体系结构框架,
14、并为构造阶段制定计划。建造可初步运行的能力: 由多次迭代组成, 每次迭代都包含软件生存期的所有 活动。 每次迭代都要增加一些新功能, 解决一些新问题。 每次所得产品都应满足项 目需求的某一子集,或交用户,或内部交付。产品化产品的移交或发布:除交付产品外,还有测试和用户培训。用例驱动(use-case driver )是Jacobson在"OOSE” 一书中首先提出的,有四个理由:能够提供一个系统的、直觉捕捉功能需求的平台; 能够驱动整个开发过程; 使用用例可以帮助完成迭代开发; 在初始的迭代中, 通过选择并实现基本的用例集合, 便可以用一个稳定的体系结构 来实现一个系统。体系结构为中
15、心 (architecture-centric )是在统一的软件开发过程的生存期中第一次提出 来的,其目的:理解系统;组织开发;促进重用;发展系统。由此可见,结构的设计问题已远远超出了计算的算法和数据结构范围。迭代和增量( iterative and incremental )开发 最早是在原型和 OO 生存期模型中提出 来的,主要目的是用于控制软件的开发,以降低风险。特征: 为了早期致命的和重大的风险能得到控制; 为了得到一个健壮的体系结构,以指导软件开发; 为了提供一个框架,能较好地控制不可避免的需求和其他修改;为了构造一个系统, 多次增量接近, 比一次完成所带来的各种开销要少, 而且质量
16、 要高;为了提供一个开发过程,让技术人员更为有效; 为了让开发人员能够获得早期学习的机会。基于构件的软件开发( Component-Based Software Development, CBD )是在软件重用和 OO 技术的基础上发展起来的。说到底,也是从硬件引入的。 使用可重用的软件来构造基于硬件的软件系统。前述 7 种软件工程模式都是面向过程的。而 CBD 是第一个提出面向结构的。软件产业要发展, 并形成规模经济, 标准构件的生产和构件的重用是关键。 有人估 计,将来软件工程职业, 5%为构件工程师, 95%为组装工程师。关于构件: 应用系统结构的构件:一般包含三类:通用基本构件;领域共
17、性构件; 应用专用构 件。应用软件开发中的重复劳动: 主要存在于前两类构件上, 可以充分利用过去应用系 统开发中积累的知识和经验, 将开发的重点集中在应用专用构件的开发上。 通过软 件重用,不仅可以消除重复劳动,而且还可以避免重新开发可能引入的错误。关于软件重用:软件重用发展中的主要问题 技术方面:重用构件如何确定、获取、存储、检索和组装等。非技术方面:怎样确定标准化、知识产权、机构组织、前期投入和管理等。实现软件重用需要解决的问题 重用软件(构件)的开发。 应用系统如何构造和组装。关于领域工程:上述CBD软件过程模型是 Pressman给出的,它由领域工程模型和基于构件开发模 型组成。领域工
18、程创建应用模型,可以被从事基于构件开发的软件开发者选用。领域工程包含三个活动:分析,构造,传播。? 目的是确定、 构造、分类和传播一组软件构件。 它们对某些特定的应用领域中 现有的和未来的软件系统有很好的适应性。? 目标是建立相应的机制, 使开发者在开发现有的或新的软件系统时, 可以重用 这些软件构件制品。关于 Web 服务? Web 服务的本质: Web 服务是从 ASP( Application Service Provider 应用供应商)发展而来; ASP 模式是指服务商在网络上以出租形式提供商用软件服务。? ASP 的出现: ASP 始于 1998 年。如一些核心企业业务应用、数据存
19、储备份和恢复业务、按用户要求售制、代管存数据、并可将这些业务连接到用户网络等。? Web 的主要问题: Web 服务的主要问题是用户的自主权,尤其是数据的安全保障 问题。一、名词解释1、瀑布模型 瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段的模型。2、演化模型 演化模型主要针对事先不能完整定义需求的软件开发。 用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。3、喷泉模型 喷泉模型体现了软件创建所固有的跌代和无间隙的特征。 主要用于支持面向对象开发过程。4、增量模型 在设计了软件系统整体体系结构之后, 首先完整地开发系
20、统的一个初始子集; 继之, 根 据这一子集,建造一个更加精细的版本。如此不断地进行增量开发。5、螺旋模型 螺旋模型是在瀑布模型和演化模型的基础上, 加入了风险分析, 螺旋模型在笛卡儿坐标 的四个象限上分别表达四个方面的活动。 (1)制定计划;(2)风险分析;(3)实施工程;( 4) 客户评估。二、选择题1、在软件开发模型中,提出最早、应用最广泛的模型是()。AA.瀑布模型B. 喷泉模型C.增量模型D. 螺旋模型2、在软件开发模型中 ,下列哪一个模型适合于大型软件的开发。( )A. 喷泉模型B. 瀑布模型C增量模型D.螺旋模型答: D3、在软件开发模型中 ,下列哪一个模型主要用于支持面向对象开发
21、过程。( )A. 喷泉模型B. 瀑布模型C增量模型D.螺旋模型答: A4、在软件开发模型中 ,下列哪一个模型主要针对事先不能完整定义需求的软件的开发。()A. 喷泉模型B. 瀑布模型C增量模型D.演化模型答: D5、在软件开发模型中 ,下列哪一个模型这样开发组织的:在设计了软件系统整体体系结构之后,首先完整地开发系统的一个初始子集; 继之,根据这一子集, 建造一个更加精细的版本。 如此不断地进行增量开发。 ( )A. 喷泉模型B. 瀑布模型C增量模型D.演化模型答:C6、在软件开发模型中 ,下列哪一个模型将软件生存周期的各项活动规定为依固定顺序连接的 若干阶段的模型。 ( )A. 喷泉模型B.
22、 瀑布模型C增量模型D.演化模型答: B7、螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动。制定计划、风险分析、 实施工程和( )。A.客户培训B.客户测试C.客户评估D.客户理解答:C8、螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动。是下列哪一项和风险分 析、实施工程、客户评估。答: A 制定计划B 客户测试C.进行设计D进行分析答: A9、 螺旋模型是在瀑布模型和下列哪一项的基础上,加入了风险分析。 ( )A. 喷泉模型B. 瀑布模型C增量模型D.演化模型答: D10、 螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动。制定计划、 下列哪一项、 实施工程和客户评估(
23、 )。A 风险分析B 客户测试C.进行设计D.客户审查答: A11、软件开发模型是软件开发全部过程、活动和下列哪一项的结构框架。A.任务B.组成C. 原则D. 演化答: A12、 软件开发模型对于不同的应用系统,允许采用不同的开发手段和方法,使用各种不同的程序设计语言 ,还应允许采用不同的下列哪一项或各种不同的软件工程环境。A.软件工具B.数据结构C.原则D.子程序答: A三、填空题1、 喷泉模型体现了软件创建所固有的跌代和 的特征。 主要用于支持面向对象开发 过程。答:无间隙2、 喷泉模型体现了软件创建所固有的跌代和无间隙的特征。主要用于支持 开发过程。答:面向对象3、 喷泉模型体现了软件创
24、建所固有的 和无间隙的特征。 主要用于支持面向对象开 发过程。答: 跌代4、 螺旋模型是在瀑布模型和演化模型的基础上,加入了 。答:风险分析5、 螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动, 险分析;( 3)实施工程; (4)答:客户评估6、 螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动, 险分析;( 3)实施工程; ( 4)客户评估。答:制定计划7、 螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动, ;( 3)实施工程; ( 4)客户评估。答:风险分析8、 螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动, 险分析;(3);(4)客户评估。答:实施工程9、
25、 增量模型是在设计了软件系统整体体系结构之后,首先完整地开发系统的一个 ;继之, 根据这一子集, 建造一个更加精细的版本。 如此不断地进行增量开发。1)制定计划;1)1)制定计划;1)制定计划;2)风2)风2)风答:初始子集10、螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为制定计划、实施工程和客户评估四个步骤。答:风险分析11、螺旋模型是在瀑布模型和演化模型的基础上, 加入了风险分析, 螺旋模型适合于 软件的开发。答:大型12、软件开发模型是软件开发全部过程、 活动和任务的结构框架。 最早出现的软件开发模型 是 1970 年 W.Royce 提出的 。答:瀑布模型13、螺旋模型是在
26、 和演化模型的基础上,加入了风险分析。答: 瀑布模型14、螺旋模型是在瀑布模型和 的基础上,加入了风险分析。答: 演化模型15、 主要针对事先不能完整定义需求的软件开发。 用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。答:演化模型16、将软件生存周期的各项活动规定为依固定顺序连接的若干阶段的模型。答:瀑布模型17、体现了软件创建所固有的跌代和无间隙的特征。 主要用于支持面向对象开发过程。答:喷泉模型18、是在瀑布模型和演化模型的基础上,加入了风险分析。答:螺旋模型19、是在设计了软件系统整体体系结构之后, 首先完整地开发系统的一个初始子集;继之,根据这一子集,建造一个更加精细的版本。答:增量模型20、在演化模型中, 软件开发人员根据用户反馈, 实施开发的跌代过程。每一跌代过程均由 需求、设计、编码、 、集成等阶段组成,为系统增加一个可定义的、可管理的子集。答:测试21、瀑布模型将软件生存周期的各项活动规定为依 顺序连接的若干阶段工作 ,形如瀑布流水 ,最终得到软件产品。答:固定22、瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,各开发阶段的活动为:提出 、提出软件需求、需求分析、设计、编码、测试和运行。答:系统需求23、瀑布模型将软件生存周期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国防静电环氧自流平地坪数据监测研究报告
- 2025至2030年中国自粘密封胶条数据监测研究报告
- 2025至2030年中国绝缘胶条数据监测研究报告
- 2025至2030年中国硅胶牛油刀数据监测研究报告
- 2025至2030年中国电动船玩具数据监测研究报告
- 2025至2030年中国烟雾自动灭火装置数据监测研究报告
- 2025至2030年中国海绵双面胶纸数据监测研究报告
- 2025至2030年中国汽摩用清洗剂数据监测研究报告
- 劳务派遣合同范本
- 服装设计中的科技创新与应用考核试卷
- 《安徒生童话》阅读指导课件
- 室外道路及管网工程拟投入的主要施工机械设备及测量仪器表
- 腹部外伤护理查房记录
- 桥面铺装三维激光摊铺施工工法
- 优质课一等奖小学综合实践《我也能发明》课件
- 部编人教版三年级下册语文:荷花课件
- 螺纹牙强度校核计算
- 关于在生产过程中物料流转的交接和管理规定
- 浮针疗法的学习课件
- XX学院社团指导老师学期考核表
- 兽医外科手术学与兽医外科学章节测试及答案
评论
0/150
提交评论