软件工程试题2

上传人:m**** 文档编号:510060587 上传时间:2022-12-13 格式:DOC 页数:13 大小:288.50KB
返回 下载 相关 举报
软件工程试题2_第1页
第1页 / 共13页
软件工程试题2_第2页
第2页 / 共13页
软件工程试题2_第3页
第3页 / 共13页
软件工程试题2_第4页
第4页 / 共13页
软件工程试题2_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《软件工程试题2》由会员分享,可在线阅读,更多相关《软件工程试题2(13页珍藏版)》请在金锄头文库上搜索。

1、1假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所 得到的结果应该精确到小数点后4位。一旦发现并测试完之后,该产品将被抛弃。 你打算选用哪种软件生命周期模型?请说明你做出选择的理由。答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此, 既无须通过原模型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量 模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就 可以了。2. 假设你被任命为一家软件公司的项目负责人, 你的工作是管理该公司已被 广泛应用的字处理软件

2、的新版本开发。 由于市场竞争激烈,公司规定了严格的完 成期限并且已对公布。你打算采用哪种软件生命周期模型?为什么?答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成 产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产 品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快 开发进度。这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得到3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的 反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户 的需求;第二,该公司的软件工程师对字处理软件很熟悉, 有开

3、发字处理软件的 丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软 件的体系结构设计成开发式的,以利于今后的改进和扩充。综上所述,采用增量模型来完成这个项目比较恰当开发模型特点适用场合传统软件过程瀑布模型线性模型需求明确中小型快速原型模型用户介入早需求模糊小型软件软件演化模型(易于维护)增量模型迭代,00开发螺旋模型不确疋性大型构件集成模型领域工程中型形式化方法转换模型形式化SRS理想化净室模型形式化增量开发3. 请为某仓库的管理设计一个 ER (实体联系图)模型。该仓库主要管理零 件的订购和供应等事项。

4、仓库向工程项目提供零件,并且根据需要向供应商提供 零件。答:建立ER图的大致过程如下所述。(1)确定实体模型本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。(2)确定联系模型一种零件可供应多个工程项目,一个工程项目需要使用多种零件, 因此,零 件与工程项目之间的联系“供应”,是多对多(M:N联系;类似地,零件与供应 商之间的联系“订购”,也是多对多(M:N联系。(3)确定实体类型和联系类型的属性实体类型“零件”的主要属性是零件编号、零件名称、颜色和重量。实体类 型“工程项目”的属性主要是项目编号、项目名称和开个日期。实体类型“供应 商”的属性主要有供应商编号、供应商名称和地址。

5、联系类型“供应”的属性是向某工程项目供应的某种零件的数量。联系类型 “订购”的属性是向某供应商订购的某种零件的数量。(4)把实体类型、联系类型及属性组合成 ER图注:椭圆、矩形、菱形,线段4. 某高校可用的电话号码有以下几类: 校内电话号码由4位数字组成,第一 位数字不是0;校外电话又分为本市电话和外地电话两类, 拨校外电话需先拨0, 如果是本地电话再接着拨8位电话号码(第1位不是0 ),如果是外地电话则先 拨3位区码,再拨8位电话号码(第1位不是0)。数据字典请用2.8节讲述的符号定义上述的数据流图。答:电话号码=校内电话号码|校外电话号码校内电话号码=非零数字+3位数字校外电话号码=本市号

6、码|外地号码本市号码二数字零+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注:丨:或关系 ,仃:重复关系,+:和关系,:基本数据元素,.:连接符5. 办公室复印机的工作过程大致如下:未接收到复印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲 置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后处于闲置状态,准备接受复印命令;如果复印时

7、 发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障, 故障排除 后回到闲置状态。请用状态转换图描绘复印机的行为。答:从问题陈述可知,复制机的状态主要有闲置、复印、缺纸和卡纸。引起 状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发现卡纸 故障和排除了卡纸故障。注:状态、事件6. 如果一个程序有两个输入数据,每个输入都是一个 32位的二进制整数, 那么这个程序有多少种可能的输入?如果每微秒可进行一次测试,那么对所有可能的输入进行测试需要多长时间?32答:每个32位的二进制整数具有2个可能的值,因此,具有两个整数输入 的程序应该具有才4个可能的输入。6每微秒(us)可进行

8、一次测试,即每秒可进行10个测试,因此,每天可进行的测试数为606QX24X106=8.64 対。1。13这等于每年大约可进行3658.6410exp(10)=3.139 60个测试。改:264133.319* 101816*10133.319*101055所以做完全部测试将至少需要10年(即10万年)7. 对一个包含10 000条机器指令的程序进行一个月集成测试后,总共改正 了 15个错误,此时MTTF=10h经过两个月测试后,总共改正了 25个错误(第 二个月改正了 10个错误),MTTF=15h要求:(1) 根据上述数据确定 MTTF与测试时间之间的函数关系,画出 MTTF与测试时 间的

9、关系曲线。在画这条曲线时你做了什么假设?(2) 为做到MTTF=100h必须进行多长时间的集成测试?当集成测试结束时总 共改正了多少个错误?还有多少个错误潜伏在程序中?答:(1)假设在程序的平均无故障时间 MTTF和测试时间之间存在线性关 系,即MTTF=a + bt根据题意可知,当 =1时MTTF=10当 =2时MTTF=15把这些已知的数据 代入上列方程后得到下列的联立方程式3+b=10a +2b = 15J解上列联立方程得出a=5,b=5因此,MTTFe之间有下列关系MTTF=5 + 5t根据上列方程式画出平均无故障时间 MTTF与测试时间的关系曲线,如图4.2所示(2)为使MTTF=1

10、00hMTTF=100lh 5 + 5t,= = t = l 9,集成测试时间:,需要的测试时间可由方程式得出MTTF10000K(Et -Ec( )注:Ec(t):在0 t时间内纠错数,Et :调试前错误数,MTTF平均无故障时间根据题意可知,改正了 15个错误后MTTF=10改正了 25个错误后MTTF=15 把这些已知的数据代人上列方程之后,得到下列的联立方程式10000K(Et -15)10000K(Et -25)解上列联立方程式得到Et =45,K=33.33.已知当集成测试结束时,t = 191000033.33(45 -Ec(19)所以Ec(19) =42错误总数:45也就是说,

11、当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。8. 为什么在开发大型软件时,采用面向对象范型比采用结构化范型较易取得 成功?答:结构化技术要么面向处理(例如面向数据流的设计方法),要么面向数据(例如面向数据结构的设计方法),但却没有既面向处理又面向数据的结构化 技术。用结构化技术开发出的软件产品的基本成分是产品的行为(即处理)和这些行为所操作的数据。由于数据和对数据的处理是分离的, 尽管开发者把程序划 分成了许多模块,但是这些模块之间的联系却是比较紧密的 (耦合性高,模块独 立性低),因此,使用结构化范型开发出的软件产品本质上是一个完整的单元。 由此带来的后果是软

12、件规模越大,用结构化范型开发软件的技术难度和管理难度 就越大。与结构化技术相反,面向对象技术是一种以数据为主线, 把数据和处理相结 合的方法。面向对象范型把对象作为由数据及可以施加在这些数据上的操作所构 成的统一体。用面向对象范型开发软件时,构成软件系统的每个对象就好像一个 微型程序,有自己的数据、操作、功能、和用途,因此,可以把一个大型软件产 品分解成一系列本质上相互独立的小产品来处理(分解、细化,模块化),不仅降低了软件开发的技术难度,而且也使得对软件开发工作的管理变得相对容易 了。9. 为什么说夏利牌汽车是小汽车类的特化(继承),而发动机不是小汽车类 的特化?答:夏利牌汽车具有小汽车的全

13、部属性和行为,它只不过是一种特定品牌的 小汽车,因此,夏利牌汽车可以从基类(小汽车)派生出来,也就是说,夏利牌 汽车是小汽车类的特化。发动机是组成小汽车的一种零件。 小汽车还是车身、车灯、轮子等许多种其 他零件,小汽车所具有的许多属性和行为发动机都不具有, 因此,发动机不能从 小汽车类派生出来,它不是小汽车类的特化。10. 什么是对象?它与传统的数据有何异同?答:(1)对象是用面向对象方法学开发软件时对客观世界实体的抽象,它 是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的 统一体。传统的数据是用传统方法学开发软件时对客观实体的抽象,但是,这种抽象是不全面的:数据只能描述实

14、体的静态属性,不能描述实体的动态行为。必 须从外界对数据加操作,才能改变数据实现实体应有的行为。(2)对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能直接从外界对它的私有数据进行操作。11. 什么是模型?开发软件时为什么要建立模型?(1)所谓模型,就是为了理解事物而对事物作出的一种抽象, 是对事物的一种无歧义的书面描述。通常,模型:由一组图示符号和组织这些符号的规则组 成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,模型是一种思维工具,利用这种工具可以把知识规范地表示出来。(2)众

15、所周知,在解决问题之前必须首先理解所要解决的问题。 对问题理 解得越透彻,就越容易解决它。在开发软件的过程中,为了更好地理解客户要求 解决的问题,往往需要建立问题域的模型(清晰/准确性)。为了开发复杂的软 件系统,系统分析员应该从不同角度抽象出目标系统的特性, 使用精确的表示方 法构造系统的模型,验证模型是否满足客户对目标系统的要求, 并在设计过程中 逐渐把和实现有关的细节加进模型中,直至最终用程序实现这个模型。对于那些因过分复杂而不能直接理解的系统, 特别需要建立模型,建立的 目的主要是为了降低复杂性。人的头脑每次只能处理少量信息,模型通过把系统 的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂 程度。12. 试建立下述订货系统的用例模型(用例图),数据流图(DFD。假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号