软件工程例题.docx
《软件工程例题.docx》由会员分享,可在线阅读,更多相关《软件工程例题.docx(33页珍藏版)》请在冰豆网上搜索。
![软件工程例题.docx](https://file1.bdocx.com/fileroot1/2023-2/9/95ba93a2-f532-4deb-aa90-34e9d2ddb85c/95ba93a2-f532-4deb-aa90-34e9d2ddb85c1.gif)
软件工程例题软件工程例题1.某旅馆的电话服务如下:
可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:
写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=分机号|外线号码分机号=7201.7299外线号码=9+市话号码|长话号码长话号码=区号+市话号码区号=100.300市话号码=局号+分局号局号=455|466|888|552分局号=4数字4数字0|1|2|3|4|5|6|7|8|92.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:
x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:
本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
天气情况下雨不下雨变冷不变冷变冷不变冷带雨伞YesYesNoNo穿大衣YesNoYesNo4.对下列子程序进行调试:
procedureexample(y,z:
real;varx:
real)beginif(y1)and(z=0)thenx:
=x/y;if(y=2)or(xl)thenx:
=x+l;end.该子程序接受x,y,z的值,并将计算结果x的值返回给调用程序。
完成下列各题:
(1)画出程序流程图。
(2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。
答:
(1)程序流程图
(2)用白盒法中条件组合覆盖设计测试用例:
y=2,z=0,x=4;y=2,z=1,x=1;y=1,z=0,x=2;y=1,z=1,x=1.(注:
也可有其它答案)5.选择排序的伪代码如下,请根据代码画出其PAD图。
select_sort(a1,a2,an)for(i=1;in;i+)k=i;for(j=i+1;j=n;j+)if(aj3F1:
A1F4:
M库存量,则只发现有库存,不足部分待进货后补发。
情况之二(30天库存量,则不发货。
情况之三(欠款时间100天),则通知先付欠款,再考虑是否发货。
试用判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。
22.有一过程,其流程如下图所示。
其中b1、b2、b3为判定的逻辑条件,s1、s2为加工处理。
试用判定表给予描述。
FFFTTT答:
b1FFFFTTTTb2FFTTFFTTb3FTFTFTFTs1s2或者b1FTFTb2/T/Fb3F/T/s1s223.有一过程如下图所示的流程,试用判定表予以描述。
1234条件b1FTTTb2FFTb3FT结果s1s224.对一个长度为48000条机器指令的程序进行测试,第一个月由甲、乙二人分别测试它。
甲改正20个错误,使程序的平均无故障时间为8小时。
乙在测试该程序副本时改正了24个错误,其中6个错误与甲改正的下同。
然后,由甲继续测试该程序。
根据上述数据完成下列各题:
(每题5分,共15分)1程序中固有的错误总数是多少?
2为使MTTF达到240小时,如果甲不利用乙的工作成果,则他还需改正多少个错误?
3为使MTTF达到480小时,如果甲利用乙的工作成果,则他还需改正多少个错误?
附:
ET=B2*B1/bcET:
测试前程序的错误总数IT:
程序长度(机器指令总数)Ec(t):
t时间内改正的错误数B1、B2分别为测试员1、测试员2发现的错误数,bc为测试员1、测试员2发现的相同错误数解:
1.ET=802.583.4125.计算出如下工程网络图中各节点的最早开始时刻和最迟开始时刻(10分)解:
简答题1.软件产品的特性是什么?
a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是定做的。
e.软件费用不断增加,成本相当昂贵。
2.什么是软件危机?
其产生的原因是什么?
软件危机:
软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:
a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d.开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:
a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
3.什么是软件工程?
它的目标和内容是什么?
软件工程:
用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:
a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:
1)软件开发技术:
软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:
软件管理学、软件经济学、软件心理学。
4.软件工程面临的问题是什么?
软件工程面临的问题:
a.软件费用。
b.软件可靠性。
c.软件维护。
d.软件生产率。
e.软件重用。
5.什么是软件生存周期模型?
有哪些主要模型?
软件生存周期模型:
是描述软件开发过程中各种活动如何执行的模型。
(模型:
是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)软件生存周期主要模型:
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等6.可行性研究的任务是什么?
a.技术可行性:
考虑的因素
(1).开发的风险
(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。
b.经济可行性。
c.社会可行性。
7.可行性研究有哪些步骤?
a.确定项目规模和目标b.研究正在运行的系统c.建立新系统的高层逻辑模型d.导出和评价各种方案e.推荐可行的方案f.编写可行性研究报告8.可行性研究报告有哪些就要内容?
a.引言b.可行性研究前提c.对现有系统的分析d.所建议系统的技术可行性分析e.所建议系统的经济可行性分析f.社会因素可行性分析g.其他可供选择方案h.结论意见9.成本-效益分析可用哪些指标进行度量?
有形效益度量:
a.货币的时间价值b.投资回收期c.纯收入无形效益:
主要从性质上、心理上进行衡量,很难直接进行量的比较。
通常以有形效益度量作为成本-效益分析的度量。
10.什么是需求分析?
需求分析阶段的基本任务是什么?
需求分析是指:
开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:
(1)问题识别:
双方对问题的综合需求:
a.功能需求b.性能需求c.环境需求d.用户界面需求.
(2)分析与综合,导出软件的逻辑模型.(3)编写文档11.什么是结构化分析方法?
该方法使用什么描述工具?
结构化分析方法:
是面向数据流进行需求分析的方法。
描述工具:
a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。
12.结构化分析方法通过哪些步骤来实现?
结构化分析方法步骤:
a.了解当前系统的工作流程,获得当前系统的物理模型.b.抽象出当前系统的逻辑模型.c.建立上标系统的逻辑模型.d.作进一步补充和优化.13.什么是字据字典?
其作用是什么?
它有哪些条目?
字据字典:
简称,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的无二义性的说明方式为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述.作用:
1)为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述.2)为分析人员查找数据流图中有关名字的详细定义而服务的.3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.条目:
数据流、数据项、数据存储、基本加工。
14.什么是软件概要设计?
该阶段的基本任务是什么?
软件概要设计:
在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。
基本任务:
(1)设计软件系统结构(简称软件结构)a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)b.确定模块的功能。
(功能)c.确定模块之间的调用关系。
(调用)d.确定模块之间的接口,即模块之间传递的信息。
(接口)e.评价模块结构的质量。
(质量)
(2)数据结构及数据库设计a.数据结构设计b.数据库设计:
(概念设计、逻辑设计、物理设计)(3)编写概要设计文档(文档主要有:
概要设计说明书、数据库设计说明书、用户手册、修订测试计划)(4)评审15.衡量模块独立性的两个标准是什么?
它们各表示什么含义?
两个定性的度量标准:
耦合与内聚性耦合性:
也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:
也称块内联系。
指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,内聚性越高。
16.模块间的耦合性有哪几种?
它们各表示什么含义?
耦合性有六种:
无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合无直接耦合:
两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。
数据耦合:
指两个模块之间有调用关系,传递的是简单的数据值相当于高级语言中的值传递。
标记耦合:
指两个模块之间传递的是数据结构。
控制耦合:
指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能。
公共耦合:
指通过一个公共数据环境相互作用的那些模块间的耦合。
内容耦合:
一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
17.模块的内聚性有哪几种?
各表示什么含义?
模块间的内聚性有6种:
偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。
偶然内聚:
一个模块内的各处理元素之间没有任何联系。
逻辑内聚:
模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
时间内聚:
把需要同时执行的动作组合在一起。
通信内聚:
指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。
顺序内聚:
一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。
功能内聚:
最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
18.什么是软件结构?
简述软件结构设计优化准则。
软件结构:
软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
软件结构设计优化准则:
a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。
b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近c.软件的深度、宽度、扇入、扇出应适当。
d.模块的大小要适中。
e.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
19.什么是模块的影响范围?
什么是模块的控制范围?
它们之间应该建立什么关系?
模块的影响范围:
受该模块内的一个判定影响的所有模块的集合。
模块的控制范围:
模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
20.什么是变换流?
什么是事务流?
试将相应形式的数据流图转换成软件结构图。
变换流由输入、变换(或处理)、输出三部分组成。
某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。
21.在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流和事物型数据流的映射方式。
答:
变换型事务型22.详细设计的基本任务是什么?
详细设计的基本任务:
(1)为每个模块进行详细的算法设计。
(2)为每个模块内的数据结构进行设计。
(3)对数据库进行设计,即确定数据库的物理结构。
(4)其他设计:
a.代码设计b.输入/输出格式设计。
c.人机对话设计。
(5)编写详细设计说明书。
(6)评审。
23.结构化程序设计基本要求要点是什么?
a.采用自顶向下、逐步求精的程序设计方法b.使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。
2).用选择方式对过程分解,确定某个部分的执行条件。
3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。
c.主程序员组的组织形式。
24.简述Jackson方法的设计步骤。
Jackson方法一般通过以下5个步骤来完成设计:
a.分析并确定输入/出数据的逻辑结构,并用Jackson结构图表示这些数据结构。
b.找出输入数据结构和输出数据结构中有对应关系的数据单元。
c.按一定的规则由输入、输出的数据结构导出程序结构。
d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。
e.用伪码写出程序。
25.什么是程序设计风格?
为了具有良好的设计风格,应注意哪些方面的问题?
程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
26.软件测试的目的是什么?
测试中要注意那些原则?
软件测试的目的是的发现软件中存在错误的活动。
好的测试用例可以发现至今没有发现的错误、好的测试用例可以发现至今没有发现的错误测试。
要提供输入数据还要提供输出数据、保留测试用例、检查它是否做了应该做的还要检查它是否做了不该做的、避免自己测试自己的程序、多错误多的地方要更严格的测试。
27.什么是白盒法?
有那些覆盖标准?
比较他们的检错能力。
将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。
有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)28.什么是黑盒法?
有那些测试方法?
特点?
将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。
等价类划分、边界值分析、因果图、错误推测。
29.软件测试要经过那些步骤?
这些步骤和开发那些阶段对应?
单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。
30.什么是集成测试?
非渐增式和渐增式有什么区别?
渐增式如何组装模块?
集成测试是将模块组合起来成为一个完整的系统对其进行测试。
非渐增式是将模块先进行单元测试然后组装在一起进行测试。
渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。
非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。
渐增式组装模块有自顶向下和自底向上两种组装方式。
31.什么是确认测试?
该阶段有那些工作?
按照需求规格说明书中的确定指标对系统进行功能与性能的测试。
进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。
(文档的完整性、正确性,发现遗漏和错误及时补充和修改)32.调试的目的是什么?
调试的技术有那些?
调试的目的是发现错误的位置并改正错误。
简单调试、演绎调试、递归调试、回溯调试。
33.软件维护有哪些内容?
a、校正性维护b、适应性维护c、完善性维护d、预防性维护34.软件维护的特点是什么?
a、非结构化维护和结构化维护b、维护的困难性c、软件强维护的费用35.软件维护的流程是什么?
a、制定申请维护报告b、审查申请报告并批准c、进行维护并作详细记录d、覆审36.软件维护的副作用有哪些?
编码、数据、文档副作用37.什么是软件的可维护性?
可维护性的度量的特性是什么?
软件的可维护性:
软件能够被理解、校正、适应及增强功能的容易程度。
可维护性的度量的特性是:
可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
38.提高可维护性的方法有哪些?
A、建立明确的软件质量目标。
B、利用先进的软件开发技术和工具。
C、建立明确的质量保证工作。
D、选择可维护的程序设计语言。
E、改进程序文档。
39.说明对象模型的特征?
对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系,模型主要关心系统中对象的结构、属性和操作使用对象图来描述。
40.说明动态模型的特征。
动态模型描述了与时间和变化有关的系统性质,描述的是系统的控制结构,表示了瞬间的系统控制性质,它关心系统的控制,操作顺序,从对象的状态角度出发表现对象的相互行为。
41.功能模型的特征。
功能模型描述了系统的所有计算。
42.三种模型的建立过程?
对象模型:
确定类、准备数据字典、确定联系、确定属性、完善对象模型。
动态模型:
准备脚本、准备事件跟踪、构造状态图。
功能模型:
确定输入输出值、建立DFD。