概述
软件工程导论习题集
- 一、选择题
- 二、填空题
- 三、简答题
- 四、名词解释
- 其他
- 下载方式(==如果有帮助的话,跪求一个赞。orz==)
前言:之前准备考研复试的时候,在网上找了很多的关于软件工程导论的资料。整理一下发出来方便大家复习。其实我用上的也不多。主要是因为我考的是:名词解释、简答题、论述题和建模题。没有选择填空,就是后面的简答题有一些作用。你们在复试的时候可以问一下复试的题型,针对性的复习。如果不想整理,末尾有下载文档的方式。
一、选择题
1.软件复杂性度量的参数包括( )
A.效率 B.规模 C.完整性 D.容错性
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.除( )外都是00A文档中的图形。
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.功能和结构
17.软件生存周期的( )工作和软件可维护性有密切的关系。
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.在只有单重继承的类层次结构中,类层次结构是( )层次结构。
A.树型B.网状型C.星型D.环型
26.一个类的所有对象具有相同的属性,不包括( )。
A.个数B.名称C.数据类型D.定义
27.标记耦合是指( )
A. 两个模块之间没有直接的关系,它们之间不传递任何信息
B. 两个模块之间有调用关系,传递的是简单的数据值
C. 两个模块之间传递的是数据结构
D. —个模块调用另一个模块时,传递的是控制变量
28.提高测试的有效性非常重要,成功的测试是指( )。
A. 证明了被测试程序正确无误
B. 说明了被测试程序符合相应的要求
C. 未发现被测程序的错误
D. 发现了至今为止尚未发现的错误
30.( )工具在软件详细设计过程中不采用。
A. 判定表B.IPO 图C.PDL(伪码) D.DFD 图
31.方法主要适用于规模适中的( )系统的开发。
A. 数据处理 B.文字处理 C. 实时控制 D. 科学计算
32.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()
A.系统功能B.局部数据结构C.重要的执行路径D. 错误处理
33.软件需求规格说明书的内容不应包括对( )的描述。
A. 主要功能B. 算法的详细过程C. 用户界面及运行环境D. 软件的性能
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.数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘图方法中,常采用的是()。
①自顶向下
②自底向上
③分层绘制
④逐步求精
41.在软件生存周期的模型中,( )吸收了软件工程“演化”的概念,适合于大型软件的开发。
A.喷泉模型B.基于知识的模型C.变换模型D.螺旋模型
42.( )着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A. 程序流程图B. 数据流图C.E-R 图D. 结构图
46.对于详细设计,下面说法错误的是( )。
A. 详细设计是具体地编写程序
B. 详细设计是细化成很容易地从中产生程序图纸
C. 详细设计的结果基本决定了最终程序的质量
D. 详细设计中采用的典型方法是结构化程序设计方法
47.通过执行对象的操作改变该对象的属性,但它必须通过()的传递。
A.接口B.消息C.信息D.操作
48.指出PDL 是下列( )语言。
A.高级程序设计语言B.伪码C.中级程序设计语言D.低级程序设计语言
49.以下说法正确的是( )。
A.程序流程图是一种算法描述工具
B.PAD图(问题分析图)是一种描述程序逻辑结构的工具
C.过程设计语言PDL是一种用于描述模块算法设计和处理细节的语言
D. PAD图(问题分析图)是一种由左往右展开的二维型结构
50.软件测试方法中的( )属于静态测试方法
A. 黑盒法B. 路径覆盖C. 错误推测D. 人工检测
51.以下说法错误的是( )。
A. 文档仅仅描述和规定了软件的使用范围及相关的操作命令
B. 文档也是软件产品的一部分,没有文档的软件就不成为软件
C. 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
D. 高质量文档对于发挥软件产品的效益有着重要的意义
52.对于原型的使用建议,以下说法不正确的是( )。
A. 开发周期很长的项目,能够使用原型
B. 在系统的使用可能变化较大,不能相对稳定时,能够使用原型
C. 缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型
D. 开发者对系统的某种设计方案的实现无信心或无十分的把握,能够使用原型
53.进行需求分析可使用多种工具,但( )是不适用的。
A.数据流图B.判定表C.PAD 图D.数据字典
55.软件维护的困难主要原因是( )。
A. 费用低B. 人员少C. 开发方法的缺陷D. 维护难
56.在进行软件结构设计时应该遵循的最主要的原理是( )。
A. 抽象B. 模块化C. 模块独立D. 信息隐藏
57.软件设计中划分通常遵循的原则是要使模块间的耦合性尽可能( )。
A. 强B. 弱C. 较强D. 适中
59.数据流图是常用的进行软件需求分析的图形工具,其基本符号/元素是( )
A. 输入、输出、外部实体和加工
B. 变换、加工、数据流和存储
C. 加工、数据流、数据存储和外部实体
D. 变换、数据存储、加工和数据流
60.分析对象的状态并画出状态转换图,目的是( )。
A. 准确地认识对象的行为B. 准确地认识对象的状态
C. 准确地认识对象的方法D. 准确地认识对象的定义
61.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()
A.软件工程 B.软件周期 C.软件危机 D.软件产生
62.瀑布模型本质上是一种( )模型
A.线性顺序B.顺序迭代C.线性迭代 D.早期产品
63.瀑布模型存在的问题是( )
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
64.螺旋模型是一种将瀑布模型和( )结合起来的软件开发模型。
A.增量模型 B.专家系统 C.喷泉模型 D.变换模型
65.原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时
66.下列有关软件工程的标准,属于国际标准的是( )
A.GB B.ANSI C.ISO D.IEEE
67.结构化方法是一种基于( )的方法
A.数据结构 B.程序结构 C.算法 D.数据流
68.软件可行性研究实质上是要进行一次( )需求分析、设计过程。
A、简化、压缩的 B、详细的 C、彻底的 D、深入的
69.可行性研究的目的是( )
A、分析开发系统的必要性 B、确定系统建设的方案
C、分析系统风险 D、确定是否值得开发系统
70.可行性研究是在( )之前
A、系统开发 B、测试 C、试运行 D、集成测试
71.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的( )
A、1% B、20% C、8% D、50%
72.我国正式颁布实施的( )对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》
73.效率是一个性能要求,因此应当在以下哪个阶段规定?( )
A、可行性分析B、需求分析C、概要设计D、详细设计
74.需求规格说明书的作用不包括( )
A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解
C、软件可行性研究的依据 D、软件设计的依据
75.数据字典是用来定义( )中的各个成份的具体含义的
A、程序流程图B、功能结构图 C、系统结构图D、数据流程图
76.数据流程图是( )方法中用于表示系统逻辑模型的一种图形工具
A、SA 结构化分析B、SD 结构化设计C、SP 结构化编程D、SC结构化
77. DFD数据流图 中的每个加工至少有( )。
A、一个输入流或一个输出流 B、一个输入流和一个输出流
C、一个输入流 D、一个输出流
78.需求分析阶段的关键任务是确定( )
A、软件开发方法 B、软件开发工具C、软件开发费D、软件系统的功能
79.在SD(结构化设计)方法中全面指导模块划分的最重要的原则是( )。
A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性
80.在模块的3种基本属性中,反映模块内部特性的是( )。
A、接口 B、功能 C、逻辑 D、状态
81.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序( )
A、数据结构耦合,公共耦合,控制耦合,内容耦合
B、数据耦合,控制耦合,数据结构耦合,公共耦合
C、无直接耦合,数据结构耦合,内容耦合,控制耦合
D、无直接耦合,数据耦合,控制耦合,内容耦合
数据耦合,控制耦合和特征耦合,公共环境耦合,内容耦合
82. PDL(过程设计语言:伪码)是描述处理过程( )
A、做什么B、为什么做 C、怎么做D、对谁做
83.( )工具在软件详细设计过程中不采用
A、判定表 B、IPO图 C、PDL伪码D、DFD图 (数据流图)
84.为高质量地开发软件项目,在软件结构设计时,必须遵循( )原则
A.信息隐蔽B、质量控制 C、程序优化D、数据共享
85.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( )
A、数据耦合B、公共耦合C、标记耦合D、内容耦合
86.详细设计与概要设计衔接的图形工具是( )。
A、DFD图 B、SC结构图 C、PAD图 D、程序流程图
87.下列几种类型中,耦合性最弱的是( )。
A、内容型B、控制型C、公共型D、数据型
88.软件结构使用的图形工具,一般采用( )图
A、DFD数据流图 B、PAD C、SC结构图 D、ER实体关系图
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. 增量模型
94.软件工程的基本要素包括方法、工具和( )。
A. 过程 B. 软件系统 C. 硬件环境 D. 人员
95.在结构化分析方法SA中,( )表达系统内部数据运动的图形化技术
A. 数据字典 B. 实体关系图 C. 数据流图 D. 状态转换图
96.“软件危机”是指( )。
A. 计算机病毒的出现B.利用计算机进行经济犯罪活动
C.软件开发和维护中出现的一系列问题D.人们过分迷恋计算机系统
97.软件的( )设计又称为总体设计,其主要任务是建立软件系统的总体结构。
A.概要B.抽象 C.逻辑D.规划
98. 下列不属于数据字典组成部分的是?( )
A. 数据项 B. 数据流 C. 数据文件 D. 数据库
99.下列不属于软件需求范畴的是?( )
A. 软件项目采用什么样的实现技术B . 用户需要软件能做什么样的事情
C. 用户需要软件完成什么样的功能D. 用户需要软件达到什么样的性能
100.模块的内聚性最高的是( )
A. 逻辑内聚B. 时间内聚C. 偶然内聚 D. 功能内聚
101.在白盒测试技术测试用例的设计中,( )是最强的覆盖标准。
A.语句覆盖 B.路径覆盖 C.条件组合覆盖 D.判定覆盖
102.Jackson程序设计方法是一种面向( )的设计方法。
A. 数据结构B. 数据流图 C. IPO图 D. 系统流程图
103.软件设计中划分模块的一个准则是( )
A. 低内聚低耦合B. 低内聚高耦合 C. 高内聚低耦合 D. 高内聚高耦合
104.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是()
A. 喷泉模型B. 增量模型 C. 瀑布模型 D.螺旋模型
105.类构件的重用方式有多态重用、继承重用和( )
A. 实例重用B. 重载重用 C. 代码重用 D. 方法重用
106. 软件维护工作的最主要部分是( )。
A. 校正性维护B. 适应性维护C. 完善性维护 D. 预防性维护
107. 一个模块的( )太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。
A. 深度 B. 宽度 C. 扇出 D. 扇入
108.从本质上说,面向对象是“先”确定( )后确定执行的动作。
A.动作的主体 B.属性 C.关系 D.方法
109. ( )是对象的静态特征。
A.方法 B.属性 C.关系 D.操作
110.对象的( )使对象的动态特征
A.特征 B.属性 C.关系 D.操作
111.属于某个类的一个具体对象称为该类的( )
A.实例 B.虚拟 C.继承 D.多态
112. UML是( )
A) 一种可视化的建模语言 B) 是一种可视化的程序设计语言
C) 是一种过程 D) 是一种方法
113.封装的的作用是( )
A.复用 B.对象 C.实例 D.方法
114.面向对象分析的核心在于建立( )模型
A.建立正确的模型B.识别问题域对象C.识别对象之间的关系D.上面所有
115.面向对象分析过程中建立的模型有( )
A. 数据模型、功能模型、活动模型B. 对象模型、功能模型、测试模型
C. 属性模型、功能模型、对象模型D. 对象模型、功能模型、动态模型
116.下列的( )不是分析建模的目的
A. 定义可验证的软件需求 B. 描述客户需求
C. 开发一个简单的问题解决方案 D. 建立软件设计的基础
117.下列的( )不属于面向对象分析模型
A.用例图B. 类图 C. 实体关系图 D. 顺序图
118.( )用于描述系统中概念层次的对象
A.分析类B.界面类C.实体类D.控制类
119. 在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的( )将用例的职责分配到分析类中。
A. 消息传递B关联关系C继承关系D上下文关系
120.用例的实现细节不会在( )描述。
A. 用例说明 B.用例图 C.活动图 D.顺序图
121.用例的职责通常分配给( )的对象
A.发送消息B.接收消息C.发送和接收双方D.分析类
122.组织机构图是( )
A.UML的一个最新图B.类图的一种C.用于识别角色的辅助图D.用例图的一种
123.在图书馆系统中,假如已经构造了一个一般借书者类,后来发现图书馆的学生和教师在借书中有不同要求。请问在面向对象设计中用( )方法可以方便地设计这两个类?
A.信息隐藏 B.继承 C.动态联编 D.代码复制
124.框架是一组可用于不同应用的( )集合
A.类 B.对象 C.模块 D.代码
125.下面哪个选项不能描述子系统之间的关系。( )
A. 请求——服务关系 B.继承关系 C.依赖关系 D.数据关系
126.每个子系统的接口上定义了若干( ),体现了子系统的功能
A.说明 B.操作 C.属性 D.关系
127.通常将具有共性的非功能要求设计在( ),以减少重新开发的工作量。
A. 接口层 B.中间层 C.最低层 D.最高层
128.每个用例至少应该有一个( ),它通常没有属性而只有方法,只是起协调和控制作用。
A. 接口类 B.实体类 C.控制类 D.界面类
129.类有三种类型即( )
A.边界类、实体类、控制类B. 实体类、数据类、界面类
C.控制类、实体类、数据类D. 界面类、控制类、公共类
130.下面那个选项不是正确的面向对象设计思想( )
A.对接口进行设计B.发现变化并且封装它C.先继承后组合D.先组合后继承
131.定义类的属性类型时尽量使用已有的类型,太多的自定义类型会降低系统的( )指标
A.可维护性 B.安全性 C.开发效率 D.可移植性
132.从本质上说,面向对象是“先”确定动作的( )“后”执行( )。
A.数据结构/主体 B.主体/数据结构 C.动作/主体 D.主体/动作
133.结构化语言是介于自然语言和形式语言之间的一种( )
A.半形式语言B.计算机语言 C.低级语言 D.高级语言
134.程序设计语言的技术特性不应包括( )
A、数据结构的描述性B、抽象类型的描述性
C、数据库的易操作性D、软件的可移植性
135.程序的三种基本控制结构是( )
A过程、子程序和分程序 B顺序、选择和重复
C递归、堆栈和队列 D调用、返回和转移
136.结构化程序设计主要强调的是( )
A.程序的规模B.程序的效率 C.程序设计语言的先进性 D.程序易读性
137.下列关于功能性注释不正确的说法是( )
A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B.注释用来说明程序段,需要在每一行都要加注释
C.可使用空行或缩进,以便很容易区分注释和程序
D.修改程序也应修改注释
138.下列关于效率的说法不正确的是( )。
A.效率是一个性能要求,其目标应该在需求分析时给出
B.提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C.效率主要指处理机时间和存储器容量两个方面
D.程序的效率与程序的简单性无关
139.结构化维护与非结构化维护的主要区别在于( )
A.软件是否结构化 B.软件配置是否完整 C.程序的完整性 D.文档的完整性
140.关于JAVA语言下列说法不正确的是( )
A.跨平台的 B.动态指针 C.解释型的 D.面向对象的
141.使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。
A程序内部逻辑 B.程序复杂结构C.使用说明书 D.程序的功能
142.确认测试主要涉及的文档是( )
A、需求规格说明书B、概要设计说明书C、详细设计说明书D、源程序
143.测试的关键问题是( )
A.如何组织对软件的评审 B.如何验证程序的正确性
C.如何采用综合策略 D.如何选择测试用例
144.黑盒测试在设计测试用例时,主要研究( )
A.需求规格说明 B.详细设计说明
C.项目开发计划 D.概要设计说明与详细设计说明
145.下面哪些测试属于黑盒测试( )
A、路径测试B、等价类划分 C、条件判断 D、循环测试
146. 在下述哪一种测试中,测试人员必须接触到源程序( )
A、功能测试 B、结构测试C、功能测试和结构测试 D、性能测试
147.检查软件产品是否符合需求定义的过程称为( )
A、确认测试B、集成测试C、验收测试D、验证测试
148.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( )
A、 结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑
149.软件维护中,因修改交互输入的顺序,没有正确的记录而引起的错误是( )产生的副作用。
A、文档B、数据 C、编码D、设计
150.以下属于软件维护阶段文档的是( )。
A、软件需求说明B、操作手册C、软件问题报告D、测试分析报告
151.产生软件维护的副作用,是指( )。
A开发时的错误 B隐含的错误C因修改软件而造成的错误 D运行时误操作
152.维护中,因误删除一个标识符而引起的错误是( )副作用。
A、文档 B、数据 C、编码 D、设计
153.可维护性的特性中,相互促进的( )
A、可理解性和可测试性B、效率和可移植性
C、效率和可修改性 D、效率和结构好
154.软件维护的困难主要原因是( )
A、费用低 B、人员少 C、开发方法的缺陷 D、用户不配合
155.软件维护费用高的主要原因是( )
A、人员少 B、人员多 C、生产率低D、生产率高
156. 为了适应软硬件环境变化而修改软件的过程是( )
A、校正性维护 B、完善性维护 C、适应性维护D、预防性维护
157.可维护性的特性中,相互矛盾的是( )
A.可理解性与可测试性 B.效率与可修改性
C.可修改性和可理解性 D.可理解性与可读性
158.各种不同的软件维护中,以( )维护所占的维护量最小
A、 纠错性维护B、代码维护C、预防性维护D、文档维护
159.在变更控制中,( )可以用来确保由不同用户所执行的并发变更
A.异步控制B.同步控制C.存取控制D.基线控制
160.变更控制是一项最重要的软件配置任务,其中“检出”和( )处理实现了两个重要的变更控制要素,即存取控制和同步控制。
A.登入B.管理C.填写变更要求D.审查
161. 在整个软件维护阶段所花费的全部工作中,所占比例最大的是( )
A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
162.下面关于文档的叙述,错误的是( )
A.文档是软件产品的一部分,没有文档的软件就不成为软件。
B.文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节。
C.高质量文档对于转让、变更、修改、扩充和使用有重要的意义。
D.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量。
163.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的( )
A. 安全性B. 健壮性C. 可用性D. 可靠性
164.在下列测试技术中,( )不属于黑盒测试技术。
A. 等价划分 B. 边界值分析C. 错误推测 D. 逻辑覆盖
165.( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A. 多态B. 继承 C. 封装D. 消息
166. Jackson方法是在软件开发过程中常用的方法,使用Jackson方法时可以实现( )
A. 从数据结构导出程序结构 B. 从数据流图导出初始结构图
C. 从模块结构导出数据结构 D. 从模块结构导出程序结构
167.软件测试时为了( )而执行程序的过程。
A. 纠正错误B.发现错误C. 避免错误 D. 证明错误
168.在软件系统中,一个模块应具有什么样的功能,这是由( )决定的。
A. 总体设计B. 需求分析C. 详细设计 D. 程序设计
169.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的( )
A. 可理解性 B. 可维护性C. 可扩展性 D. 可移植
170.模块内聚度越高,说明模块内各成分彼此结合的程序越( )。
A. 松散B. 紧密C. 无法判断D. 相等
171.常用的面向对象的软件过程模型是( )
A. 瀑布模型B. 喷泉模型C. 原型模型 D. 增量模型
172.面向对象的分析阶段建立的系统模型不包括( )。
A. 对象模型 B. 动态模型C. 功能模型 D. 数据模型
173.瀑布模型的存在问题是( )。
A. 用户容易参与开发 B. 缺乏灵活性
C. 用户与开发者易沟通 D. 适用可变需求
174.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是()
A. 喷泉模型 B. 增量模型 C. 瀑布模型 D. 螺旋模型
175. 类构件的重用方式有多态重用、继承重用和( )。
A. 实例重用 B. 重载重用 C. 代码重用 D. 方法重用
176. 在白盒测试技术测试用例的设计中,( )是最弱的覆盖标准。
A. 语句覆盖 B. 路径覆盖C. 条件组合覆盖 D. 判定覆盖
177.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()
A.软件工程B.软件周期C.软件危机D.软件产生
参考答案:
1-10 BAAAA BACBA 11-20 BBDCA #D#AA
21-30 CBBAA DCD#D 31-40 AABBC DADA 1/3/4
41-50 DD### ABBCD 51-60 ACC#C CB#CA
61-70 CABAA CDADA 71-80 CBBCD AADDC
81-90 DCDAD BDCDC 91-100 CACAC CADAD
101-110 BACCA CCABD 111-120 AAABD CCAAB
121-130 DCBAD BBCAC 131-140 ADDCB DBDBB
141-150 AADAB BDDAC 151-160 CCACC CBCBA
161-170 CBBDC ABBBB 171-177 BABCA AC
二、填空题
1.软件模块独立性的两个定性度量标准是( )。
2.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个( )的过程。
3.( )是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。
4.( )和数据字典共同构成了系统的逻辑模型。
5.可行性研究主要集中在以下三个方面:经济可行性、( )、法律可行性。
6.IPO图是( )的简称,它是美国IBM公司发展完善起来的一种图形工具。
7.软件生命周期一般可分为问题定义、( )、需求分析、设计编码、测试、运行与维护等阶段。
9.一般来说,可以从一致性、完整性、现实性和( )四个方面验证软件需求的正确性。
10.复杂问题的对象模型通常由下述五个层次组成:主题层、类与对象层、结构层、属性层和( )。
11.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、( )、可使用性和效率。
12.软件一般由程序、数据和( )组成。
13.面向对象模型主要由对象模型、动态模型、( )。
14.软件需求分析过程应该建立数据模型、功能模型和( ) 三种模型之上。
15.需求分析的最终结果是( )。
16.常见的测试方法一般分为:白盒测试和( )。
17.软件工程三要素包括方法、( )和过程,其中,过程是支持软件开发的各个环节的控制和管理。
18.类构件的重用方式有实例重用、继承重用和( )三种。
19.耦合和( )是衡量模块独立性的两个定性的标准。
20.软件测试的步骤按顺序分别是:( )、子系统测试、系统测试、确认测试和系统测试。
21.数据库的“概念设计”与“逻辑设计”分别对应于系统开发中的( )与( ),而数据库的“物理设计”与模块的( )相对应。
22.概要设计文档主要有( )、( ) 、( ) 和( )。
23.模块化指解决一个复杂问题时( ) 逐层把软件系统划分成若干( )的过程。
24.模块之间联系越紧密,其( )就越强,模块的( )则越差。
24.软件结构往往用( )结构的图形来表示。软件结构图是软件系统的( )结构。
25.面向数据流的设计又称( ),它是以需求分析阶段产生的( )为基础,按一定的步骤映射成软件结构。
26.数据流图一般可分为( )和( )两类。
27.详细设计也称( ),它是软件设计的第二阶段,主要确定每个( )的具体执行过程。
28.处理过程设计中最典型的方法是( )方法,其基本要点是采用的程序设计方法是( )、( )。
29.任何程序都可由( )、( )和( )3种基本控制结构构造。这3种基本结构的共同点是( )、( )。
30.详细描述处理过程常用3种工具:( )、( )、和( )。
31.Jackson方法是面向( )的设计方法,它的描述工具是( )。
32.软件测试的目的是尽可能多地发现软件中存在的( ),将( )作为纠错的依据。
33.测试阶段的基本任务是根据软件开发各阶段的( )和程序的 ( ),精心设计一组( ),利用这些实例执行( ),找出软件中潜在的各种( ) 和( )
34.测试用例由 ( )和预期的( )两部分组成
35.软件测试方法一般分为两大类:( )方法和 ( )方法。
36.动态测试通过( )发现错误。根据( )的设计方法不同,动态测试又分为 ( )与( )两类
37.黑盒法只在软件的( )处进行测试,依据( )说明书,检查程序是否满足( )要求。
38.白盒法必须考虑程序的( )和( ),以检查( )的细节为基础,对程序中尽可能多的逻辑路径进行( )
39.白盒测试是( ) 测试,被测对象是( ),以程序的( )为基础设计测试用例
40.逻辑覆盖是对程序内部有( )存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为 ( ) 、( ) 、( )、( )、( ) 和 ( )6种覆盖技术。
41.黑盒测试是( ) 测试,用黑盒技术设计测试用例有4种方法: ( ) 、( ) 、( ) 和( )。
42.等价类划分从程序的( ) 说明,找出一个输入条件(通常是( )或( ),然后将每个输入条件划分成两个或多个( )。
43.边界值分析是将测试( ) 情况作为重点目标,选取正好等于、刚刚大于或刚刚小于( )的测试数据。如果输入或输出域是一个有序集合,则应选取集合的( )元素和( )元素作为测试用例
44.软件测试一般经过4个测试:( )、( )、( ) 和( )。
45.集成测试的方法有两种:( )和( )
46.软件配置审查的任务是检查软件的所有文档资料的( )和( )
47.调试也称 ( ),是在成功的测试之后才开始进行,其目的是确定错误的( )和( ),并改正错误。
48.调试技术包括( )、( ) 、( ) 和( ) 。
49.为了提高程序的易读性,同时为减少错误,提高软件开发效率,编码时应注意养成良好的( )。
50.程序加注释对理解程序提供了明确指导,根据作用不同注释分( ) 和( )
1.耦合和内聚 2.由下而上
3.等价划分 4.数据流图
5.经济可行性、技术可行性、法律可行性
6.输入、处理和输出
7.问题定义、可行性研究、需求分析、设计编码、测试、运行与维护等阶段
8.经济可行性、技术可行性、法律可行性
9.一致性、完整性、现实性和有效性
10.主题层、类与对象层、结构层、属性层和服务层
11.可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率
12.程序、数据和文档。
13.对象模型、动态模型、功能模型
14.数据模型、功能模型和行为模型
15.需求规格说明书
16.白盒测试和黑盒测试
17.方法、工具和过程,
18.实例重用、继承重用和多态重用
19.耦合和内聚
20.单元测试、子系统测试、系统测试、确认测试和系统测试
21.需求分析、概要设计、详细设计
22.概要设计说明书、数据库设计说明书、用户手册、组装测试计划
23.自顶向下、模块
24.耦合性、内聚性
24.树状或网状、模块层次
25.结构化设计、数据流图
26.变换型、事务型
27.过程设计、模块
28.结构化程序设计、自顶向下、逐步求精
29.顺序、选择、循环、单入口、单出口
30.图形、表格、语言
31.数据结构、Jackson
32.错误、测试结果
33.文档资料、内部结构、测试用例、程序、错误、缺陷
34.输入数据、输出数据
35.动态测试、静态测试
36.运行程序、测试用例、黑盒测试、白盒测试
37.接口、需求规格、功能
38.内部结构、处理过程、处理过程、测试
39.结构、源程序、内部逻辑
40.判定、语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
41.功能、等价类划分、边界值分析、错误推测、因果图
42.功能、一句话、一个短语、等价类
43.边界、边界值、第一个、最后一个
44单元测试、集成测试、确认测试、系统测试
45.非渐增式测试、渐增式测试
46.完整性、正确性
47.纠错、原因、位置
48.简单调试、归纳法调试、演绎法调试、回溯法调试
49.程序设计风格
50.序言性注释、功能性注释
三、简答题
11.从软件工程的七条基本定理中任选四条,并对所选的每条定理做简要阐述。
【答案】(1)用分阶段的生命周期计划严格管理
在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。
(2)坚持进行阶段评审
软件的质量保证工作不能等到编码阶段结束之后再进行。因此,在每个阶段都进行严格的评审,以便尽早发 现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
(3)实行严格的产品控制
当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。一切有关修改软件的建议,特别是涉及对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。
(4)结果应能清楚地审查
软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
12.维护技术的副作用有哪些?
【答案】因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。维护的副作用有编码副作用、数据副作用、文档副作用三种。
(1)编码副作用
在使用程序设计语言修改源代码时可能引入下面错误。这些错误要到运行时才能被发现。例如:
①删除或修改一个子程序、一个标号、一个标识符。
②改变程序代码的时序关系,改变占用存储的大小,改变逻辑运算符。
13.什么是抽象类?在建模时有时使用抽象类有什么好处?
【答案】(1)抽象类的定义
抽象类是指没有实例的类,定义了一些抽象的操作,即不提供实现方法的操作,只提供操作的特征,并标注。
(2)使用抽象类的好处
在建模时使用抽象类使系统结构更加的清晰,增加了系统的可读性和可理解性。
14.说明McCall 软件质量度量模型。
【答案】McCall 质量度量模型是McCall 等人于1979年提出的软件质量模型。针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下。
(1)面向软件产品操作
①正确性:软件满足设计规格说明及用户预期目标的程度。
②可靠性:软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。
③效率:为了完成预定功能,软件系统所需的计算机资源和程序代码数量。
④完整性:对非授权人访问软件或数据行为的控制程度。
⑤可使用性:用户熟悉、使用及准备输入和解释输出所需工作量的大小。
(2)面向软件产品修改
①可维护性:找到并改正程序中的一个错误所需代价。
②可测试性:测试软件以确保其能够执行预定功能所需工作量。
③灵活性:修改可运行程序所需要付出的努力。
15.简述事件如何触发操作。
【答案】(1)如果仅描述事件的模式,那状态图就会失去意义。一个对象的行为描述必须指出在事件的响应中该对象做些什么。在响应所对应的状态和事件过程中,完全依附于状态和变迁的操作。
(2)活动是需要花费时间来完成的操作
①活动与状态有关,一个活动可以是连续的操作,例如在电视机屏幕上显示一幅画面。
②一个活动也可以包括经过一段时间间隔之后的自动终结顺序操作,例如关闭阀门,或者执行一次计算。
③一个状态可以控制一个连续性活动,这种控制可以持续到一个事件使该状态发生变迁时才结束,例如电话铃响。在状态框中用 表示活动A 开始进入该状态并在退出该状态时结束。表示时序活动A 开始进
④一个状态也可以控制时序的活动,例如机器人移动一个零件,这种控制持续到完成该行动,或因另一个事件被中断而提前停止该活动时才结束。相同的记号进入该状态,当完成时停止。
(3)如果一个事件在行动完成之前发生状态的变迀,则该活动被提前终止。例如机器人遇到阻碍而停止移动。这两种使用没有本质的区别:连续性活动可以被看成延续时间不确定的时序活动。
16.瀑布模型有哪些局限性?
【答案】(1)各阶段之间存在着严格的顺序性,特别强调预先定义需求的重要性,在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地实现这些需求。但是实际项目很少是遵循着这种线性顺序进行的。
(2)虽然瀑布模型也允许迭代,但这种改变往往给项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。
(3)传统的瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。
17.什么是事件?
【答案】事件是发生在某一个时问点的一件事,例如,用户单击左边按钮,或者某次航班从北京出发。
18.测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?
【答案】(1)单元测试,是在类层面上的测试。由于继承和复合,类(或对象)在很多情况下已不再是单纯意义上的单个操作。因此,具体的测试将在多有与操作有关的每个子类语境中进行。
(2)集成测试,由于面向对象软件中类的成分直接和间接交互,使得传统测试放法已经失去意义。因此有两种策略可供选择,分别是基于线程的测试和基于使用的测试。
(3)确认测试,关注与用户可见的动作和用户识别的系统输出,但基于场景的测试总是主宰面向对象系统的确认测试。
19.软件配置管理有哪些内容?
【答案】软件配置管理的内容有:
(1)基线
基线是软件生存期中各开发阶段的一个特点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。因此基线可以作为一个检查点,在开发过程中,当采用的基线发生错误时,我们可以知道处于的位置,返回到最近和最恰当的基线上。
(2)软件配置项
软件配置项(SCI )是软件工程中产生的信息项,它是配置管理的基本单位。
(3)版本控制管理
版本控制管理是对系统不同版本进行标识与跟踪的过程。版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。
20.什么是软件的可靠性?它们能否定量计算?
【答案】(1)软件可靠性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的概率。
(2)软件可靠性可以进行定量计算,常用指标是平均失效等待时间MTTF 与平均失效间隔时间MTBF 。
假如对n 个相同的系统(硬件或软件)进行测试,它们的失效时间分别是均失效等待时间MTTF 定义为:MTBF 是平均失效间隔时间,它是指两次相继失效之间的平均时间。
21.试述软件项目计划内容。
【答案】(1)范围
对该软件项目的综合描述,定义其所要做的工作以及性能限制,它包括项目目标、主要功能、性能限制、系统接口、特殊要求、开发概述等。
(2)资源
包括人力资源、硬件资源、软件资源及其他资源。
(3)进度安排
进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大的区别,其主要的方法有:工程网络图、Gantt 图、任务资源表等。
(4)成本估算
为使开发项目能在规定的时间内完成,且不超过预算,成本估算是很重要的。软件成本估算是一门不成熟的技术,国外已有的技术只能作为我们的借鉴。
(5)培训计划
为用户各级人员制定培训计划。
22.动态测试的四个阶段分别是什么?请简述各阶段的主要工作?
【答案】(1)动态测试的四个阶段
动态测试的四个阶段分别是单元测试、集成测试、系统测试、确认测试。
(2)动态测试各阶段的主要工作
①单元测试
把每个模块作为一个单独的实体来测试,检验其正确性。目的是保证每个模块作为一个单元能正确运行。模块测试所发现的是编码和详细设计的错误。
②集成测试
把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要 问题,即集成测试着重测试模块的接口。
③系统测试
把经过测试的子系统装配成一个完整的系统来测试。系统测试发现的是软件设计中和需求说明中的错误。
④确认测试
把软件系统作为单一的实体进行测试,它是在用户积极参与下进行的,而且主要使用实际数据进行测试。确认测试的目的是验证系统确实能够满足用户的需要,确认测试发现的是系统需求说明书中的错误。
23.简述面向对象的要素。
【答案】(1)抽象
①定义
抽象是指强调实体的本质、内在的属性,忽略一些无关紧要的属性。
②抽象性
面向对象比其他方法技术有更高的抽象性,对象具有极强的抽象表达能力,对象可表示一切事物,可表达结构化的数据,也可表达非结构化的数据,如过程实体、图形、声音、规则等。
③共性抽象
类实现了对象的数据(即状态)和行为的抽象,它是对象的共性抽象。
24.什么是软件工程?软件工程的目标是什么?
【答案】软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
目标:1 合理预算开发成本,付出较低的开发费用。2 实现预期的软件功能,达到较好的软件性能,满足用户的需求。3 提高软件的可维护性,降低维护费用。4 提高软件开发生产率,及时交付使用
25.指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设计,系统测试,设计评审,编码,需求规格说明书。
【答案】项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试
26.可行性研究报告的主要内容是什么?
【答案】可行性研究主要包括以下几个部分:
(1)概述(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论
27.什么是需求分析?需求分析阶段的基本任务是什么?
【答案】所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。
任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作。
28.什么是结构化分析方法?该方法使用什么描述工具?
【答案】结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止
描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体—关系图7状态—变迁图
29.结构化分析方法通过哪些步骤来实现?
【答案】1)确定系统的功能要求2) 确定系统的数据要求
3) 确定系统的操作要求和界面要求4) 确定系统的性能要求
5) 确定系统的运行要求6) 获得当前系统的物理模型
7) 抽象出当前系统的逻辑模型8) 建立目标系统的逻辑模型。
9) 修正开发计划10)如果需要则开发系统原型
30.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?
【答案】数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图的基本符号的意思:1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑;3.少右面的边矩形表示数据的存储;4.箭头表示数据流。
31.什么是数据字典?其作用是什么?它有哪些条目?
【答案】数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
包括的条目:数据流词条、数据元素词条、数据存储词条、数据加工处理词条、数据源点及终点词条
32.什么是概要设计?有哪些基本任务?
【答案】概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则。
基本的任务:设想供选择的方案、推荐最佳方案、功能分解,确定软件结构、设计软件结构、制定测试计划、数据设计、书写文档,包括总体设计规格说明书。用户手册。测试计划;设计审查和复审。
33.详细设计的基本任务是什么?有那几种描述方法?
【答案】详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。主要方法有设计程序流程图,表格设计符号以及过程设计语言。
34.什么是变换流?什么是事物流?
【答案】变换型数据流可以划分为明显的三部分:逻辑输入,中心变换,逻辑输出
事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务
35.在软件开发的早期阶段,简述从哪些方面研究目标系统的可行性。
【答案】一般说来,至少应该从下述3个方面研究系统的可行性。
(1)技术可行性。使用现有的技术能实现这个系统吗?
(2)经济可行性。这个系统的经济效益能超过它的开发成本吗?
(3)操作可行性。系统的操作方式在这个用户组织内行得通吗?
必要时还应该从法律、社会效益等更广泛的方面研究系统的可行性。
36.简述需求分析中的情景分析技术。
【答案】所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。系统分析员利用情景分析技术,往往能够获知用户的具体需求。
情景分析技术的用处主要体现在下述两个方面。
(1)它能在某种程度上演示目标系统的行为,从而用于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。
(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,而这一信息的唯一来源是用户,因此,让用户起积极主动的作用对需求分析工作获得成功是至关重要的。
37.简述系统设计原理中的模块化。
【答案】模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整理,可以完成指定的功能满足用户的需求。
采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化是软件容易测试和调试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。
38.用例建模时,如何寻找行为者?
【答案】为获取用例首先要找出系统的行为者,可以通过请系统的用户回答一些问题的办法来发现行为者。
(1)谁将使用系统的主要功能?
(2)谁需要借助系统的支持来完成日常工作?
(3)谁来维护和管理系统?
(4)系统控制哪些硬件设备?
(5)系统需要哪些其他系统交互?
(6)哪些人或系统对本系统产生的结果感兴趣?
39.举例说明类和对象的关系。
【答案】学生可作为一个类—学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。
40.面向对象分析的关键步骤有哪些?应建立哪几个模型?
【答案】关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。
41.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?
【答案】(1)实体类保存要存入永久存储体的信息。实体类通常在事件流或交互图中,是对用户最有意义的类。
边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。
控制类负责协调其他类的工作。每个用例中至少应该有一个控制类,它控制用况中的事件顺序。
(2)分为三种类型是因为它们各自的功能不同。界面类——描述系统与角色之间的接口。
控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。
实体类——为需要长久保存的信息进行建模的类。
42.UML中有哪几类个视图,它们的作用分别是什么?
【答案】(1)用例视图(Use-Case view)
用例视图用于描述系统的功能集。它是从系统外部以用户角度,对系统做的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。
用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。
(2)逻辑视图(Logical view)
如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。
(3)组件视图(Component view)
组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。组件视图由组件图实现,主要供开发者和管理者使用。
(4)并发视图(Concurrency View)
并发视图用来描述系统的动态和行为特征。并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。
(5)配置视图(Deployment View)
配置视图体现了系统的实现环境,反映系统的物理架构。配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。
43.顺序图在分析阶段的作用?
【答案】顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序
44.活动图在分析阶段的作用?
【答案】活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。
45.比较结构化设计和面向对象设计区别?
【答案】结构化设计:系统被划分成多个模块,这些模块被组织成一个树型结构。根就是主模块,叶子是最低级的功能模块。这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。在这个体系结构中越靠上层位置,概念的抽象层次就越高。但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。
面向对象设计:上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象。这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。
46.为建立良好的编程风格应遵循什么原则?
【答案】1)节简化
①不使用不必要的变量和函数
②避免变量重名,变量重名可导致很难被发现的错误。
③尽量减小代码量。
④尽量减少代码的执行时间,提高执行效率。
⑤避免功能冗余的模块。
⑥尽量不使用全局变量。
2)模块化
①确保物理和逻辑功能密切相关。
②限定一个模块完成一个独立的功能,提高模块的内聚度。
③检查代码的重复率,重复多的代码,要抽出来作为一个单独的模块。
3)简单化
①采用直接了当的算法,避免使用技巧性高和难懂的代码。
②使用简单的数据结构,避免使用多维数组、指针和复杂的表。
③注意对象命名的一致性。
④以手工的方式简化算术和逻辑表达式。
4)结构化
①按标准化的次序说明数据;
②按字母顺序说明对象名
③使用读者明了的结构化程序部件;
④采用直截了当的算法;
⑤根据应用背景排列程序各个部分;
⑥不随意为效率而牺牲程序的清晰度和可读性;
⑦让机器多做烦琐的工作,如重复、库函数;
⑧用公共函数调用代替重复出现的表达式;
⑨避免循环、分支的嵌套层数过高;
⑩单入口单出口。
5)文档化(documentation)
①有效、适当地使用注释。
②协调使用程序块注释和程序行注释。
③保持文档和程序的同步。
6)格式化(layout)
①始终采用统一缩进规则;
②适当插入括号表明运算次序、排除二义性;
③有效地使用空格符以区别程序的不同意群。
47.什么是软件测试?
【答案】软件测试从广义上讲,是指软件产品生存周期内所有的检查、评审和确认活动。从狭义上讲,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各个阶段的规格说明和程序内部结构而精心设计一批测试用例,用这些测试用例运行程序,以发现程序错误的过程。
48.什么是白盒测试?它适应哪些测试?
【答案】白盒测试也叫结构测试,测试者需要了解被测程序的内部结构。白盒测试通常根据覆盖准则设计测试用例,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖。
白盒测试适用与单元测试、集成测试、系统测试
49.采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?
【答案】黑盒测试设计测试用例的方法有1)等价类划分法 特点是:a、测试的内容相同 b、一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现缺陷 c、一个等价类中的某个测试不能发现缺陷,那么这个等价类的其它测试也不能发现缺陷2)边界值分析法 特点是:用边界值分析时时常收获较大,它是在等价类的边界上选择测试用例3)错误推测法 特点是:没有确定的步骤,很大程度上是凭借经验进行的 4)因果图法 特点是:考虑输入条件间的组合关系;考虑输出条件对输入条件的信赖关系;测试用例发现错误的效率高;能查出功能说明中的某些不一致或遗漏
50.白盒测试法有哪些覆盖标准?试对它们的检错能力进行比较。
【答案】白盒测试的覆盖标准有:语句覆盖->判定覆盖->条件覆盖->判定/条件覆
盖->条件组合覆盖->路径覆盖 检错能力由弱到强
51.软件的可维护性是软件设计师最关注的性能,谈谈为了获得软件良好的可维护性,在设计时应该注意哪些问题?
【答案】为获得软件的良好可维护性,在设计阶段应该做一些变更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离开来,并且遵循高内聚、低偶合的原则。
在软件文档中,你认为哪些文档对于软件的维护最重要?
需求分析文档、设计文档、程序文档对软件维护很重要
52.简述从哪些方面验证软件需求的正确性。
【答案】一般说来,应该从下述4个方面进行验证。
(1)一致性。所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
(2)完整性。需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
(3)现实性。指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4)有效性。必须证明需求是正确有效的,确实能解决用户面对的问题。
53.简述系统测试。
【答案】系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
54.简述结构化维护。
答:如果有一个完整的软件配置存在,那么维护工作从评价设计文档开始,确定软件重要的结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细复查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。
55.简述筛选出正确的类与对象的标准。
【答案】筛选时主要依据下列标准,删除不正确或不必要的类与对象。
(1)冗余(2)无关(3)笼统(4)属性(5)操作(6)实现
四、名词解释
• DFD 数据流图Data Flow Diagram
• PDL 过程设计语言 Process Design Language
• PAD 问题分析图 Problem Analysis Diagram
• MTTF 平均无故障时间 Mean Time To Failure
• MTTR 平均维修时间 Mean Time To Repair
• MTBF 平均故障间隔时间 Mean Time Between Failure
• OOA 面向对象分析 Object Oriented Analysis
• OOD 面向对象设计 Object Oriented Design
• OOP 面相对象的编程实现 Object Oriented Programming
• FP 功能点 Funciton Point
• UFP 未调整的功能点 unadjusted function points
• TCF 技术复杂性因子technical complexity factor
• COCOMO 构造性成本模型 constructive cost model
• EET 最早时刻
• LET 最迟时刻
• SQA 软件质量保证 software quality assurance
• CMM 能力成熟度模型 Capability Maturity Model
• JSP Jackson结构化程序设计方法 Jackson Structured Programming
• Jackson方法 一种面向数据结构的软件设计方法
• Warnier 方法 一种面向数据结构的软件设计方法
• McCabe方法 根据程序控制流的复杂程度定量度量程序的复杂程度
• Halstead方法 根据程序中运算符和操作数的总数来度量程序的复杂程度
• Alpha测试 由用户在开发者的场所进行,并且在开发者对用户的指导下进行测试
• Beta测试 有软件的最终用户在一个或多个客户场所进行
• BRO测试 一种条件测试(Branch and Relational Operator)
• SC 结构图 Structure Chart
• RUP Rational统一过程
• XP 极限编程 eEtreme Programming
• IPO图 输入、处理、输出图
• HIPO图 IPO图(输入、处理、输出图)+H图(层次图)
• DSL 需求陈述语言
• PSL 问题陈述语言
• PSA 问题陈述分析系统
• CADSAT 计算机辅助设计和规格说明分析工具
• Petri网:用于确定系统中隐含的定时问题的一种有效技术
• SA 结构化分析
• SD 结构化设计
• SP 结构化编程
• DD 数据字典
• CASE 计算机辅助软件环境 Computer Aided Software Environment
其他
网上题库资源
https://wenku.baidu.com/view/142ed6d8a58da0116c174906.html?fr=search-1-wk_user_nor-income1&fixfr=gevW1FG%2BQ0b%2FaPeYNQFI8A%3D%3D
下载方式(如果有帮助的话,跪求一个赞。orz)
关注公众号 回复“软件工程” 获取习题集
最后
以上就是冷静香氛为你收集整理的软件工程导论习题集 | 170道选择 | 50道填空 | 40道简答 | 其他试卷资源的全部内容,希望文章能够帮你解决软件工程导论习题集 | 170道选择 | 50道填空 | 40道简答 | 其他试卷资源所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复