| 显示国家开放大学系统国家开放大学软件工程所有答案 |
|
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/5
页
首页 上页 下页 尾页
|