




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
45第2章 软件工程的基本理论 第二章 软件工程的基本理论 本章内容主要包含:软件工程过程,软件生存周期,软件周期模型,软件开发的增量模型,软件开发方法等。 2.1基础知识 2.1.1软件工程过程 软件工程规定了获取,供应,开发,操作和维护软件时要实施的过程,活动和任务 软件过程包含如下七个过程: (1)获取过程。定义需要按合同或取一个系统,软件产品或服务的活动。 (2)供应过程。定义供方向需方提供合同中的系统,软件产品或服务所需的活动。 (3)开发过程。定义开发者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。 (4)操作过程。定义操作者和机构为了修改和管理软件,使它次在良好的运行状态所需要的活动。 (5)维护过程。丁以维护者和机构为了修改的管理软件,使它处在良好的运行状态所需要的活动。 (6)管理过程。定义软件工程过程中各项管理活动,包括:项目开始和范围定义,项目管理计划,实施和控制 ,评审和评价和项目完成。 (7) 支持过程。支持过程对项目的生存周期过程给与支持,它有助于项目的成功并能提供项目的质量。 2.12 软件生存周期 软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个周期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,是规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。 软件生存周期的各个阶段有不同的划分,在划分软件生存周期阶段时,应遵循的一条基本原则是个阶段的任务应尽可能县对独立,统一阶段各项任务的性质尽可能相同。通常,软件生岑周期包含可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。 2.13 软件生存周期模型 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型 。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和闲置,便于各种活动的协调,便于各种人员的有效通讯,有利于活动重用,有利于活动管理。目前由若种软件生存周期模型。例如瀑布模型,增量模型,螺旋模型,喷泉模型变换模型和基于知识的模型等 。 2.14 软件开发的增量模型 1.瀑布模型的局限性 尽管传统的瀑布模型曾经给软件产业带来巨大的进步,部分的缓解了软件危机,但这种模型本质上是一种线性的顺序模型,因此存在着比较明显的缺陷,各阶段之间存在着严重的顺序性和依赖性,特别强调预先定义需求的重要性,但是世界项目很少是遵循这种线性顺序顺序性和依赖性的。虽然瀑布模型也允许迭代,但这种改变往往对项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整,准确,一致,有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。 传统的瀑布模型很难适应可变,模糊不清的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种理想的,线性的开发过程,缺乏灵活性,不适应世界的开发过程。 为了克服瀑布模型的不足,提出了软件开发的增量模型,根据增量的方式和形式的不同,增量模型分为渐增模型和原型模型。 2.增量模型的提出 增量模型是在瀑布模型的基础上加以修改而形成的。 增量模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件:增量提交是指在项目开发周期内,以一定的时间间隔更亮方式向用户提交工作软件及相关文档。两者可以同时使用也可以单独使用。 根据增量的方式和形式的不同,增量模型分为渐增模型和原型模型。 3.渐增模型 这种模型是瀑布模型的变种。有两种渐增模型: 1)增量构造模型 他在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。也就是说在前面的开发阶段按瀑布模型模型进行整体开发,后面的开发阶段按增量方式开发。 2)演化提交模型 他在瀑布模型的基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。 在该模型种。项目开发的各个阶段都是增量方式。先对部分功能进行需求分析。在顺序进行设计,编码,测试,把该功能的软件交付给用户,然后再对另一部分功能进行开发,提交用户,直到所有功能全部增量开发完毕。它不仅是增量开发也是增量提交,用户将最早受到部分工作软件交付给用户,然后再对另一部分功能进行开发,提交用户,直到所有功能全部增量开发完毕。他不仅是增量开发也是增量提交,用户将最早受到部分工作软件,及早发现问题,更彻底,西裤该扩充更容易。 4. 原型模型 中开发模型又是快速原型模型,它是增量模型的另一种形式。他是在开发真实系统之前,构造一个模型,在该模型的基础上,逐渐完成整个系统的开发工作。根据原型的德不同作用,有三类原型模型: 1)探索性原型 这种类型的原型模型是把原型用于开发的需求分析阶段,目标是要弄清楚用户的需求,确定所期望的特征,并探索各种方案的可行性.他主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求.2)实验型原型这种原型主要用与设计阶段,考核方案是否合适,能否实现.对于一个大型系统,若对设计方案没有把握时,可通过这种原型来实现方案的正确性.3)演化性原型这种原型主要用于及时向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统.它将原型的思想扩展到软件开发的全过程.5.原型开发过程1)原型构造要求原型不同于最终系统,最终系统对每个软件要求都要求详细实现,而原型仅仅是为了试验和演示用的,部分功能需求可以忽略或者模拟实现.因此,在构造原型时,必须注意功能性能的取舍,忽略一切暂时不关心的部分以加速原型的实现,同时又要充分体现原型的作用,满足评价原型的要求.2)原型的特征分类根据原型的目的和方式不同,构造原型的内容的取舍不同,体现出原型特征有如下类别:(1) 系统的界面形式,用原型来解决系统的人机交互界面的结构.(2) 系统的总体结构,用原型来确定系统的体系结构;(3) 系统的主要处理功能和性能,用原型来实现系统的主要功能和性能.(4) 数据库模式,用原型来确定系统的数据库结构.3)原型开发步骤(1)快速分析.在分析人员与用户紧密配合下,迅速确定系统的基本需求,根据原型所要体现的特征描述基本需求以满足开发原型的需要.(2)构造原型.在快速分析的基础上,根据基本需求说明尽快实现一个可运行的系统.(3)运行原型.这是发现问题,消除误解,开发者与用户充分协调的一个步骤.各类人员在共同运用原型的过程中进一步加深对系统的了解及相互之间的理解.(4)评价原型.在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交互中的误解与分析中的错误,增添新的要求,并满足因环境变化或用户新想法引起的系统要求变动,提出全面的修改意见.(5)修改.根据评价原型的活动结果进行修改.修改过程代替了初始的快速分析,从而形成原型开发的循环过程.用户与开发者在这种循环过程中不断接近系统的最终要求.6构造原型的技术(1) 可执行的规格说明.通过可执行的规格说明语言来描述预期的行为”做什么”,人们可以从直接观察中用规格说明语言来规定任何系统行为.(2) 基于脚本的设计.一个脚本将模拟在系统运行期间用户经历的事件,他提供了输入-处理-输出的屏幕,以及有关对话的一个模型,开发者能构给用户显示一个系统的逼真视图.(3) 采用高级语言或专门语言.(4) 能重用成分.能重用成分是一些具体应用中共同出现的一些程序设计模式,包括输入,输出规格说明,控制结构,一般问题解法描述等.2.1.5软件开发方法 软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程.方法一般表述成一系列的步骤,每一步骤都与相应的技术符号相关. 软件开发的目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件.为了达到次目的,需要成功的开发方法.软件开发方法是克服软件危机的重要方面之一.从软件工程诞生以来,已经提出了许多种软件开发方法和技术,结构化方法,Jackson方法,VDM维也纳开方法,面向对象的开发方法等对软件工程及软件产业的发展起了不可估量的作用.2.2单元练习2.2.1填空题1.软件工程过程包含了_,_,_,_,_,_,_七个过程.2.描述软件开发过程中各种活动如何执行的模型称为_模型.3.从软件工程诞生以来,已经提出了多种软件开发方法,如_,_,_,_,它们对软件工程及软件产业的发展起到了不可估量的作用.4.结构化方法由_,_,_,构成.它是一种面向_的开发方法.5. _模型是一种非整体开发的模型.软件在该模型中是逐渐开发出来的,开发出来一部分,向用户展示一部分,可以让用户及早看到部分软件,及早发现问题.或者先开发一个原型软件,完成部分主要功能展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品.6.喷泉模型是一种以_为动力,以_为驱动的模型,适合于_的开发方法.它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性.喷泉模型使开发过程具有_和_.7.变换模型是一种适合于_方法的模型.从_开始,经过一系列_,最终得到系统的目标程序.8.结构化方法总的指导思想是_.它的基本原则是功能的_与_.它是软件工程中最早出现的开发方法,特别适合于_的问题.9.维也纳开发方法(VDM)是一种形式化的开发方法,软件的需求用严格的_描述,然后把描述模型逐步变换成目标系统.10.螺旋模型将_模型和_模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足.11.螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为四个工作步骤.第一步_,确定目标,选定方案,明确开发限制条件.第二步_,分析所选方案,识别风险,通过原型消除风险.第三步_,实施软件开发.第四步_,评价开发工作,提出修改意见,建立下一个周期的计划.12.面向对象开发方法包括_,_,_三部分13.Jackson方法是一种面向_的开发方法.14.面向对象的开发方法有_方法, _方法, _方法.15. _一般是指为了支持软件开发人员和维护活动而使用的软件.例如项目估算工具,需求分析工具,设计工具,编码工具,测试工具和维护工具等16.目前有若干种软件生存周期模型,例如_模型, _模型, _模型, _模型, _模型, 和_模型.17.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型.它包括_,_,_,_,_,_,_,_,它规定了由前至后,相互衔接的固定次序,如瀑布流水逐级下落.18.CASE技术是_,和_,的结合,它不同于以前的软件技术,因为它强调了解决整个软件开发过程度效率问题,而不是解决个别阶段的问题.由于跨越了软件生存周期各个阶段,着眼于软件分析和设计以及实现和维护的自动化,从软件生存周期的两端解决了生产率问题.19.JSP方法首先描述问题的输入输出数据结构,分析其对应性,然后推出相应的程序结构,从而给出问题的_,20.简单实用,应用广泛,技术成熟的方法是_,21.增量构造模型是指,在前面的开发阶段按_,进行_,后面的开发阶段按_,开发22.增量模型是在项目的开发过程中以一系列的_,开发系统.增量方式包括_,和_,23.演化提交模型中,项目开发各阶段都是用_,开发的24.构造原型的技术主要有_,_,_,_,25.根据原型的目的,方式及内容的取舍不同,原型特征可分为_,_,_,_,四类26.增量构造模型是在瀑布模型基础上对一些阶段进行_,对另一阶段进行_,27.增量开发是指在项目开发周期内,以一定的时间间隔_,增量提交是指在项目开发周期内,以一定的时间间隔_,向用户提交_,及_,28.原型模型又称_,它是_,的另一种形式29.对于试验型,用原型过程来代替_,阶段,即在_,阶段引入原型,快速分析_,快速构造原型,通过运行,考察设计方案的_,原型成为设计的_,或_,的一部分.30.原型开发步骤包括_,_,_,_,_,31.快速原型的思想是在研究_,的方法和技术中产生的32.瀑布模型本质上是一种_,顺序模型.33.对于演化型,用原型过程代替_阶段。这是典型的演化提交模型的形式,它是在强有力的_支持下,通过原型过程的_,直接得到_。34.快速原型是利用原型辅助软件开发的一种新思想。经过简单_,_一个原型,用户与开发者在_的过程中加强通信与反馈,通过_,减少误解,弥补漏洞,适应变化,最终提高软件的质量。35.探索型类型的原型模型是把原型用于开发的_阶段,目的是要弄清楚_,确定_,并探索各种方案的_。36.构造原型时,必须注意_取舍,忽略一切暂时不关心的部分。37.用原型过程代替设计阶段,考察设计方案的可行性与合理性,这是快速原型的_原型。38.探索型类型的原型模型主要针对开发_、_的情况,通过对原型的开发来明确_。39.事件可以看成是信息从一个对象到另一个对象的单向传递,各事件将信息从一个对象传递到另一个对象中去,因此要确定各事件的_和_。_用来表示事件、事件的接收对象、和发送对象。40.操作指的是类中对象所使用的一种_。类中的各对象可以_操作,方法是类的操作的_。41.属性指的是类中对象所具有的_。不同对象的同一属性可以具有相同或不同的_。42.用原型过程代替全部开发阶段,这种快速原型是_原型。43.快速原型模型是在_基础上,逐渐完成整个系统的开发工作。44.状态图反映了_与_的关系。状态图确定了由事件序列引起的_。45.状态是_的抽象。状态指明了对象对_的响应。46.实验型原型主要用于_阶段,考验_是否合适和_。47.在同一个应用中的共享是指同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的_,使各相似子类共享共同的_。使用继承来实现_。48.快速原型模型根据原型的不同作用,有_原型、_原型、_原型三类原型模型。49.软件开发中的原型是软件的一个_,它反映了最终系统的_。50.由于运用原型的目的和方式和形式不同,在使用原型时也采用不同的策略,有_和_。51.增量模型根据增量的方式不同,分为_模型和_模型。52.若原型不满足需要说明,则根据明确的要求修改_,若原型不满足用户需求,则修改和规定_,重新构造原型。53.瀑布模型_适应需求可变的软件开发,只有到_才能见到整个软件系统。54.用原型过程来代替需求分析,使需求说明完整、一致、准确,这种快速原型是_原型。55.瀑布模型属于_开发模型,增量模型属于_开发模型。56.增量模型在开发过程种以一系列_开发系统,推迟某阶段的_,从而_产生工作软件。57.演化提交模型在_的基础上,所有阶段都进行_,也就是说不仅是_,也是_。58.软件原型是软件的_可运行版本,反映最终系统的_。59.对于探索型,用原型过程来代替_阶段,把原型作为_的补充形式,运用原型尽可能使需求说明完整、一致、准确、无二义性,但在整体上仍采用_。60.增量构造模型在_阶段按整体方式开发,但是在_阶段按增量的方式开发。2.2.2 选择题1.软件生存周期模型有多种,下列选项中,()不是软机生存周期模型。 A螺旋模型 B增量模型 C功能模型 D瀑布模型2.结构化方法和原型化方法使软机开发中常用的两种方法,在实际应用中,它们之间的关系表现为(); A相互排斥 B相互补充 C交替使用 D独立使用3.软机生存周期包括可行性分析和项目计划、需求分析、概要设计、详细设计、编码、()、维护等活动。 A应用 B测试 C检测 D以上答案都不对4.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是()。 A分析阶段 B设计阶段 C编码阶段 D测试阶段5.准确地解决“软件系统必须做什么”是()阶段地任务。 A可行性研究 B详细设计 C需求分析 D编码6.瀑布模型中软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总统设计、详细设计、编码、测试和运行、维护。八个阶段又分为可归纳为三个大的阶段:计划阶段,开发阶段和()。 A运行阶段 B可行性研究 C详细研究 D测试与排错7.从结构化的瀑布性模型看,在软件生命周期中的八个阶段中,下面的几个选项中,()出错,对软件的影响最大。 A详细设计阶段 B概要设计阶段 C需求分析阶段 D测试和运行阶段8.在结构性的瀑布模型中,()阶段定义的标准将成为软件测试中的系统测试中的系统测试阶段的目标。 A需求分析阶段 B概要设计阶段 C详细设计阶段 D可行性研究阶段9.软机生存期中时间最长的阶段是() A需求分析阶段 B概要设计阶段 C测试阶段 D维护阶段10.检查软件产品是否符合需求定义的过程为() A集成测试 B确认测试 C验证测试 D验收测试11.UML是软件开发中的一个重要工具,它主要应用于下列哪种软件开发方法()。 A基于瀑布模型的结构化方法 B基于需求动态定义的原型化方法 C基于对象的面向对象方法 D基于数据的数据流开发方法12.在软件生存期中,用户主要是在()参与软件开发。 A软件定义期 B软件开发期 C软件维护期 D整个软件生存期13.下面的软件开发方法中,()对软件设计和开发人员的要求最高。 A控制流方法 B原型化方法 C面向对象放方法 D结构化方法14.软机工程中最普遍应用的方法之一是结构化生命周期方法(slc方法),下述()论述不具有scl方法的主要特征。 A严格定义需求 B规范化文档格式 C划分开发阶段 D分析控制流程15.结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的() A程序流 B数据流 C指令流 D控制流16.目前存在若干种软件生存周期模型。例如瀑布型、增量型、螺旋型、喷泉模型、变换模型和基于知识的模型等。其中规定了由前至后、相互衔接的固定次序的模型是()。 A瀑布模型 B增量模型 C喷泉模型 D螺旋模型17.在软件生存周期的模型中,( )吸收了软件工程“演化”的概念,适合于大型软件的开。发。 A瀑布模型 B.基于知识的模型 C. 变换模型 D. 螺旋模型 18.Which of the following statement is correct? A. The definition plase result in the Software Requirement Specification B.Testing is optional in software life cycleC.CASE tools can only aid in the design phase of a sofeware lifecycleD.A change during alter phase does not require the documentation19.瀑布模型是一种( )A.软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型20目前有若干种软件生存周期模型。例如瀑布模型,增量模型,螺旋模型等。其中基于知识的模型也称为( )A. 演化模型B. 智能模型C. 变换模型D. 喷泉模型21Software engineering economy is an effectinve part of software engineering,which of the following contents is the research content of software engineering economy( ).1.estimation of software development cost2.earn & cost analysis of software development3.adjustment of software development progressA. 1 onlyB. 2 and 3C. 1 and 2D.all 22.软件开发的结构化生命周期方法将软件生命周期分成( )A.计划阶段,开发阶段,运行阶段B.计划阶段,编程阶段,测试阶段C.总体设计,详细设计,编程调试D.需求分析,功能定义,系统设计23软件工程中描述生存周期模型的瀑布模型一般包括计划,( ),设计,编码,测试,维护等几个阶段。A需求分析B需求调查C可行性分析D问题定义24.The task og the general design in structured life cycle,is to build what kind of software system structure( ).A.program structureB.general structureC.module structureD.function structure25.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( )。A.瀑布模型B.对象模型C.螺旋模型D.层次模型26.软件开发模型是指软件开发的全部过程,活动和任务的结果框架。主要的 开发模型有瀑布模型,演化模型,螺旋模型,喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结合,并增加了( ),它建立在( )的基础上,沿着螺线自内向外每旋转一圈,就得到( )的一个新版本。喷泉模型描述了( )的开发模型,它体现了这种开发方法创建软件的过程所固有的( )和( )的特征。A.1.系统工程 2.风险分析 3.设计评审 4.进度控制B.1.模块划分 2.子程序分解 3.设计 4 .原型C.1.面向对象 2.面向数据流 3.面向数据结构 4.面向数据驱动D.1.归纳 2.推理 3.迭代 4.递归E:1.开发各阶段之间无“间隙” 2.开发各阶段分界明显 3.部分开发阶段分界明显 4.开发过程不分段27.在软件工程中,软件生存期(life cycle)可分为计划、开发以及运行三个时期,每个时期又分为若干更小的阶段。通常,计划时期包括问题定义和( ),开发时期包括( ),概要设计,详细设计,编码以及( )。 A:1.需求分析 2.可行性研究 3.经费预算 4.质量保证 B:1.需求分析 2.可行性研究 3.总体设计 4.模块化设计 C:1.文档编制 2.运行维护 3.测试 4.验收28.在结构性的瀑布模型中,( )阶段定义的标准将成为软件测试中的系统测试阶段的目标。 A:详细设计阶段 B.概要设计阶段 C:可行性设计阶段 D.需求分析阶段29:增量模型是一种( )模型。 A:整体开发 B:非整体开发 C:灵活性差 D:较晚产生工作软件30:渐增模型是( )。 A:与瀑布模型无关 B:与变化模型有关 C.瀑布模型的改进 D.变化模型的变种31.( )是指模拟某种产品的原始模型。 A.模型 B.最初模型 C.原型 D.进化模型32.构造原型时,主要考虑( )。 A.全部功能 B.原型要体现的特征 C.全部细节 D.全部需求33.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是( )。 A.用于验证软件需求的原型 B.垂直原型 C.用于验证设计方案的原型 D.用于演化出目标系统的原型34.瀑布模型本质上是一种( )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.及早见产品35.原型的使用和开发过程,叫做( )。 A.原型期 B.原型生存期 C.原型周期 D.以上说法都不对36.原型化方法是一种( )型的设计过程。 A.自外向内 B.自顶向下 C.自内向外 D.自底向上37.对于原型的使用建议,以下说法不正确的是( )。 A.开发周期很长的项目,能够使用原型 B.在系统的使用可能变化较大,不能相对稳定时,能够使用原型 C.缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型 D.开发者对系统的某种设计方案的实现无信心或无十分的把握,能够使用原型38.使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认( ),确认系统作为产品的结果。 A.系统设计的可行性 B.开发环境 C.需求说明 数据流图39.以下说法错误的是( )。 A.增量模型是在瀑布模型的基础上加以修改而形成的 B.增量模型推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件 C.瀑布模型和增量模型都属于整体开发模型 D.瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节40.快速原型模型的主要特点之一是( )。A.开发完毕才见到产品 B.及早提供工作软件C.及早提供全部完整软件 D.开发完毕才见到工作软件41.对于构造原型的建议,以下说法不正确的是( )。 A.暂不考虑速度、空间等性能效率方面的要求 B.暂不考虑错误恢复和处理 C.可降低可靠性和软件质量标准 D.对于原型界面部分的设计,暂不考虑与最终系统的界面内容 E.根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造原型42.以下说法不正确的是( )。 A.快速原型思想是在研究概要设计阶段的方法和技术中产生的 B.探索型和试验型快速原型采用的是抛弃策略 C.演化型快速原型采用附加策略 D.快速原型是利用原型辅助软件开发的一种新思想43.以下说法正确的是( )。 A.对于探索型,用原型过程来代替全部开发阶段 B.对于试验型,用原型过程来代替设计阶段 C.对于演化型,用原型过程来代替需求分析阶段44.通常用于构造原型的技术包括可执行规格说明、( )、自动程序设计、专用语言、可重用的软件和简化假设等。 A.代数规格说明 B.基于脚本的设计 C.数据流图 D.原型语言45.在原型法中称( )为用户/设计者,开发人员根据用户要求不断修改原型,直到满足用户要求为止。 A.用户 B.开发人员 C.系统分析员 D.程序员46.对于原型的作用,以下说法不正确的是( )。 A.原型为软件系统提供明确的需求说明 B.原型可作为新颖设计思想的实现工具及高风险开发的安全因素,证实设计的可行性 C.原型模型对开发过程中的问题和错误具有应付变化的机制 D.原型模型在用户不愿意参与开发过程的情况下,能充分地鼓励开发者地积极性47.对于不宜使用原型的情况,以下说法错误的是( )。 A.用户对系统的需求较为模糊,对某种需求缺乏信心时,不宜使用原型 B.用户不愿意参与开发的时候,不宜使用原型 C.用户的数据资源没有很好地组织和管理的时候,不宜使用原型 D.用户的软件资源没有被组织和管理起来的时候,不宜使用原型48.以下说法错误的是( )。 A .对于探索型,把原型作为需求说明的补充形式 B.对于试验型,通过原型过程的反复循环,直接得到软件系统 C.对于演化型,原型成为设计的总体框架或设计结果的一部分49.原型化方法是用户和设计者之间执行的一种交互过程,适用于( )系统。 A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时50.由于软件项目的特点和运行原型的目的不同,原型有三种不同的作用类型: 探索型、( )和演化型。 A.实验型 B.经济型 C.追加型 D.废弃型51.用于设计阶段,考察实现方案是否可行的是( )。 A.探索型 B.演化型 C.实验型 D.增量型52.瀑布模型的问题是( )。 A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者容易沟通 D.适用可变需求2.2.3 简答题 1.什么是软件工程过程?它包含哪些过程? 2.什么是软件生存周期模型?有哪些主要模型? 3.什么是软件生存周期?它有哪些活动? 4.什么是软件开发方法?有哪些主要方法? 5.结构化方法总的指导思想是什么? 6.软件开发的目标是什么? 7.原型的作用是什么? 8.瀑布模型有哪些局限性? 9.渐增模型有哪几种?它们各有何特点? 10.增量模型的基本思想是什么? 11.快速原型模型的基本思想是什么? 12.使用快速原型方法构造原型时,对原型有什么样的要求? 13.快速原型模型的开发步骤是什么? 14.运用原型的策略有哪几种? 15.构造原型的技术有哪些?16.快速原型模型有哪几种?各有何特点?17.试述快速原型模型有哪些优缺点。18.在那些情况下适宜使用原型?哪些情况下不适宜使用原型?19.原型的开发环境是什么?20.什么是实验型原型模型?21.原型特征分为几种类型?22.什么是探索型原型模型?23.什么是演化型原型模型?2.3 参考答案 一、填空题1.获取过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程2.周期3.结构化方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法4.结构化分析、结构化设计、结构化程序设计、数据流5.增量6.用户需求、对象、面相对象、迭代性、无间隙性7.形式化分析、软件需求形式化说明、变换8.自顶向下逐步求精、分解、抽象、数据处理领域9.形式语言10.瀑布、增量11.制定计划、风险分析、开发实施、用户评估12.面向对象分析、面向对象设计、面相对象实现13.数据结构14.Booch、Coad、OMT15.软件工具16.瀑布、增量、螺旋、喷泉、变换、基于知识的17.可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护18.软件工具、软件开发方法19.软件过程描述20.结构化方法21.瀑布模型、整体开发、增量分析22.增量方式、增量开发、增量提交23.增量方式24.可执行的规格说明、基于脚本的设计、采用非常高级语言或专门语言、能重用软件25.系统的界面设计、系统的总体结构、系统的主要处理和性能、数据库设计26.整体开发、增量开发27.开发部分工作软件、增量方式、工作软件、相应文档28.快速原型模型、增量模型29.设计、设计、实现方案、可行性与合理性、总体框架、设计结果30.快速分析、构造原型、运行原型、评价原型、修改31.需求分析32.线性33.全部开发、软件工具和环境、反复循环、软件系统34.快速分析、快速实现、试用原型、反复评价和改进原型35.需求分析、用户的需求、所期望的特性、可行性36.功能性能37.实验型38.目标模糊、用户与开发者对项目都缺乏经验、用户的需求39.发送对象、接受对象、事件跟踪图40.功能或变换、共享、实现步骤41.性质(数据值)、属性值42.演化型43.原型44.状态、事件、状态序列45.对象属性值、输入事件46.设计、实现方案、能否实现47.继承、结构和行为、代码的共享48.探索型、实验型、演化型49.早期可运行的版本、重要特性50.抛弃策略、附加策略51.渐增、原型52.原型、需求说明53.不、开发结束54.探索型55. 整体、非整体56. 增量方式,细节,尽早57. 瀑布模型,增量开发,增量开发,增量提交58. 早起,重要特性59. 需求分析,需求说明,瀑布模型60. 需求分析和设计,编码和测试二. 选择题1. C2. B 【解析】:软件开发的结构化方法死基于瀑布模型的,而原型化方法是基于动态定义的需求。结构化方法是在开发的每个阶段都有的目标的,即在软件的需求分析阶段已经将要开发的软件的目标和功能确定,而原型化方法是再软件开发过程中逐步明确软件的需求,即动态地定义软件地需求。显然两个开发方法地不同。但是,两个方法地目的都是实现软件生产地工程化,因此它们有互相借鉴的部分。所以,答案是B。 3 B 4 C【解析】:在结构化的软件开发中,一般情况下,可能需要占用的人数最大的阶段是在软件编程的阶段,但从工作量上来说,在软件的需求分析,定义及软件的测试和维护阶段需要的工作量更多,用软件开发计划中的402040原则,即可说明这一点,在软件需求分析和定义阶段,虽然工作量比软件编程多,但因为软件的需求分析和定义对开发人员的素质要求比较高,所以占用的人员并不需要太多;同时由于软件维护的周期比较长,所以其耗的工作量比软件编程多,但一般来说它占用的人员并不比编程阶段占用的对,所以答案为C。5 C6 A7. C【解析】:在软件开发中,软件的生命周期的各个阶段的正确分析和设计是极为重要的。如果在这些阶段出错,将严重影响后期的开发,因为它们的错误将以放射式的扩展造成更多的错误。所以答案是C。8 A 【解析】:在瀑布模型中需求分析阶段指导概要设计阶段,概要设计阶段指导详细设计阶段,并且测试阶段的系统测试以需求分析阶段的定义为目标,集成测试以概要设计阶段的定义为目标,单元测试以详细阶段的定义为目标。9 D10 B 【解析】:系统测试又称确认测试,它包括功能测试和验收测试两种,它按软件需求说明书上的功能逐项进行。11 C 【解析】:面向对象的技术首先在SmallTalk语言中得到应用,后来随着C,JAVA等面向对象的语言的出现,面向对象的技术的广泛的开发工具的支持,UML是在面向对象的软件开发中在设计解毒常用的一个工具,因此应选C。12A13B【解析】:结构化开发方法是指在软件开发初期明确地定义软件地功能和软件开发地标准,作为软件开发地后期实施依据;原型化方法是指在软件开发的过程中动态地定义软件地需求和软件的功能,标准,面向对象的开发方法,强调以对象作为在软件设计中的基本元素,并以类和继承来表达是事物具有的共性和他们之间存在的关系;控制流方法事实上是在软件概要设计中常用的一种方法。由上述对各个方法的定义可知在原型化的开发中,需要能及时发现问题,建立更明确的软件开发需求的高素质软件设计和开发人员。所以答案是B。14D 【解析】:在软件开发的结构化生命周期方法中,在软件的定义阶段就需要严格定义出软件的需求说明书,以便以后的开发中遵照执行,相对原型化开发中动态地定义软件的需求来说,它需要在软件开发的前期严格定义软件的需求分析,并且在软件开发的后期执行中尽量少改动软件的需求分析,而原型化方法在软件的开发中频繁地改动软件地需求分析,也就是说,它地需求分析并不是很严格地。 结构化生命周期方法是以软件开发地瀑布面向为基础地,所以它在开发中要划分开发阶段。 在软件开发的结构化生命周期方法中,在不同的阶段生成不同的文件文档,并且不同的文档有不同的文档格式,这是由在不同阶段生成的文档要完成的任务决定的,在可行性分析阶段生成的可行性分析报告,在软件的需求分析阶段生成软件需求规格说明书,在软件概要设计,详细设计阶段生成软件设计规格说明书等。 事实上,结构化生命周期方法主要以分析数据流来设计软件的,仅仅在软件的详细设计中,常常用到控制流的分析方法设计程序,所以答案是D。15 B 【解析】:软件工程中的软件工程技术主要是从软件的系统结构,软件得数据结构,软件的数据流,软件的控制流等角度来研究软件是如何开发的,而指令流和程序流在软件工程中事实上描述的不够精确,相对地,它们在计算机的操作系统和编译器,计算机系统结构中有比较严格的定义。所以答案为B。16 A17 D18 A 【解析】:软件测试可以发现软件的错误,但缺点是不能证明没有错误,然而软件测试在软件的生命周期中是必不可少的,良好的软件测试是保证软件的质量的方法之一。 CASE是Computer Aid Software Engineering的缩写,即计算机辅助软件工程,CASEtools在软件开发的各个工程中得到了广泛的应用,按照CASE工具的使用功能标准来划分,可分为:信息工程工具,过程建模与管理工具,项目计划工具,风险分析工具,项目管理工具,需求跟踪工具,度量和管理工具,文档工具,系统软件工具,数据管理工具,质量保证工具,集成和软件测试工具,静态分析工具,动态分析工具,测试管理工具,客户服务器测试工具,再工程工具等,还可以作进一步的划分。 在软件的开发中,一般;来说 系统设计的文档,不能频繁的改动。即使在软件开发中由于技术等原因造成文档的改动,也必须将改动造成的影响反应到所有相关的文档中,以便该软件系统的测试,维护,升级,保持一定的一致行性等。 软件需求规格说明书中是需求分析阶段的最后成果,是软件开发中的重要文档之一,它把 软件计划中确定的软件范围加以展开,制定出完整的信息描述,详细的功能说明,恰当的检验标准以及其他的于要求有关的数据,它是在软件的定义阶段产生的,所以答案是A,19D20B21B 解析:软件工程经济学是研究软件开发中软件开发成本的估算,成本效益分析的方法和技术,用经济学的基本原理来研究软件工程开发中的经济效益问题,而软件开发进度的调整是软件管理工程学研究的内容之一,所以答案是B,22:A 解析:软件开发生命周期方法是以瀑布模型为基础的,瀑布模型将软件的生命周期划分成三个大的阶段,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年地下储气库行业研究报告及未来行业发展趋势预测
- 2025年氨基甲酸酯类杀虫剂行业研究报告及未来行业发展趋势预测
- 2025年大枣行业研究报告及未来行业发展趋势预测
- 2025年丙硫菌唑行业研究报告及未来行业发展趋势预测
- 2025年甲基羟乙基纤维素行业研究报告及未来行业发展趋势预测
- 2025年补气用药行业研究报告及未来行业发展趋势预测
- 盐斤收放保管工测试考核试卷及答案
- 密闭鼓风炉备料工专业知识考核试卷及答案
- 砖瓦生产中控员作业指导书
- 血液制品工内部技能考核试卷及答案
- 09S304 卫生设备安装图集
- 《廉洁从业》企业文化培训课件
- 跟痛症教学讲解课件
- 《教育魅力-青年教师成长钥匙》
- 《生物多样性公约》及国际组织课件
- 绪论(遗传学)课件
- 滴定管使用课件
- 单片机应用技术项目教程C语言版ppt课件(完整版)
- 公司金融课件(完整版)
- 公司员工薪资审批表
- 四年级公共安全教育全册教案(海峡教育出版社)
评论
0/150
提交评论