软件工程试题2及软件工程试题及答案_第1页
软件工程试题2及软件工程试题及答案_第2页
软件工程试题2及软件工程试题及答案_第3页
软件工程试题2及软件工程试题及答案_第4页
软件工程试题2及软件工程试题及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦发现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出选择的理由。答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原模型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对公布。你打算采用哪种软件生命周期模型?为什么?答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得到3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开发式的,以利于今后的改进和扩充。综上所述,采用增量模型来完成这个项目比较恰当。开发模型特点适用场合传统软件过程瀑布模型线性模型需求明确中小型快速原型模型用户介入早需求模糊小型软件软件演化模型(易于维护)增量模型迭代,OO开发螺旋模型不确定性大型构件集成模型领域工程中型形式化方法转换模型形式化SRS理想化净室模型形式化增量开发请为某仓库的管理设计一个ER(实体联系图)模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目提供零件,并且根据需要向供应商提供零件。答:建立ER图的大致过程如下所述。确定实体模型本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。确定联系模型一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M:N)联系;类似地,零件与供应商之间的联系“订购”,也是多对多(M:N)联系。确定实体类型和联系类型的属性实体类型“零件”的主要属性是零件编号、零件名称、颜色和重量。实体类型“工程项目”的属性主要是项目编号、项目名称和开个日期。实体类型“供应商”的属性主要有供应商编号、供应商名称和地址。联系类型“供应”的属性是向某工程项目供应的某种零件的数量。联系类型“订购”的属性是向某供应商订购的某种零件的数量。把实体类型、联系类型及属性组合成ER图注:椭圆、矩形、菱形,线段某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,如果是本地电话再接着拨8位电话号码(第1位不是0),如果是外地电话则先拨3位区码,再拨8位电话号码(第1位不是0)。数据字典请用2.8节讲述的符号定义上述的数据流图。答:电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]注:[|]:或关系,{}:重复关系,+:和关系,...:基本数据元素,..:连接符办公室复印机的工作过程大致如下:未接收到复印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后处于闲置状态,准备接受复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。答:从问题陈述可知,复制机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发现卡纸故障和排除了卡纸故障。注:状态、事件如果一个程序有两个输入数据,每个输入都是一个32位的二进制整数,那么这个程序有多少种可能的输入?如果每微秒可进行一次测试,那么对所有可能的输入进行测试需要多长时间?答:每个32位的二进制整数具有个可能的值,因此,具有两个整数输入的程序应该具有个可能的输入。每微秒(us)可进行一次测试,即每秒可进行个测试,因此,每天可进行的测试数为60×60×24×=8.64×这等于每年大约可进行365*8.64*10exp(10)=3.139×个测试。改:所以做完全部测试将至少需要年(即10万年)。对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。要求:(1)根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间的关系曲线。在画这条曲线时你做了什么假设?(2)为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误?还有多少个错误潜伏在程序中?答:(1)假设在程序的平均无故障时间MTTF和测试时间之间存在线性关系,即MTTF=a+bt根据题意可知,当=1时MTTF=10,当=2时MTTF=15,把这些已知的数据代入上列方程后得到下列的联立方程式解上列联立方程得出a=5,b=5因此,MTTF与之间有下列关系MTTF=5+5t根据上列方程式画出平均无故障时间MTTF与测试时间的关系曲线,如图4.2所示为使MTTF=100hMTTF=100h=5+5t,==>t=19,集成测试时间:19,需要的测试时间可由方程式得出注:Ec(t):在0-t时间内纠错数,Et:调试前错误数,MTTF:平均无故障时间根据题意可知,改正了15个错误后MTTF=10,改正了25个错误后MTTF=15,把这些已知的数据代人上列方程之后,得到下列的联立方程式解上列联立方程式得到=45,K=33.33.已知当集成测试结束时,t=19所以错误总数:45也就是说,当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。为什么在开发大型软件时,采用面向对象范型比采用结构化范型较易取得成功?答:结构化技术要么面向处理(例如面向数据流的设计方法),要么面向数据(例如面向数据结构的设计方法),但却没有既面向处理又面向数据的结构化技术。用结构化技术开发出的软件产品的基本成分是产品的行为(即处理)和这些行为所操作的数据。由于数据和对数据的处理是分离的,尽管开发者把程序划分成了许多模块,但是这些模块之间的联系却是比较紧密的(耦合性高,模块独立性低),因此,使用结构化范型开发出的软件产品本质上是一个完整的单元。由此带来的后果是软件规模越大,用结构化范型开发软件的技术难度和管理难度就越大。与结构化技术相反,面向对象技术是一种以数据为主线,把数据和处理相结合的方法。面向对象范型把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。用面向对象范型开发软件时,构成软件系统的每个对象就好像一个微型程序,有自己的数据、操作、功能、和用途,因此,可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理(分解、细化,模块化),不仅降低了软件开发的技术难度,而且也使得对软件开发工作的管理变得相对容易了。为什么说夏利牌汽车是小汽车类的特化(继承),而发动机不是小汽车类的特化?答:夏利牌汽车具有小汽车的全部属性和行为,它只不过是一种特定品牌的小汽车,因此,夏利牌汽车可以从基类(小汽车)派生出来,也就是说,夏利牌汽车是小汽车类的特化。发动机是组成小汽车的一种零件。小汽车还是车身、车灯、轮子等许多种其他零件,小汽车所具有的许多属性和行为发动机都不具有,因此,发动机不能从小汽车类派生出来,它不是小汽车类的特化。什么是对象?它与传统的数据有何异同?答:(1)对象是用面向对象方法学开发软件时对客观世界实体的抽象,它是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的统一体。传统的数据是用传统方法学开发软件时对客观实体的抽象,但是,这种抽象是不全面的:数据只能描述实体的静态属性,不能描述实体的动态行为。必须从外界对数据加操作,才能改变数据实现实体应有的行为。(2)对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能直接从外界对它的私有数据进行操作。什么是模型?开发软件时为什么要建立模型?(1)所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型:由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,模型是一种思维工具,利用这种工具可以把知识规范地表示出来。(2)众所周知,在解决问题之前必须首先理解所要解决的问题。对问题理解得越透彻,就越容易解决它。在开发软件的过程中,为了更好地理解客户要求解决的问题,往往需要建立问题域的模型(清晰/准确性)。为了开发复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足客户对目标系统的要求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现这个模型。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建立的目的主要是为了降低复杂性。人的头脑每次只能处理少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。试建立下述订货系统的用例模型(用例图),数据流图(DFD)。假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下述数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。答:从对这个订货系统的需要可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库事务报告给订货系统,系统接收到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,已获取订货报表。用例模型:,数据流图(DFD):2层注:用例图:系统边界:矩形,用例:椭圆,参与者:小人,关联:直线数据流图:源/终点:方框,加工:圆框,数据流向:箭头,文件或数据库:双杠13.为什么说面向对象方法与人类习惯的思维解题方法比较一致(一致性)?答:人类认识客观世界、解决现实问题的过程是一个渐进的过程。人的认识需要在继承以前的有关知识上的基础上,既包括从一般到特殊的演绎思维过程,也包括从特殊到一般的归纳思维过程,面向对象方法学中通过建立类等级而获得的继承特性支持从一般到特殊的演绎思维过程(继承)。人在认识和解决复杂问题时使用的最强有力的思维工具是抽象,也就是在处理复杂对象时,为了达到某个分析目的而集中研究对象的与此目的有关的是指特性,暂时忽略对象的那些于此目的无关的特性。面向对象方法学的出发点和基本原则就是分析、设计和实现一个软件系统的方法和过程,尽可能接近人们认识世界、解决问题的方法和过程,也就是使描述问题的问题空间和描述解法的解空间在结构上尽可能一致。也就是说,面向对象方法学的基本原则是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统。面向对象的软件系统中广泛使用的对象是对客观世界中实体的抽象,对象实际上是抽象数据类型的实例,提供了理想的数据抽象机制,同时又具有良好的过程抽象机制(通过发消息使用公有成员函数)。对象类是对一组相似对象的抽象,类等级中上层的类是对下层类的抽象。因此,面向对象的环境提供了强有力的抽象机制,便于人们在利用计算机软件系统解决复杂问题时使用习惯的抽象思维工具。(抽象)。面向对象的软件技术为开发者提供了随着对某个应用系统的认识逐步深入和具体化的过程,而逐步设计和实现该系统的可能性。因为可以先设计出由抽象类构成的系统框架,随着认识深入和具体化再逐步派生出更具体的派生类。这样的开发过程符合人们认识客观世界、解决复杂问题时逐步的渐进过程(可扩展性)。将下列各事物之间的关系(继承、聚集或一般关联)写在括弧内。(1)小汽车——富康牌小汽车。(继承)(2)人员——雇员。(继承)(3)图书馆——期刊阅览室。(聚集)(4)书——图书馆馆员。(一般关联)(5)小汽车——司机。(一般关联)(6)读者——借出的书。(一般关联)(7)班级——学生。(聚集)(8)教师——教授。(继承)(9)丈夫——妻子。(一般关联)(10)列车——餐车。(聚集)15.判断下列各项是类还是类的实例,答案写在括弧内。(1)我的小汽车。(实例)(2)人员。(类)(3)王晓明。(实例)(4)交通工具。(类)(5)教授。(类)(6)计算机系。(实例)(7)中国工人。(类)(8)清华大学学生。(类)(9)日本国。(实例)(10)喷气式战机。(类)16.请建立下述杂货店问题的对象模型。一家杂货店想使其库存管理自动化。这家杂货店拥有能记录顾客购买的所有商品的名称和数量的销售终端。顾客服务台也有类似的终端,以处理顾客的退货。它在码头有另一个终端用于处理供应商发货。肉食部和农产品部终端用于输入由于损耗导致的损失和折扣。一、填空1.结构化分析方法的分析策略是___自顶向下逐步求精_______。2.衡量模块独立性的两个定性标准是_耦合性与内聚性________。3.软件集成测试的方法主要有两种,它们是___渐增式与非渐增式测试_______。4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是__功能需求_。6.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是__维护_____阶段。7.计算机辅助软件工程这一术语的英文缩写为_CASE_______。8.McCall提出的软件质量模型包括______11_____个软件质量特性。9.软件结构是以____模块_______为基础而组成的一种控制层次结构。10.软件概要设计的主要任务就是__软件结构的设计______。11.结构化程序设计方法是使用___三种基本控制结构(条件\控制\循环)____构造程序。12.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和__数据存储对象_二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。A、Booch方法B、UML语言C、OMT方法D、Coad方法3、功能模型中所有的(A)往往形成一个层次结构。在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。A、数据流图B、概念模型图C、状态迁移图D、事件追踪图4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。A、问题域分析B、高层分析C、实例的建立D、类的开发5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。A、接口B、消息C、信息D、操作6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)A、说明B、方法C、过程D、类型9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)A、多态性B、完整性C、可移植性D、兼容10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)A、隐藏复杂性B、信息隐藏C、即存类的重用D、类的开发13、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(B)A、数据流图B、状态图C、系统结构图D、时序图14、人们常用的评价软件质量的4个因素是(B)A.可维护性、可靠性、健壮性、效率B.可维护性、可靠性、可理解性、效率C.可维护性、可靠性、完整性、效率D.可维护性、可靠性、移植性、效率15、软件可移植性是用来衡量软件的(C)重要尺度之一。A.通用性B.效率C.质量D.人机界面16、为了提高软件的可移植性,应注意提高软件的(D)A.使用的方便性B.简洁性C.可靠性D.设备独立性20.在软件质量因素中,软件在异常条件下仍能运行的能力称之为软件的(B)A.可靠性B.健壮性C.可用性D.安全性21.在软件设计中,设计复审是和软件设计本身一样重要的环节,其主要的目的和作用是为了能够(B)A.减少测试工作量B.避免后期付出高代价C.保证软件质量D.缩短软件开发周期22.在软件危机中表现出来的软件质量差的问题,其原因是(B)A.用户经常干预软件系统的研发工作B.没有软件质量标准C.软件研发人员不愿意遵守软件质量标准D.软件研发人员素质太差23.软件工程管理是(D)一切活动的管理。A.需求分析B.软件设计过程C.模块设计D.软件生命期24.软件管理的主要职能包括(D)A.人员管理、计划管理B.标准化管理、配置管理C.成本管理、进度管理D.(A)和(B)26.结构化设计方法在软件开发中用于(A)。A、概要设计B、详细设计C、程序设计D、测试用例设计28.软件测试中,白盒法是通过分析程序的(B)来设计测试用例的。A、应用范围B、内部逻辑C、功能D、输入数据29.软件维护费用高的主要原因是(C)。A、人员少B、人员多C、生产率低D、生产率高30.软件质量必须在(D)加以保证。A、开发之前B、开发之后C、可行性研究过程中D、设计与实现过程中31.确认测试主要涉及的文档是(A)。A、需求规格说明书B、概要设计说明书C、详细设计说明书D、源程序33.为了适应软硬件环境变化而修改软件的过程是(C)。A、校正性维护B、完善性维护C、适应性维护D、预防性维护35.软件质量保证应在(A)阶段开始。A.需求分析B.设计C.编码D.投入使用36.在McCall软件质量度量模型中,(C)属于面向软件产品修改。A.可靠性B.可重用性C.适应性D.可移植性37.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。A.结合B.隐藏C.封装D.抽象39.瀑布模型的存在问题是(B)A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求40.软件测试方法中的静态测试方法之一为(A)A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析41.程序的三种基本控制结构是(B)A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移43.详细设计的结果基本决定了最终程序的(C)A.代码的规模B.运行速度C.质量D.可维护性44.结构化程序设计主要强调的是(D)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性46.黑盒测试在设计测试用例时,主要研究(A)A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明47.若有一个计算类型的程序,它的输入量只有一个,其范围是从输入的角度考虑一组测试用例,设计这组测试用例的方法是(C)A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法48.下列属于维护阶段的文档是(C)A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告49.快速原型模型的主要特点之一是(D)A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件52.下列模型属于成本估算方法的有(A)A.COCOMO模型B.McCall模型C.McCabe度量法D.时间估算法53.能力成熟度模型可以(A)A、使软件组织建立一个有规律的成熟的软件过程B、使用软件没有错误C、使软件开发人员掌握更多的技术D、避免开发人员跳槽55.数据字典是对数据定义信息的集合,它所定义的对象都包含于(A)A.数据流图B.程序框图C.软件结构D.方框图56.需求分析阶段的任务是确定(D)。A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能58.软件详细设计的主要任务是确定每个模块的A。A.算法和使用的数据结构B.外部接口C.功能D.编程59.程序的三种基本控制结构是(B)。A.过程、子程序积分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移60.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(B)。A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑61.在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件特性进行(B)A.测试B.度量C.评审D.维护64.对象是OO方法的核心,对象的类型有多种,通常把例如飞行、事故、演出、开会等等,称之为(C)A.有形实体B.作用C.事件D.性能说明65.在面向对象软件开发方法中,类与类之间主要有以下结构关系(A)A.继承和聚集B继承和一般C聚集和消息传递D继承和方法调用66.以下哪一项不是软件危机的表现形式(C)A成本高B生产率低C技术发展快D质量得不到保证67.以下哪一项不是面向对象的特征(D)A)多态性B)继承性C封装性D过程调用68.面向对象模型主要由以下哪些模型组成(A)A对象模型、动态模型、功能模型B对象模型、数据模型、功能模型C数据模型、动态模型、功能模型D对象模型、动态模型、数据模型69.软件项目计划一般不包括以下哪项内容(D)A培训计划B人员安排C进度安排D软件开发标准的选择和制定三、简答1.简述软件工程方法学所包含的内容。软件工程方法学包括三个要素,这就是方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑,过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。2.什么是软件过程?它与软件工程方法学有何关系?(1)软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。(2)软件过程是软件工程方法学的3个重要组成部分之一。(3)软件工程方法学包含三个要素:方法、工具和过程。3.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加4、说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2)使用3种基本控制结构、单入口、单出口来构造程序。5、软件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元测试:测试对象对单元模块(2)集成测试:测试对象为组装后的程序模块(3)确认测试:测试对象为可运行的目标软件系统(4)系统测试:测试对象为计算机系统的各组成部分6、需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软件的用户需求,即定义待开发软件能做什么软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。7、说明软件测试和调试的目的有何区别?答:测试的目的是判断和发现软件是否有错误调试的目的是定位软件错误并纠正错误。四、综合应用1、某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。输入条件合理等价类不合理等价类职称①教授②副教授③讲师⑤四种职称之外任意一种职称兼工龄④助教兼工龄大于2年⑥助教兼工龄等于两年⑦助教兼工龄小于两年二、填空(20分)

1.增量模型适合于___软件需求_____不明确、设计方案有一定风险的软件项目。2.结构化分析方法的分析策略是____自顶向下逐步求精______。3.可行性研究实质上是要在较高层次上以较抽象的方式进行_____需求分析和设计______的过程。4.衡量模块独立性的两个定性标准是____耦合性和内聚性_____。5.Jackson方法是一种面向_____数据结构_________的设计方法。6.软件集成测试的方法主要有两种,它们是____渐增式和非渐增式测试______。7.维护阶段是软件生存周期中花费精力和费用_____最多________的阶段。8.继承性是子类自动共享其父类的________数据结构和方法______机制。9.在面向对象方法中,人们常用状态图描述类中对象的_______动态行为____。10.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为_____容错____软件。三、选择(20分)1.需求分析中,开发人员要从用户那里解决的最重要的问题是(

A)。A、要让软件做什么B、要给该软件提供哪些信息C、要求软件工作效率怎样D、要让该软件具有何种结构2.DFD中的每个加工至少有(

B)。A、一个输入流或一个输出流B、一个输入流和一个输出流C、一个输入流D、一个输出流3.详细设计与概要设计衔接的图形工具是(

B)。A、DFD图B、SC图C、PAD图D、程序流程图4.下列几种类型中,耦合性最弱的是(

D)。A、内容型B、控制型C、公共型D、数据型5.确认测试中,作为测试依据的文档是(

A)。A、需求规格说明书B、设计说明书C、源程序D、开发计划6.为了适应软硬件环境变化而修改软件的过程是(

C)。A、校正性维护B、完善性维护C、适应性维护D、预防性维护7.瀑布模型是一种(

A)。A、整体开发模型B、非整体开发模型C、风险驱动模型D、对象驱动模型8.用于描述对象模型的工具是(

D)。A、数据流图B、结构图C、状态图D、对象图9.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(

C)上A.配置项B.程序C.基线D.过程10.软件质量保证应在(A

)阶段开始。A.需求分析B.设计C.编码D.投入使用四.简答题(20分)1.为了提高设计质量,应从哪几方面优化软件结构?2.集成测试阶段,渐增式与非渐增式测试有哪些区别?3.说明瀑布模型的局限性。4.说明面向对象的特征。5.软件工程管理包括哪些内容?五.综合应用(25分)1.某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作

不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。(7分)〔答案〕2.某图书馆借阅系统有以下功能:(1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。对于第一次借阅者则直接办理借阅手续。(2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。

请对以上问题,画出分层数据流图。(8分)3.某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:

(1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码,名称,订期,单价,份数等项目,订户通过填写订单来订阅报刊。

(2)报社下属多个发行站,每个站负责收集登陆订单、打印收款凭证等事务。(3)报社负责分类并统计各个发行站送来的报刊订阅信息。

请就此需求建立对象模型。(10分)参考答案

一、(略)

二、填空

1.软件需求

2.自顶向下逐步求精

3.需求分析和设计

4.耦合性与内聚性5.数据结构

6.渐增式与非渐增式测试

7.最多

8.数据结构和方法9.动态行为

10.容错三、选择

1.A

2.B3.B

4.D5.A

6.C

7.A

8.D9.C

10.A四、(略)

五、综合应用

1.划分等价类:输入条件合理等价类不合理等价类职称①教授②副教授③讲师⑤四种职称之外任意一种职称兼工龄④助教兼工龄大于2年⑥助教兼工龄等于两年⑦助教兼工龄小于两年设计测试用例:输入数据预期结果覆盖范围教授输入有效,进行调整工资处理①副教授输入有效,进行调整工资处理②讲师输入有效,进行调整工资处理③助教

3输入有效,进行调整工资处理⑤助教

2输入有效,不调整工资处理⑥助教

1输入有效,不调整工资处理⑦工程师输入无效④2.3.软件工程一、单向选择题(四选一、每小题3分,共18分)1、软件的发展经历了(D)个发展阶段。0102一二三四2、需求分析的任务不包括(B)。0401问题分析系统设计需求描述需求评审。4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。判定表和判定树盒图流程图关系图5、以下不属于逻辑覆盖的是(D)。1402语句覆盖判定覆盖条件覆盖基本路径6、为适应软件运行环境的变化而修改软件的活动称为(B)。1501纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程process项目project三、判断题(每小题2分,共24分,错误打X、正确打√)用户对软件需求的描述不精确,往往是产生软件危机的原因之一。(√)目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。(√)一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。(√)0206目前的绝大多数软件都不适合于快速原型技术。(X)0402面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。(√)10001缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(X)0102测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。(X)1401软件也会磨损和老化。(X)0101完善性维护是提高或完善软件的性能。(√)0101四、简答题(每小题4分,共20分)1、软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。3、软件项目的质量管理制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量。4、好的编程风格应遵循哪四条规则?13041)节简化2)模块化3)简单化4)文档化《软件工程》试题及参考答案一、单向选择题(四选一、每小题3分,共18分)1、对在数据流图中每一个命令的图形元素均给以定义是(B)0501A、条目定义B、数据字典C、数据定义D、数据说明2、软件的可行性研究中不包括(D)0302A、法律可行性B、技术可行性C、经济可行性D、政治可行性3、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)。1501纠错性维护适应性维护改善性维护预防性维护4、人机界面的风格大致经过了(B)代的演变。1202A三B四C五D六5、以下不属于白盒测试技术的是(D)1402A逻辑覆盖B基本路径测试C循环覆盖测试D等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。1501A纠错性维护B适应性维护C改善性维护D预防性维护二、填空题(每空2分,共18分)文档(document)—一种数据媒体和其上所记录的(数据)。0101机器语言、汇编语言:依赖于机器,面向(机器)0101软件有效性(efficiency),指软件系统的时间和(空间)效率。0103软件定义过程可通过软件系统的可行性研究和需求分析两个阶段来完成。0103软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。0103为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。0402一个软件的深度是指其控制的(层数)。0801以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。1301软件维护是软件生命周期的(最后)一个阶段。1501三、判断题(每小题2分,共24分,错误打X、正确打√)缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。(√)0102一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)0206在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。(√)0402快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。(√)0402流程图也称为程序(框图)是最常用的一种表示法。(√)0802面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√)1001理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)1201数据输入的一般准则中包括尽量(增加)用户输入的动作。(X)1204用穷举测试是较现实的测试方法。(X)140110、编码时应尽可能使用全局变量(X)130211、重视程序结构的设计,能使程序具有较好的层次结构(√)130112、程序中的注解越少越好(X)。1302四、简答题(每小题4分,共20分)1、计算机软件与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。01012、需求分析的任务是什么?0103需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。4、快速原型技术的基本思想是什么?0402在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。《软件工程》试题及参考答案一、单向选择题(四选一、每小题3分,共18分)1、在设计测试用例时,应当包括(C)1401A、合理的输入条件B、不合理的输入条件C、合理的和不合理的输入条件D、部分条件2、下列各项中不属于逻辑覆盖的是(D)1402A、语句覆盖B、判定覆盖C、判定——条件覆盖D、全部覆盖5、实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的(D)%。140430507090二、填空题(每空2分,共18分)黑盒测试主要是测试软件是否满足(功能)需求。1402(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。1404软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。0101三、判断题(每小题2分,共24分,错误打X、正确打√)文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。(√)0101软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)0101适应性维护是改进软件未来的可维护性和可靠性。(X)0101由于软件是逻辑产品,软件质量较容易直接度量。(X)0203按照功能,软部件可划分为系统软件和应用软件两类。(√)0301如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解,是创建用户需求的数据流模型应遵循的规则。(√)0502耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(X)0803在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(√)1101随着软件复杂性的不断提高,软件的维护难度越来越大。(√)1501软件的可维护性差是软件维护工作量和费用激增的直接原因。(√)1505《软件工程》试题及参考答案一、单向选择题(四选一、每小题3分,共18分)1、从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为(A)的方法。0701A、面向对象B、面向数据C、面向过程D、面向属性2、判定表由四部分组成:左上部列出(B)。0802条件组合与动作之间的对应关系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论