第一篇:《软件工程》期末考试模拟练习题
期末考试模拟练习题
一、填空题
1、用软件工程的观点看,软件=__程序____+____数据____+___系列文档__。
2、软件是计算机系统中与硬件相互依存的部分,它是包括_____程序_____,_____数据
____和___系列文档___的完整集合。
3、可行性分析的内容包括四个方面:__技术可行性_____,_经济可行性__,_操作可行
性____和___法律可行性__。
4、软件开发的结构化分析方法中,数据加工是组成内容之一。常用的加工说明的描述
方法有__结构化语言___、_____判定树____和____判定表__。
5、面向数据流的软件设计方法,一般将数据流图分成两种类型,一种称为__变换型___,另一种称为_事务型_。
6、内聚和耦合是模块独立性的重要度量,内聚是指__模块内部各软件元素之间结合的紧密程度___,耦合是指__度量一个软件结构中模块与模块之间联系程度强弱的一个指标__,从设计策略讲,模块的分解应遵循____高___内聚____低___耦合的原则。
7、程序设计语言的三个特性分别是_工程特性__,__技术特性__,_心理特性__。
8、大型软件系统的测试基本上由以下几个步骤组成,分别是__单元测试__,__集成测
试___,_确认测试___,_系统测试__和__验收测试___,其中需要最终用户参与的测试为___验收测试和系统测试__。
9、白盒子测试技术是从程序内部的逻辑结构及处理过程入手来设计测试用例,故
又称为__结构测试__测试;而黑盒子测试技术则相反,它是以需求规格说明书为根据来设计测试用例,故又称为__功能测试__测试。
10、软件维护的类型分为4种,分别是_改正性维护_,__适应性维护_,___完善性维
护_,___预防性维护_。
11、在软件运行中发生异常或故障时进行的维护工作称为__改正性维护___维护。在软
件的使用过程中,根据用户提出的新增系统功能和改善性能的要求而对软件进行修改或再开发,以扩充软件功能、增强软件性能、改进加工效率、提高软件质量的工作成为____完善性维护__维护。
12、面向对象就是运用___对象___、___类____、____继承______、___封装____、___消息____等面向对象的概念对问题进行分析,求解的系统开发技术。
13、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),它要求
把分析时收集的信息建立在3个模型中。第一个模型是__对象模型__,它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们之间的联系。第二个模型是_动态模型_,它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。第三个模型是_功能模型_,它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。
14、在软件研制过程中,CASE是指__计算机辅助软件工程_。
15、面向对象的软件开发方法中,UML指__统一建模语言_。
二、选择题
1、瀑布模型将软件生命周期划分为计划、开发和运行三个时期。在下述工作中,属于
软件开发期的内容是_D___。
I 需求分析II 可行性分析III 结构设计
A)都是C)只有I
B)I和IID)I和III2、软件计划的目的是提供一个框架,使主管人员对项目能在短时间内进行合理的估价。
在下述内容中,不属于计划期的内容是_C___。A)资源需求
C)功能需求
B)成本估算D)项目进度
3、数据流图是用于软件需求分析的工具,下列元素中_C____是数据流图的基本元素。
I 数据流II 数据加工III 数据存储IV 外部实体 A)I、II和III C)全部
B)I和IIID)I、III和IV4、软件开发的结构化分析方法中,数据加工是组成内容之一。在下列方法中,常采用
编写加工说明方法的是__D__。
I 结构化语言II 判定树III判定表A)只有I
B)只有IID)都是
C)II和III5、软件工程的结构化分析方法强调的是分析开发对象的__A___。
A)数据流
B)控制流D)进程通信
C)时间限制
6、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于___A___系统。
A)需求不确定性高的C)管理信息
B)需求确定的 D)决策支持
7、软件的设计分两个阶段,即结构设计和详细设计,结构设计又称为_B__。
A)逻辑设计C)规划设计
B)总体设计 D)抽象设计
8、模块本身的内聚是模块独立性的重要度量因素之一,7类内聚中具有最强内聚的一
类是_D___。
A)顺序性内聚C)逻辑性内聚
B)过程性内聚 D)功能性内聚
9、软件测试的对象是___C___。A)程序
B)文档 D)模块算法
C)程序和各个软件配置项
10、成功的测试是指___B___。
A)运行测试实例后未发现错误项
C)证明程序正确
B)发现程序中的错误 D)改正程序中的错误
11、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现在从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是__A_。A)边界值分析法C)条件覆盖法
B)等价分类法 D)错误推测法
12、因计算机硬件和软件环境的变化而做出的修改软件的过程称为______C______维
护。在软件维护类型中占全部维护活动一半以上的是______________维护。
I 改正性维护A)I,II
II 适应性维护 B)II,I
III 完善性维护 C)II,III
IV 预防性维护 D)II,IV13、在面向对象分析中,下列各项可列入类的实例的是____D_。
I 学生II 网上购物III白马IV 张三A)I 和 II
B)II 和IV D)都是
C)II、II、IV14、下列哪些问题是项目管理工作应该重点考虑的___C___。
I 风险分析和管理IV软件项目计划
II 项目进度安排V 软件配置管理
III 软件需求分析 VI软件测试
A)III,VIB)III,IV,VIC)I、II、IV、VD)都是
15、软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据而且
也影响软件的_B____。
A)可理解性
B)可维护性 D)可移植性
C)可扩展性
第二篇:软件工程 练习题
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
软件工程
练习题
1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高的原因导致了(软件危机)
2.面向对象的程序设计特征有(多态 继承 封装)
3.程序的三种控制结构(顺序结构
选择结构
循环结构)4.白盒测试技术有(语句覆盖
判断覆盖
条件覆盖
条件组合 判断/条件覆盖)
5.数据字典是用来定义(数据流图)中的各个成分的具体含义的6.结构化分析方法(SA)的一个重要指导思想是(自顶向下,逐步分解)7.jackson设计方法是由英国的M.jackson提出的,它是一种面向(数据结构)的软件设计方法
8.瀑布模型突出的缺点是不适应(用户需求)的变动
9.汽车有一个发动机,汽车与发动机的关系属于(整体与部分)关系 10.进行需求分析可使用多种工具,但(PAD图)是不适用的 11.软件结构中两个模块之间有调用关系,传递简单数值相当于高级语言中的值传递,这两个模块之间的耦合是(数据耦合)12.总体设计的目的是确定整个系统的(功能及模块结构)13.程序的三种基本结构的共同特点是(只有一个入口和一个出口)14.白盒测试的方法一般适用于(单元)测试
15.软件配置管理包括(变动控制 配置显示
配置审计)
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
16.使用白盒测试方法时,确定测试数据应根据(程序的内部逻辑)和指定的覆盖标准
17.软件测试方法有(白盒测试
黑盒测试
动态测试
功能测试)18.软件结构图的形态特征能反映程序重用率的是(扇入)19.为了提高模块的独立性,模块的内部最好的是(功能内聚)20.软件开发过程中,抽取盒整理用户需求建立问题及模型的过程叫(面向对象分析)
21.完成系统逻辑模型的开发阶段是(分析设计)22.属于软件开发工具的是(报表生成器)
23.系统可行性研究主要从(技术可行性
经济可行性
操作可行性)几个方面进行
24.数据字典定义数据流或数据存储组成时,使用了若干符号,其中(.....)的含义是(或)
25.划分模块时(作用范围在其控制范围之内)
26.(模块)是指具有相对独立的、由数据说明、执行语句等程序对象构成的集合
27.软件工程方法的目的是:使软件生产规范化和工程化,而软件工程的方法得以实施的主要保证是(软件开发工具和软件开发环境)28.(螺旋模型)引入了“风险驱动”思想,使用于大规模的内部开发项目
29.构造原型时,主要考虑(原型要体现的特征)
30.数据字典是软件需求分析阶段最重要的工具之一,最基本的功能
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
是(数据定义)
31.面向数据流的设计方法把(数据流)映射成软件结构 32.内聚程度最低的是(偶然)内聚
33.软件需求规格说明的内容不应包括(算法的详细描述)34.在E-R模型中,包含的基本成分是(实体
联系
属性)35.详细设计的基本任务是确定每个模块的(算法)设计
36.面向对象的设计方法主要是建立三类模型,即(对象模型
动态模型
功能模型)
37.面向对象(00)由(对象+类+继承+消息)组成 38.软件维护组织成员不包括(编程人员)39.(代码行技术)定量估算。源程序行数
40.软件生存中期由(分析
设计
实现)三个时期组成41.软件开发环境的目标是(提高软件成产率和提高软件质量)42.信息建模的核心概念是(和)43.数据流可分为(变换型和事务型)
44.面向对象设计主要包括(系统结构)设计、系统信息量设计和(数据结构)设计和划分程序阶段
45.在数据流图中,没有任何具体的物理元素,它仅仅描述数据在系统中的(流动和处理)的情况
46.模块独立性可通过(内聚和耦合)两方面来衡量
47.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个(自低向上)的集成过程
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
48.常见的软件开发模型有(瀑布
圆形
螺旋)三种
49.从软件工程管理的角度,软件设计分为(概念设计和详细设计)两步完成
50.概要设计过程由(确定设计方案和结构设计)两个阶段组成 51.动态测试既可以采用(白盒测试)对模块进行逻辑测试,又可以用(黑盒)做功能测试
52.类之间的结构关系主要有两种,(一般与特殊结构关系和整体与部分结构关系)
53.(工程网络技术)能显示地表示各个作业彼此间的依赖关系,从中容易事变出来关键路行和关键任务
54.自顶向下结合的渐增式测试方法,在组合模型时有两种组合策略(深度优先和宽度优先)策略
55.模块是一般具有如下三个属性(功能)描述该模块实现什么功能,(逻辑)描述模块内部怎么做,(状态)描述该模块使用条件和环境 56.为了便于对照检测,测试用例应由(输入数据和预期输出结果)两部分组成
57.(软件测试阶段)是在软件投入运行前对软件需求分析,软件设计规格说明和软件编码进行查错和纠错
58.软件维护的四类维护活动是(完善
预防
适应性
改正)维护
59.软件系统中常用(数据文件)存放数据,供系统中各模块共享系统外部做通信用,其设计主要是(数据格式)设计
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
60.(模块)是指具有相对独立性的,由数据说明,执行语句等程序对象构成的集合
61.类是一组具有(相同数据结构和相同数据类型)的对象集合 62.影响软件可维护性的因素主要有(可理解性
可测试性
可修改性
可移植性
可使用性)
63.确认测试可以发现软件系统是否符合用户的(功能和性能)需求的
64.从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件影响最大的是(需求分析)阶段
65.模块内聚最好的是(功能内聚)最差的是(偶然内聚)66.软件文档可分为(用户文档和系统文档)两类
67.成本--效益分析的目的是从(经济)角度评价开发一个新软件项目是否可行
68.(系统流程图)中各个元素表达了系统中各种元素之间(信息流动)情况 简答
1.软件危机产生的原因 软件日益复杂和庞大 软件开发管理困难复杂 软件开发技术落后 生产方式落后 开发工具落后
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
软件开发费用不断增加
2.结构化设计步骤
对数据流图进行复审,必要时修改或细化 根据流图确定软件结构属于变换型还是事务型 把数据流图映射成初始结构图 改进结构图,使设计更完善 3.结构化程序设计的主要思想 自顶向下,逐步求精的设计方法
使用三种基本控制结构,单入口、单出口来构造程序 4.决定软件可维护性的因素 系统大小,系统年龄 结构合理性,模块化 层次组织 系统文档结构 命令的格式和约定 程序的复杂性等等
5.数据字典与数据流图的关系
数据字典与数据流图相辅相成,互相配合,分析员应遵守以下约定,有关数据流向在数据流图中,数据组成在数据字典中描述,有关数据的加工细节在数据字典中描述,编写数据字典时不能遗漏和重复 6.软件测试和调试的目的的区别 测试的目的是判断和发现软件是否有错
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
调试的目的是定位软件错误并纠正 7.如何提高程序的可维护性 建立明确的软件质量目标和优先级 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档
8.静态测试和动态测试的区别
静态分析技术不执行被测试软件,可对需求分析说明书、软件设计说明书、源程序...9.需求分析与软件设计二个阶段的任务主要区别是什么 需求分析定义软件的用户需求即做什么 软件设计定义软件实现细节即研究如何实现软件 10.软件测试目的
发现程序错误而执行程序的过程
好的测试方案是极可能发现迄今为止尚未发现的错误 成功的测试方案是发现至今未发现的错误的测试 11.文档在软件工程中的作用 提高过程能见度 提高开发效率
作为阶段工作成果和结束标志 记录有关信息便于使用于维护 提供运行、维护、培训的有关资料
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
12.软件测试步骤,说明这些步骤的测试对象是什么 单元测试
对象是段远模块
集成测试
对象是组装后的程序模块 确认测试
对象是可运行的目标软件系统
精心收集
精心编辑 精致阅读
如需请下载!
第三篇:软件工程练习题
练习题
一、判断题
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(错)2.软件的模块数越少,其软件成本越低。(错)3.JAVA语言编译器是一个CASE工具。(对)。
4.发现错误多的程序模块,一般残留在模块中的错误也多。(对)
5..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(错)
6.软件模块之间的耦合性越弱越好。(对)7.数据库设计说明书是一个软件配置项(对)8.软件测试就是程序测试。(错)
9.PDL的语法是开放式的,其内层语法是确定的,而外层语法则不确定。(错)10.根据编程规范,在对方法命名时, 方法名称的第一个单词常常采用一个名词。(错)11.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错)
12.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。13.过程描述语言可以用于描述软件的系统结构。(错)
14.如果通过软件测试没有发现错误,则说明软件是正确的。(错)
15.快速原型模型可以有效地适应用户需求的动态变化。(对)
16.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对)
17.集成测试主要由用户来完成。(错)
18.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。(对)19.确认测试计划应该在可行性研究阶段制定(错)
20.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)
21.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)
22.一个好的测试用例在于能发现至今未发现的错误。(对)
23.在可行性研究中最难决断和最关键的问题是经济可行性。(╳)24.耦合是指一个模块内各个元素彼此结合的紧密程度。(╳)25.一个好的测试用例在于能发现至今未发现的错误。(√)
26.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。(√)27.集成测试时,一般希望较早地发现系统功能的错误,所以经常采用自底向上的渐增式测试。(错)28.程序要能直截了当地说明程序员的用意。(对)
29.编程作业中,代码的检查是对程序进行动态分析。(错)30.概要设计阶段完成的主要文档是概要设计说明书。(√)
31.发现错误多的程序模块,一般残留在模块中的错误也多。(对)32.在做程序的单元测试时,一般桩模块比驱动模块容易编写。(错)
33.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。(╳)34.代码版本控制的优点之一是能获得版本控制工具中保存的任何版本。(√)35.在设计模块时,其宽度和深度要适当。(对)
36.37.38.39.40.程序设计语言中应绝对禁止使用GOTO语句。(╳)类是关于对象性质的描述,由方法和数据组成。(√)
随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。(√)为保证程序的安全,必须做到程序中没有任何错误存在,即容错。(╳)如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√)
41.功能性注释嵌在源程序体中,用以解释其后的语句或程序段是在怎么做。(错)42.模块耦合的强弱取决于模块间接口的复杂程度。(对)
二、名字解释: 1.软件: 2.软件危机: 3.软件工程: 4.软件生命周期: 5.软件过程: 6.瀑布模型: 7.快速原型模型: 8.增量模型: 9.螺旋模型: 10.抽象: 11.模块化: 12.逐步求精: 13.耦合: 14.内聚: 15.模块独立: 16.信息隐蔽: 17.结构程序设计: 18.测试用例: 19.单元测试: 20.白盒测试: 21.黑盒测试: 22.对象: 23.等价划分:
三、选择题
1.软件工程的概念是哪年提出的()。A.1988 B.1968 C.1948 D.1928 2.瀑布模型的关键不足在于()。
A.过于简单 B.各个阶段需要进行评审 C.过于灵活 D.不能适应需求的动态变更 3.以下哪一项不是软件危机的表现形式()。
A.开发的软件不满足用户需要 B.开发的软件可维护性差 C.开发的软件价格便宜 D.开发的软件可靠性差
4.软件可行性研究实质上是要进行一次()需求分析、设计过程。A.简化、压缩的 B.详细的 C.彻底的 D.深入的
5.结构化设计是一种面向()的设计方法。A.数据流 B.模块 C.数据结构 D.程序
6.与确认测试阶段有关的文档是()。
A.需求规格说明书 B.概要设计说明书 C.详细设计说明书 D.源程序
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.注释在源代码中的比例至少为25%.D.注释信息不仅要包括代码的功能,还应给出原因。
14.()有效地检测输入条件的各种组合可能会引起的错误。A.等价类划分 B.边界值分析 C.错误推测 D.因果图
15火车是一种陆上交通工具。火车和陆上交通工具之间的关系是()关系。A.组装 B.整体部分 C.has a D.一般特殊
16、软件维护产生的副作用,是指()
A、开发时的错误 B、隐含的错误 C、因修改软件而造成的错误 D、运行时误操作
17、使用程序设计的控制结构导出测试用例的测试方法是()A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
18、软件详细设计的主要任务是确定每个模块的()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、下列属于维护阶段的文档是()A、软件规格说明
B、用户操作手册
C、软件问题报告
D、软件测试分析报告
25、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()A、条件覆盖法
B、等价分类法
C、边界值分析法
D、错误推测法 26.如果一个程序常常需要根据多种条件的复杂组合,选择执行相应的动作,则以下哪种设计工具比较适合描述它?()
A.判定表
B.流程图
C.PDL
D.N-S图
28、经过严密的软件测试后所提交给用户的软件产品中()
A、软件不再包含任何错误 B、还可能包含少量软件错误 C、所提交给用户的可执行文件不会含有错误 D、文档中不会含有错误。
29、等价划分测试方法属于()
A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()A.可用性
B.可靠性
C.正确性
D.完整性
31、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()
A、集成测试 B、恢复测试
C、确认测试 D、单元测试
33、从心理学角度看,一次大模块分解为多少个子模块为宜。()
A、3±1 B、7±2 C、15±1 D、18±2
34、结构化程序设计主要强调的是()
A、程序的规模 B、程序的效率 C、程序设计语言的先进性 D、程序易读性
35、在用户界面层次上对软件进行测试属于哪种测试方法()
A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
36、对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。A、结合 B、隐藏
C、封装 D、抽象
37、()是比较理想的可重用软构件。
A.子程序库 B.源代码包含文件 C.对象 D.类
38、软件设计启发规则不包括()A.在耦合方式上降低模块间接口的复杂性 B.模块功能应该可以预测
C.将模块的控制域保持在其作用域内
D.设计单入口单出口的模块
39、软件生存周期中时间最长的是()阶段。
A、总体设计 B、需求分析 C、软件测试 D、软件维护
40、为了提高模块的独立性,模块之间的联系最好的是()。
A、公共耦合 B、控制耦合 C、内容耦合 D、数据耦合
41、软件概要设计结束后得到()
A、初始化的软件结构图 B、优化后的软件结构图 C、模块的接口图和详细算法 D、程序编码
42、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以()的编制是很重要的。
A、需求说明 B、概要说明 C、软件文档 D、测试计划
43、汽车有一个发动机,因而汽车与发动机之间的关系是()关系。
A、一般与特殊 B、整体与部分 C、分类关系 D、is a 关系
44、软件部件的内部实现与外部可访问性的分离,是指软件的()。
A、继承性 B、共享性 C、封装性 D、抽象性
45、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。
A、接口错误 B、编码错误
C、性能、质量不合要求 D、功能错误 46.模块的基本属性不包括()
A 功能 B 接口 C 独立性 D 逻辑
47、许多产品的质量问题源于新产品的开发设计阶段,因此在产品()阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患。
A、软件评审 B、软件测试 C、开发设计 D、软件度量
48、下列几种类型中,耦合性最弱的是()。
A、内容型 B、控制型 C、公共型 D、数据型
50.瀑布模型的关键不足在于
A、过于简单 B、不能适应需求的动态变更C、过于灵活 D、各个阶段需要进行评审
51.内聚程度最高的是()A功能内聚
B巧合内聚
C 过程内聚
D 信息内聚
52.以下哪一项不是软件危机的表现形式(3)(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证 53.以下哪一项不是面向对象的特征(4)
(1)多态性(2)继承性(3)封装性(4)过程调用 55.软件维护的副作用主要有以下哪几种(3)
(1)编码副作用、数据副作用、测试副作用(2)编码副作用、数据副作用、调试副作用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用
56.软件项目计划一般不包括以下哪项内容(4)
(1)培训计划(2)人员安排(3)进度安排(4)软件开发标准的选择和制定 58.以下哪种测试方法不属于白盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试 59.“软件危机”是指()A.计算机病毒的出现
B.利用计算机进行经济犯罪活动
C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统
61.为了提高模块的独立性,模块之间最好是()A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 62.下面关于PDL语言不正确的说法是()A.PDL是描述处理过程怎么做 B.PDL是只描述加工做什么 C.PDL也称为伪码
D.PDL的外层语法应符合一般程序设计语言常用的语法规则 63.详细设计与概要设计衔接的图形工具是()A.DFD图 B.程序图 C.PAD图 D.SC图 65.下列关于功能性注释不正确的说法是()A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态 B.注释用来说明程序段,需要在每一行都要加注释 C.可使用空行或缩进,以便很容易区分注释和程序 D.修改程序也应修改注释
66.下列关于效率的说法不正确的是()A.效率是一个性能要求,其目标应该在需求分析时给出
B.提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法 C.效率主要指处理机时间和存储器容量两个方面 D.程序的效率与程序的简单性无关 67.测试的关键问题是()A.如何组织对软件的评审 B.如何验证程序的正确性 C.如何采用综合策略 D.如何选择测试用例
68.结构化维护与非结构化维护的主要区别在于()A.软件是否结构化 B.软件配置是否完整 C.程序的完整性 D.文档的完整性
69.软件维护困难的主要原因是()A.费用低 B.人员少
C.开发方法的缺陷 D.得不到用户支持 70.可维护性的特性中,相互矛盾的是()A.可理解性与可测试性 B.效率与可修改性 C.可修改性和可理解性 D.可理解性与可读性
71.快速原型是利用原型辅助软件开发的一种新思想,它是在研究()的方法和技术中产生的。
A.需求阶段 B.设计阶段
C.测试阶段 D.软件开发的各个阶段
72.从目前情况来看,增量模型存在的主要问题是()A.用户很难适应这种系统开发方法 B.该方法的成功率很低
C.缺乏丰富而强有力的软件工具和开发环境
D.缺乏对开发过程中的问题和错误具有应付变化的机制 73.下列文档与维护人员有关的有()A.软件需求说明书 B.项目开发计划 C.概要设计说明书 D.操作手册 D.实现错误检测和错误恢复的程序
74.()是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。
A.质量检测 B.软件容错 C.软件维护 D.系统容错 78.软件开发过程来自用户方面的主要干扰是()A.功能变化 B.经费减少 C.设备损坏 D.人员变化
81.为了提高软件的可维护性或可靠性而对软件进行的修改称为()A.纠错性维护 B.适应性维护 C.完善性维护 D.预防性维护
82.面向维护的技术涉及软件开发的()阶段。A.设计 B.编码 C.测试 D.所有
83.用白盒技术设计测试用例的方法包括()A.边界值分析 B.条件组合覆盖 C.因果图 D.错误推测
84.软件测试的目的是()A.为了表明程序没有错误 B.为了说明程序能正确地执行 C.为了发现程序中的错误 D.为了评价程序的质量
85.针对软件需求分析所进行的软件测试是指()A.集成测试 B.确认测试
C.黑盒子测试 D.白盒子测试
87.结构化程序设计采用的三种基本控制结构是()A.顺序、分支、选择 B.选择、循环、重复 C.顺序、选择、循环 D.输入、变换、输出
88.在软件设计中详细描述处理过程常用的三种工具是()A.SA,SD,SP B.程序流程图,IPO,PAD C.SA,SC,SD D.图形,表格,语言
89.通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是()
A.通信、逻辑、顺序、时间 B.通信、时间、顺序、逻辑 C.顺序、通信、时间、逻辑 D.顺序、通信、逻辑、时间
90.在下列四种模块的耦合性中,信息隐蔽性能最好的是()A.控制耦合 B.内容耦合 C.标记耦合 D.数据耦合
91.结构化方法是一种()的软件开发方法。A.面向用户 B.面向数据结构 C.面向对象 D.面向数据流
92.需求分析是回答系统必须()的问题。A.做什么 B.怎么做 C.何时做 D.为谁做
93.在软件生产的(),使用的工具主要是机器语言和汇编语言。A.程序系统时代 B.软件工程时代 C.面向对象时代 D.人工智能时代
.维护中因删除一个标识符而引起的错识是 _________ 副作用。()A .文档 B .数据 C .编码 D .设计
98.软件维护的困难主要原因是()A .费用低 B .人员少
C .开发方法的缺陷 D .维护难
.用白盒法技术设计测试用例的方法包括()A .错误推测 B .因果图
C .基本路径测试 D .边界值分析
100.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们()
A .前者属于静态测试,后者属于动态测试 B .前者属于动态测试,后者属于静态测试 C .都属于静态测试 D .都属于动态测试
101.程序的三种基本控制结构的共同特点是()A .只能用来描述简单程序 B .不能嵌套使用 C .单入口,单出口 D .仅用于自动控制系统 102、代码版本控制的基本操作不包括()A.检入
B 检出
C.删除
D.更新
.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()
A .数据耦合 B .公共耦合 C .标记耦合 D .内容耦合 104 .软件设计的方法有多种,_________ 方法不属于面向数据流的设计方法。()
A .基于 Jackson 图的设计 B .基于 IDEF0图的设计 C .交换分析设计 D .事务分析设计 105.为高质量地开发软件项目,在软件结构设计时,必须遵循 _________ 原则。()
A .信息隐蔽 B .质量控制 C .程序优化 D .数据共享
107.螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。()
A .增量模型 B .专家系统 C .喷泉模型 D .变换模型
108.需求规格说明书的作用不包括()A .软件验收的依据
B .用户与开发人员对软件要做什么的共同理解 C .软件可行性研究的依据 D .软件设计的依据
109.数据字典是用来定义 _________ 中的各个成份的具体含义的。()A .流程图 B .功能结构图 C .系统结构图 D .数据流图
.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了()
A .软件危机 B .软件工程
C .程序设计革命 D .结构化程序设计
.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。A .结合 B .隐藏 C .封装 D .抽象 117 .软件调试技术包括()
A .边界值分析 B .演绎法 C .循环覆盖 D .集成测试 118 .瀑布模型的存在问题是()A .用户容易参与开发 B .缺乏灵活性
C .用户与开发者易沟通 D .适用可变需求
.软件测试方法中的静态测试方法之一为()A .计算机辅助静态分析 B .黑盒法 C .路径覆盖 D .边界值分析
.软件生命周期中所花费用最多的阶段是()
A .详细设计 B .软件编码 C .软件测试 D .软件维护 122 .程序的三种基本控制结构是()A .过程、子程序和分程序 B .顺序、选择和重复 C .递归、堆栈和队列 D .调用、返回和转移
.在详细设计阶段,经常采用的工具有()A . PAD B . SA C . SC D . DFD 124 .详细设计的结果基本决定了最终程序的()
A .代码的规模 B .运行速度 C .质量 D .可维护性 125 .需求分析中开发人员要从用户那里了解()
A .软件做什么 B .用户使用界面 C .输入的信息 D .软件的规模 126 .结构化程序设计主要强调的是()A. 程序的规模 B .程序的效率
C. 程序设计语言的先进性 D .程序易读性
.经济可行性研究的范围包括()
A .资源有效性 B .管理制度 C .效益分析 D .开发风险 129 .可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开 发的决策依据,因必须给出()的回答。A .确定 B.行或不行 C.正确 D.无二义 130 .需求分析阶段的任务是确定()A. 软件开发方法 B. 软件开发工具 C. 软件开发费 D.软件系统的功能
134.信息隐蔽概念与()这一概念直接的相关。A.模块的独立性 B.模块类型的划分 C.软件结构定义 D.软件生命周期
135.在软件的概要设计中,不使用的图形工具是()图。A.SC B.IPO C.PAD D.IDEF0
136.不属于详细设计的主要工具有()。A.IPO图 B.PAD图 C.PDL D.SC
137.不属于序言性注释的有()。A.模块设计者 B.修改日期
C.程序的整体说明 D.语句功能
138.单元测试阶段主要涉及()的文档。A.需求设计 B.编码和详细设计 C.详细设计 D.概要设计
139.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。
A.应用范围 B.内部逻辑 C.功能 D.输入数据
140.需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出()的过程。A.模块说明书 B.软件规格说明 C.项目开发计划 D.合同文档
141.数据耦合和控制耦合相比,则()成立。A.数据耦合的耦合性强 B.控制耦合的耦合性强
C.两者的耦合性相当 D.两者的耦合性需要根据具体情况分析 142.鱼是一种水生动物。鱼与水生生物之间的关系是()。A.分类关系 B.组装关系 C.整体成员关系 D.has a 146 .用白盒法技术设计测试用例的方法包括()A .错误推测 B .因果图
C .基本路径测试 D .边界值分析 147 .软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们()
A .前者属于静态测试,后者属于动态测试 B .前者属于动态测试,后者属于静态测试 C .都属于静态测试 D .都属于动态测试
.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()
A .数据耦合 B .公共耦合 C .标记耦合 D .内容耦合 150.为高质量地开发软件项目,在软件结构设计时,必须遵循 _________ 原则。()
A .信息隐蔽 B .质量控制 C .程序优化 D .数据共享
151 .螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。()
A .增量模型 B .专家系统 C .喷泉模型 D .变换模型
152 .需求规格说明书的作用不包括()A .软件验收的依据
B .用户与开发人员对软件要做什么的共同理解 C .软件可行性研究的依据 D .软件设计的依据
157.单元测试阶段主要涉及()的文档。A.需求设计 B.编码和详细设计 C.详细设计 D.概要设计
158.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。
A.应用范围 B.内部逻辑 C.功能 D.输入数据
159.需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出()的过程。A.模块说明书 B.软件规格说明
C.项目开发计划 D.合同文档
第四篇:软件工程期末考试试题
一,单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的横线上。
1.可行性研究要进行一次_____需求分析。
A.详细的 B.全面的 C.简化的、压缩的 D.彻底的 2.系统流程图用于可行性分析中的_____的描述。
A.当前运行系统 B.当前逻辑模型 C.目标系统 D.新系统 3.系统流程图是描述_____的工具。
A.逻辑系统B.程序系统C.体系结构D.物理系统 4._______工具在软件详细设计过程中不采用。
A.判定表 B.IPO图 C.PDL D.DFD图 5.程序的三种基本控制结构是
A.过程、子程序和分程序 B.顺序、选择和重复
C.递归、堆栈和队列 D.调用、返回和转移 6.程序的三种基本控制结构的共同特点是
A.不能嵌套使用 B.只能用来写简单程序
C.已经用硬件实现 D.只有一个入口和一个出口 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.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A.开发过程基于功能分析和功能分解 B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法 D.对既存类进行调整
16.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫()
A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析
17.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时 18.原型化方法是一种_______型的设计过程。
A.自外向内 B.自顶向下 C.自内向外 D.自底向上 19.为了提高测试的效率,应该()A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
20.使用白盒测试方法时,确定测试数据应根据_______和指定的覆盖标准。
A.程序的内部逻辑 B.程序的复杂结构 C.使用说明书 D.程序的功能
1.C[解析]软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。因此答案为C。
2.A[解析]可行性研究首先要确定项目的规模和目标,然后就需要对当前运行的系统进行研究了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。描述的对象是当前正在运行的系统,因此选择A。
3.C[解析]系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流动情况。是描绘物理系统的传统工具。
4.D[解析]详细描述处理过程常用三种工具:图形、表格和语言。其中图形工具有结构化流程图、盒图和问题分析图三种,答案中的判定表是用来表示复杂的条件组合与应做的动作之间的对应关系。IPO图用来描述每个模块输入/输出数据、处理功能及模块调用的详细情况。PDL是过程设计语言的缩写,也称程序描述语言,用于描述模块算法设计和处理细节的语言,这三种都可以在软件详细设计过程中使用,而DFD图则是数据流图,是以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,所以它只是一种功能模型,不能在详细设计过程中使用。
5.B[解析]程序的三种基本控制结构是顺序、选择和循环(重复)。子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。6.D[解析]程序的特点就是从一个入口开始,最终以一个出口结束,其间可以用顺序,选择和循环方式对程序的流向进行控制。三种结构可以写出非常复杂的程序,而且选择和循环都可以嵌套设计。
7.C [解析]因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用,包括编码副作用、数据副作用、文档副作用三种。只有答案C是正确的表述。
8.C[解析]编码副作用指的是在使用程序设计语言修改源代码时可能引入错误,比如删除或修改一个子程序、一个标号、一个标识符,改变程序代码的时序关系,修改文件的打开或关闭等。因此本题答案为C。
9.A [解析]软件的可维护性可用七个质量特性来衡量,分别是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这些特性的侧重点也不相同,有一些可维护特性是可以相互促进的,比如可理解性和可测试性,可理解性和可修改性,另外一些则是相互矛盾的,如答案中的B效率和可移植性、C中的效率和可修改性。至于D中的结构好则不属于可维护性的特征。
10.B [解析]类有两种主要的结构关系,即一般——具体结构关系和整体——部分结构关系。前者称为分类结构,用来描述现实世界中的一般化的抽象关系。后者称为组装结构,用来描述现实世界中的类的组成的抽象关系。汽车和发动机的关系很明显,应该属于整体——部分关系。
11.B[解析]变更控制包括建立控制点和建立报告与审查制度,其过程中的“检出”和“登入”处理实现了存取控制和同步控制,存取控制管理各个用户存取和修改一个特定软件配置对象的权限,同步控制可用来确保由不同用户所执行任务的并发变更。
12.A[解析]“检出”和“登入”处理实现了两个重要的变更控制要素。具体说明见上题。
13.D[解析]提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术,另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术
14.D[解析]技术评审是以提高软件质量为目的的技术活动,是对软件本身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动。
15.C[解析]面向对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性。其中分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类,每个类是具有相同性质的个体集合,而每个对象相关类的实例,对象彼此之间通过传递消息互相联系。16.D[解析]面向对象的分析的过程就是认识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模。因此本题答案为D。
17.A[解析]原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽略或者模拟实现,因此适用于需求不确定性高的系统。
18.A[解析]原型化方法的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出意见或建议,然后开发者再对原型进行改进。如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量。它是一种自外向内的设计过程 19.D[解析]软件测试是为了尽可能多的发现程序中的错误,尤其是发现至今尚未发现的错误。在选取测试用例时,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。
20.A[解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。二,填空题(本大题共10小题,每小题2分,共20分)
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的()情况。
22.成本效益分析的目的是从()角度评价开发一个项目是否可行。
23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和()。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条()的边的路径。
25.汇编语言是面向()的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
26.在JSP方法中解决结构冲突的具体办法是()。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、()。
28.所有软件维护申请报告要按规定方式提出,该报告也称()报告。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的()技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:()、PASCAL语言、C语言和PL/1语言。
21.解:信息流动[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
22.解:经济[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。
23.解:宽度优先策略[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.解:在其他独立路径中未有过[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.解:机器[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.解:中间数据结构或中间文件[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.解:使用的数据[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。
28.解:软件问题[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。29.解:维护支援[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。30.解:FORTRAN语言[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。
三,名词解释(本大题共5小题,每小题3分,共15分)
31.经济可行性
解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。[解析]对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。
32.社会可行性
解:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。[解析]社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。
34.对应关系 解:即有直接因果关系在程序中可以同时处理。[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
35.结构冲突 解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。四,简答题(本大题共4小题,每小题5分,共20分)
36.可行性研究报告的主要内容有哪些?
解:一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:可行性研究前提。说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
[解析]做软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个基本内容。
37.系统设计的内容是什么?
解:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。(7)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
[解析]系统设计是问题求解及建立解答的高级策略。必须制定解决问题的基本方法,系统的高层结构形式包括子系统的分解、它的固有并发性、子系统分配给硬软件、数据存储管理、资源协调、软件控制实现、人机交互接口。
38.什么是软件危机?软件危机的表现是什么?其产生的原因是什么?
解:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:
(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。(3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。
造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。
[解析]由于软件危机的出现,人们才开始用工程化的思想来开发软件,从此,软件生产才步入了软件工程时代。
39.软件质量保证应做好哪几方面的工作?
解:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:
(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。
[解析]软件的质量保证是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,是软件工程管理中的重要内容。五,论述题(本大题共3小题,第40小题7分,第41小题8分,第42小题10分,共25分)
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。
解:PDL语言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。41.根据下列条件使用等价类划分法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065
解:(1)划分等价类并编号,如下表示:(4分)
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(2分)
(3)为不合理等价类测试用例,至少设计一个测试用例(2分)
[解析]等价类划分属于黑盒测试的一种,它将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样用少量有代表性的例子代替大量测试目的相同的例子,可以有效提高测试效率。本题划分了3个合理等价类,9个不合理等价类进行测试,取到了预期的效果。
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。
解:
画出生产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。
第五篇:软件工程期末考试总结
一、1、1968年“软件工程”诞生。
2、软件定义:软件是程序、数据 相关文档的完整结合。其中,程序是能够完成预订功能和性能的可执行的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
3、为了解决软件危机,技术措施(方法和工具),组织管理措施
4、软件工程:软件工程是(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径。
5、软件工程是从管理和技术两方面
6、软件工程的本质特性:(1)软件工程关注于大型程序的构造;(2)专拣工程的中心课题是控制复杂性;
(3)软件经常变化;(4)开发软件的效率非常重要;(5)和谐的合作是开发软件的关键;(6)软件必须有效的支持它的用户;(7)在软件工程领域中通常由具有一种文化背景的人替具有另外一种文化背景的人创造产品。
7、软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚的审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。
8、软件工程包括(技术和管理)两方面内容,是技术与管理紧密结合所形成的工程学科。
9、软件工程方法学包括三个要素:方法、工具和过程。
10、CASE计算机辅助软件工程
11、软件的生命周期由 软件定义、软件开发和运行维护(软件维护)3个时期组成。
12、软件生命周期每个阶段的基本任务:(1)问题定义:必须回答的关键问题是:“要解决的问题是什么?”性质规模总目标;(2)可行性研究:要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”可解?值得解?(3)需求分析:这个阶段的任务不是具体的解决问题,而是准确的确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能需求规格说明书(4)总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”(总体设计又称概要设计)软件结构图(5)详细设计:把解法具体化,也就是回答下面这个关键问题:“应该怎样具体的实现这个系统呢?”算法、数据结构(6)编码和单元测试:关键任务是写出正确的容易理解、容易维护的程序模块(7)综合测试:关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求(最基本的测试是集成测试和验收测试)。
13、软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,他规定了完成各项任务的工作步骤。用生命周期模型描述它。
15、过程模型:生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也成为过程模型。
16、瀑布模型是唯一被广泛采用的且现在仍是应用最广泛的过程模型。
17、增量模型:也称渐增模型,适用于能在较短时间内向用户提交可完成部分工作的产品。
18、螺旋模型:适用于内部开发的大规模软件项目。
二
1、可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能解决。
2、研究每种解法的可行性从三个方面:(1)技术可行性(2)经济可行性(3)操作可行性
3、系统流程图是概括的描绘 物理系统 的传统工具。
数据流图是系统逻辑功能的图形表示。
4、数据字典的作用:在软件分析和设计过程中给人提供关于数据的描述信息。
5、系统的逻辑模型由(数据流图和数据字典)共同构成,没有数据字典,数据流图就不严格,没有数据流图,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
5、数据字典由4类元素的定义组成:数据流、数据流分量、数据存储、处理,但是对数据处理的定义用
其他工具(IPO图或PDL)描述更方便。
三
1、需求分析:把用户关于软件的期望和想法,转变成软件开发人员需要的关于该软件的规格说明。
2、需求分析过程应该建立的3种模型:数据模型、功能模型和行为模型
3、实体-联系图是用于建立数据模型的图形,数据流图是建立功能模型的基础,状态转换图是行为建模的基础。
4、实体-联系图符号:矩形框代表实体,用连接实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,用直线把实体(或关系)与其属性连接起来。
5、状态转换图:初态、终态和中间态。
6、在一张状态图中只能有一个初态,终态有0至多个。初态用实心圆,终态用一对同心圆(内为实心圆),中间态用圆角矩形。
8、IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便的描绘输入数据、对数据的处理和输出数据之间的关系。
9、从以下4个方面验证软件需求的正确性:(1)一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾(2)完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能(3)现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的(4)有效性 必须证明需求是正确有效的,确实能解决用户面对的问题
五
10、总体设计阶段主要内容:设计软件结构和设计数据库
11、耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。
12、耦合设计原则:尽量少使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合13、内聚:内聚标志着一个模块内各个元素彼此结合的紧密程度。功能内聚10偶然内聚014、“高内聚,低耦合”
15、启发规则:(1)改进软件结构提高模块独立性(2)模块规模应该适中(3)深度、宽度、扇出和扇入都应适当【深度:表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度;宽度:是软件结构内同一个层次上的模块总数的最大值;扇出:是一个模块直接控制的模块数目;扇入:表明有多少个上级模块直接调用它】(4)模块的作用域应该在控制域之内【模块的作用域:受该模块内一个判定影响的所有模块的集合。模块的控制域:是这个模块本身以及所有直接或间接从属于它的模块集合。】(5)力争降低模块接口的复杂程度(6)设计单入口单出口的模块(7)模块功能应该可以预测。
16、描绘软件结构的图形工具:层次图和结构图。
17、层次图用来描绘软件的层次结构(作为描绘软件结构的文档)。
18、信息流的两种类型:变换流和事务流
19、变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统。当系统具有这些特征时,这种信息流就叫做变换流。
20、事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这类数据成为事务流,处理T叫做事务中心。
六、详细设计
21、结构程序设计的经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
七、实现
1、高级语言写程序比用汇编语言写程序生产率可以提高好几倍,而且高级语言写的程序容易阅读,容易
测试,容易调试,容易维护。所以高级语言明显优于汇编语言。
2、实现:编码和测试统称为实现。
3、编码:就是把软件设计结果翻译成用某种程序设计语言书写的程序
4、软件测试:是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
5、测试的目的:在软件投入生产性运行之前,尽可能多的发现软件中的错误(发现软件中的错误)。
6、调试是在测试发现错误之后排除错误的过程。
7、软件测试的目标或定义:(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案(3)成功的测试是发现了至今为止尚未发现的错误的测试。
8、测试的目的是暴露程序中的错误由程序的编写者自己进行测试是不恰当的,测试阶段通常由其他人员组成测试小组来完成测试工作。
9、逻辑覆盖:是对一系列测试过程的总称这组测试过程逐渐进行越来越完整的通路测试。
10、语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次(语句覆盖是很弱的逻辑覆盖)。
11、判定覆盖(分支覆盖):不仅每个语句必须至少执行一次,而且每个判定的没种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。(比语句覆盖强)
12、条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果(比判定覆盖强)。
13、判定/条件覆盖:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果(有时不必条件判定强)。
14、条件组合覆盖:是更强的逻辑覆盖,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
15、点覆盖:如果连通图G的子图G’是连通的,而且包含G的所有节点,则称G’是G 的点覆盖。(要求:选取足够多的测试数据,使得程序执行路径至少经过流图的每个节点一次(与语句覆盖标准相同)。)
16、边覆盖:如果连通图G的子图G”是连通的,而且包含G的所有边,则称G”是G 的点覆盖(要求:选取足够多的测试数据,使得程序执行路径至少经过流图中每条边一次(与判定覆盖相同)。)。
17、路径覆盖:选取足够多的测试数据,使程序的每条可能路径都至少执行一次。
18、控制结构测试包括:基本路径测试、条件测试、循环测试。
19、黑盒测试力图发现下述类型的错误:(1)功能不正确或遗漏了功能(2)界面错误(3)数据结构错误或外部数据库访问错误(4)性能错误(5)初始化和终止错误
20、黑盒测试外部,白盒测试内部。
八、维护
软件维护就是在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程。
把诊断和改正错误的过程称为改正性维护。
适应性维护:为了和变化了的环境适当的配合而进行的修改软件的活动,是即必要有经常的维护活动。完善性维护、预防性维护。