1、工程软件工程例题汇总【关键字】工程1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。要求:写出在数据字典中,电话号码的数据流条目的定义即组成。电话号码=分机号|外线号码分机号=7201.7299 外线号码=9+市话号码|长话号码长话号码=区号+市话号码 区号=100.300 市话号码=局号+分局号 局号=455|466|888|552分局号
2、=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;覆盖路径acde x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。人们往往根据天气情况决定出门时的
3、行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。天气情况下雨不下雨变冷不变冷变冷不变冷带雨伞YesYesNoNo穿大衣YesNoYesNo4.对下列子程序进行调试: procedure example(y,z: real; var x: real)begin if (y1) and (z=0) then x:=x/y; if (y=2) or (xl) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成下列各题:(1)画出程序流程图。(2)用条件组合覆盖
4、设计尝试用例,并写出其中一组尝试用例。答:(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(aj3 F1:A1 F4: M库存量,则只发现有库存,不足部分待进货后补发。情况之二(30天库存量,则不发货。情况之三(欠款时间100天),则通知先付欠款,再考虑是否发货。 试用
5、判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。22.有一过程,其流程如下图所示。其中b1 、b2、 b3为判定的逻辑条件,s1、 s2为加工处理。试用判定表给予描述。 答:b1FFFFTTTTb2FFTTFFTTb3FTFTFTFTs1s2或者b1FTFTb2/T/Fb3F/T/s1s223.有一过程如下图所示的流程,试用判定表予以描述。1234条件b1FTTTb2FFTb3FT结果s1s224.对一个长度为48000条机器指令的程序进行测试,第一个月由甲、乙二人分别测试它。甲改正20个错误,使程序的平均无故障时间为8小时。乙在测试该程序副本时改正了24个错误,其中6个错误与甲改正
6、的下同。然后,由甲继续测试该程序。根据上述数据完成下列各题:( 每题5分,共15 分)1程序中固有的错误总数是多少?2为使MTTF达到240小时,如果甲不利用乙的工作成果,则他还需改正多少个错误?3为使MTTF达到480小时,如果甲利用乙的工作成果,则他还需改正多少个错误?附: ET= B2 * B1 / bc ET:测试前程序的错误总数 IT:程序长度(机器指令总数)Ec(t):t时间内改正的错误数B1、B2 分别为测试员1、测试员2发现的错误数,bc为测试员1、测试员2发现的相同错误数解:1.ET=80 2.58 3.4125.计算出如下工程网络图中各节点的最早开始时刻和最迟开始时刻(10
7、分)解: 简答题1.软件产品的特性是什么?a.软件产品是一种逻辑产品。 b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。 c.软件产品不会用坏,不存在磨损、消耗问题。 d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是定做的。 e.软件费用不断增加,成本相当昂贵。2.什么是软件危机?其产生的原因是什么? 软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但软件开发技术的进步一直未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖
8、锐的矛盾,因而导致了软件危机。主要表现在以下几个方面: a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。b.软件开发管理困难而复杂。c.软件开发费用不断增加。d.软件开发技术落后。e.生产方式落后。f.开发工具落后,生产率提高缓慢。3.什么是软件工程?它的目标和内容是什么? 软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程的目标是成功的建造一个大型软件系统,所谓成功
9、是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。2) 软件开发管理:软件管理学、软件经济学、软件心理学。4.软件工程面临的问题是什么? 软件工程面临的问题:a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。5.什么是软件生存周期模型?有哪些主要模型? 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物
10、而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等6.可行性研究的任务是什么? a.技术可行性: 考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。b.经济可行性。c.社会可行性。7.可行性研究有哪些步骤? a.确定项目规模和目标b.研究正在运行的系统c.建立新系统的高层逻辑模型d.导出和评价各种方案e.推荐可行的方案f.编写可行性研究报告8.可行性研究报告有哪些就要内容? a.引言b.可行性研
11、究前提c.对现有系统的分析d.所建议系统的技术可行性分析e.所建议系统的经济可行性分析 f.社会因素可行性分析g.其他可供选择方案h.结论意见9.成本-效益分析可用哪些指标进行度量? 有形效益度量: a.货币的时间价值 b.投资回收期 c.纯收入无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。通常以有形效益度量作为成本-效益分析的度量。10.什么是需求分析?需求分析阶段的基本任务是什么? 需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。需求分析阶段的基本任务
12、是: (1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求. (2) 分析与综合,导出软件的逻辑模型. (3) 编写文档11.什么是结构化分析方法?该方法使用什么描述工具? 结构化分析方法:是面向数据流进行需求分析的方法。 描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。12.结构化分析方法通过哪些步骤来实现? 结构化分析方法步骤: a.了解当前系统的工作流程,获得当前系统的物理模型. b.抽象出当前系统的逻辑模型. c.建立上标系统的逻辑模型. d.作进一步补充和优化.13.什么是字据字典?其作用是什么?它有哪些条目?
13、字据字典:简称,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的无二义 性的说明方式为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述.作 用:1)为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述. 2)为分析人员查找数据流图中有关名字的详细定义而服务的. 3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分. 条 目:数据流、数据项、数据存储、基本加工。14.什么是软件概要设计?该阶段的基本任务是什么? 软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。基本任务: (1)
14、设计软件系统结构(简称软件结构) a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分) b.确定模块的功能。(功能) c.确定模块之间的调用关系。(调用) d.确定模块之间的接口,即模块之间传递的信息。(接口) e.评价模块结构的质量。(质量) (2)数据结构及数据库设计 a.数据结构设计 b.数据库设计:(概念设计、逻辑设计、物理设计) (3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划) (4)评审15.衡量模块独立性的两个标准是什么?它们各表示什么含义? 两个定性的度量标准:耦合与内聚性耦合性:也称块间联系。指软件系统结构中各模块间相互
15、联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。16.模块间的耦合性有哪几种?它们各表示什么含义? 耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。数据耦合:指两个模块之间有调用关系,传递的是简单的数据值相当于高级语言中的值传递。标记耦合:指两个模块之间传递的是数据结构。控制耦合:指控制模块调用另一个模块时,传递
16、的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能。公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。17.模块的内聚性有哪几种?各表示什么含义?模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。偶然内聚:一个模块内的各处理元素之间没有任何联系。 逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。时间内聚:把需要同时执行的动作组合在一起。通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。18.什么是软件结构?简述软件结构设计优化准则。 软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。 软件结构设计优化准则:a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近c