软件工程练习题
- 格式:doc
- 大小:466.50 KB
- 文档页数:13
《软件工程》练习题一、填空题1.软件主要包括程序、数据和文档三部分内容。
2.目前使用最广泛的软件工程方法学是传统(结构化方法)方法和面向对象方法。
3.软件可行性研究的任务是从技术、经济和社会可行性三个方面分析软件项目的可行性。
4.软件测试的目的是找出软件潜在的错误和缺陷;通常把软件测试方法分为黑盒测试(功能测试)和白盒测试(结构测试)两大类。
5.软件测试中,测试用例由输入数据和预期的输出结果两部分组成。
6.典型的软件生命周期模型(软件过程模型)包括瀑布模型、快速原型模型和增量模型、螺旋模型、喷泉模型等。
7.模块A调用模块B以查询学生成绩,模块A通过参数向模块B传送所查询学生的学号,模块B通过参数向模块A返回学生的考试成绩。
模块A和模块B之间的耦合类型属于数据耦合。
8.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的重写。
9.测试软件中的模块时,通常需要为被测模块设计辅助模块,辅助模块的名称分别是驱动模块和桩模块。
10.软件生存期中时间最长的是_软件维护阶段。
11.结构化分析方法中,功能模型用DFD 描述;数据模型用E-R 描述。
12.过程设计(详细设计)中,常用的描述工具有图形、表格和语言三类。
13.在模块结构图中,直接调用某一模块的其他模块数称为该模块的扇入数。
14.面向对象分析(OOA)方法中,必须定义对象间的通信机制,对象间通信是通过消息传递机制来实现的。
15.面向对象方法用对象分解取代了结构化方法的功能分解。
16.写出下列各对事物之间的关系(继承、聚集、一般关联):交通工具——汽车的关系是:继承;书——读者的关系是:一般关联;班级——学生的关系是:聚集;多边型——线段的关系是:聚集。
17.面向对象设计(OOD)阶段,可以将面向对象的设计内容划分为四部分,分别是:人机界面部分、问题域部分、任务管理部分和数据管理部分。
18.UML的中文含义是统一建模语言;CASE的中文含义是用例。
二、选择题1.需求分析阶段,开发人员需从用户那里获得的最重要信息是( ) 。
A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构2.数据流图中的每个处理至少有()。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流3.软件测试中,白盒法是通过分析程序的()来设计测试用例的。
A、应用范围B、内部逻辑C、功能D、输入数据4.有一个计算程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是( )A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法5.关于单元测试,正确的是( ) 。
A.单元测试的依据是概要设计说明书B.单元测试中不需要使用白盒测试法C.单元测试包括模块接口测试D.单元测试时不需要辅助模块6.银行计算机储蓄管理信息系统中,根据客户提出的要求(如存款、取款、查询、挂失、咨询等)进行相应的业务处理的该层数据流图是()A.变换型B.事务型C.既不是A也不是BD.不一定7.软件详细设计的主要任务是确定每个模块的()。
A.算法和使用的数据结构B.外部接口C.功能D.编程语言8.()表示了类之间的“一般__特殊”关系。
A.聚集B.关联C.消息传递D.继承9.面向对象开发方法定义了三种模型来描述系统,()可以用状态图来表示。
A.对象模型B.功能模型C.动态模型D.类模型10.对象的内部实现与外部可访问性的分离体现了对象的();A.继承性B.共享性C.封装性D.抽象性11.结构化分析方法用数据流图描述()。
A.系统的控制流程B.系统的数据结构C.系统的基本加工D.系统的功能12.在面向数据流的设计方法中,一般把数据流图划分为()两种类型。
A.数据流和事务流B.变换流和数据流C.变换流和事务流 D.控制流和事务流13.产生软件危机的主要原因有()。
①软件本身的特点②用户使用不当③硬件可靠性差④程序员水平⑤缺乏好的开发方法和管理手段A. ③④B. ①②④C. ①⑤D. ①③14.软件测试中,黑盒法是根据程序的()来设计测试用例的。
A、应用范围B、内部逻辑C、功能D、输入数据15.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。
这种协同在模型中是以表明对象通信方式的一组()连接来实现的。
A.消息B.记录C.数据D.属性16.用黑盒法设计测试用例时采用的方法包括()。
A.判定覆盖法B.条件覆盖法C.等价分类法D.路径分析法17.有关集成测试的叙述中,()是正确的。
A.测试底层模块时不需要桩模块B.自底向上测试方法有利于提前预计测试结果C.驱动模块的作用是模拟被调模块D.自顶向下测试方法易于设计测试用例18.现有一个程序,它的输入只有一个整型数Y,其范围是-50≤Y≤50。
现从输入角度考虑设计了一组测试用例:-100,100,0。
设计这组测试用例的方法是()。
A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法19.在面向对象软件方法中,“类”是()。
A.具有同类数据的对象的集合B.具有相同操作的对象的集合C.具有同类数据的对象的定义D.具有同类数据和相同操作的对象的定义20.面向对象开发方法定义了三种模型来描述系统,()可以用数据流图来表示A.对象模型B.功能模型C.动态模型D.数据模型21.软件开发中,阶段评审是非常重要的环节,其主要目的和作用是()。
A.减少测试工作量B.避免后期付出高代价C.保证软件质量D.缩短软件开发周期22.在综合瀑布模型和快速原型模型优点的同时,螺旋模型还增加了新的阶段——()。
A. 风险分析B. 用户评价C. 版本控制D. 成本估算23.数据流是数据流图的基本成分,下列关于数据流的叙述中,()是正确的。
A.某加工的输入是一个数据流,该加工的输出也必定是一个数据流B.多个不同的数据流可以流向一个加工,也可从一个加工中流出。
C.数据流只能从加工流向数据存储,但不能从数据存储流向加工D.一个数据流可以从一个数据存储流向另一个数据存储24.在分层数据流图中,若某层的加工K分解成下层的数据流图L,则( )。
A.K与L的输入、输出数据流不一定相同B.K与L的输入数据流必须相同、输出数据流不一定相同C.K与L的输入、输出数据流必须相同D.K与L的输入数据流可以不同、输出数据流必须相同25.数据流图所描述的是实际系统的()。
A.逻辑模型B.物理模型C.程序流程D.数据结构26.为了提高模块的独立性,模块内部最好是()。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚27.由变换型数据流图转换成模块结构图,其中包括变换模块,则()。
A.变换模块就是主模块B.变换模块的功能是将逻辑输入变换为逻辑输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量28.为了提高软件测试的效率,应该()。
A、在完成编码以后制定软件的测试计划B、取一切可能的数据作为测试数据C、选择发现错误可能性大的数据作为测试用例D、随机地选取测试数据29.只有当(),才是结束测试的时候。
A.测试阶段结束后B.设计阶段完成后C.集成测试阶段结束后D.软件产品停止使用后30.从下列叙述中,选择能够与软件需求分析、设计、编码阶段相对应的软件测试:()。
A.集成测试、确认测试、单元测试B.单元测试、集成测试、确认测试C.单元测试、确认测试、集成测试D.确认测试、集成测试、单元测试31.面向对象分析(OOA)的主要活动不包括()。
A.确定对象B.确定属性C.确定关联D.确定方式32.面向对象分析(OOA)中,动态建模的内容不包括()。
A、设计脚本B、划分主题C、画事件追踪图D、画状态转换图33.软件生存周期中时间最长的是()阶段。
A.需求分析B.概要设计C.测试D.维护三、概念解释1.软件:程序、数据、和相关文档的集合;用于实现计算机系统所需要的逻辑方法、过程和控制。
2.软件危机:计算机软件开发和维护过程中遇到的一系列严重问题3.软件生命周期:软件从定义、开发、运行维护,直到最终被废弃要经过一个漫长的时期4.需求分析:发现、求精、建模、规格说明和复审的过程。
5.概要设计:通过仔细分析软件需求规格说明,确定组成系统的模块及各模块之间的关系,设计出完成预定功能的模块结构(软件结构),并建立接口。
详细设计:详细的设计每个模块,即确定完成每个模块功能所需要的算法和数据结构6.模块化:将程序划分成独立命名且可独立访问的若干模块,每个模块完成一个子功能;将模块集成起来构成一个整体,完成指定的系统功能。
信息隐藏:一个模块内柏寒的信息对于不需要这些信息的模块来说,是不能访问的。
7.耦合:一个软件结构内不同模块家之间的互连程度。
内聚:一个模块内各个元素彼此结合的紧密程度。
8.对象:是客观世界中事物的抽象表示;是其属性(状态、数据)和相关操作(行为、方法或服务)的封装体类:是对具有相同属性和相同操作的一组相似对象的抽象描述。
9.消息:是对象之间进行通信的机制;是要求某个对象执行其操作的规格说明消息传递:一个对象向另一个对象发送消息时,接收消息的对象经过解释、给予响应,这种对象之间进行通信的机制称为消息传递。
10.继承:子类(新类)自动的共享父类(已有类)中定义的数据和操作的机制。
多态性:在一个类层次中,不同对象对相同消息做出的不同响应。
11.软件重用:在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。
12.软件测试:根据软件开发各阶段的规格说明和程序的内部结构而设计一批测试用例,并利用这些测试用例去运行程序,以法现设计和程序错误的过程。
13.黑盒测试:在程序接口进行的测试,他它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,病保持外部信息(如数据库或文件)的完整性。
白盒测试:按照程序内部的逻辑测试,检查程序中的每条通路是否能按照预定要求工作。
14.单元测试:集中对源代码实现的每一个程序模块进行测试;集成测试:把模块装配(即集成)在一起形成完整的软件包,在装配的同时进行测试,同时解决程序验证和程序构造这两个问题;确认测试:在软件集成完成之后,必须测试在需求分析阶段确定下来的确认标准,确认测试是对软件满足所有功能的、行为的和性能的需求的最终保证。
15.驱动模块:相当于被测试模块的上级调用模块;接收测试数据并传给被测模块;输出实测结果。
存根模块(桩模块):代替被测试模块调用的子模块;桩模块使用被它代替的模块的接口,可能做最少量的数据操作。
四、简答题1.什么是软件危机?其产生的原因是什么?如何消除软件危机?答:计算机软件开发和维护过程中遇到的一系列严重问题。