UML 中,包图是一种()。
单选题 (3 分) 3分
A.
集合
B.
数据结构
C.
分组机制
D.
对系统的动态描述
答案是:C
UML 语言支持的建模方式不包括有()。
单选题 (3 分) 3分
A.
静态建模
B.
动态建模
C.
模块化建模
D.
功能建模
答案是:C
()用于描述系统的功能集。
单选题 (3 分) 3分
A.
组件视图
B.
逻辑视图
C.
用例视图
D.
对象视图
答案是:C
()是从用户的观点描述系统功能,它由一组用例、参与者以及它们之间关系所组成。
单选题 (3 分) 3分
A.
类图
B.
对象图
C.
顺序图
D.
用例图
答案是:D
一个学生考试成绩统计程序,小于60分为“不及格”;60-79为“中”;80-89为“良”;90分以上为“优秀”,录入其他成绩均为“无效”。要求:按等价类划分方法设计测试用例。
答案是:一个学生考试成绩统计程序,小于60分为“不及格”;60-79为“中”;80-89为“良”;90分以上为“优秀”,录入其他成绩均为“无效”。要求:设计语句覆盖的测试用例。
答案:
假设变量A是读入的成绩,则设计的测试用例有5个:
A=59 不及格
A=79 中
A=89 良
A=99 优
A=101 无效
说明:此题的答案不唯一,只要符合等价类划分要求即可
根据下面程序代码,画出程序流程图,然后设计满足条件组合覆盖的测试用例。
BEGIN
T:=0
IF ( X>=80 AND Y>=80 )THEN
T:=1
ELSE IF ( X>=90 AND Y>=75 )
答案是:经化简后的测试用例:x=95 y=95;x=95,y=70;x=70,y=95;x=70,y=70;
简化的图书馆图书信息管理系统有以下要求:(1)借书:输入读者借书证和书号,系统检查借书证是否有效;查阅借还书文件,检查该读者所借图书是否超过8本,若已达8本,显示信息“已经超出借书数量”,拒借;然后查询是否有超过1个月期限的图书,若有则显示
答案是:数据字典4分:可以用表格的方式说明也可以按照传统的数据字典格式,例如:
名称:借还书信息
编号:DS03
简述:保存读者的借还书记录
数据存储的组成:编号+读者号+图书号+借书日期+还书日期+操作员编号
存储方式:数据库表
访问频率:每日大约300条记录。
数据元素名称:编号
简称:NO
类型:CHAR
长度:6
取值范围:000000-999999
初始值:系统自动产生
其他……
或者:
编号:DS03 名称:借还书信息
名称 简称 键值 类型 长度 值域 初值 备注
编号 NO P 字符 6 自动
读者号 ReadNO 字符 11
图书号 BookNO 字符 13
借书日期 Bdate 日期 当前日期
还书日期 Rdate 日期 当前日期
操作员编号 OPNO 字符
学校每学期为品学兼优的学生发放奖学金,奖学金根据学生本人申请,班主任和同学评议的结果,分为三个等级,一等奖5名,二等奖10名,三等奖50名,向全校公布。
开发一个软件实现奖学金的评比和发布。每学期由学生本人填写申请信息:学号、姓名、班级、
答案是:学号 姓名 班级 申请
等级 成绩
等级 学习总成绩 同学
评分 班主任评分 总分 实际获奖情况
请用判定表描述产品出库量的计算方法:当库存量大于等于提货量时,以提货量作为出库量;当库存量小于提货量,但是库存量大于等于提货量的50%时,以实际库存量作为出库量;否则,出库量为0,不能提货。
答案是:条件 1 2 3
库存≧提货量 T F
库存≧50%提货量 T F
按提货量出库 T
按库存量出库 T
不出库 T
下面程序代码,编程人员误把IF ((A==2) OR (X>1)) 条件写成了IF ((A==2) OR (X<1)),用A=2,B=0,X=3和A=2,B=1,X=1这两组测试用例不能发现错误,请你添加足够多的测试用例,以发现程序中的错误
答案是:用A=1,B=0,X=3测试用例可以发现错误,因为按照测试用例的预计的输出X=4,而错误的输出是X=3。
公司为本科以上学历的员工重新安排工作,原则如下:①如果年龄不满23岁,学历是本科,一律考研生;②如果年龄在23岁至50岁之间,学历本科,任项目经理;③如果年龄在50岁以下,学历硕士,任命为中层领导;④如果年龄超过50岁,不做调整,要求画出判
答案是:条件 1 2 3 4
<23 T
[23,50] T
<50 T F
本科 T T
研究生 T
报考研究生 T
项目经理 T
中层领导 T
不变 T
类别:终考】【特殊标签:】
请画图说明软件工程的层次化结构,并详细分析中间两层的内容。
答案是:软件工程的内容具有层次化结构,最底层是质量保证层,中间是过程层和方法层,最上层是工具层。见图:
其中过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。
类别:终考】【特殊标签:】
一个程序片段如下,请设计符合条件组合覆盖的测试用例。
……
if (a>=4) && (b<0)
c=a+b;
else
c=a-b;
if (c>3) || (c<1)
printf(“
答案是:a>=4 b<0
a>=4 b>=0
a<4 b<0
a<4 b>=0
c>3
c<=3
c<1
c>=1
综合以上条件组合,设计测试用例如下(注意结果不唯一,只要满足上面的组合条件即可):
a=4 b=-1 c=3
a=4 b=0 c=4
a=-1 b=-1 c=0
a=2 b=0 c=2
一个程序片段如下,请设计符合判定覆盖的测试用例。
if (a>=5) && (b<0) {
c=a+b;
else
c=a-b;
if (c>5) || (c<1)
printf(“c不在计算区域\n”)
答案是:判断覆盖标准为,不仅使条语句都至少执行一次,还要使程序中每个分支都至少执行一次。也就是说,设计的测试用例使每个判定都有一次取“真”和“假”的机会。
测试用例(不唯一):a=16 t=0 b=11 c=16; a=5 t=0 b=10 c=15
一个程序片段如下,请设计符合判定覆盖的测试用例。
if (a>=5) && (b<0)
c=a+b;
else
c=a-b;
if (c>5) || (c<1)
printf(“c不在计算区域\n”)
else
p
答案是:条件:
a>=5 b<0
a>=5 b≮0
c<1
1
下面的程序段A被程序员误写成程序段B,请设计合适的测试用例发现其中的错误。(有图)
程序段A 程序段B
……
{
T=0;
if (A>=1)&& (B>=2) T=T+1;
else T=T+2;
if (X>=90) &
答案是:条件组合:
A>=1 B>=2;
A>=1 B>2
A<1 B>=2
A<1 B<2
X>=90 Y>=75
X>=90 Y<75
X<90 Y>=75
X<90 Y<75
由此获得测试用例:A=1 B=2; A=1 B=1;A=0 B=2;A=0 B=1;X=90 Y=75;X=90 Y=1;X=1 Y=75;X=1 Y=1;其中 X=90 Y=75和 X=90 Y=1能够发现错误。
试分析结构化方法存在的主要问题是什么?
答案是:1)结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性。
2)需求分析的细化程度没有标准,只能凭借分析人员的经验自己把握;需求分析的过程是在一种瀑布形式,当需求变更时,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。
3)结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。
结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。
试从软件的特点出发分析软件危机产生的原因。
答案是:1)软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。
2)软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。
3)软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”的,通用性差。
4)软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很高的要求。
5)软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。
设计下列伪程序的语句覆盖测试用例。
BEGIN
INPUT(A,B,C)
IF A>5 THEN
X=10
ELSE
X=1
END IF
IF B>10 THEN
Y=20
ELSE
Y=2
END IF
答案是:因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次。下面是实现语句覆盖的典型测试用例:
(1)使3个判定表达式之值全为假
输入:A=1,B=1,C=1
预期的输出:X=1,Y=2,Z=3
(2)使3个判定表达式之值全为真
输入:A=20,B=40,C=60
预期的输出:X=10,Y=20,Z=30
设计下列伪程序的条件组合覆盖测试用例。
BEGIN
INPUT(x,y,z)
IF(y>1) AND (z=0) THEN
x=x/y
END IF
IF(y=2) OR(x=l) THEN
x=x+l
END
答案是:条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次。
本程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是:
y>1, z=0
y>1, z<>0
y<=1, z=0
y<=1, z<>0
y=2, x=1
y=2, x<>1
y<>2, x=1
y<>2, x<>1
条件组合覆盖设计测试用例:
实现1,6两种条件组合
输入:y=2, z=0, x=4;
实现 2,5两种条件组合
输入:y=2, z=1, x=1;
实现 3,8两种条件组合
输入:y=1, z=0, x=2;
实现 4,7两种条件组合
输入: y=1, z=1, x=1.
设计下列伪程序的条件组合覆盖测试用例。
BEGIN
INPUT(A,B)
IF(A>0) AND (B>0) THEN
X=A+B
ELSE
X=A-B
END
IF (C>A) OR (D
答案是:条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次。
本程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是:
A>0,B>0
A>0,B<=0
A<=0,B>0
A<=0,B<=0
C>A,DA,D>=B
C<=A,D=B
下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次:
实现1,5两种条件组合
输入:A=1,B=1,C=2,D=0
预期的输出:X=2,Y=2
实现2,6两种条件组合
输入:A=1,B=0,C=2,D=1
预期的输出:X=2,Y=1
实现3,7两种条件组合
输入:A=0,B=1,C-1,D=0
预期的输出:X=-1,Y=-1
实现4,8两种条件组合
输入:A=0,B=0,C=-1,D=1
预期的输出:X=0,Y=0
设计下列伪程序的判定覆盖测试用例。
if (a>10) then
x=10
else
x=1
end if
if(b>10)and (t<3) then
y=20
else
y=2
end if
答案是:判断覆盖标准为,不仅使条语句都至少执行一次,还要是程序中每个分支都至少执行一次。也就是说,设计的测试用例使每个判定都有一次取“真”和“假”的机会。
测试用例(不唯一):a=16 t=0 b=11 c=16; a=5 t=0 b=10 c=15
设计下列伪程序的判定覆盖测试用例。
BEGIN
INPUT(a,b,c,x,y,z,t);
IF (a>10) THEN
x=10
ELSE
x=1
END IF
IF(b>10)AND (t<3) THEN
y=
答案是:判断覆盖标准为,不仅使条语句都至少执行一次,还要是程序中每个分支都至少执行一次。也就是说,设计的测试用例使每个判定都有一次取“真”和“假”的机会。
测试用例(不唯一):a=16 t=0 b=11 c=16; a=5 t=0 b=10 c=15
软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与功能需求的区别?
答案是:业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。
功能需求定义了软件开发人员必须实现的软件功能。用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序。软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。开发人员根据功能需求进行软件设计和编码。
请为下面的程序设计符合判定覆盖的测试用例。
int main()
{
int a,b,c,x,y,z,t;
scanf(“d%,d%,d%),&a,&b,&c,&t);
if a>5 && t<1 x=10 else x=1;
答案是:a>5,t=0
a<=5,t=0
b>10
b<=10
c>15
c<=15
测试用例(不唯一):a=6 t=0 b=11 c=16; a=5 t=0 b=10 c=15
请说明IPO图的作用,并给出一个IPO图的模板。
答案是:数据流程图中的处理本应该放在数据字典中进行定义,但是由于处理与数据是有一定区别的两类事物,它们各自有独立的描述格式,因此在实际项目中通常将处理说明用IPO图标描述。下面是项目中常用的处理说明模板:
系统名称: 作者:
处理编号: 日期:
输入参数说明: 输出参数说明:
处理说明:
局部数据元素: 备注:
孩子阅读疲倦时,一定要休息。如果不疲倦,但是对所阅读的内容不感兴趣,就跳到下一章;如果不疲倦,对内容有兴趣,理解无困难,则继续阅读;如果不疲倦,对内容有兴趣,但理解有困难,则应该重读。请对上面的描述设计判定表。
答案是:疲倦 Y Y Y Y N N N N
感兴趣 Y Y N N Y Y N N
糊涂 Y N Y N Y N Y N
重读 √
继续 √
跳到一下章 √ √
休息 √ √ √ √
化简为:
疲倦 Y N N N
感兴趣 Y Y N
糊涂 Y N
重读 √
继续 √
跳到一下章 √
休息 √
类别:终考】【特殊标签:】
对功率大于50马力的机器或已运行 10 年以上的机器,应送到专业的维修公司处理;否则如果功率小于20马力,并且有维修记录,则在车间维修;否则送到本厂的维修中心维修,请建立判定表。
答案是:>=50马力 Y N N N
<=20马力 N N Y N
>=10年 N Y - N
有维修记录 - - Y -
送外 √ √
本厂 √
本车间 √
读懂下面的程序,调整格式,使其更容易理解,并添加注释。
int main()
{
int a[10];
for (int i =0;i<10;i++)
scanf(“%d”,a[i]);
int max=a[0],min=a[1
答案是:int main()
{
int a[10];
//读入10个数据
for (int i =0;i<10;i++)
scanf("%d",a[i]);
//max存放最大值,min存放最小值
int max=a[0],min=a[0];
//从10个数中发现最大、最小值
for (int j = 0;j<10;j++)
{
max=(max>a[j]?max:a[j]);
min=(min
根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?
答案是:对于侵犯软件著作权的行为,(1)要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;(2)损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;(3)情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;(4)触犯刑律的,依法追究刑事责任。
软件的可维护性是软件设计师最关注的性能,谈谈为了获得软件良好的可维护性,在设计时应该注意哪些问题?
答案是:(1)在设计阶段应该做一些变更实验,检查系统的可维护性、灵活性和可移植性;(2)设计时应该将今后可能变更的内容与其他部分分离开来,并且遵循高内聚、低偶合的原则。
面向对象的设计活动中,有构架师、用例工程师和构件师参加,他们每个角色的职责是什么?
答案是:(1)构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。该活动以用例模型、分析模型为输入,生成物理构架、子系统及其接口、概要的设计类(即设计阶段定义的类)。
(2)根据分析阶段产生的高层类图和交互图,由用例设计师研究已有的类,将它们分配到相应的用例中。检查每个用例的功能,这些功能依靠当前的类能否实现,同时检查每个用例的特殊需求是否有合适的类来实现。细化每个用例的类图,描述实现用例的类及其类之间的相互关系,其中的通用类和关键类可用粗线框区分,这些类将作为项目经理检查项目时的重点。
经过前面两个活动,构架设计师已经将系统的构架建立起来,用例设计师按照用例的功能将每个类分配给相应的用例。现在要由构件工程师详细设计每个类的属性、方法和关系。
设计类的属性时必须要定义是哪两项?
答案是:设计类的属性时必须要定义的内容:
1)属性的类型:设计属性时必须要根据开发语言确定每个属性的数据类型,如果数据类型不够,设计人员可以利用已有的数据类型定义新的数据类型。
2)属性的可见性。在设计属性时要确定公有属性、私有属性、受保护属性。
提高程序可读性有哪些招数?对你来讲比较灵验的是哪些?
答案是:a)源程序文件头说明,函数应有函数头说明,内容包括:程序标题;有关该模块功能和目的说明;主要算法说明;接口说明,包括调用形式、参数描述、子程序清单、有关数据的说明。
b)主要变量(结构、联合、类或对象)的定义能够反映其内在含义。
c)变量定义最规范化,说明的先后次序固定。
d)处理过程的每个阶段和典型算法前都有相关注释说明。
e)用缩进来显示程序的逻辑结构。
f)嵌套的循环和分支程序层次不要超过五层。
请简单分析顺序图和活动图的区别。
答案是:(1)活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。
(2)顺序图用于描述一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
请简单说明结构化分析的主要步骤。
答案是:(1)根据用户的需求画出初始的数据流程图;(2)写出数据字典和初始的加工处理说明(IPO图);(3)实体关系图。(4)以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。(5)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。(6)系统分析人员与用户一起对需求分析的结果进行复查。(7)根据细化的需求修订开发计划。(8)编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。
什么是软件工程?请分析软件工程的目标是什么?
答案是:软件工程是:① 将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;② 对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
合理预算开发成本,付出较低的开发费用。
软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别?
答案是:业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。
用户需求是用户使用该软件要完成的任务。这部分需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其他系统的接口等等。用户需求是最重要的需求,也是出现问题最多的。
为了提高软件的可维护性,在软件开发过程的各个阶段怎样充分考虑软件的可维护性因素。
答案是:(1)在需求分析阶段应该明确维护的范围和责任,检查每条需求,分析维护时这条需求可能需要的支持,对于那些可能发生变化的需求要考虑系统的应变能力。
(2)在设计阶段应该做一些表更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离出来,并且遵循高内聚、低耦合的原则。
(3)编码阶段要保持源程序与文档的一致性、源程序的可理解性和规范性。
(4)在测试阶段测试人员应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。
为了提高软件的可维护性,在软件开发过程的各个阶段要充分考虑软件的可维护性因素。
答案是:(1)在需求分析阶段应该明确维护的范围和责任,检查每条需求,分析维护时这条需求可能需要的支持,对于那些可能发生变化的需求要考虑系统的应变能力。
(2)在设计阶段应该做一些表更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离出来,并且遵循高内聚、低耦合的原则。
(3)编码阶段要保持源程序与文档的一致性、源程序的可理解性和规范性。
(4)在测试阶段测试人员应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。
什么是软件危机?试简述至少3种软件危机的典型表现。
答案是:(1)软件危机是指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
(2)典型表现:
开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;
软件需求分析不够充分,用户不满意“已经完成”的软件系统。
软件质量难于保证;
软件维护困难;
通常没有保留适当的文档资料
开发成本逐年上升;
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
什么是软件生命周期?他分为哪几个阶段?
答案是:软件生命周期是一个软件从提出开发要求到废弃为止的整个时期。
软件生命周期可分为8个阶段:问题定义、可行性分析、需求分析、概要设计、详细设计、编码、系统测试和运行维护
什么是软件?如何评价软件的质量?
答案是:(1) 软件是程序以及开发、使用和维护程序所需的所有文档。
(2)软件质量从可维护性、可靠性、可理解性和效率等方面对软件作较全面的评价。
什么是耦合?什么是内聚?
答案是:在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量模块之间彼此依赖的程度。软件设计时追求高内聚、低耦合。
软件设计中的抽象是什么意思?
答案是:所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。或者说,抽象就是抽出事务的本质特性而暂时不考虑它们的细节
软件工程为什么要强调规范化和文档化?
答案是:(1)软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
(2)文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
软件工程的主要目标是什么?
答案是:软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
实现预期的软件功能,达到较好的软件性能,满足用户的需求。
增强软件过程的可见性和可控性,保证软件的质量。
提高所开发软件的可维护性,降低维护费用。
提高软件开发生产率,及时交付使用。
合理预算开发成本,付出较低的开发费用。
请说明判定表的作用及其结构。
答案是:判定表是结构化设计的工具,用于多条件的描述。其结构分为4部分:条件列表、条件组合、操作列表、特定条件下的操作组合。
请说明快速原型化模型的基本思想
答案是:在需求分析的同时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统。用户在原型系统上可以进行基本操作,并且提出改进意见,分析人员根据用户的意见完善原型,然后再由用户评价,提出建议,如此往复,直到开发的原型系统满足了用户的需求为止。基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环。这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高。
请说明对象模型的作用是什么?
答案是:对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。
请举例说明用例之间的包含关系和扩展关系的区别?
答案是:包含关系用于构造多个用例共同的活动。例如,在ATM系统中,取钱、查询、更改密码等功能都需要验证用户密码。这种情况下应该将密码验证功能独立出来,便于复用、减少冗余。一个用例扩展另一个用例的功能,例如,在图书馆信息管理系统中,读者还书时,系统检查所还图书是否有预订记录,如果有则执行“通知”用例。
请给出软件工程七条基本原理中的任意三条基本原理。
答案是:原理1.用分阶段的生命周期计划严格管理
原理2.坚持进行阶段评审
原理3.实行严格的产品控制
原理4.采用现代程序设计技术
原理5.结果应能清楚地审查
原理6.开发小组的人员应该少而精
原理7.承认不断改进软件工程实践的必要性
请给出软件工程七条基本原理中的任意6条基本原理。
答案是:原理1.用分阶段的生命周期计划严格管理
原理2.坚持进行阶段评审
原理3.实行严格的产品控制
原理4.采用现代程序设计技术
原理5.结果应能清楚地审查
原理6.开发小组的人员应该少而精
原理7.承认不断改进软件工程实践的必要性
面向对象的分析通常要建立三个模型,请问三个模型的作用?
答案是:1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。2)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。3)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。
结构化程序设计的特征是什么?
答案是:结构化程序设计的特征如下:程序模块只有一个入口和一个出口、程序中只包含顺序、条件和循环三种控制结构。
简述在项目开发时选择程序设计语言的主要考虑的因素。
答案是:编程人员的水平和编程经历;
待开发的软件类型;
算法和计算复杂性;
数据结构的复杂性;
软件的开发成本和时间要求;
软件可移植性要求;
可用的软件工具。
简述软件过程模型。
答案是:(1)软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合。它明确定义软件过程中所执行的活动及其顺序,确定没一个活动内容和步骤,定义每个角色和职责。
(2)软件工程将软件开发和维护的过程概况为8个大的活动:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、系统测试和运行维护。
简述模块独立性,内聚与耦合。
答案是:模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。一般采用两个准则度量模块独立性。即模块间耦合和模块内聚。耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。
简述面向对象分析的三个模型。
答案是:(1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。
(2)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
(3)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。
简述结构化分析的主要步骤。
答案是:(1)根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。
(2)以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。
(3)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。
(4)系统分析人员与用户一起对需求分析的结果进行复查。
(5)根据细化的需求修订开发计划。
(6)编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。
活动图与状态图的区别?
答案是:(1)描述的重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。
(2)使用的场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在其生命周期内的行为时,一般使用状态图。
衡量模块独立性的两个标准是什么?它们各表示什么含义?
答案是:(1)两个定性的度量标准:耦合与内聚性。
(2)耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
(3)内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。
等价分类法的基本思想是什么?
答案是:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。
简述模块独立性,内聚与耦合
答案是:模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。一般采用两个准则度量模块独立性。即模块间耦合和模块内聚。耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。
用__________模型描述系统组织结构。
【A.】组织
【B.】CMM
【C.】数据
【D.】静态
答案是:D
项目计划活动的主要任务是估算项目的进度、工作量、资源和__________。
【A.】风险
【B.】时间
【C.】人员
【D.】事情
答案是:A
项目计划活动的主要任务是__________。
【A.】估算项目的进度
【B.】分配工作量
【C.】计划资源使用
【D.】以上全部
答案是:D
通俗的说,软件项目管理中常说的基线是__________。
【A.】管理的基本思路
【B.】 一种软件开发的基本策略
【C.】基本的技术路线
【D.】 通过正式复审的文档
答案是:D
软件项目管理的内容不包括__________。
【A.】人员的组织与管理
【B.】 技术和算法
【C.】软件配置管理
【D.】软件开发进度计划
答案是:B
软件项目管理的内容包括__________。
【A.】人员的组织与管理
【B.】软件配置管理
【C.】软件开发进度计划
【D.】以上所有
答案是:D
美国卡内基﹒梅隆大学制定的SW-CMM是__________。
【A.】软件工作规范
【B.】软件工作流描述
【C.】软件成熟度模型
【D.】软件描述的一般方法
答案是:C
框架是一组可用于不同应用的__________的集合。
【A.】类
【B.】数据结构
【C.】函数
【D.】过程
答案是:A
下列选项中,属于详细设计阶段的任务的是( )。
【A.】组装测试计划
【B.】单元测试计划
【C.】初步用户手册
【D.】验收测试计划
答案是:B
不属于软件项目管理的是__________。
【A.】开发机构能力评估
【B.】项目风险评估
【C.】质量监控
【D.】软件销售利润
答案是:D
SW-CMM是一种__________规范。
【A.】编程规范
【B.】软件工作通用模型
【C.】软件设计模型
【D.】软件成熟度模型
答案是:D
Gantt图直观简明、易学易用,但它不能__________。
【A.】直接反应任务间的依赖关系和关键路径
【B.】反应任务的分解情况
【C.】直接反应任务的起止日期
【D.】反应具体任务的时间段
答案是:A
__________针对开发过程中的程序、数据、文档提出使用和管理策略。
【A.】组织管理
【B.】过程管理
【C.】软件配置管理
【D.】风险管理
答案是:C
在软件生存期的维护阶段,继续诊断和修正错误的过程称为__________。
【A.】完善性维护
【B.】适应性维护
【C.】预防性维护
【D.】改正性维护
答案是:D
引起软件改变的原因主要有__________。
【A.】运行环境变化
【B.】 需求变化
【C.】系统有错
【D.】以上全部
答案是:D
以下属于完善性维护的有__________。
【A.】解决开发是未能测试各种可能条件带来的问题
【B.】增加联机求助命令
【C.】缩短系统的应答时间,使其达到特定要求
【D.】为提高软件的可靠性和可维护性,主动修改软件
答案是:B
一般维护程序代码的策略__________。
【A.】从需求开始重新开发
【B.】根据维护申请读源程序,并修改
【C.】找一个新的模块替换
【D.】 不用读源程序,从新编写代码
答案是:B
维护的工作量与软件规模成__________,软件的规模可以由源程序的语句数量、模块数、输入输出文件数、数据库的规模,以及输出的报表数等指标来衡量。
【A.】反比
【B.】正比
【C.】没关系
【D.】不确定
答案是:B
为了适应软硬件环境变化而修改软件的过程是__________。
【A.】校正性维护
【B.】完善性维护
【C.】适应性维护
【D.】预防性维护
答案是:C
为了获得维护的统计信息,应该记录每次维护的__________。维护管理者根据统计信息积累维护管理的经验,作为今后制定维护计划的依据。
【A.】 类型
【B.】工作量
【C.】维护人员
【D.】以上全部
答案是:D
通常软件的可维护性常常随着时间的推移而__________。
【A.】降低
【B.】提高
【C.】不变
【D.】不确定
答案是:A
软件维护过程中产生的副作用,一般是由__________引起的。
【A.】算法说明
【B.】修改程序
【C.】优先级
【D.】环境要求
答案是:B
即使软件能顺利运行,但用户往往会提出增加新功能或改进已有功能的建议,为满足这一类要求而进行的活动称为__________。
【A.】完善性维护
【B.】预防性维护
【C.】适应性维护
【D.】代码重构
答案是:A
在设计黑盒测试用例时,主要研究__________。
【A.】概要设计说明书
【B.】详细设计说明
【C.】项目开发计划
【D.】需求规格说明
答案是:D
在设计测试用例时,应该包括__________测试用例。
【A.】 可能产生无效输出的输入情况
【B.】无效的和不期望的输入情况
【C.】有效的和期望的输入情况
【D.】上面所有情况
答案是:D
以下哪种测试方法不属于白盒测试技术__________。
【A.】语句覆盖测试
【B.】边界值分析测试
【C.】条件覆盖测试
【D.】判断覆盖测试
答案是:B
一个测试用例是__________。
【A.】输入数据
【B.】输出结果
【C.】输入数据和预期的输出数据
【D.】实际的输出数据
答案是:C
一般性的软件其测试工作量大约占整个开发工作量的__________。
【A.】小于10%
【B.】40%
【C.】90%
【D.】大于100
答案是:B
验收测试主要涉及的文档是__________。
【A.】需求规格说明书
【B.】概要设计说明书
【C.】详细设计说明书
【D.】源程序
答案是:A
下述哪一种测试方法,测试人员必须接触到源程序__________。
【A.】功能测试
【B.】结构测试
【C.】界面测试
【D.】性能测试
答案是:B
若有一个计算类型的程序,它的输入量只有一个X,其范围是[-0,0],现从输入的角度考虑一组测试用例:-001,-0,0,001。设计这组测试用例的方法是__________。
【A.】条件覆盖法
【B.】等价分类法
【
答案是:C
软件中遗留的错误数量与已经发现的错误数量成__________。
【A.】反比
【B.】正比
【C.】相等
【D.】没关系
答案是:B
软件开发活动的顺序应该是__________。
【A.】问题定义、可行性研究、需求分析、设计、编码和测试。
【B.】问题定义、设计、可行性研究、编码和测试。
【C.】需求分析、设计、编码和测试。
【D.】需求分析、编码和测试、试运行
答案是:A
软件工程中,只根据程序的功能说明而不关心程序内部逻辑的测试方法,称为__________测试。
【A.】白盒法
【B.】灰盒法
【C.】黑盒法
【D.】综合法
答案是:C
软件测试方法中,白盒测试法是常用的方法,主要用于__________。
【A.】结构的合理性
【B.】软件外部功能
【C.】程序正确性
【D.】程序内部逻辑
答案是:D
软件测试的主要特点是__________。
【A.】软件测试的开销不大
【B.】软件测试要依靠工具
【C.】软件不能进行“穷举”测试
【D.】软件测试要依靠人工
答案是:C
软件测试的目的是__________。
【A.】评价软件的质量
【B.】发现软件的错误
【C.】找出软件中的所有错误
【D.】证明软件是正确的
答案是:B
软件测试的目标是设计优秀的测试用例,__________。
【A.】最快速地找出程序中的问题
【B.】以最小的代价、在最短的时间内尽可能多地发现软件中的错误
【C.】保障程序的正确性
【D.】区分出程序员的编程水平
答案是:B
面向对象分析过程中建立的模型有__________。
【A.】 数据模型、功能模型、活动模型
【B.】 对象模型、功能模型、测试模型
【C.】 属性模型、功能模型、对象模型
【D.】 对象模型、功能模型、动态模型
答案是:D
可维护性的特性中,相互矛盾的是__________。
【A.】可理解性与可测试性
【B.】效率与可修改性
【C.】可修改性与可理解性
【D.】可理解性与可读性
答案是:B
可行性研究实质上是在较高层次上、以较抽象的方式进行__________的过程。
【A.】详细软件设计
【B.】需求分析过程
【C.】深入的需求分析
【D.】测试设计
答案是:B
画DFD 图的主要目的是__________。
【A.】作为需求分析阶段用户与开发者之间交流信息的工具
【B.】对系统的数据结构进行描述
【C.】对目标系统的层次结构进行描述
【D.】作为编码和测试的工具
答案是:A
黑盒测试在设计测试用例时,主要研究__________。
【A.】需求规格说明
【B.】详细设计说明
【C.】项目开发计划
【D.】概要设计说明与详细设计说明
答案是:A
根据是否要运行被测程序,可以分为__________和动态测试。
【A.】静态测试
【B.】白盒测试
【C.】黑盒测试
【D.】验收测试
答案是:A
从狭义上讲,软件测试是__________的过程。
【A.】 为发现错误而执行程序
【B.】为了验证程序正确
【C.】用不同的数据验证程序正确性
【D.】区分程序员水平
答案是:A
从测试对象的粒度上划分测试为__________。
【A.】单元测试、集成测试
【B.】压力测试、功能测试、性能测试和系统测试
【C.】单元测试、集成测试、系统测试和验收测试
【D.】黑盒测试、白盒测试、功能测试和性能测试
答案是:C
测试最早的开始时间是__________。
【A.】从详细设计阶段开始
【B.】从编码阶段开始
【C.】从需求分析阶段开始
【D.】以上都对
答案是:C
测试用例是一组__________。
【A.】测试用的输入数据以及对应的预期结果
【B.】测试驱动程序
【C.】测试数据
【D.】测试程序及数据
答案是:A
不管多么完善的软件都可能有潜在的问题,所以设计人员应该为软件进行__________设计,当软件遇到异常数据、事件或操作时,软件不至于彻底崩溃。
【A.】容错性
【B.】有效性
【C.】可靠性
【D.】安全性
答案是:A
__________属于功能测试方法。
【A.】等价类划分和判定覆盖
【B.】边值分析和等价类划分
【C.】边值分析和判定覆盖
【D.】判定覆盖和回归测试
答案是:B
_________时,测试人员必须接触到程序源代码。
【A.】黑盒测试
【B.】白盒测试
【C.】压力测试
【D.】外观测试
答案是:B
__________不符合软件测试原则。
【A.】对每个测试结果进行检查,不漏掉已经出现的错误迹象
【B.】程序员应该仔细测试自己编写的程序代码
【C.】程序员要避免测试自己编写的程序代码
【D.】测试工作越早开始越好
答案是:B
现在人们更强调程序代码的__________性。
【A.】可读
【B.】可移植
【C.】可扩充
【D.】可维护
答案是:A
源程序的效率与__________阶段确定的算法的效率直接有关。
【A.】概要设计
【B.】总体设计
【C.】单元设计
【D.】详细设计
答案是:D
下列关于功能性注释不正确的说法是__________。
【A.】 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
【B.】 注释用来说明程序段,需要在每一行都要加注释
【C.】 可使用空行或缩进,以便很容易区分注
答案是:B
软件特性中,相互矛盾的是__________。
【A.】可理解性与可测试性
【B.】效率与可修改性
【C.】可修改性和可理解性
【D.】可理解性与可读性
答案是:B
目前为:
1/3
页
首页 上页 下页 尾页