软件工程形成性考核册答案.docx

上传人:b****2 文档编号:662554 上传时间:2023-04-29 格式:DOCX 页数:18 大小:192.67KB
下载 相关 举报
软件工程形成性考核册答案.docx_第1页
第1页 / 共18页
软件工程形成性考核册答案.docx_第2页
第2页 / 共18页
软件工程形成性考核册答案.docx_第3页
第3页 / 共18页
软件工程形成性考核册答案.docx_第4页
第4页 / 共18页
软件工程形成性考核册答案.docx_第5页
第5页 / 共18页
软件工程形成性考核册答案.docx_第6页
第6页 / 共18页
软件工程形成性考核册答案.docx_第7页
第7页 / 共18页
软件工程形成性考核册答案.docx_第8页
第8页 / 共18页
软件工程形成性考核册答案.docx_第9页
第9页 / 共18页
软件工程形成性考核册答案.docx_第10页
第10页 / 共18页
软件工程形成性考核册答案.docx_第11页
第11页 / 共18页
软件工程形成性考核册答案.docx_第12页
第12页 / 共18页
软件工程形成性考核册答案.docx_第13页
第13页 / 共18页
软件工程形成性考核册答案.docx_第14页
第14页 / 共18页
软件工程形成性考核册答案.docx_第15页
第15页 / 共18页
软件工程形成性考核册答案.docx_第16页
第16页 / 共18页
软件工程形成性考核册答案.docx_第17页
第17页 / 共18页
软件工程形成性考核册答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程形成性考核册答案.docx

《软件工程形成性考核册答案.docx》由会员分享,可在线阅读,更多相关《软件工程形成性考核册答案.docx(18页珍藏版)》请在冰点文库上搜索。

软件工程形成性考核册答案.docx

软件工程形成性考核册答案

二、简答题

1.什么是软件工程?

软件工程的目标是什么?

答:

软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。

目标:

1合理预算开发成本,付出较低的开发费用。

2实现预期的软件功能,达到较好的软件性能,满足用户的需求。

3提高软件的可维护性,降低维护费用。

4提高软件开发生产率,及时交付使用

2.可行性研究报告的主要内容是什么?

答:

可行性研究主要包括以下几个部分:

(1)概述

(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论

3.什么是需求分析?

需求分析阶段的基本任务是什么?

答:

所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。

可以说,“需求分析”就是确定要计算机“做什么”。

任务:

确定软件项目的目标和范围。

调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。

除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作

4.什么是结构化分析方法?

该方法使用什么描述工具?

答:

结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。

结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止

描述工具:

1系统流程图2数据流程图3数据字典4IPO图5层次方框图6实体—关系图

7状态—变迁图

5.结构化分析方法通过哪些步骤来实现?

答:

1)    确定系统的功能要求

2)    确定系统的数据要求

3)    确定系统的操作要求和界面要求

4)    确定系统的性能要求

5)    确定系统的运行要求

6)    获得当前系统的物理模型

7)    抽象出当前系统的逻辑模型

8)    建立目标系统的逻辑模型。

9)    修正开发计划

10)如果需要则开发系统原型

6.什么是数据流图?

其作用是什么?

其中的基本符号各表示什么含义?

答:

数据流图:

简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

  数据流图的基本符号的意思:

  1.矩形表示数据的外部实体;

  2.圆角的矩形表示变换数据的处理逻辑;

  3.少右面的边矩形表示数据的存储;

4.箭头表示数据流。

7.什么是数据字典?

其作用是什么?

它有哪些条目?

答:

数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。

作用:

数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。

包括的条目:

数据流词条

数据元素词条

数据存储词条

数据加工处理词条

数据源点及终点词条

8.什么是概要设计?

有哪些基本任务?

答:

概要设计:

根据用户的需求先确定软件系统的总体结构和总的设计原则

基本的任务:

设想供选择的方案。

推荐最佳方案。

功能分解,确定软件结构。

设计软件结构。

制定测试计划。

数据设计。

书写文档。

包括总体设计规格说明书。

用户手册。

测试计划。

设计审查和复审。

9.详细设计的基本任务是什么?

有那几种描述方法?

答:

详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。

主要方法有设计程序流程图,表格设计符号以及过程设计语言。

10.什么是变换流?

什么是事物流?

答:

变换型数据流可以划分为明显的三部分:

逻辑输入,中心变换,逻辑输出

事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务

11.模块的内聚有哪几种?

模块间的耦合有哪几种?

答:

内聚分为七种类型:

巧合内聚——一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚

逻辑内聚——当一个模块执行一系列相关的动作时,称其有逻辑内聚。

时间性内聚——当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。

过程内聚——模块执行的若干动作之间有顺序关系。

通信内聚——模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。

信息内聚——一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。

功能性内聚——一个模块中各个部分都是完成某一具体功能必不可少的组成部分

耦合分为七类:

内容耦合——如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。

公共耦合——如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。

外部耦合——如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。

控制耦合——如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的

数据结构耦合——当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。

数据耦合——如果两个模块传递的是数据项,则这两个模块是数据耦合。

非直接耦合——如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。

三、应用题

1.某旅馆的电话服务如下:

可以拨分机号和外线号码。

分机号是从7201至7299。

外线号码先拨9,然后是市话号码或长话号码。

长话号码是以区号和市话号码组成。

区号是从100到300中任意的数字串。

市话号码是以局号和分局号组成。

局号可以是455,466,888,552中任意一个号码。

分局号是任意长度为4的数字串。

写出在数据字典中,电话号码的数据条目的定义(即组成)。

名称

简称

类型

长度

取值范围

分机号

Extension_Number

字符

4

7201..7299

外线市话号

Addition_Internumber

字符

9

9+[455|466|888|552]+4{数字}4

外线长话号

Addition_Extennumber

字符

12

9+[100|101|102|..|298|299|300]+[455|466|888|552]+4{数字}4

2.下面是旅客订飞机票的需求描述,试画出分层的数据流程图。

顾客将订票单交给预订系统:

(1)如果是不合法订票单,则输出无效订票信息;

(2)对合法订票单的预付款登录到一个记账文件中;(3)系统有航班目录文件,根据填写的旅行时间和目的地为顾客安排航班;(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并记录到取票单文件中。

顾客在指定日期内用取票单换取机票:

(1)系统根据取票单文件对取票单进行有效性检查,无效的输出无效取票信息;

(2)持有有效取票单的顾客在补交了剩余款后将获得机票;(3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。

订单中有订票日期、旅行日期、时间要求(上午、下午、晚上)、出发地、目的地、顾客姓名、身份证号、联系电话。

0层流程图

预定流程图

取机票流程图

3.一个简化的图书馆信息管理系统有以下功能:

(1)借书:

输入读者借书证,系统检查借书证是否有效;查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,显示信息“已经超出借书数量”,拒借;未达10本,办理借书(检查库存、修改库存信息并将读者借书信息登入借书记录)

(2)还书:

输入书号和读者号,从借书记录中读出与读者有关的记录,查阅所借日期,如果超过3个月,作罚款处理。

否则,修改库存信息与借书记录。

(3)查询:

可通过借书记录、库存信息查询读者情况、图书借阅情况及库存情况,打印各种统计表。

请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。

0层数据流程图

还书流程图

借书流程图

查询流程图

数据字典:

元素名称

名称

类型

说明

IPO1

还书处理

处理

根据书号做还书处理,违规做处罚

IPO2

有效性检查

处理

检查读者号,图书号的有效性

IPO3

借书处理

处理

按读者号,图书号进行借书处理

IPO4

查询

处理

管理员对一些基本信息进行查询

IPO5

打印报表

处理

打印查询到的信息

IPO6

处罚管理

处理

根据规则对延期给予相应的处罚

IPO7

数量检查

处理

对读者借出的数量是否符合规定进行检查

DS001

读者信息

数据存储

读者信息录入,修改,删除,保存

DS002

库存信息

数据存储

图书的基本的情况以及所有图书的整体情况

DS003

错还信息

数据存储

存储借还书信息,系统自动处理,不能人工录入

DS004

处罚信息

数据存储

存储延期的处罚信息

简答题

1.为建立良好的编程风格应遵循什么原则?

答:

1)节简化

①不使用不必要的变量和函数

②避免变量重名,变量重名可导致很难被发现的错误。

③尽量减小代码量。

④尽量减少代码的执行时间,提高执行效率。

⑤避免功能冗余的模块。

⑥尽量不使用全局变量。

2)模块化

①确保物理和逻辑功能密切相关。

②限定一个模块完成一个独立的功能,

提高模块的内聚度。

③检查代码的重复率,重复多的代码,

要抽出来作为一个单独的模块。

3)简单化

①采用直接了当的算法,避免使用技巧

性高和难懂的代码。

②使用简单的数据结构,避免使用多维

数组、指针和复杂的表。

③注意对象命名的一致性。

④以手工的方式简化算术和逻辑表达式。

4)结构化

①按标准化的次序说明数据;

②按字母顺序说明对象名

③使用读者明了的结构化程序部件;

④采用直截了当的算法;

⑤根据应用背景排列程序各个部分;

⑥不随意为效率而牺牲程序的清晰度和可读性;

⑦让机器多做烦琐的工作,如重复、库函数;

⑧用公共函数调用代替重复出现的表达式;

⑨避免循环、分支的嵌套层数过高;

⑩单入口单出口。

5)文档化(documentation)

①有效、适当地使用注释。

②协调使用程序块注释和程序行注释。

③保持文档和程序的同步。

6)格式化(layout)

①始终采用统一缩进规则;

②适当插入括号表明运算次序、排除二义性;

③有效地使用空格符以区别程序的不同意群。

2.什么是软件测试?

答:

软件测试从广义上讲,是指软件产品生存周期内所有的检查、评审和确认活动。

从狭义上讲,软件测试是为了发现错误而执行程序的过程。

或者说,软件测试是根据软件开发各个阶段的规格说明和程序内部结构而精心设计一批测试用例,用这些测试用例运行程序,以发现程序错误的过程。

3.软件测试的原则是什么?

答:

软件测试的原则有:

1)应该把测试贯穿在整个开发过程之中。

事实上,从需求分析阶段开始,每个阶段结束之前都要进行阶段审查,目的是尽早发现和纠正错误。

2)每个测试用例都应该包括测试输入数据和这组数据输入作用下的预期输出结果。

在实际操作中可以列出一张表格,包括每个测试用例的编号、类型、输入数据、预期输出结果、实际输出结果、出错原因分析。

3)要对每个测试结果进行全面检查,不要漏掉已经出现的错误迹象。

4)程序员应该尽量避免检查自己编写的代码。

测试工作需要严格的工作作风,程序员在测试自己编写的代码时往往会带有一些倾向性,使得他们工作中常常出现一些疏漏。

而且,程序员对设计规格说明书的理解错误而引入的错误更是难于发现。

5)在设计测试用例时,应该包括有效的、期望的输入情况,也要包括无效的和不期望的输入情况。

既能够验证程序正常运行的合理输入,也能够验证对异常情况处理的不合理输入数据以及临界数据。

在测试程序时,人们常常过多地考虑合法的和期望的输入条件,以检查程序是否做了它应该做的事情,而忽视了不合法的和预想不到的输入条件。

事实上,用户在使用系统时,输入一些错误指令和参数是经常发生的,如果软件遇到这种情况不能做出适当的反应,给出相应的提示信息,就可能会误导用户,甚至造成严重损失。

6)软件中遗留的错误数量与已经发现的错误数量成正比。

根据这个规律,对测试中发现错误成堆的模块更要仔细测试。

例如,在某个著名的操作系统中,44%的错误仅与4%的模块有关。

7)回归测试的关联性要特别引起注意,修改一个错误而引起更多错误的现象并不少见。

8)测试程序时不仅要检查程序是否做了它应该做的事情,还要检查它是否做了不该做的事情。

例如,工资软件中,软件只完成在编职工的工资计算和输出,不在编人员的工资是不进行计算和输出的。

如果软件将不在编人员的工资信息也输出显然是不合适的。

9)严格执行测试计划。

在测试之前应该有明确的测试计划,内容包括:

要测试的软件功能和内容、测试用例和预期结果、测试的进度安排、需要的工具和资源、测试控制方式和过程等。

10)做好测试记录,为统计和维护提供基础数据。

4.请说明集成测试、系统测试和验收测试有什么不同?

答:

集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。

系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。

5.简述单元测试的内容。

答:

单元测试的内容有

1)模块接口测试:

对通过被测模块的数据流进行测试。

为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。

2)局部数据结构测试:

设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查清全程数据对模块的影响。

3)路径测试:

选择适当的测试用例,对模块中重要的执行路径进行测试。

对基本执行路径和循环进行测试可以发现大量路径错误。

4)错误处理测试:

检查模块的错误处理功能是否包含有错误或缺陷。

例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。

5)边界测试:

要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。

对这些地方要仔细地选择测试用例,认真加以测试。

5)此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。

这类信息对进行性能评价是十分有用的。

6.什么是白盒测试?

它适应哪些测试?

答:

白盒测试也叫结构测试,测试者需要了解被测程序的内部结构。

白盒测试通常根据覆盖准则设计测试用例,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖。

白盒测试适用与单元测试、集成测试、系统测试

7.非渐增式测试与渐增式测试有什么区别?

渐增式测试如何组装模块?

答:

1)渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现此类错误。

2)非渐增式需要较多的人工

3)渐增式有利于排错。

如果模块界面间有错,如果用非渐增式,这类错误到最后联合测试时才能发现,此时很难判断错误发生在哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的模块有关。

4)渐增式比较彻底。

5)渐增式需要较多的机器时间。

6)非渐增式方式,开始时允许几个测试人员并行工作,对大型系统来说,是很有意义的。

8.采用黑盒技术设计测试用例有哪几种方法?

这些方法各有什么特点?

答:

黑盒测试设计测试用例的方法有1)等价类划分法特点是:

a、测试的内容相同b、一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现缺陷c、一个等价类中的某个测试不能发现缺陷,那么这个等价类的其它测试也不能发现缺陷2)边界值分析法特点是:

用边界值分析时时常收获较大,它是在等价类的边界上选择测试用例3)错误推测法特点是:

没有确定的步骤,很大程度上是凭借经验进行的4)因果图法特点是:

考虑输入条件间的组合关系;考虑输出条件对输入条件的信赖关系;测试用例发现错误的效率高;能查出功能说明中的某些不一致或遗漏

9.白盒测试法有哪些覆盖标准?

试对它们的检错能力进行比较。

答:

白盒测试的覆盖标准有:

语句覆盖->判定覆盖->条件覆盖->判定/条件覆

盖->条件组合覆盖->路径覆盖检错能力由弱到强

10.根据下面程序代码,画出程序流程图,然后设计满足条件/判定覆盖、条件组合覆盖的测试用例。

BEGIN

T:

=0

IF(X>=80ANDY>=80)THEN

T:

=1

ELSEIF(X>=90ANDY>=75)THEN

T:

=2

ENDIF

IF(X>=75ANDY>=90)THEN

T:

=3

ENDIF

ENDIF

RETURN

测试用例:

条件/判定覆盖:

1X=80Y=80

2X=90Y=75

3X=50Y=50

条件组合覆盖:

1X=80Y=80

2X=80Y=75

3X=75Y=80

4X=75Y=75

5X=90Y=75

6X=90Y=70

7X=80Y=75

8X=80Y=70

9X=75Y=90

10X=75Y=90

11X=70Y=90

12X=70Y=85

11.软件的可维护性是软件设计师最关注的性能,谈谈为了获得软件良好的可维护性,在设计时应该注意哪些问题?

答:

为获得软件的良好可维护性,在设计阶段应该做一些变更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离开来,并且遵循高内聚、低偶合的原则。

12.在软件文档中,你认为哪些文档对于软件的维护最重要?

需求分析文档、设计文档、程序文档对软件维护很重要

13.软件维护时的源程序修改策略是什么?

答:

软件维护时的源程序修改策略是:

由于软件维护最终落实在修改源程序和文档上。

为了正确、有效地修改源程序,通常要先分析和理解源程序,然后才能修改源程序,最后重新测试和验证源程序。

14.软件项目计划包括那些内容?

答:

软件项目计划的内容包括:

1.范围。

对该软件项目的综合描述,定义起所要做的工作以及性能限制,它包括:

  

(1)项目目标。

  

(2)主要功能。

  (3)性能限制。

  (4)系统接口。

  (5)特殊要求。

  (6)开发概述。

2.资源。

  

(1)人员资源。

  

(2)硬件资源。

  (3)软件资源。

  (4)其他。

3.进度安排。

进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。

制定软件进度与其他工程没有很大的区别,其方法主要有:

  

(1)工程网络图。

  

(2)Gantt图。

  (3)任务资源表。

  (4)成本估算。

  (5)培训计划。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2