软件工程必考题Word下载.docx
《软件工程必考题Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程必考题Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
2.如何检查数据流图的正确性和提高它的易理解性?
可从以下几个角度来检查数据流图的正确性:
数据守恒、文件的使用;
父图和子图的平衡等;
提高数据流图的易理解性可从以下几方面进行:
简化加工间的联系、注意分解的均匀、适当地命名等。
3.BROOKS定律?
定义:
向一个已经延期的项目增加人力,只会使得它更加延期。
原因:
1)当小组变得更大时,每个人需要用更多时间与组内其他成员讨论问题、协调工作,因此增加了通信开销。
2)如果在开发过程中增加小组人员,则最初一段时间内项目组总生产率不仅不会提高反而会下降。
这是因为新成员在开始时不仅不是生产力,而且在他们学习期间还需要花费小组其他成员的时间。
4.软件生命周期可分为哪三个时期?
GB8567中规定可分为哪几个阶段?
定义时期:
问题的定义(客户需求)、可行性研究(为什么做);
开发时期:
需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎样实现—具体)、编码(程序设计语实现)测试;
运行时期:
软件维护。
5、衡量模块独立性的两个标准是什么?
它们各表示什么?
答案:
模块独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;
内聚衡量一个模块内部各个元素彼此间结合的紧密程度。
在设计时应尽量做到高内聚低耦合,从而获得较高的模块独立性
6.为什么软件测试不应该由程序的编写人员来做?
软件测试的目的是为了发现程序中的错误而执行程序的过程。
正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。
如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;
相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。
7.可行性分析的任务是什么?
可行性分析的任务至少应该从以下三方面的可行性进行研究。
①技术上可行性:
②经济上的可行性:
进行成本估算及效益评估,确定项目是否值得开发。
③操作可行性:
系统的操作方式在这个用户组织内行得通么?
必要时还应该从法律、社会效益等更广泛的方面研究各种解法的可行性。
得分
评分人
8.什么是软件工程?
概括的说,软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够做到的最好的技术方法结合起来。
以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
9.什么是编码风格?
为什么要强调编码风格?
编码风格又称程序设计风格或编程风格。
编码的目标从强调效率转变为强调清晰。
良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。
尤其当多个程序员合作编写一个很大的程序时,需要强凋良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。
总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。
10、详细设计的基本任务?
有哪几种描述方法
答:
详细设计即过程设计,通过对结构表示进行细化,得到软件详细的数据结构和算法,其基本目就是回答“详尽、精确地描述系统个模块的具体实现方法”。
描述方法有:
程序流程图、盒图、PAD图、判定表、判定树、jackson图、warnier图。
11、软件测试的两种基本测试方法
基本测试方法有黑盒试和白盒测试。
黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。
也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。
黑盒测试又称为功能测试;
白盒测试法把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。
这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
白盒测试又称为结构测试
12、生命周期各阶段的基本任务是及描述方法
1)问题描述:
问题定义阶段必须回答的关键问题是:
“要解决的问题是什么?
”
2)可行性研究:
这个阶段要回答的关键问题是:
“对于上一个阶段所确定的问题有行得通的解决办法吗?
3)需求分析:
准确确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。
描述方法:
数据流图、数据字典
4)总体设计:
这个阶段必须回答的关键问题是:
“概括地说,应该怎样实现目标系统?
”描述方法:
系统流程图、层次图
5)详细设计:
也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。
程序流程图、盒图
6)编码和单元测试:
这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
7)综合测试:
这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。
三、分析与设计(每小题7分,共28分)
1.确定软件生命周期模型。
关于向M公司副总写一份报告关于快速原型对公司的软件开发更加优越
瀑布模型的一条重要的指导思想是清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。
最显著的特点是阶段间具有顺序性和依赖性,即必须等待前一阶段的工作完成之后,才能开始后一阶段的工作;
前一阶段的输出文档就是后一阶段的输入文档。
但在可行的软件产品交付给用户之前,了解用户只能通过文档来产品是什么样的。
但是,仅仅通过写在纸上的静态的规格说明很难全面正确地认识动态的软件产品。
快速原型是快速建立起来的可以在计算机上运行的程序,它能完成的功能往往是最终产品能完成的功能的一个子集。
快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上适用它,通过实践来了解目标系统的概貌。
通过原型开发人员可以快速获知用户的真正需求,可以加速软件开发过程,节约软件开发成本。
2.绘制DFD图及数据流条目。
请描述绘制DFD图
画出银行取款过程DFD图,问题描述为储户用户存折取款,首先填写取款单,依据账卡中的信息,检验取款单与存折,若有问题反馈给储户,否则登陆储户存款数据库,修改相应数据并更新账卡,那时发出付款通知。
画出DFD图并写出数据字典中的数据流条目
自学考试报名过程中有报名单处理,该处理主要是根据报名表姓名(姓名,性别,身份证号,课程名),和开考课程(课程名,开考时间),经检验,编号填写输出准考证给报名者,同时记录到考生名册中(准考证号,姓名,课程)
DFD图
数据流条目
报名单=姓名+性别+身份证号+课程名
开考课程=课程名+开考时间
考生名册=准考证号+姓名+课程
3.判定表及判定树
依描述绘制判定表
假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
(判定树表示)
4.由伪码程序画出程序流程图和盒图。
画出下列伪码程序的程序流程图和盒图
START
IFpTHEN
WHILEqDO
F
ENDDO
ELSE
BLOCK
G
n
ENDBLOCK
ENDIF
STOP流程图盒图
5.设计各种逻辑覆盖测试用例。
设计下列伪码程序的语句覆盖和路径覆盖测试用例:
INPUT(A,B,C)
//判定表达式1
IFA>
5THEN
X=10
X=1
//判定表达式2
IFB>
10THEN
Y=20
ELSE
Y=2
//判定表达式3
IFC>
15THEN
Z=30
Z=3
PRINT(X,Y,Z)
STOP
解:
语句覆盖的测试用例
序号
判定
输入
预期的输出
1
2
3
A
B
C
X
Y
Z
F
F
T
20
40
60
10
30
五、应用题
1.变换分析和事务分析
数字仪表板题目答案
第一级分解:
第二级分解:
未经精化的输入结构
未经精化的变换结构
未经精化的输出结构
精化后的数字仪表板系统的软件结构
Jackson方法
1、一个正文文件由若干个记录组成,每个记录是一个字符串。
要求统计:
1.每个记录中空格字符的个数,
2.以及文件中空格字符的总个数。
要求的输出数据格式是:
1.每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,
2.最后印出文件中空格的总个数。
表示输入输出数据结构的Jackson图:
描绘统计空格程序结构的Jackson图
用伪码表示程序处理过程
统计空格seq
打开文件
读入字符串
totalsum∶=0
程序体iteruntil文件结束
处理字符串seq
印字符串seq
印出字符串
印字符串end
sum∶=0
pointer∶=1
分析字符串iteruntil字符串结束
分析字符select字符是空格
处理空格seq
sum∶=sum+1
pointer∶=pointer+1
处理空格end
分析字符or字符不是空格
处理非空格seq
处理非空格end
分析字符end
分析字符串end
印空格数seq
印出空格数目
印空格数end
totalsum∶=totalsum+sum
读入字符串
处理字符串end
程序体end
印总数seq
印出空格总数
印总数end
关闭文件
停止
统计空格end
2、有两个输入文件:
考生基本情况文件(简称考生情况文件)和考生
高考成绩文件(简称考分文件)如下:
试用Jackson方法完成下列工作
(1)用Jackson图表示输入与输出结构,找出它们之间的对应单元;
(2)画出用Jackson图表示的程序结构;
(3)列出程序所需要的操作,并加到上一步画出的程序结构图上;
(4)用Jackson伪代码写出与程序结构图对应的过程性表示。
(4)用Jackson伪代码写出上述程序的过程表示。
产生新文件seq
打开两个输入文件
建立输出文件
从输入文件中各读一条记录
分析考生记录iteruntil文件结束
处理考生记录seq
产生准靠证号
产生姓名
产生通讯地址
产生考分
生成一条新记录
将新记录写入输出文件
处理考生记录end
关闭全部文件
停止
产生新文件end
4、下图给出的程序流程图代表一个非结构化的程序,请问:
(1)为什么说它是非结构化的?
(2)设计一个等价的结构化程序。
(3)在
(2)题的设计中你使用附加的标志变量flag吗?
若没用,请再设计一个使用flag的程序;
若用了,再设计一个不用flag的程序
(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。
3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。