1、软件工程-期末练习1、软件工程学科出现的主要原因是()。、计算机的发展、其他工程学科的影响、软件危机的出现、程序设计方法学的影响2、软件生命周期中所花费用最多的阶段是()A详细设计 B软件编码 C软件测试 D软件维护3、问题定义阶段必须回答的关键问题是()。、要解决的问题是什么 B、确定目标系统必须具备哪些功能、怎样实现目标系统 、如何具体实现系统4、在程序的描述和分析中,用以指明数据来源、数据流向和数据处理的辅助图形是()。、瀑布模型图 B、数据流图C、数据结构图 D、业务图5、结构化分析方法使用的描述工具()定义了数据流图中每一个图形元素。、数据流图、数据字典、判定表、判定树6、一个项目是
2、否开发,从经济上来说是否可行,归根结底是取决于()。、成本的估算 、项目计划、工程管理 、工程网络7、需求分析最终结果是产生()。、项目开发计划 、可行性分析报告、需求规格说明书 、设计说明书8、快速原型是利用原型辅助软件开发的一种新思想,它是在研究()的方法和技术中产生的。A.需求阶段 B.设计阶段 C.测试阶段 D.软件开发的各个阶段 9、软件设计阶段一般可分为()。、逻辑设计与功能设计 、概要设计与详细设计、概念设计与物理设计 、模型设计与程序设计10、在软件系统中,一个模块应具有什么样的功能,这是由_决定的。A、总体设计 B、需求分析C、详细设计 D、程序设计11、属于软件设计的基本原
3、理的是()。、数据流分析设计 、变换流分析设计、事务流分析设计 、模块化12、模块的独立性是由内聚性和耦合性来度量的,其中内聚性是()。、模块间的联系程度 、模块的功能强度、信息隐蔽程度 、接口的复杂程度13、为了提高模块的独立性,模块之间最好是()A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 14、SD(结构化设计)方法设计的结果是()A.模块 B.模块结构图C.模块的算法 D.数据流图15、软件设计中划分模块的一个准则是()。A、低内聚低耦合 B、低内聚高耦合C、高内聚低耦合 D、高内聚高耦合16、模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()。A 抽象
4、和信息隐蔽 B 局部化和封装化C 内聚性和耦合性 D 激活机制和控制方法17、一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。、外部耦合、数据耦合、控制耦合、内容耦合18、软件模块内聚性最强的是()A.功能内聚 B.通信内聚C.偶然内聚 D.逻辑内聚19、在面向数据流的软件设计方法中,一般将信息流分为()。、变换流和事务流、变换流和控制流、事务流和控制流、数据流和控制流20、着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。、程序流程图 、数据流图、图 、结构图21、结构化程序设计主要强调的是()A、程序的效率 B、序的执行速度 C、程序的易读性 D、程序的规模
5、22、软件开发过程中,以下说法正确的是()。、程序流程图是逐步求精的好工具、-图不可能任意转移控制,符合结构化原则、判定表是一种通用的设计工具、判定流程图和-图不易表达模块的层次结构23、面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。、详细设计 、系统设计 、软件设计 、编码24、Jackson方法根据()来导出程序结构。、数据结构 、数据间的控制结构、数据流图 、IPO图25、Jackson方法是在软件开发过程中常用的方法,使用Jackson方法时可以实现_。A、从数据结构导出程序结构 B、从数据流图导出初始结构图C、从模块结构导出数据结构 D、从模块结构导出程序结构
6、26、软件详细设计阶段的任务是()A、算法与数据结构设计 B、功能设计C、调用关系设计 D、输入输出设计27、详细设计的任务是确定每个模块的()A、算法 B、功能 C、调用关系 D、输入输出数据28、程序的三种基本控制结构是()A过程,子程序和分程序 B 顺序,选择和重复C 递归,堆栈和队列D 调用,返回和转移 29、数据元素组成设计的方式有()类型。、顺序 、选择 、重复 、以上全是30、当模块中包含复杂的条件组合,只有()能够清晰地表达出各种动作之间的对应关系。A、判定表和判定树 B、盒图C、流程图 D、关系图31、PDL是下列()语言。、高级程序设计语言 、低级程序设计语言、中级程序设计
7、语言 、伪码32、为了使软件具有清晰结构和良好的风格,下面关于程序设计风格的叙述不可取的有()A、尽量不要进行浮点数的相等比较 B、应当有适量的注释C、尽可能对代码优化 D、使用有意义的标识符33、软件测试的目的是?()A、证明软件的正确性 B、找出软件系统中存在的所有错误C、证明软件系统中存在错误 D、尽可能多的发现软件系统中的错误35、软件测试时为了_而执行程序的过程。A、纠正错误 B、发现错误C、避免错误 D、证明错误36、下列属于黑盒测试的是()。、等价划分 、条件测试、循环测试 、基本路径测试37、()着重测试软件功能。、黑盒测试 、白盒测试、功能测试 、循环测试38、在下列测试技术
8、中,_不属于黑盒测试技术。A、等价划分 B、边界值分析C、错误推测 D、逻辑覆盖39、软件测试中,白盒法是通过分析程序的()来设计测试用例的 A、应用范围 B、内部逻辑 C、功能 D、输入数据 40、下列几种逻辑覆盖标准中,查错能力最强的是()A、语句覆盖 B、判定覆盖 C、条件覆盖 D、条件组合覆盖 41、确认测试以()文挡作为测试的基础 A、需求规格说明书 B、设计说明书 C、源程序 D、开发计划41、软件特性中,在给定的时间间隔内,程序成功运行的概率指的是()。A、有效性 B、可适应性 C、正确性 D、可靠性42、为了增加软件功能和性能而进行的软件修改维护过程是()A、校正性维护 B、适
9、应性维护C、完善性维护 D、预防性维护43、结构化维护与非结构化维护的主要区别在于()A、软件是否结构化 B、软件配置是否完整 C、程序的完整性 D、文档的完整性 44、软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的_。A、可理解性 B、可维护性C、可扩展性 D、可移植43、结构化维护与非结构化维护的主要区别在于()A、软件是否结构化 B、软件配置是否完整 C、程序的完整性 D、文档的完整性 44、软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的_。A、可理解性 B、可维护性C、可扩展性 D、可移植45、软件特性中,()
10、是指系统具有清晰的结构,能直接反映问题的需求的程度。A、可理解性 B、可靠性 C、可适应性 D、可重用性46、表示对象相互行为的模型是()模型。A、动态模型 B、功能模型 C、对象模型 D、静态模型 47、_是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。A、多态 B、继承 C、封装 D、消息48、在面向对象方法中,信息隐蔽是通过对象的()来实现的。A、分类性 B、继承性C、封装性 D、共享性49、在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的_。A、安全性 B、健壮性 C、可用性 D、可靠性50、软件项目管理是(
11、)一切活动的管理。、需求分析 、软件设计过程、模块控制 、软件生命周期51、甘特图是一种()。A、UML模型 B、过程模型C、系统构架的抽象模型 D、进度计划的表达方式52、下列选项中,属于软件配置管理的任务的是()。A、人员的分工 B、估算软件项目的成本 C、对软件阶段产品进行评审 D、对程序、数据、文档的各种版本进行管理53、下列说法中,不正确的是()。A、功能点度量方法与程序设计语言有关 B、功能点度量方法适合于过程式语言 C、功能点度量方法适合于非过程式语言 D、功能点度量方法适合于软件项目估算二判断题54、软件开发的主要任务是写程序。()55、快速原型模型可以有效地适应用户需求的动态
12、变化。()56、软件是指用程序设计语言编写的程序,软件开发实际上就是编写程序代码。()57、软件危机是指在软件开发和维护过程中遇到的一系列严重问题。()58、系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。()59、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。()60、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。()61、在进行总体设计时应加强模块间的联系。()62、软件模块之间的耦合性越弱越好。软件开发的主要任务是写程序。()63、模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度
13、的软件产品。()64、模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。()65、程序设计语言中应绝对禁止使用GOTO语句。()66、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。()67、边界值分析方法是取输入/输出等价类的边界值作为测试用例。()68、白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。()69、白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。()70、当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。()71、一个好的测试用例在于能发现至今未发现的错误。()72、如果通过软件测
14、试没有发现错误,则说明软件是正确的。()73、测试只能证明程序有错误,不能证明程序没有错误。()74、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。()75、黑盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。()76、发现错误多的程序模块,残留在模块中的错误也多。()77、集成测试主要由用户来完成。()78、软件维护就是改正软件中的错误。()三名词解释79、软件危机 80、软件工程 81、快速原型82、数据流图83、数据字典 84、模块化 85、内聚86、耦合87、软件宽度88、软件深度:89、软件扇入90、软件扇出软件危机是指在计算机软件的开发和维护过程中所遇到的一系
15、列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件工程是采用工程的概念、原理、技术和方法来开发与维护软件一门工程学科,从而经济地开发出高质量的软件并有效地维护它快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。模
16、块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。是衡量一个模块内部各个元素彼此结合的紧密程度。内聚要高,每个模块完成一个相对独立的特定子功能。理想内聚的模块只做一件事情。是对一个软件结构内不同模块之间互连程度的度量。耦合要低,即每个模块和其他模块之间的关系要简单;是软件结构中同一层次上的模块总数的最大值。表示软件结构中控制的层数,它往往能粗略地标志一个系 统的大小和复杂程度。有多少个上级模块直接调用它。一个模块直接控制(调用)的模块数目。三名词解释91、黑盒测试92、白盒测试93、逻辑覆盖的种类94、软件
17、调试95、软件维护 96、类97、对象98、封装性99、继承100、软件质量黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。白盒测试(结构测试),把程序看成装在一个透明的盒子里,测试者完全知道程序的结构和处理算法,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条
18、件组合覆盖、点覆盖、边覆盖是在测试发现错误之后排除错误的过程。软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。类就是对具有相同数据和相同操作的一组相似对象的定义(集合)。对象是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。封装就是指把对象的数据和实现操作的代码集中起来放在对象内部。继承是子类自动地共享基类中定义的数据和方法的机制。软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。四、综合题1、下面这个流图中,判定节点有哪些,该流图的环形复杂度是多少?2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。int GetMax(int n,int datalist)int k=0;for(int j=1;j datalistk)k=j;return k;(1)画出该程序的控制流图,并计算其McCabe环路复杂性。(2)用基本路径覆盖法给出测试路径。(3)为各测试路径设计测试用例。3、某个用户输入设定有如下规则:只能输入#或三位数字;假定设计的程序可接受所有符合规定的密码,请使用等价类划分法为其设计测试用例,并给出预期结果是有效还是无效。