窗体顶端
《软件工程》(课程代码02333)
第一大题:单项选择题
1、“软件工程的概念是为解决软件危机而提出的”这句话的意思是 【 】
• A.强调软件工程成功解决了软件危机的问题
• B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理
• C.说明软件工程这门学科的形成是软件发展的需要
• D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题
参考答案:C
2、瀑布模型的主要特点是 【 】
• A.将开发过程严格地划分为一系列有序的活动
• B.将开发过程分解为阶段
• C.提供了有效的管理模式
• D.缺乏灵活性
参考答案:A
3、在软件工程的需求分析阶段,不属于问题识别内容的是[ • A.功能需求
• B.性能需求
• C.环境需求
• D.输入/输入出需求
参考答案:D
4、画某系统的数据流图时,顶层图有[ ]
• A.0张
• B.1张
• C.2张
]
• D.3张及其以上
参考答案:B
5、软件模块内聚性最强的是[ ]
• A.功能内聚
• B.通信内聚
• C.偶然内聚
• D.逻辑内聚
参考答案:D
6、最早提出软件系统维护问题的阶段是 • A.可行性分析
• B.需求分析
• C.概要设计
• D.详细设计
】【
参考答案:B
7、SD(结构化设计)方法设计的结果是 【 】
• A.模块
• B.模块结构图
• C.模块的算法
• D.数据流图
参考答案:B
8、在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试 【 】
• A.单元测试
• B.系统羽4试
• C.集成测试
• D.确认测试
参考答案:A
9、软件详细设计阶段的任务是 【 】
• A.算法与数据结构设计
• B.功能设计
• C.调用关系设计
• D.输入/输出设计
参考答案:A
10、下列属于静态测试方法的是 【 】
• A.黑盒法
• B.路径覆盖
• C.白盒法
• D.人工检测
参考答案:D
11、Fortran语言主要作为以下哪个方面的语言 】【
• A.科学工程计算
• B.系统软件
• C.事务处理
• D.人工智能
参考答案:A
12、用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是 • A.顺序结构
• B.选择结构
• C.嵌套结构
• D.重复结构
参考答案:C
13、可维护软件的主要特性包括 【 】
• A.可理解性、可修改性、可移植性
】【
• B.可使用性
• C.可维护性、可使用性、可靠性
• D.可测试性
参考答案:A
14、程序设计语言不具有的特性是 【 】• A.心理特性
• B.工程特性
• C.应用特性
• D.技术特性
参考答案:C
15、下列不属于项目进度安排主要方法的是 • A.工程网络图
• B.Gantt图
】
【
• C.进度结构图
• D.任务资源表
参考答案:C
16、下列不属于通常冗余技术的是 【 • A.结构冗余
• B.信息冗余
• C.时间冗余
• D.代码冗余
参考答案:D
17、下列工具中,属于需求追踪工具的是 • A.在DBMS上的应用运行工具
• B.追踪和状态报告
• C.访问和版本控制机构
【 】】
• D.文件和修改管理
参考答案:A
18、关于软件测试的目的,下面观点错误的是 【 】
• A.为了发现错误而执行程序的过程
• B.一个好的测试用例能够发现至今尚未发现的错误
• C.证明程序是正确、没有错误的
• D.一个成功的测试用例是发现了至今尚未发现的错误的测试
参考答案:C
19、在制定项目开发计划文档时,不包含的内容是 【 】
• A.项目概述
• B.实施计划
• C.测试计划
• D.交付期限
参考答案:C
20、面向对象的开发方法中,以下哪种方法原是面向Ada语言的,并处于面向对象开发方法
的奠基性地位【 】
• A.Booch方法
• B.coad方法
• C.UML语言
• D.OMT方法
参考答案:A
21、
可行性研究要进行一次_____需求分析。
• A.详细的
• B.全面的
• C.简化的、压缩的
• D.彻底的
参考答案:C
22、
系统流程图用于可行性分析中的_____的描述。
• A.当前运行系统
• B.当前逻辑模型
• C.目标系统
• D.新系统
参考答案:A
23、
系统流程图是描述_____的工具。
• A.逻辑系统
• B.程序系统
• C.体系结构
• D.物理系统
参考答案:C
24、
_______工具在软件详细设计过程中不采用。
• A.判定表
• B.IPO图
• C.PDL
• D.DFD图
参考答案:D
25、
程序的三种基本控制结构是( )
• A.过程、子程序和分程序
• B.顺序、选择和重复
• C.递归、堆栈和队列
• D.调用、返回和转移
参考答案:B
26、
程序的三种基本控制结构的共同特点是( • A.不能嵌套使用
• B.只能用来写简单程序
• C.已经用硬件实现
• D.只有一个入口和一个出口
参考答案:D
27、
产生软件维护的副作用,是指( )
)
• A.开发时的错误
• B.隐含的错误
• C.因修改软件而造成的错误
• D.运行时误操作
参考答案:C
28、
维护中,因误删除一个标识符而引起的错误是_________副作用。
• A.文档
• B.数据
• C.编码
• D.设计
参考答案:C
29、
可维护性的特性中相互促进的是( )
• A.可理解性和可测试性
• B.效率和可移植性
• C.效率和可修改性
• D.效率和结构好
参考答案:A
30、
汽车有一个发动机。汽车和发动机之间的关系是_____关系。
• A.一般具体
• B.整体部分
• C.分类关系
• D.主从关系
参考答案:B
31、
在变更控制中,______可以用来确保由不同用户所执行的并发变更。
• A.异步控制
• B.同步控制
• C.存取控制
• D.基线控制
参考答案:B
32、
变更控制是一项最重要的软件配置任务,其中“检出”和的变更控制要素,即存取控制和同步控制。
• A.登入
• B.管理
• C.填写变更要求
• D.审查
______处理实现了两个重要
参考答案:A
33、
提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要( )
• A.消除错误
• B.检测错误
• C.避开错误
• D.容错
参考答案:D
34、
_____是以提高软件质量为目的的技术活动。
• A.技术创新
• B.测试
• C.技术创造
• D.技术评审
参考答案:D
35、
面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
• A.开发过程基于功能分析和功能分解
• B.强调需求分析重要性
• C.把对象划分成类,每个对象类都定义一组数据和方法
• D.对既存类进行调整
参考答案:C
36、
软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( )
• A.生存期
• B.面向对象设计
• C.面向对象程序设计
• D.面向对象分析
参考答案:D
37、
原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。
• A.需求不确定性高的
• B.需求确定的
• C.管理信息
• D.实时
参考答案:A
38、
原型化方法是一种_______型的设计过程。
• A.自外向内
• B.自顶向下
• C.自内向外
• D.自底向上
参考答案:A
39、
为了提高测试的效率,应该( )
• A.随机地选取测试数据
• B.取一切可能的输入数据作为测试数据
• C.在完成编码以后制定软件的测试计划
• D.选择发现错误可能性大的数据作为测试数据
参考答案:D
40、
使用白盒测试方法时,确定测试数据应根据_______和指定的覆盖标准。
• A.程序的内部逻辑
• B.程序的复杂结构
• C.使用说明书
• D.程序的功能
参考答案:A
第二大题:填空题
1、可行性研究从技术可行性、经济可行性 ( )三方面进行分析。
参考答案:社会可行性
2、结构化方法总的指导思想是 ( )逐层分解。
参考答案:自顶向下
3、在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为( )
参考答案:偶然内聚
4、软件部件的内部实现与外部可访问性分离,这是指较件的( )
参考答案:封装
5、用来模拟被测模块的上级调用模块的模块称为 ( )
参考答案:驱动模块
6、软件工程管理的具体内容包括对开发人员、组织机构、用户和( )等方面的管理。
参考答案:文档资料
7、增量模型根据增量方式和形式的不同,分为( )和原型模型。
参考答案:渐增模型
8、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( )情况。
参考答案:信息流动
9、成本效益分析的目的是从( )角度评价开发一个项目是否可行。
参考答案:经济
10、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和( ) 。
参考答案:宽度优先策略
11、独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条( )的边的路径。
参考答案:在其他独立路径中未有过
12、汇编语言是面向( ) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
参考答案:机器
13、在JSP方法中解决结构冲突的具体办法是( )。
参考答案:中间数据结构或中间文件
14、详细设计的任务是确定每个模块的内部特性,即模块的算法、( )。
参考答案:使用的数据
15、所有软件维护申请报告要按规定方式提出,该报告也称( )报告。
参考答案:软件问题
16、有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的( )技术。
参考答案:维护支援
17、
科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:( )、PASCAL语言、C语言和PL/1语言。
参考答案:FORTRAN语言
第三大题:名词解释题
1、过程设计语言(PDL)
参考答案:也称程序描述语言,又称为伪码,是一种用于描述模块算法设计和处理细节的语言。
2、可移植性
参考答案:指程序从一个计算机环境移植到另一个计算机环境的容易程度。
3、渐增式测试
参考答案:是把未经过测试的模块逐个组装到已经过测试的模块上进行集成测试,(2
分)每增加一个模块进行一次集成测试,重复此过程直至完成集成测试。(1分)
4、详细设计
参考答案:也称过程设计,是在概要设计的基础上,设计出软件各模块内部的详细算法,并精确地表达这些算法。(2分)一般采用过程设计的表达工具给出适当的算法描述。(1分)
5、条件覆盖
参考答案:指设计足够多的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。(意思符合加下划线部分即算对)
6、经济可行性
参考答案:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
7、社会可行性
参考答案:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
8、投资回收期
参考答案:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
9、对应关系
参考答案:即有直接因果关系在程序中可以同时处理。
10、结构冲突
参考答案:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
第四大题:简答题
1、软件生存周期可以为分几个阶段,每个阶段的提交物是什么?
参考答案: (1)可行性研究和项目开发计划,提交项目开发计划和可行性分析报告;
(2)需求分析,提交软件需求说明书;(3)概要设计,提交概要设计说明书;
(4)详细设计,提交详细设计说明=Pj;
(5)编码,提交源程序清单;
(6)测试,提交测试报告:
(7)维护,提交维护报告。
(1点1分,答对5点以上可得满分)
2、结构化分析的描述工具有哪些?简述结构化分析的步骤
参考答案:结构化分析的描述工具有:(1)数据流图,(2)数据字典,(3)描述加工逻辑的结构化语言、判定表、判定树。(1分)
结构化分析的步骤有:
(1)了解当前系统的工作流程, 获取当前系统的物理模型; (1分)
(2)抽象出当前系统的逻辑模型;(1分)
(3)建立目标系统的逻辑模型;(1分)
(4)作进一步补充和优化。.(1分)
3、什么是黑盒测试法?常用的黑盒测试方法有哪些?
参考答案:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。(1分)黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。(2分)
常用的黑盒测试方法有等价类划分、边界值分析、错误推测、因果图。(2分,每答对两个1分)
4、简述面向对象的特征
参考答案:
(1)对象唯一性:每个对象都有自身唯一的标识,通过这种标识,可以找到相应的对象。(1分)
(2)分类性:分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。(1分)
(3)继承性:继承性起子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。(1分)
(4)多态性:多态性是指相同的操作或函数,过程作用于多种类型的对象上并获得不同的结果。不同的对象收到同一消息可以产生不同的结果。(2分)
5、可行性研究报告的主要内容有哪些?
参考答案:
答:一个可行性研究报告的主要内容如下:
(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:可行性研究前提。说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
6、系统设计的内容是什么?
参考答案:
答:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一
个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
7、
什么是软件危机?软件危机的表现是什么?其产生的原因是什么?
参考答案:
答:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:
(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到
明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。
(3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。
(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。
造成软件危机的原因是:
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
(6)开发工具落后,生产率提高缓慢。
8、软件质量保证应做好哪几方面的工作?
参考答案:
答:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:
(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。
因篇幅问题不能全部显示,请点此查看更多更全内容