软件工程简答题答案.docx
《软件工程简答题答案.docx》由会员分享,可在线阅读,更多相关《软件工程简答题答案.docx(23页珍藏版)》请在冰点文库上搜索。
软件工程简答题答案
简答题
1.什么是软件工程?
请分析软件工程的目标是什么?
答案:
软件工程是:
①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
e)合理预算开发成本,付出较低的开发费用。
2.什么是软件危机?
软件危机表现在哪几个方面?
由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。
这种现象早在20世纪60年代被定义为“软件危机”。
它的具体表现如下:
a)“已完成”的软件不满足用户的需求。
b)开发进度不能保障,交付时间一再拖延。
c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。
d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。
e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。
3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?
答案:
对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。
4.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。
答案:
没有唯一答案。
a)不遵守标准和规范:
职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。
自从人们认识到软件危机以来,总结软件开发的失败教训和成功经验,并把它们总结成为最佳实践,进而形成标准,要充分利用这些最佳实践和标准来指导软件过程。
任何闭门造车、想当然的行为都是不被提倡的,注定要走弯路。
b)对待计划不严肃:
软件工程强调计划性,计划的内容包括:
设备资源、进度安排、人力资源、任务分配等等。
在项目的进行中要跟踪计划执行情况,记录计划执行过程中的偏差,对任何变更都要经过评审和批准才能付诸行动。
c)不主动与人沟通:
软件不可见的特性,需要软件工程师进行大量书面的、口头的或面对面的沟通,沟通的目的是为了使相关的人员了解项目的进展、遇到的问题、应用的技术、采用的方法。
5.软件工程为什么要强调规范化和文档化?
答案:
软件工程强调规范化和文档化。
规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。
另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。
在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
6.请简单说明结构化分析的主要步骤。
答案:
根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。
以初始数据流程图为基础,从数据流程图的输出端开始回溯。
在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。
对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。
系统分析人员与用户一起对需求分析的结果进行复查。
根据细化的需求修订开发计划。
编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。
7.设计类的属性时必须要定义是哪两项?
答案:
设计类的属性时必须要定义的内容:
1)属性的类型:
设计属性时必须要根据开发语言确定每个属性的数据类型,如果数据类型不够,设计人员可以利用已有的数据类型定义新的数据类型。
2)属性的可见性。
在设计属性时要确定公有属性、私有属性、受保护属性。
8.请简单分析顺序图和活动图的区别。
答案:
活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。
活动图特别适合描述工作流和并行处理过程。
具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。
顺序图用于描述一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
9.根据你的理解,为下面的数据流程图加上箭头,并把下列数据流添加到合适的位置:
用户名/密码、用户输入预订信息、保存预订信息、查询预订信息、登录确认、图书信息、查询条件、查询结果。
答案:
10.请用判定表描述产品出库量的计算方法:
当库存量大于等于提货量时,以提货量作为出库量;当库存量小于提货量,但是库存量大于等于提货量的50%时,以实际库存量作为出库量;否则,出库量为0,不能提货。
答案:
条件
1
2
3
库存≧提货量
T
F
库存≧50%提货量
T
F
按提货量出库
T
按库存量出库
T
不出库
T
11.公司为本科以上学历的员工重新安排工作,原则如下:
①如果年龄不满23岁,学历是本科,一律考研生;②如果年龄在23岁至50岁之间,学历本科,任项目经理;③如果年龄在50岁以下,学历硕士,任命为中层领导;④如果年龄超过50岁,不做调整,要求画出判定表。
答案:
条件
1
2
3
4
<23
T
[23,50]
T
<50
T
F
本科
T
T
研究生
T
报考研究生
T
项目经理
T
中层领导
T
不变
T
12.请举例说明什么是变换型数据流程图?
什么是事务型数据流程图?
答案:
没有唯一答案。
变换型数据流程图
事务型数据流程图
13.下面程序代码,编程人员误把IF((A=2)OR(X>1))条件写成了IF((A=2)OR(X<1)),用A=2,B=0,X=3和A=2,B=1,X=1这两组测试用例不能发现错误,请你添加足够多的测试用例,以发现程序中的错误。
BEGIN
……….
If((A>1)AND(B=0))THENDO
X:
=X/A;
IF((A=2)OR(X>1))THENDO
X:
=X+1;
END
答案:
用A=2,B=0,X=3测试用例可以发现错误,因为按照测试用例的预计的输出X=4,而错误的输出是X=3。
14.面向对象的分析通常要建立三个模型,请问三个模型的作用?
答案:
a)功能模型:
表达系统的详细需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由用例图和场景描述组成。
b)对象模型:
表示静态的、结构化的系统“数据”性质。
描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,类图是构件对象模型的核心工具。
c)动态模型:
描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。
面向对象方法中,常用状态图、顺序图、合作图、活动图构件系统的动态模型。
15.面向对象的设计活动中,有构架师、用例工程师和构件师参加,他们每个角色的职责是什么?
答案:
构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。
该活动以用例模型、分析模型为输入,生成物理构架、子系统及其接口、概要的设计类(即设计阶段定义的类)。
根据分析阶段产生的高层类图和交互图,由用例设计师研究已有的类,将它们分配到相应的用例中。
检查每个用例的功能,这些功能依靠当前的类能否实现,同时检查每个用例的特殊需求是否有合适的类来实现。
细化每个用例的类图,描述实现用例的类及其类之间的相互关系,其中的通用类和关键类可用粗线框区分,这些类将作为项目经理检查项目时的重点。
经过前面两个活动,构架设计师已经将系统的构架建立起来,用例设计师按照用例的功能将每个类分配给相应的用例。
现在要由构件工程师详细设计每个类的属性、方法和关系。
16.QQ软件的用户分为游客和登陆会员,登陆会员分为群成员和非群成员,群成员分为群主和群普通成员、群管理员,请用类的继承关系描述QQ用户群。
17.先将下列代码用规范的格式重写,然后画出对应的程序流程图。
START
INPUTX,N
DIMENSIONA(N),F(N)
DOI=1TON
INPUTF(I)
ENDDO
K=0
DOWHILE(KA(K)=0
DOJ=1TON-K
A(K)=A(K)+F(J)*F(J+K)/(N-K+1)
ENDDO
PRINTK*X,A(K)
K=K+1
ENDDO
STOP
答案:
START
INPUTx,n
DIMENSIONa(n),f(n)
DOi=1TOn
INPUTf(i)
ENDDO
k=0
DOWHILE(ka(k)=0
DOj=1TOn-k
a(k)=a(k)+f(j)*f(j+k)/(n-k+1)
ENDDO
PRINTk*x,a(k)
k=k+1
ENDDO
STOP
a)代码的大小写问题b)缩进c)画程序流程图
18.修改下面的程序片段的格式,使它的可阅读性更好,并且画出该程序段的程序流程图。
……
WHILEPDO
IFA>OTHENA1ELSEA2ENDIF;
S1;
IFB>0THENB1;
WHILECDOS2;S3ENDWHILE;
ELSEB2
ENDIF;
B3
ENDWHILE;
……
答案:
……
WHILEPDO
IFA>OTHEN
A1
ELSE
A2
ENDIF;
S1;
IFB>0THEN
B1;
WHILECDO
S2;S3
ENDWHILE;
ELSE
B2
ENDIF;
B3
ENDWHILE;
……
19. 提高程序可读性有哪些招数?
对你来讲比较灵验的是哪些?
答案:
a)源程序文件头说明,函数应有函数头说明,内容包括:
程序标题;有关该模块功能和目的说明;主要算法说明;接口说明,包括调用形式、参数描述、子程序清单、有关数据的说明。
b)主要变量(结构、联合、类或对象)的定义能够反映其内在含义。
c)变量定义最规范化,说明的先后次序固定。
d)处理过程的每个阶段和典型算法前都有相关注释说明。
e)用缩进来显示程序的逻辑结构。
f)嵌套的循环和分支程序层次不要超过五层。
二、应用题
1.学校每学期为品学兼优的学生发放奖学金,奖学金根据学生本人申请,班主任和同学评议的结果,分为三个等级,一等奖5名,二等奖10名,三等奖50名,向全校公布。
开发一个软件实现奖学金的评比和发布。
每学期由学生本人填写申请信息:
学号、姓名、班级、申请等级、申请理由;系统根据申请自动检查学生成绩文件,如果成绩有不及格则不能申请奖学金;如果平均成绩在85分以上有资格申请一等奖学金;75分以上可以申请二等奖学金;否则可以申请三等奖学金。
系统保存申请信息和成绩检查结果。
经过成绩筛选后,同学和班主任进行评议,同学可以给申请者加0—10分,教师可以给申请者0—10分。
学习成绩占80%,同学评分占10%,班主任评分占10%,最后由学生管理科编制一张报表。
请设计这张报表的内容和格式,并画出此系统的数据流程图。
参考答案:
日期:
XXXX学期学习奖学金获得者
学号
姓名
班级
申请
等级
成绩
等级
学习总成绩
同学
评分
班主任评分
总分
实际获奖情况
2.
根据下面程序代码,画出程序流程图,然后设计满足条件组合覆盖的测试用例。
BEGIN
T:
=0
IF(X>=80ANDY>=80)THEN
T:
=1
ELSEIF(X>=90ANDY>=75)THEN
T:
=2
ENDIF
END.
答案:
经化简后的测试用例:
x=95y=95;x=95,y=70;x=70,y=95;x=70,y=70;
3.一个学生考试成绩统计程序,小于60分为“不及格”;60-79为“中”;80-89为“良”;90分以上为“优秀”,录入其他成绩均为“无效”。
要求:
设计语句覆盖的测试用例。
答案:
假设变量A是读入的成绩,则设计的语句覆盖测试用例有5个:
A=59
不及格
A=79
中
A=89
良
A=99
优
A=101
无效
说明:
此题的答案不唯一,只要符合语句覆盖条件即可。
简化的图书馆图书信息管理系统有以下要求:
(1)借书:
输入读者借书证,系统检查借书证是否有效;查阅借还书文件,检查该读者所借图书是否超过8本,若已达8本,显示信息“已经超出借书数量”,拒借,然后查询是否有超过1个月,若有则显示信息“有超期未还图书”;两项检查通过后,办理借书(检查库存、修改库存文件并将读者借书信息登入借还书文件)
(2)还书:
输入书号和读者号,从借书文件中读出有关的借书记录,查阅所借日期,如果超过1个月,作罚款处理。
否则,修改库存文件与借还书文件。
请就以上系统功能画出DFD图,并给出借还书文件的数据字典。
答案:
画数据流程图:
可以有不同的答案,基本流程正确即可。
数据字典:
可以用表格的方式说明也可以按照传统的数据字典格式,例如:
名称:
借还书信息
编号:
DS03
简述:
保存读者的借还书记录
数据存储的组成:
编号+读者号+图书号+借书日期+还书日期+操作员编号
存储方式:
数据库表
访问频率:
每日大约300条记录。
数据元素名称:
编号
简称:
NO
类型:
CHAR
长度:
6
取值范围:
000000
初始值:
系统自动产生
其他……
或者:
编号:
DS03名称:
借还书信息
名称
简称
键值
类型
长度
值域
初值
备注
编号
NO
P
字符
6
自动
读者号
ReadNO
字符
11
图书号
BookNO
字符
13
借书日期
Bdate
日期
当前日期
还书日期
Rdate
日期
当前日期
操作员编号
OPNO
字符
4.学校每学期为品学兼优的学生发放奖学金,奖学金根据学生本人申请,班主任和同学评议的结果,分为三个等级,一等奖5名,二等奖10名,三等奖50名,向全校公布。
开发一个软件实现奖学金的评比和发布。
每学期由学生本人填写申请信息:
学号、姓名、班级、申请等级、申请理由;系统根据申请自动检查学生成绩文件,如果成绩有不及格则不能申请奖学金;如果平均成绩在85分以上有资格申请一等奖学金;75分以上可以申请二等奖学金;否则可以申请三等奖学金。
系统保存申请信息和成绩检查结果。
经过成绩筛选后,同学和班主任进行评议,同学可以给申请者加0—10分,教师可以给申请者0—10分。
学习成绩占80%,同学评分占10%,班主任评分占10%,最后由学生管理科编制一张报表。
请设计这张报表的内容和格式,并画出此系统的数据流程图。
参考答案:
日期:
XXXX学期学习奖学金获得者
学号
姓名
班级
申请
等级
成绩
等级
学习总成绩
同学
评分
班主任评分
总分
实际获奖情况
5.股票交易所给经纪人的手续费按下面方法计算:
总手续费=基本手续费+附加手续费
其中,
8.4%*交易金额交易总额<1000元
基本手续费=5%*交易金额+34交易金额【1000,10000】元
4%*交易金额+134交易金额>10000元
5%*基本手续费每股价格<14元,股数是100的倍数
附件手续费=2%*基本手续费每股价格【14,25】元
1.5%*基本手续费每股价格>25元
请用判定表描述手续费的计算方法。
答案:
条件
1
2
3
4
5
6
7
8
9
<1000
T
T
T
F
T
F
>10000
T
T
T
F
T
F
<14
T
F
T
F
T
F
>25
T
F
T
F
T
F
总手续费
①
②
③
④
⑤
⑥
⑦
⑧
⑨
①总手续费=8.4%*交易金额(1+5%)
②总手续费=8.4%*交易金额(1+1.5%)
③总手续费=8.4%*交易金额(1+2%)
④总手续费=4%*交易金额+134(1+5%)
⑤总手续费=4%*交易金额+134(1+1.5%)
⑥总手续费=4%*交易金额+134(1+2%)
⑦总手续费=5%*交易金额+34(1+5%)
⑧总手续费=5%*交易金额+34(1+1.5%)
⑨总手续费=5%*交易金额+34(1+2%)
6.一个城市的公共事业部决定开发一个“计算机化的”坑洼跟踪和修理系统。
市民通过本系统报告有坑洼时,要说明街道地址、大小、影响程度,还要记录报告者的姓名和电话,存储在坑洼报告信息中,被送到公共事业部,工作人员根据坑洼的地点和大小,修理队标识号,修理队的人数,被分配的装备,制定一份工单,送到维修队。
维修队修理后,将坑洼修理结果录入后生成坑洼维修文件,并把维修报告上报公共事业部,包括:
修理坑洼状况,使用填料的数量和修理的开销(时间、人数、使用的材料、装备)。
请画出数据流程图,设计工单信息的数据字典。
参考答案:
工单数据字典
数据项
类型
长度
初始值
备注
工单号
字符
8
自动生成
主键
坑洼编号
字符
8
DS01的主键
维修单位编号
字符
8
DS02的主键
制单日期
日期
8
当前日期
制单人
字符
8
工单描述
字符
500
工单级别
数字
1
0
计划工时
数字
2
0
计划用填料量
数字
5
0
单位(吨)
7.某培训中心要研制一个计算机管理系统,接受学员的报名信息。
首先检查课程文件,如果该课程已满额,提示学生不能选修此课程;否则登记学生基本信息、学生选课信息,修改课程文件,同时检查收费文件,输出应缴费用清单。
要求:
对以上问题画出数据流程图,画出该培训管理的软件结构图。
化简:
8.某城市的电话号码由三个部分组成,分别是地区码、前缀、后缀。
地区码省略或三位数字;前缀以大于等于5开头的四位数字;后缀是任意四位数字。
程序对于正确的电话号码进行显示,并接通线路;错误的电话号码提示错误信息;要求用等价分类法为电话接入程序设计测试用例。
(提示:
123-5123-1234)
答案:
此题无标准答案,参考下列答案
【999】{5-9}9999999
输入
预计输出
解释
有
效
等
价
类
123-5123-1234
-9123-1234
12351231234
91231234
地区码123前缀5123后缀1234
地区码null前缀9123后缀1234
错
误
等
价
类
12-5123-1234
1234-5123-1234
123-0123-1234
123-512-1234
123-51234-1234
123-5123-123
123-5123-12345
地区码三位
地区码三位
前缀首位错
前缀位数错
前缀位数错
后缀位数错
后缀位数错
此题不要求考虑无效等价类。