软件工程总复习题_第1页
软件工程总复习题_第2页
软件工程总复习题_第3页
软件工程总复习题_第4页
软件工程总复习题_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、1、 软件工程的三个基本要素包括( 方法)、( 工具)和( 过程)。2、 一般软件应该有三部分组成:( 程序 )、( 文档 )和( 数据 )。3、 计算机软件的生存期可以分为六个步骤,它们是( 制定计划 )、(需求分析 )( 软件设计 )、( 编码 )、软件测试和运行/维护。4、 结构化设计中以数据流图为基础的两种具体设计方法是(  )设计。答案:变换分析和事务分析5、 两个模块都使用同一张表,模块的这种耦合称为(  )。答案:公共耦合6、 一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为(  )。答案:通信内聚7、 结构化设计方法是一种面向(

2、0;数据流  )的设计方法。8、 在单元测试时,需要为被测模块设计_。答案:驱动模块与桩模块9、 在集成测试时有两种测试方法,它们是_。答案:渐增式和非渐增式10、 提高软件质量和可靠性的技术大致可分为两大类,一类是避开错误技术,另一类是_。(容错技术)11、 要成功地完成软件开发工作的一个主要决定性因素是_。答案:软件管理12、 确认测试阶段的两项工作是_。(进行确认测试和软件配置审查)13、 确认测试以(  A )文档作为测试的基础。 A.需求规格说明书 B.设计说明书   C.源程序   D.开发计

3、划14、 对白盒测试和黑盒测试补充的一种有效的方法是加强阶段( B )工作。 A.调试        B.评审          C.维护          D.自测试15、 对象模型的描述工具是(  )。 A.状态图    B.数据流图    C.

4、对象图    D.结构图答案:C16、 程序复杂程度的定量度量方法:McCabe方法,计算环形复杂度的方法, Halstead方法。17、 软件开发方法可分为两大类:面向过程的开发方法和面向对象的开发方法18、 19、 20、21、22、23、 名词解释:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法与维护软件,把经过时间考验而证明的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。模型:是对问题做出的一种抽象,它由一组图示符号和组织这些符号的规则组成。建模是问题域中定义软件解的

5、一种方法。建模的目的主要是为了减少问题的复杂性。系统流程图是概括地描绘物理系统的传统工具,它用图形符号以黑盒子形式描绘组成系统的每个具体部件。包括程序、文档、数据库和人工过程等。它表达了数据在系统各部件之间的流动情况。数据流图简称DFD(Data Flow Diagram)图,它是描绘信息和数据从输入移动到输出的过程中所经受的变换。反映了数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,是一种极好的通信工具。结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。模块化是指将整个程序划分为若干个模块,每个模块用于实现一个

6、特定的功能。模块化 :模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。模块化即按照一定的原则,将软件划分成若干个模块,每个模块完成一个特定的功能,然后把这些模块按照某种方法组装成一个软件系统。(可降低复杂度、减少工作量)抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。通过抽象确定组成软件的过程实体。 v 抽象是人类在解决复杂问题过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节信息隐蔽:将模块实现自身功能的细节与数据"隐蔽"起来。模块间仅交换为完成系统功能所必须的信息

7、。信息隐蔽:在设计和确定模块时,使得一个模块包含的信息对于不需要这些信息的其它模块来说是不能访问的也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。模块独立性:每个模块只完成系统要求的独立的子功能。 模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的联系最小且接口是简单的 耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。 模块独立性比较强的模块应是高内聚低耦合的模块。程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。良好的程序设计风格包括

8、传统的程序设计风格,也包括为适应面向对象方法而必须遵守的一些规则,主要包括(1)提高可重用性;(2)提高可扩充性;(3)提高健壮性。过程设计语言(PDL)PDL是一种用于描述功能模块的算法设计和加工细节的语言。是一种用于描述程序逻辑设计的语言。层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。Warnier图也用树形结构描绘信息,但是它提供的描绘手段比层次方框图更丰富。IPO图是输入、处理、输出图的简称。该图能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。也可以用来描述数据流图中处理框的功能,也可以描述程序模块的功能或实现算法。软件可维护性的定义:软件能够被理

9、解、校正、适应及增强功能的容易程度。软件的可维护性可用以下七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。 面向对象设计的准则所谓优秀设计,就是权衡了各种因素,从而使得系统在其整个生命周期中的总开销最小的设计。对大多数软件系统而言,60%以上的软件费用都用于软件维护,因此,优秀软件设计的一个主要特点就是容易维护。软件重用是提高软件开发生产率和目标系统质量的重要途径启发规则人们使用面向对象方法学开发软件的历史虽然不长,但也积累了一些经验。总结这些经验得出了几条启发规则,它们往往能帮助软件开发人员提高面向对象设计的质量。简要介绍以下规则的内容:1. 设计结果应

10、该清晰易懂2. 一般-特殊结构的深度应适当应该使类等级中包含的层次数适当。一般说来,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。不应该仅仅从方便编码的角度出发随意创建派生类,应该使一般-特殊结构与领域知识或常识保持一致。3. 设计简单的类4. 使用简单的协议5. 使用简单的服务6. 把设计变动减至最小11.11 设计优化 11.11.1 确定优先级系统的整体质量与设计人员所制定的折衷方案密切相关。最终产品成功与否,在很大程度上取决于是否选择好了系统目标。最糟糕的情况是,没有站在全局高度正确确定各项质量指标的优先级,以致系统中各个子系统按照相互对立的目标做

11、了优化,将导致系统资源的严重浪费。在折衷方案中设置的优先级应该是模糊的。事实上,不可能指定精确的优先级数值(例如,速度48%,内存25%,费用8%,可修改性19%)。注意:最常见的情况,是在效率和清晰性之间寻求适当的折衷方案。下面两小节分别讲述在优化设计时提高效率的技术,以及建立良好的继承结构的方法。11.11.2 提高效率的几项技术简要介绍以下技术:1. 增加冗余关联以提高访问效率2. 调整查询次序3. 保留派生属性基本路径测试的步骤为:(1)以详细设计或源程序为基础,导出控制流程图的拓扑结构-程序图。 程序流图是退化了的程序流程图,它是反映控制流程的有向图。其中小圆圈成为结点,代表了流程图

12、中每个处理符号(矩形、菱形框),有箭头的连线表示控制流向,称为程序图中的边后路径。图(a)是一个程序流程图, 可以将它转换成图(b)程序流图(假设菱形框表示的判断内设有覆合的条件)。 (2)计算程序图G的环路复杂性V(G).McCabe 定义程序图的环路复杂性为此平面图中区域的个数。区域个数为边和结点圈定的封闭区域数加上图形的区域数1。例如图6.3(b)的V(G)=4也可按另一种方法计算,即V(G)=判定结点数+1 (3)确定只包含独立路径的基本路径集 环路复杂性可导出程序基本路径基合中的独立路径条数,这是确保程序中每个执行语句至少执行一次所必需的测试用例书目的上界。独立路径是指包括一组以前没

13、有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径,例如,在图6.3(b)所示的图中,一组独立的路径是:(4)设计测试用例,确保基本路径集合中每条路径的执行。集成测试方法在系统的集成测试阶段,必须对类间协作进行测试,和测试单个类相似,测试类协作可以有随机测试法、划分测试法、基于情景的测试和行为测试。1)多类测试使用下列步骤可以生成一个多类测试的随机测试用例:(1)对每个客户类,使用类操作符列表来生成一系列随机测试用例。这些操作符向服务器发送消息。(2)对所生成的每个消息,确定协作类和在服务器对象中的对应操作符。(3)对服务器对象中每个操作符

14、,确定传递的消息。(4)对每个消息,确定下一层被调用的操作符,并将操作符结合进测试序列中。2)从动态模型导出测试用例已知状态转换图,可以导出测试类的动态行为的测试用例,所设计的测试用例应该覆盖所有允许的状态。状态1状态2状态3事件1事件2事件4事件5内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。 耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。 4模块的耦合性有哪几种?各表示什么含义?内容耦合:一个模块直接操作或修改另一模块的数据,或者不通过正常入口直接转入 另一模块公共耦合:两个或多个模块通过共

15、同引用一个全局数据环境相互作用 控制耦合:模块之间通过传递控制信息相互作用标记耦合:两个模块之间通过传递公共指针或地址相互作用的耦合数据耦合:模块之间通过传递数据交换信息 无直接耦合:模块间无任何关系,独立工作  5模块的内聚性有哪几种?各表示什么含义? 偶然内聚:一个模块各个成分之间毫无关系 逻辑内聚:将几个逻辑上相关的功能放在同一个模块中 时间内聚:一个模块完成的功能在同一时间执行 过程内聚:一个模块内部的处理成分是相关的,而且必须以特定的次序执行通信内聚:一个模块的所有成分都集中在同一个数据结构上 顺序内聚:一个模块的各个成分同一个功能密切相关,而且一个成分的输出,作为另外一个

16、成分的输入功能内聚:模块内的所有成分属于一个整体,完成单一的功能。(内聚最高)软件质量与软件质量保证的含义是什么?答:从实际应用来说,软件质量定义包括三个一致性:(1)与所确定的功能和性能需求的一致性; (2)与所成文的开发标准的一致性; (3)与所有专业开发的软件所期望的隐含特性的一致性。 软件质量保证是指确定、达到和维护所需要的软件质量而进行的所有有计划、有系统的管理活动。2、什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行比较?答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内

17、部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法有下列几种覆盖标准:语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。3、什么是黑盒测试法?采用黑盒技术测试用例有哪几种方法?这些方法各有什么特点?答:黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功

18、能要求。采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错误推测和因果图。等价类的划分,是将输入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率。但这个方法的缺点是没有注意选择某些高效的、能够发现更多错误的测试用例。边界值分析法一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子做代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于和刚刚小于边界值的测试数据。(边界情况是指输入等价类和输入

19、等价类边界上的情况。)这种方法可以查出更多的错误,因为在程序中往往在处理边界情况时易发生错误。错误推测法是在测试程序时,人们根据经验或直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的测试用例。因果图能够有效地检测输入条件的各种组合可能会引起的错误。它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。综合策略:就是联合使用上述几种测试方法,尽可能多地发现程序中的错误。4、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?答:软件测试要经过

20、的步骤是:单元测试集成测试确认测试系统测试。单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。说明三种分析模型的关系。答:三种分析模型之间关系是这样的:功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客

21、体。什么是软件质量保证策略?软件质量保证的主要任务是什么?答:软件质量保证策略是指软件质量保证工作的过程和侧重点。质量保证的主要任务包括以下几点:(1)正确定义用户的要求。 (2)技术方法的应用。 (3)提高软件开发的工程能力。 (4)软件的复用。 (5)发挥每个开发者的能力。 (6)组织外部力量协作。 (7)排除无效劳动。 (8)提高计划和管理质量。 3、软件开发成本估算方法有哪几种?答:软件开发成本估算的方法主要有:(1)自顶向下估算方法 (2)自底向上估算方法 (3)差别估算方法 以及专家估算法、类推估算法、算式估算法等几类方法。 单元测试有哪些内容?测试中采用什么方法?答:单元测试主要

22、针对模块的以下五个基本特征进行测试:(1)模块接口 (2)局部数据结构 (3)重要的执行路径 (4)错误处理 (5)边界条件 测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。6、什么是集成测试?非渐增式测试与渐增式测试有什么区别? 渐增式测试如何组装模块?答:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。非渐增式测试是指首先对每个模块分别进行单元

23、测试,再把所有模块组装成一个完整的系统进行的测试。而渐增式测试就是逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。渐增式测试有两种不同的组装方法:自顶向下和自底向上结合。两者区别是:(1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试和集成测试合在一起,同时完成。(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量少。(3)渐增式可以较早地发现接口之间的错误,非渐增式

24、最后组装时才发现。(4)渐增式有利于排错,发生错误往往和最近新加入的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。(5)渐增式比较彻底,已测试的模块和新的模块再测试。(6)渐增式点用时间较多,但非渐增式所需更多的驱动模块和桩模块也占用一些时间。(7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。7、什么是确认测试?该阶段有哪些工作?答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。因而需求说明是确认测试的基础。确认测试阶段有两项工作:进行确认测试与软件配置审查。8、调试的目的是什么?调试有哪些技

25、术手段?答:调试则是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。什么是结构分析方法?该方法使用什么描述工具? 结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名住址存款类

26、型存款日期利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。请用DFD,IDEF0描绘该功能的需求,并建立相应数据字典。 答:分析该题功能比较简单,首先找出该系统的外部环境,从而获得系统的输入输出。与该系统打交道的外部实体只有储户,输入有存取款原始单。该系统经过处理后,输出给储户正式的存款单或结算清单。这样,该系统的顶层DFD就确定了。其次,考虑该系统内部功能。系统要检验用户填写单据的合法性及区分存款还是取款,然后分别进行存款处理和取款处理。存款处理要登记储户的存款信息,需要建立数据存储文件;而取款处理要读取数据存储文件及查阅储户的信息,取款后要修改储户信息。 数据流名称:取款

27、单、存款单别名:无简述:顾客存/取款时填写的单据来源:顾客去向:核查数据流量:200份/天组成:日期取|存款金额姓名地址存/取款类型+密码账号 数据流名称:存款凭证别名:无简述:顾客存款后得到的凭据来源:银行存款系统去向:顾客数据流量:200份/天组成:日期存款金额储户姓名储户地址存款类型账号利率操作员 数据流名称:结算单别名:无简述:顾客取款时得到的利率清单来源:银行储蓄系统去向:顾客数据流量:200份/天组成:取款日期取款金额储户姓名储户地址存款类型+利息总金额操作员数据流名称:存/取款信息别名:无简述:系统检查确认后得到的存/取信息来源:银行储蓄系统去向:登录数据流量:200份/天组成:日期存|取款金额储户姓名储户地址存款类型+账号利率密码操作员数据流名称:付款信息别名:无简述:存储系统处理的取款信息来源:银行储蓄系统去向:付款处理数据流量:200份/天组成:日期取款金额储户姓名储户地址存款类型+账号利息总金额操作员数据存储名称:账卡别名:无简述:存放用户信息及存取款

温馨提示

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

最新文档

评论

0/150

提交评论