一.选择题1、TURBO C是(D)软件·A、系统软件B、人工智能C、事务软件D、应用软件.2、计算机辅助软件工程,简称(D)A、SAB、SDC、SCD、CASE'3、在数据流图中,O(椭圆)代表(C)A、源点B、终点C、处理D、模块、4、模块聚度越高,说明模块各成分彼此结合的程度越(B)A、松散B、紧密C、无法判断D、相等、5、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以( C)维护所占维护量最小。
A、纠错性维护B、代码维护C、预防性维护D、文档维护、6、软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C)A、编码阶段B、软件开发全过程C、软件定义阶段D、软件设计阶段.7、软件测试方法,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D)A、结构合理性B、软件外部功能C、程序正确性D、程序部逻輯.8、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要(D)A、软件结构B、软件过程C、软件模型D、软件模块、9、软件文档不仅是软件开发各阶段的重要依据,而且与影响软件的(B)A、可理解性B、可维护性C、可扩展性D、可移植性.10、在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(B)A、维护时期B、计划时期C、运行时期D、开发时期,11、系统定义明确之后,应对系统的可行性进行研究。
可行性研究应包括(A)A. 软件环境可行性、技术可行性、经济可行性、社会可行性B. 经济可行性、技术可行性、操作可行性C. 经济可行性、社会可行性、系统可行性D. 经济可行性、实用性、社会可行性12、(C),则说明模块的独立性越强A、耦合越强B、扇入数越高C、耦合越弱D、扇入数越低13、面向数据结构的设计方法(JACKSON方法)是进行(B )的形式化的方法A.系统设计B、详细设计C、软件设计D、编码14、模块聚度越高,说明模块各成分彼此结合的程度越(B)。
A、松散B、紧密C、无法判断D、相等.15、软件测试的目的是(C)A.评价软件的质量B.发现软件的错误.C.找出软件的所有错误D.证明软件是正确的.16、结构化设计方法是面向(A )的设计。
A.数据流B.数据编码C.数据库D.数据结构17、在编程安全方面,一般来说无法做到(B)A、避开错误B、完美无缺,绝无错误C、冗余D、涉及防错程序,18、数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的序是(B)A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记.。
19、需求分析最终结果是产生(B)A.项目开发计划B需求规格说明书C.设计说明书D.可行性分析报告20、对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A.结合 B.隐藏 C.封装 D.抽象二.概念回答1.软件危机答:第一种回答:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
第二种回答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
2.数据流图答:第一种回答:一种用于进一步总结现有的系统,并着重描绘系统所完成的功能而不是系统的物理实现方案。
第二种回答:从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
3.IPO图答:第一种回答:一种用于描述输入数据、对数据的处理和输出数据之间关系的图形工具第二种回答:IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
4.集成测试答:第一种回答:在每个模块完成单元测试以后,需要按照设计时确定的结构图,把模块连接起来,进行测试,这种测试成为集成测试。
第二种回答:在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行测试称为集成测试。
5.软件工程答:第一种回答:软件工程是将系统化的、规化的、可度量的途径应用于软件的开发、运行和维护的过程,即将工程化应用于软件的方法的研究。
第二种回答:软件工程是研究和应用如何以系统性的、规化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
第三种回答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
6.可行性研究答:第一种回答:可行性研究是整个软件工程的第一个步骤,用于描述问题和定义问题,然后根据定义阶段的工作去确定问题是否值得去解决。
第二种回答:可行性研究是指在调查的基础上,通过从技术可行性、经济可行性、操作可行性、社会可行性四个角度进行分析,对各种项目的综合评价。
7.模块化答:第一种回答:模块化是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能的一种方式。
第二种回答:模块化是一种处理复杂系统分解为更好的可管理模块的方式。
可以用来分割,组织和打包软件。
每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
8.结构化程序设计答:第一种回答:结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。
结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。
采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。
结构化程序设计主要强调的是程序的易读性。
第二种回答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。
结构化分析方法用抽象模型的概念,按照软件部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图5层次方框图6实体—关系图7状态—变迁图三.简单题1.什么是软件工程?基本原理有哪些?答:第一种回答:软件工程是将系统化的、规化的、可度量的途径应用于软件的开发、运行和维护的过程,即将工程化应用于软件的方法的研究。
基本原理:1用分阶段的生存周期计划严格管理开发过程2坚持进行阶段评审。
3实行严格的产品控制。
4采用现代程序设计技术。
5明确的规定开发小组的责任和产品标准。
6开发小组的人员应少而精。
7承认不断改进软件工程实践的必要性第二种回答:软件工程是将系统化的、规的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件。
其主要目标如下:1实现预期的软件功能,达到较好的软件性能,满足用户的需求。
2增强软件过程的可见性和可控性,保证软件的质量 3 提高软件的可维护性,降低维护费用。
4 提高软件开发生产率,及时交付使用5.合理预算开发成本,付出较低的开发费用2.非渐增式测试与渐增式测试有什么区别?答:第一种回答:渐增式测试:可以较早发现模块间的接口错误、出现的错误往往跟最新加入的模块有关、在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底,但较非渐增式测试费时。
非渐增式测试由于最后才组装,因此错误发现得晚、发现错误后难以诊断定位,但可以同时并行测试所有模块,能充分利用人力。
第二种回答:非渐增式测试方法需要编写的测试用例较多,工作量较大;渐增式测试方法开销小。
渐增式测试方法发现模块间接口错误早;而非渐增式测试方法晚。
非渐增式测试方法发现错误,较难诊断;而使用渐增式测试方法,如果发生错误则往往和最近加进来的那个模块有关。
渐增式测试方法测试更彻底渐增式测试方法需要较多的机器时间使用非渐增式测试方法,可以并行测试。
3.简述在编码风格上需要注意的几个问题?答:1)节简化2)模块化3)简单化4)结构化5)文档化6)格式化4.什么是数据流图?其中的基本符号各表示什么含义?答:数据流图就是采用图形方式来表达系统的逻辑功能、数据在系统部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法.数据流图的基本符号的意思: 1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑; 3.少右面的边矩形表示数据的存储; 4.箭头表示数据流.5.何为白盒测试?它适应哪些测试?答:第一种回答:白盒测试也叫结构测试,测试者需要了解被测程序的部结构。
白盒测试通常根据覆盖准则设计测试用例,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖。
白盒测试适用与单元测试、集成测试、系统测试第二种回答:白盒测试是去研究里面的源代码和程序结构,白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
白盒测试适用与单元测试、集成测试、系统测试6.如何理解模块独立性?答:第一种回答:如果两个模块互相独立,那么对其中一个模块进行编码、测试或修改时可以完全不考虑另一个模块对它的影响。
一般采用两个准则度量模块独立性。
即模块间的耦合和模块的聚。
低耦合高聚。
第二种回答:模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
每个模块完成一个相对独立的子宫,并且与其他模块间的接口简单。
若一个模块只具有单一的功能,且与其他模块没有太多的联系,则称此模块具有模块独立性。
7.模块间的耦合有哪几种形式?各有什么特征?答:耦合分为七类:容耦合:如果一个模块直接参考另一个模块的容,则这两个模块是容耦合。
公共耦合:如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。
外部耦合:如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。
控制耦合:如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的。
数据结构耦合:当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。
数据耦合:如果两个模块传递的是数据项,则这两个模块是数据耦合。