软件工程部分参考答案《二》
- 格式:doc
- 大小:178.50 KB
- 文档页数:9
计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。
答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。
答案:分析3. 软件测试的目的是为了发现软件中的_________。
答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。
答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。
主要阶段包括需求分析、设计、编码、测试和维护。
需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。
2. 请简要说明软件工程的重要性。
答案:软件工程的重要性体现在以下几个方面。
首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。
其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。
最后,软件工程可以提高软件的开发效率,节省时间和资源。
以上是计算机二级考试软件工程题库及答案的内容。
希望对您有所帮助!。
《软件工程》在线作业2附满分答案
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.软件需求分析的任务不应包括()。
A.问题分析
B.信息域分析
C.结构化程序设计
D.确定逻辑模型
答案:C
2.程序流程图中的箭头代表()。
A.数据流
B.控制流
C.顺序流
D.调用
答案:B
3.在结构化分析方法(SA),与数据流图配合使用的是()。
A.网络图
B.实体联系图
C.数据字典
D.程序流程图
答案:C
4.选择程度设计语言的关键因素是()。
A.软件应用领域
B.软件执行环境
C.软件开发方法
D.算法和数据结构
答案:D
5.进行需求分析可使用多种工具,但()是不适用的。
A.数据流图
B.判定表
C.PAD图
D.数据词典
答案:C
更多加微 boge30619
6.软件测试是软件质量保证的重要手段,下述()是软件测试的最基础环节。
A.功能测试
B.单元测试
C.结构测试。
国家开放大学《软件工程》形考任务1、2、4参考答案形考任务11.()是职业软件工程师的必要条件。
A. 编程速度快B. 语言天赋C. 自律、善于沟通、具有一定的软件技能D. 熟悉众多的软件环境2.根据软件工程的7条基本原理判断下面正确的选项是()。
A. 软件错误只能通过运行代码才能发现B. 需求阶段一般不会引入错误C. 软件错误发现的时机不重要,重要的是错误的严重程度D. 软件错误发现的越早改正的成本越低3.美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的()条基本原理。
A. 7B. 5C. 3D. 124.软件、程序和代码是()。
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.软件工程学科出现的主要原因是()。
软件工程实用教程2版课后答案第1章软件工程引论1.什么是软件危机?它和软件工程有什么关系?答案要点:由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。
在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。
软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。
由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答案要点:计算机软件是由计算机程序的发展而形成的一个概念。
它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。
软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。
它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。
软件工程大作业(2)(答案)软件工程作业第二部分一、填空1.结构化分析方法的分析策略是___自顶向下逐步求精_______。
2.衡量模块独立性的两个定性标准是_耦合性与内聚性________。
3.软件集成测试的方法主要有两种,它们是___渐增式与非渐增式测试_______。
4.继承性是子类自动共享其父类的__数据结构和方法____________机制。
5.在面向对象方法中,人们常用状态图描述类中对象的___动态行为________。
6.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为____容错_____软件。
7.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。
8.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是__功能需求_。
9.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是__维护_____阶段。
10.对象之间进行通信叫做__消息_____。
11.计算机辅助软件工程这一术语的英文缩写为_CASE_______。
12.McCall提出的软件质量模型包括______11________个软件质量特性。
13.为了便于对照检查,测试用例应由输入数据和预期的___输出结果____两部分组成。
14.软件结构是以____模块__________为基础而组成的一种控制层次结构。
15.结构化语言(PDL)是介于自然语言和____形式语言____之间的一种半形式语言。
16.软件概要设计的主要任务就是__软件结构的设计______。
17.结构化程序设计方法是使用___三种基本控制结构____构造程序。
18.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个__自底向上或相反顺序 _____集成的过程。
19.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和__数据存储对象_____。
二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2.面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
习题二参考答案一. 填空题1.值得去开发, 其中的问题能否解决,需求分析, 设计2. 技术, 经济, 社会3. 研究正在运行的系统, 建立新系统的高层逻辑模型4. 所建议系统的技术可行性分析, 所建议系统的经济可行性分析, 社会因素可行性分析5. 经济角度开发成本比较和权衡二、选择题1. A2. B【解析】:经济可行性是从开发费用和软件回报的角度来分析开发该软件系统是否可行。
技术可行性是从软件实现的功能、用户要求的软件性能、是否有技术难题等方面等考虑开发该软件的可行性问题。
操作可行性判断系统的操作方式在该用户组织内是否可行,法律可行性对方在考虑开发的软件系统可能会涉及的任何侵犯、妨碍、责任等问题做出决定。
所以答案为B。
3. B4. D5. D【解析】:在软件开发中,开发人员的交流似乎非常主要的,而一个开发人员进入一个新的软件系统做开发,需要相当长的一个阶段以适应该软件的开发,这主要是由于新的人员需要一定时间的培训以熟悉该软件系统的开发状况及该软件的需求分析、定义和相关已经生成的文档,以便在软件开发中与老开发人员的交流和通信,一推动软件开发前进。
所以答案为D。
6. D【解析】:软件的计划主要是根据软件开发的要求、软件系统的规模等,对软件开发的各种资源(包括软硬见资源及开发人员)进行合理的规划,以便在开发过程中得到合理的调度,从而使软件开发最充分地利用资源,以在最短的时间内取得最大的经济效益;软件工程经济学的任务是对软件开发的成本、效益等进行分析和估算;软件工程管理学的任务是有效组织和管理软件开发,软件工程开发技术的任务之一是设计和测试软件系统。
所以答案是D。
7. A 8. A 9. C 10. D三、简答题1.可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。
把它们清楚地列举出来。
然后,分析员进行简要的需求分析,经过压缩的设计,探索出若干种可供选择的主要解决方法。
国家开放大学《软件工程》形考任务1、2、4参考答案形考任务11.()是职业软件工程师的必要条件。
A. 编程速度快B. 语言天赋C. 自律、善于沟通、具有一定的软件技能D. 熟悉众多的软件环境2.根据软件工程的7条基本原理判断下面正确的选项是()。
A. 软件错误只能通过运行代码才能发现B. 需求阶段一般不会引入错误C. 软件错误发现的时机不重要,重要的是错误的严重程度D. 软件错误发现的越早改正的成本越低3.美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的()条基本原理。
A. 7B. 5C. 3D. 124.软件、程序和代码是()。
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.E-R模型C.接口选择01()是从用户的观点描述系统功能,它由一组用例、参与者以及它们之间关系所组成。
A.类图B.对象图C.顺序图D.用例图选择02()用于描述系统的功能集。
A.组件视图B.逻辑视图C.用例视图D.对象视图选择03UML 语言支持的建模方式不包括有()。
A.静态建模B.动态建模C.模块化建模D.功能建模选择04UML 中,包图是一种()。
A.集合B.数据结构C.分组机制D.对系统的动态描述选择05UML是一种()。
A.建模工具B.可视化的程序设计语言C.可视化的建模语言D.过程选择06UML是一种()语言。
A.程序设计B.面向对象C.交互式建模D.过程描述选择07类的属性结构要坚持简单的原则,尽可能不使用复杂的()。
A.数据结构B.处理C.方法D.参数选择08继承耦合是()之间的一种关联形式,设计时应该适当使用这种耦合。
A.虚类与实体类B.一般化类与特殊化类C.控制类与界面类D.数据类与处理类选择09包含关系用于构造多个用例()。
A.关系B.共性的部分C.角色D.特殊活动选择10从本质上说,面向对象是“先”确定动作的()“后”执行()。
A.数据结构/主体B.主体/数据结构C.动作/主体D.主体/动作选择11对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,由()实现。
A.顺序图B.类图C.状态图D.组件图选择12功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由()实现。
第4题
(3)
(1)语句覆盖测试用例
语句覆盖的含义是,选择足够多的测试数据,使被测试程序中的每个语句至少执行一次。
(2)路径覆盖测试用例
路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次。
30
20
10
60
40
20
T
T
T
2
3
2
1
1
1
1
F
F
F
1
Z
Y
X
C
B
A
3
2
1 预期的输
出
输入
判定
序
号
语句覆盖的测试用例
30
20 10 60 40 20 T
T
T
8
3 20 10 1 40 20 F T T 7 30
2 10 60 1 20
T F T 6 3
2
10 1 1
20 F F T 5 30 20 1 60 40 1 T T F 4 3
20 1 1
40 1 F T F 3 30 2 1 60 1 1 T F F 2 3 2 1 1 1 1 F F F 1 Z Y X C B A 3 2 1 预期的输出
输入 判定 序号 路径覆盖的测试用例
第5题
5.某图书馆由一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令:要求:
(1)设计测试数据以全面测试系统的正常操作。
(2)设计测试数据以测试系统的非正常操作。
答:根据系统说明,可以划分为如下等价类:
有效的输入等价类有
A.b(关键字)----s(屏幕上的行号)----d(索引号)
B.f(作者姓名)----d(索引号)
无效的输入等价类有
A.不输入任何字符。
B.输入的第一个命令非b或f
D.输入b命令后没有输入关键字
E.输入s命令后,没有输入行号
F.输入f命令后,没有输入作者姓名
G.输入d指令后,没有输入索引号
H.未按顺序输入命令或输入非b/s/d/f命令
(1)根据上面划分的等价类,设计测试数据如下:
A.输入:b(软件工程)----s(10)----d(10)
预期的结果:系统在屏幕上显示与给定的索引号有关的信息。
B.输入:f(张海藩)----d(10)
预期的结果:系统在屏幕上显示与给定的索引号有关的信息。
(2)根据上面划分的等价类,设计测试数据如下:
A.输入:空
预期的结果:提示错误“没有输入任何命令,请重新输入!”
B.输入:r
预期的结果:提示错误“系统不支持此命令,请重新输入!”
C.输入:b()
预期的结果:提示错误“您没有输入关键字!”
D.输入:b(软件工程)----s(abc)
预期的结果:提示错误“没有输入指定行号,或输入的行号不正确!”
F.输入:f()
预期的结果:提示错误“没有输入作者姓名,或输入的姓名不正确!”
G.输入:b(软件工程)----s(10)----d(--)
预期的结果:提示错误“没有输入索引号,或输入的索引号不正确!”
H.输入:f(张海藩)----display(10)
预期的结果:提示错误“您输入的是非法命令,操作失败!”
第6题
(1)用正常的输入数据作为测试数据
①向程序输入常规的出发点,目的地,飞机型号,5个位置校核点,高度和速度。
②输入3~5组出发点和目的地,重复执行步骤1
③输入固定的出发点、目的地、飞机型号、5个位置校核点和高度,分别输入3~5个不同的速度,重复执行步骤1
④输入固定的出发点、目的地、飞机型号、5个位置校核点和速度,分别输入3~5个不同的高度,重复执行步骤1
⑤输入固定的出发点、目的地、飞机型号、速度和高度,分别输入3~5组不同的位置校核点,重复执行步骤1
⑥输入固定的出发点、目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1
⑦输入固定的目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1
⑧输入固定的出发点、5个位置校核点和高度,分别输入3~5个不同的目的地,重复执行步骤1
(2)用特殊的数据值作为测试数据
①分别输入非常高和非常低的数据组合测试
②用负数测试
③输入数字0进行测试
④分别输入相距非常远和非常近的出发点和目的地测试
ay和size,size小于数组的大小,并给出需要查找的值,该值在somearray中;
预期的输出:返回-1;
⑤首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值不在somearray中;
预期的输出:返回-1;
⑥首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值在somearray中;
预期的输出:返回-1;
第八题
8.对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。
要求:
(1)根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。
在化这条曲线是做了什么假设?
(2)为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?
答:(1)MTTF与测试时间τ的关系曲线如下:
MTTF(h)
10
15 τ(月)
1
2
假设调试过程中没有引入新的错误。
(2)根据估算平均无故障时间的公式可得:
1/K(Et/10000-100/10000)=10 1/K (Et/10000-300/10000)=15 计算可得:K =333,Et=45 当MTTF=100h 时,有
1/333(45/10000-Ec/10000)=100
计算可得:Ec=42.按前两个月测试改错的进度估算,需进行3个月的集成测试。
当测试结束时,共改正了42个错误,还有3个错误潜伏在程序中。
第九题
9.如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:
(a)7月1日:集成测试开始,没有发现错误。
(b)8月2日:总共改正100个错误,此时MTTF=0.4h
(c)9月1日:总共改正300个错误,此时MTTF=2h
根据上列数据完成下列各题。
(1)估计程序中的错误总数。
(2)为使MTTF达到10h,必须测试和调试这个程序多长时间?
(3)画出MTTF和测试时间τ之间的函数关系曲线。
答:(1)根据估算平均无故障时间的公式可得:
1/K(Et/100000-100/100000)=0.4
1/K (Et/100000-300/100000)=2
计算可得:K=1000,Et=350即程序中的错误总数为350。
(2)当MTTF=10h时,有
1/K (350/100000- Ec/100000)=10
计算可得:Ec=340.按前两个月测试改错的进度估算,还进行2个月的集成测试。
(3)MTTF和测试时间τ之间的函数关系曲线如下:
τ(月)
1
2
2
0.4
MTTF(h)
第十题
10.在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。
经一个月测试后,甲发现并改正20个错误,使MTTF 达到10h 。
与此同时,乙发现24个错误,其中6个甲也发现了。
以后由甲一个人继续测试这个程序。
问: (1)刚开始测试时程序中总共有多少个潜在的错误?
(2)为使MTTF 达到60h ,必须再改正多少个错误?还需多长测试时间? (3)画出MTTF 与集成测试时间τ之间的函数关系曲线。
答:(1)根据公式:B0=B2B1/bc ,可得:
B0=20*24/6=80,即刚开始测试时程序中总共有80个错误。
(2)根据估算平均无故障时间的公式可得:
1/K(80/24000-20/24000)=10 1/K(80/24000- Ec/24000)=60
计算可得:K=40,Ec=70
即还需要改正50个错误。
根据甲的改正进度,估计还需要3个月。
(3)MTTF 与集成测试时间τ之间的函数关系曲线如下:
τ(月)
1
3.560
10。