一、填空题(每空2分,共20分)
请根据表格左边的分类名称,给右边的分类内容填写对应的编号. 编号 A B C D 分类名称 黑盒法 白盒法 主动式防错 被动式防错 编号 分类内容 数组界限检查 语句覆盖 等价类划分法 标志检查 栈深度检查 条件覆盖 边界值分析法 分支覆盖 内存检查 错误推测法
二、单项选择题(将一个正确的答案代码填入括号中,每小题3分,共15分) 1.( )是用户和设计交换最频繁的方法。 A. 原型化方法 B.瀑布模型方法
C. 螺旋模型方法 D. 构件组装模型方法
2.下列哪个阶段不是软件生存期三个阶段中的内容( )。 A. 计划阶段 B.开发阶段 C. 编码阶段 D. 维护阶段
3.下列( )操作产生的副作用属于数据副作用。 A. 修改子程序
B.局部变量的再定义 C. 删除标识符
D.修改对编辑条件的测试 4.软件测试的目的( )。
A. 避免软件开发中出现的错误 B.发现软件开发中出现的错误
C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D.修改软件中出现的错误
5.完成详细设计的工具不包括( )。 A.PAD图 B.数据流图 C.HlP()图 D.程序流程图
三、多项选择题(将一个以上正确的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。 A. 经济可行性
B.技术可行性 C. 运行可行性
D.法律可行性
2.对于下列的数据流图的局部,有关描述中正确的是( )。
A. 该图为第一层数据流图
3.需求分析阶段结束后,交出的文档中应该包括( )。 A. 数据流图 B.数据字典
C. 简明的算法描述 D.项目的经费预算 4.软件管理工作涉及到的直接对象包括( )。 A. 软件开发人员 B.硬件设备 C. 项目经费 D.软件项目
5.在软件设计中,( )耦合应尽量避免。 A. 控制 B.数据
C.内容 D. 标记
四、判断题(正确的在括号内打上“√”,错误的打上“X”。每小题2 分,共10分)
1。软件危机是指在软件开发和维护过程中遇到的一系列严重问题。 ( )
2,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。 ( ) 3.UML只能应用于软件系统模型的建立。 ( )
4.程序设计语言中应绝对禁止使用GOTO语句。 ( ) 5.模块越小,模块的优点越大。 ( ) 五、问答题(每小题10分,共20分) 1.什么是软件?什么是软件工程?
2.什么是编码风格?为什么要强调编码风格? 六、分析题(共20分)
根据下列N—S图,写出其对应的伪码。
软件工程 试题答案及评分标准 (供参考)
一、填空题(每空2分,共20分)
请根据表格左边的分类名称,给右边的分类内容填写对应的编号。 编号 A B C D 分类名称 黑盒法 白盒法 主动式防错 被动式防错 编号 D B A C D B A B C A 分类内容 数组界限检查 语句覆盖 等价类划分法 标志检查 栈深度检查 条件覆盖 边界值分析法 分支覆盖 内存检查 错误推测法 二、单项选择题(每小题3分,共15分)
1.A 2.C 3.B 4.C 5.D 三、多项选择题(每小题3分,共15分)
1.ABCD 2.BCD 3.ABC 4.ACD 5. CD 四、判断题(每小题2分,共lo分)
1. √ 2.√ 3. X 4.X 5.X 五、问答题(每小题10分,共20分)
1.答:软件是一种产品。包含下面三方面的含义,
(1)在运行中能提供所希望的功能和性能的指令集(即程序); (2)使程序能够正确运行的数据结构; (3)描述程序研制过程、方法所川的文档。
软件工程是指导汁算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2.答:编码风格又称程序设计风格或编程风格。
随着软件技术的发展,编码的目标已经从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。尤其当多个程序员合作编写——个很大的程序时,需要强调良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。
六、分析题(共20分) 答: Start a b
Do Until x6 If xl then f
If x4 then
Do Until x5 i
End Until Else g h End if Else
Select Case x2 Case l:
Do While x3 c
End While Case 2: d Case 3: e End Select End if End U
软件工程第二次作业
一、填空(在横线上填写正确的答案,每空1分,共25分)
1.软件开发模型中的螺旋模型在笛卡尔坐标的四个象限上表达了——,风险分析,实施工程、——四个方面的活动.
2.假设使用代码行技术进行费用估计,莱软件中共6000行程序,每行平均成本20元,则该软件的成本为——·
3.数据流图的基本符号包括——、——、——、——。 4.在可行性研究中,最难决断和最关键的是——· 5.冗余技术一般包括——,——两类。
6.保证软件质量的措施主要有——、复查和管理复审、——·
7.把程序从一个硬件或软件环境中转移到另一种配置环境称为软件的——'
8.面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用。它包括面向 对象的分析、——、——、面向对象的测试和——等主要内容. 9.软件测试的方法有——和——。
10.设计测试方案中最困难的问题是——,通常的做法是用——设计基本的测试方案,再用——补充一些方案。
1L提高软件质量和可靠性的技术大致分为两类,即——和——。 12.目前预防性软件维护采用的主要技术是——和——。
二、单项选择题(将一个正确的答案代码填入括号中,每小题2分,共10分) 1.下列( )不是需求分析后需要提交的。
A.数据流图 B.数据字典
C. 流程图 D.一组简明的算法描述
3.如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为( A.时间内聚 B. 逻辑内聚 C. 通信内聚 D.信息内聚
4.从软件工程学的角度来看,( )不是汇编语官的缺点。 A. 生产率低 B. 维护困难
C. 容易出错 D.难以实现系统接口
5.下列( )操作产生的副作用属于数据副作用。 A. 修改子程序 B. 局部变量的再定义
C. 删除标识符 D.修改对编辑条件的测试
三、多项选择题(将一个以上正确的答案代码填入括号中,每小2分,共10分) 1. 下列( )要满足每个判定的每种可能的结果都应该执行一次。 A.判定覆盖 B. 判定/条件覆盖 C. 条件覆盖 D. 点覆盖
2.关于数据字典正确的描述是( )。
A. 数据字典最重要的用途是作为分析阶段的工具
B. 实现数据字典三种常见的方法有全人工过程、全自动化过程、混合过程 C. 数据字典应该容易更新和修改
) D. 可以采用卡片形式书写数据字典
3.软件管理工作涉及到的直接对象包括( )。 A. 软件开发人员 B. 硬件设备 C. 项目经费 D.软件项目
4.关于软件测试,正确的描述包括( )。 A. 测试90要认定被测试的软件有错 B.要尽量避免测试自己编写的程序
C. 测试要兼顾合理输入与不合理输人数据
D. 测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,选择好测试用例与 测试方法
5.耦合的强弱取决于( )。 A. 模块间接口的复杂程度 B. 调用模块的方式 C. 通过接口的信息
D. 模块内部各个元素彼此之间的紧密结合程度
四、判断(正确的在括号内打上“√”,错误的打上X。每小2分,共10分) 1.对于软件项目,投资回收期越长,越快获得利润。( )
2.概要设计阶段完成的主要文档是概要设计说明书。( )
3.Jackson图只能表达程序结构,不能表达数据结构。( )
4.程序设计语言中应绝对禁止使用GOTO语句。( ) 5.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。( )
五、问答题(共28分)
1.什么是软件危机,软件危机有哪几种表现?(本题10分)
2.在需求分析阶段,建立目标系统的逻辑模型的具体做法是什么?(本题9分)
3.简述什么是静态分析技术?什么是动态测试技术?(本题9分)
六、分析题(共17分)
1.根据下列N—S图,写出其对应的伪码。(本题10分)
软件工程第三次作业
一、填空题(在横线上填写正确的答案,每空1分,共25分)
1.软件工程是从——和——两个方面研究如何运用工程学的基本原理和方法来更好地开发和维护计算机软件的一门学科。
2.基于软件的工作方式,可以将软件划分为——、分时处理软件、——和—— 3.需求分析的基本任务是准确的回答——
4.把程序从一个硬件或软件环境中转移到另一种配置环境称为软件的——。 5‘模块间的耦合程度强烈的影响系统的可理解性、——、可靠性和——。 6.UML的定义包括——和——两个部分。
7.在数据流图中,加工以——或——作为加工对象。
8.详细设计的目的是为软件结构图中的每一个模块确定使用的——和——,并用某种指定的表达工具给出清晰的描述。
9.实现容错的主要手段是——和防错程序设计。
10.软件测试的步骤主要包括——、集成测试、确认测试和——。 11。在需求分析阶段常用的图形工具有——、Warnier图、——。 12.逻辑覆盖指——,是对——的惟一可行的替代办法。 13.HIPO图是由一组————图和一张——图组成。 14·——是指程序的执行速度及程序占用的存储空间。
二、单项选择题(将一个正确的答案代码填入括号中,每小题2分,共10分), 1. 软件开发时,一个错误发现得越晚,为改正它所付出的代价就( )。 A.越大 B.越小
C. 越不可捉摸 D.越接*均水平 2.下列哪个图不是N—S图的构件( )。
3.对于螺旋模型,下列( )不是利用笛卡尔坐标表达的活动。 A.制定计划 B.实施工程 C。风险分析 D.程序编码
4.下列哪个做法会导致不利的语句结构( )。 A. 避免过多的循环嵌套和条件嵌套
B.对递归定义的数据结构尽量不再使用递归过程
C. 模块功能尽可能单一化,模块间的耦合能够清晰可见 D.确保所有变量在使用前都进行初始化 5.下列( )属于详细设计。
A. 分析项目的成本和效益 B.为每个模块确定采用的算法 C. 编写代码 D. 确定模块结构,划分模块功能
三、多项选择题(将一个以上正确的答案代码填入括号中,每小题2分,共10分) 1.利用特尔菲(Delph)法进行成本评估包括( )步骤。 A. 把系统定义文件或规格说明发给各位专家 B. 专家分组开会取得各组意见 C. 由协调人综合意见
D.专家组重新开会进行反复评估 2.( )可以作为模块。 A. 过程 B.子程序 C.函数 D. 宏
3.程序设计语言的特点包括( )。 A.名字说明 B.类型说明
C. 初始化 D·循环和分支控制结构 4.下列描述正确的是( )。
A. 该结构的宽度为4 B.该结构的深度为4 C. 模块t的扇人为3 D.模块A的扇出为3 5.下列( )属于主动式防错程序设计。 A.内存检查 B.检查栈的深度 C. 连接检查
D.检查数组的界限
四、判断题(正确的在括号内打上“√”,错误的打上”X”。每小题2分,共10分) 1.软件的开发与运行经常受到硬件的限制和制约。( ) 2.模块越多,开发成本越小。( ) 3.数据流图与程序流程图的主要区别是程序流程图中各处理框之间有严格的时间上的顺序。而数据流图只反映数据的流向,不反映处理逻辑的先后。( ) 4.利用PAD图设计出的程序必定是结构化的程序。( )
5.冗余程序设计就是每个程序采用两种不同的算法编写。( ) 五、问答题(共28分)
1.什么叫软件的生存期?软件的生存期可以分为几个阶段?(本题7分) 2.什么是模块独立性,模块独立性的重要性是什么?(本题7分) 3.软件的质量反应在哪些方面?(本题7分)
4.什么是黑盒测试法?什么是白盒测试法?(本题?分) 六、分析题(共17分)
1.已知被测试模块流程图如下,按照“条件覆盖”法,在表格中填人满足测试要求的数据。 (本题10分)
假设几种可能的条件是:
软件工程 试题答案及评分标准
(供参考)
一、填空(每空1分,共25分) 1.管理 技术
2.实时处理软件 交互式软件 批处理软件 3.系统必须做什么 4.可移植性
5.可测试性 可维护性 6.UML语义 UML表示法 7.数据结构 数据内容 8.算法 块内数据结构 9.冗余
10.单元测试 系统测试 11.层次方框图 IPO图
12.有选择的执行程序中某些最有代表性的通路 穷尽测试 13.IPO HC 14.程序效率
二、单项选择(每小题2分,共10分)
1.A 2.B 3.D 4.B 5.B 三、多项选择(每小题2分,共10分)
1.AC 2.ABCD 3.ABCD 4.BD 5.AC 四、判断题(每小题2分,共10分)
1.√ 2.X 3.√ 4.√ 5.X 五、问答题[共28分)
1.答:一个软件产品从定义、开发、维护到废弃的时间总和称为软件的生存周期(LiftCycle)。
软件生存期可以分为?个阶段: (1)问题定义; (2)可行性研究; (3)需求分析; (4)设计; (5)编码; (6)测试;
(7)运行与维护。
2.答:模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。
具有独立的模块软件比较容易开发出来。独立的模块比较容易测试和维护。 3.答;软件质量是各种特性的复杂组合。软件质量反映了以下三方面的问题: (1)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。
(2)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。 (3)往往会有一些隐含的需求没有明确地提出来。
4.答;黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。
白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。 六、分析题[第l小题10分,第2小题7分,共17分) 1.答:
注意:本题答案不唯一,学生给出的数字正确就应该算对。 2.答:
软件工程第四次作业
一、填空题(在横线上填写正确的答案,每空1分,共25分)
1.软件的发展经历了_______、程序系统阶段、________和__________第四阶段。 2.软件工程的基本原则包括___________、__________、一致性和确定性。 3,在可行性研究中,最难决断和最关键的是_______。
4.优秀的设计通常是从现有的物理系统出发,导出现有系统的_________。 5.需求分析的基本任务是________。
6.在数据流图中,加工以________或________作为加工对象。 7.数据字典的内容包括_______、_______、_______、数据存储、处理逻辑和外部实体。 8.PAD图既可用于表示________,也可用于描绘________。
9.结构程序设计是一种设计程序的技术,它采用__________、_________的控制结构。 10.模块独立的概念是________、________、信息隐蔽和___________概念的直接结果。
11.面向对象方法是一种运用_________、________、_________、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
12.实现容错的主要手段是_______和防错程序设计。
13.软件测试的步骤主要包括_________、集成测试、确认测试和__________。
二、单项选择题(将一个正确的答案代码填入括号中,每小题2分,共10分) 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.修改对编辑条件的测试
三、多项选择题(将一个以上正确的答案代码填入括号中,每小题2分,共10分) 1.利用特尔菲(Delphi)法进行成本评估包括( )步骤。 A.把系统定义文件或规格说明发给各位专家 B. 专家分组开会取得各组意见 C. 由协调人综合意见
D.专家组重新开会进行反复评估
2.关于软件测试,正确的描述包括( )。 A. 测试前要认定被测试的软件有错
B. 要尽量避免测试自己编写的程序
C. 测试要兼顾合理输入与不合理输入数据
D. 测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,选择好测试用例与测试方法
3.在软件设计中,( )耦合应尽量避免。 A. 控制 B.数据 C. 内容 D.标记
4.下列描述正确的是( )。
A. 该结构的深度为3 B.该结构的宽度为3 C. 模块A的扇出为4 D.模块t的扇入为2 5.软件管理工作涉及到的直接对象包括( )。 A. 软件开发人员 B.硬件设备 C. 项目经费 D.软件项目
四、判断题(正确的在括号内打上“√”,错误的打上“X”。每小题2分,共10分) 1.软件维护阶段的花费很少。因此不需要太重视。( )
2.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。( )
3.软件开发的成本主要是人的劳动消耗。( ) 4.UML只能应用于软件系统模型的建立。( )
5.程序设计语言中应绝对禁止使用GOTO语句。( )
五、问答题(共28分)
l,什么是软件危机,软件危机有哪几种表现?(本题7分) 2.什么是数据流图?为什么数据流图要分层?(本题7分) 3,简述详细设计的任务。(本题7分)
4.简述什么是静态分析技术,什么是动态测试技术。(本题7分)
六、分析题(共17分)
1.用Jackson图表示下图所示的二维表格:(本题10分)
该产品记录由表头和表体两部分组成。其中表头又顺序包括表名和宇段名。表体可由任 意行组成,每行包括产品的编号、产品名称、生产厂家和型号。
2.指出下列程序段存在的问题,并进行合理的修改。(本题7分) 程序段目的:打印A,B,C三数中最小者。 if(A110 write(B); goto 140;
120 if(A 140 140 end 软件工程 试题答案及评分标准 一、填空(每空1分,共25分) 1.程序设计阶段 软件工程阶段 2.分解 独立性 3.技术可行性 4.高层逻辑模型 5.准确的回答“系统必须做什么” 6.数据结构 数据内容 7.数据流 数据项 数据结构 8.程序逻辑 数据结构 9.单入口 单出口 10.模块化 抽象 局部化 11.对象 类 封装 12.冗余 13.单元测试 系统测试 二、单项选择(每小题2分,共10分) 1.D 2.B 3.D 4.A 5.B 三、多项选择(每小题2分,共10分) 1.AC 2.ABCD 3.CD 4.BD 5.ACD 四、判断题(每小题2分,共10分) 1.X 2.X 3.√ 4.X 5.X 五、问答题(共28分) 1. 答:软件开发和维护的过程中所遇到的一系列严重的问题。具体表现在: (1)产品不能符合用户的实际需求; (2)软件开发的效率较低; (3)软件产品的质量差; (4)软件开发成本和进度的估算不准确; (5)软件可维护性差; (6)软件开发文档资料不完整也不合格; (?)软件的价格昂贵。 2. 答: 数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。描述一个复杂的系统,不可能一下子引进太多的细节。否则用一张数据流图画出所有的数据流和处理逻辑,这张图将及其庞大、复杂,难以绘制,难以理解。因此数据流图需要进行分解,用几个数据流图来表示。 3. 答: 为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;确定每一模块使用的数据结构;确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部 细节; 要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例通常应包括输入数据,期望输出等内容。 4. 答: 静态分析技术:不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。 动态测试技术:当把程序作为一个函数,输人的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结构的测试、接口的测试,都是以执行程序并分析执行结果来查错。 六、分析题(第1小题10分,第2小题7分,共17分) 1.答: 2.答: 存在的主要问题包括 1. 1. 大量使用GOTO语句,导致程序的流程混乱。 2.程序编写不注意格式,可读性差。修改如下: if(Aif(A>B)and(B 因篇幅问题不能全部显示,请点此查看更多更全内容