文档库

最新最全的文档下载
当前位置:文档库 > 软件工程期末复习--简答题

软件工程期末复习--简答题

软件工程期末复习--简答题

1、试从软件的特点出发分析软件危机产生的原因。

2、一个程序片段如下,请设计符合条件组合覆盖的测试用例。

……

if (a>=4) && (b<0) {

c=a+b;

else

c=a-b;

if (c>3) || (c<1)

printf(“c不在计算区域\n”)

else

printf(“%d\n”, c);

……

3、面向对象的分析通常要建立三个模型,请问三个模型的作用?

4、软件工程为什么要强调规范化和文档化?

5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。

int main()

{

int a[10];

for (int i =0;i<10;i++)

scanf(“%d”,a[i]);

int max=a[0],min=a[1];

for (int j = 0;j<10;j++)

{

max=(max>a[j]?max:a[j]);

min=(min

}

printf("max= %d",max);

printf("min= %d",min);

printf("\n");

return 0;

}

6、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别?

7、一个程序片段如下,请设计符合判定覆盖的测试用例。

if (a>=5) && (b<0) {

c=a+b;

else

c=a-b;

if (c>5) || (c<1)

printf(“c不在计算区域\n”)

else

printf(“%d\n”, c);

8、请说明对象模型的作用是什么?

9、请说明IPO图的作用,并给出一个IPO图的模板。

10、什么是耦合?什么是内聚?

11、请画图说明软件工程的层次化结构,并详细分析中间两层的内容。

12、请为下面的程序设计符合判定覆盖的测试用例。

int main()

{

int a,b,c,x,y,z;

scanf(“d%,d%,d%),&a,&b,&c);

if a>5 x=10 else x=1;

if b>10 y=20 else y=2;

if c>15 z=30 else z=3;

printf(“d%,d%,d%\n”,x,y,z)

}

13、请说明快速原型化模型的基本思想。

14、下面的程序段A被程序员误写成程序段B,请设计合适的测试用例发现其中的错误。

程序段A 程序段B

……

{

T=0;

if (A>=1)&& (B>=2) T=T+1; else T=T+2;

if (X>=90) &&(Y>=75) T=T+3; else T=T+4;

}

printf(“d%\n”,T);……

{

T=0;

if (A>=1)&& (B>=2) T=T+1; else T=T+2;

if (X>=90)&&(Y<75) T=T+3; else T=T+4;

}

printf(“d%\n”,T);

…… ……

15、请举例说明用例之间的包含关系和扩展关系的区别?

16、软件设计中的抽象是什么意思?

17、孩子阅读疲倦时,一定要休息。如果不疲倦,但是对所阅读的内容不感兴趣,就跳到下一章;如果不疲倦,对内容有兴趣,理解无困难,则继续阅读;如果不疲倦,对内容有兴趣,但理解有困难,则应该重读。请对上面的描述设计判定表。

18、活动图与状态图的区别?

19、试分析结构化方法存在的主要问题是什么?

20、请说明判定表的作用及其结构。

21、请给出软件工程七条基本原理中的任意三条基本原理。

22、结构化程序设计的特征是什么?

23、某学校开发了学生网上选课的系统,学生在网上查找到希望选修的课程,并查看是否还有名额,若有名额就输入学号,系统自动记录该学生的选课信息,并返回选课成功。下面的顺序图描述了选课成功的情形,请将以下对象填入最合适的位置:系统界面、学生、学生基本信息、学生选课记录、课程基本信息。

软件工程期末复习--简答题

24、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与功能需求的区别?

25、对功率大于50马力的机器或已运行10 年以上的机器,应送到专业的维修公司处理;如果功率小于20马力,并且有维修记录,则在车间维修;否则送到本厂的维修中心维修,请建立判定表。

参考答案:

1、某企业的设备维修委托给专业的技术公司完成,现在要开发软件对设备维修信息进行管理,具体描述如下:

车间主任填写维修申请单,内容有设备名称、型号、故障描述、维护时间要求、预计费用;填好后交给审计人员,审计人员根据企业的审计规定对维修申请单进行审计,填写审计意见和审计结果,审计意见可以修改费用,审计结果是同意或不同意;车间主任可以随时查询审计意见和结果;审计通过的维修申请单送给总经理进行审核,并填写审核意见和结果,审核也是以修改费用,审核结果是同意或不同意。审核通过后,车间把设备送去维修。维修后由车间主任组织对设备维修结果进行验收,企业对每台有设备验收标准。验收通过后,由财务人员进行结算,填写支付单并支付维修费。最后收取发票后,财务人员填写发票记录。

请画出设备维修信息管理软件的数据流程图。

2、某个学生成绩管理系统的部分功能如下:

(1)基本信息管理:教务管理人员输入或修改学期教学计划、学生名单和教师名单;

(2)学生选课:学生根据教学执行计划进行选课;

(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师;

(4)教师查询并打印课表;

(5)成绩管理:每门课程的教师在考试评分结束后将考试成绩录入,学生可查询。

请根据要求画出该问题的数据流程图。

3、一个简化的养老院软件需求描述如下:老人来到养老院,接待人员将老人的基本信息录入到系统中,管理员读取老人信息,进行护理级别的评估,根据评估结果分配床位、确定护理方案,床位的分配信息存入床位分配数据表,每位老人的护理方案也要保存到数据库表中。财务人员根据收费标准、床位分配信息、护理方案和老人的日常护理记录计算应收费用,老人的家属可以查询应收费信息和老人的日常护理信息。护士根据老人基本信息、护理方案对老人进行日常护理,并向系统录入每日的护理信息。请你根据以上的描述,画出数据流程图。

4、学校教师工资管理系统的需求描述如下:教师每月末将本月的工作量输入到系统中,学院负责人对教师输入的工作量进行审核,财务部门对审核后的工作量计算本月工资,本月工资=基本工资+各种补贴+工作量奖金-税收-保险一公积金金。基本工资、各种补贴、保险、公积金信息由人事处负责输入和维护,教师可以查询月工资明细。银行系统每月从本系统读入每位教师的实发工资,并向每位教师的银行卡帐户打入月工资。教师可以查询自己银行卡的金额。

请针对上面描述的需求画出数据流程图。

5、学校开发的网上作业管理信息系统需求如下:教师使用本系统将作业题输入到数据库中,并且针对不同的学生布置不同的作业。学生在网上查看教师给自己布置的作业,并完成作业,完成的作业放在学生作业表中。教师在网上批阅作业,并可以统计作业完成情况。学生可以查看教师批阅的作业,修改作业中的错误,教师仍然可以查看学生修改作业的情况,并给予批阅。

请仔细阅读上面的描述,画出数据流程图。

二、简答题

1、答案

1)软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分

析、思考和判断才能了解它的功能和性能。

2)软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算

机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并

且维护的成本通常比开发成本高许多。

3)软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就

是为应用“量身订做”软件。长期以来,软件给人的感觉是修改几条指令很简单,

客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”

的,通用性差。

4)软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很

高的要求。

5)软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是

“不可见性”,这大大增加了组织管理上的困难。

2、答案

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=-1 b=0 c=-1

3、答案

1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。2)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。3)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。

4、答案

软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人

员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

5、答案

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

}

//输出结果

printf("max= %d",max);

printf("min= %d",min);

return 0;

}

6、答案

业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。

用户需求是用户使用该软件要完成的任务。这部分需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其他系统的接口等等。用户需求是最重要的需求,也是出现问题最多的。

7、答案

条件:

a>=5 b<0

a>=5 b≮0

c<1

1

符合判定覆盖的测试用例(不唯一):a=5,b=-1,c=4; a=5,b=5,c=0;

8、答案

对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。

9、答案

数据流程图中的处理本应该放在数据字典中进行定义,但是由于处理与数据是有一定区别的两类事物,它们各自有独立的描述格式,因此在实际项目中通常将处理说明用IPO图标描述。下面是项目中常用的处理说明模板:

软件工程期末复习--简答题

10、答案

在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。

内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量模块之间彼此依赖的程度。软件设计时追求高内聚、低耦合。

11、答案

软件工程的内容具有层次化结构,最底层是质量保证层,中间是过程层和方法层,最上层是工具层。见图:

软件工程期末复习--简答题

其中过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。

12、答案

条件:

a>5

a<=5

b>10

b<=10

c>15

c<=15

判定测试用例(不唯一):a=6 b=11 c=16;a=5 b=10 c=15

13、答案

在需求分析的同时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统。用户在原型系统上可以进行基本操作,并且提出改进意见,分析人员根据用户的意见完善原型,然后再由用户评价,提出建议,如此往复,直到开发的原型系统满足了用户的需求为止。基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环。这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高。

14、答案

条件组合:

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=75。

15、答案

包含关系用于构造多个用例共同的活动。例如,在ATM系统中,取钱、查询、更改密码等功能都需要验证用户密码。这种情况下应该将密码验证功能独立出来,便于复用、减少冗余。一个用例扩展另一个用例的功能,例如,在图书馆信息管理系统中,读者还书时,系统检查所还图书是否有预订记录,如果有则执行“通知”用例。

16、答案

所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。或者说,抽象就是抽出事务的本质特性而暂时不考虑它们的细节

17、答案

软件工程期末复习--简答题

软件工程期末复习--简答题

18、答案

1)描述的重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。

2)使用的场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在其生命周期内的行为时,一般使用状态

图。

19、答案

1)结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数

据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图

之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性。

2)需求分析的细化程度没有标准,只能凭借分析人员的经验自己把握;需求分析的过

程是在一种瀑布形式,当需求变更时,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。

3)结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。

4)结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。

20、答案

判定表是结构花设计的工具,用于描述多重条件的处理。分为4各部分:条件列表、条件组合、操作列表、特定条件下的操作组合。

21、答案

原理1.用分阶段的生命周期计划严格管理

原理2.坚持进行阶段评审

原理3.实行严格的产品控制

原理4.采用现代程序设计技术

原理5.结果应能清楚地审查

原理6.开发小组的人员应该少而精

原理7.承认不断改进软件工程实践的必要性

22、答案:

结构化程序设计的特征如下:程序模块只有一个入口和一个出口、程序中只包含顺序、条件和循环三种控制结构。

23、答案

软件工程期末复习--简答题

24、答案

业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。

功能需求定义了软件开发人员必须实现的软件功能。用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序。软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。开发人员根据功能需求进行软件设计和编码。

25、答案

软件工程期末复习--简答题

二、应用题

1、答案

参考答案如下,结果不唯一。

软件工程期末复习--简答题

2、答案不唯一。参考答案如下:

软件工程期末复习--简答题

答案不唯一,参考答案如下:

软件工程期末复习--简答题

、答案

4

软件工程期末复习--简答题

软件工程期末复习--简答题