软件工程试题Word文档下载推荐.docx
《软件工程试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件工程试题Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
综上所述,采用增量模型来完成这个项目比较恰当。
开发模型
特点
适用场合
传统软件过程
瀑布模型
线性模型
需求明确中小型
快速原型模型
用户介入早
需求模糊小型软件
软件演化模型
(易于维护)
增量模型
迭代 ,OO开发
螺旋模型
不确定性大型
构件集成模型
领域工程中型
形式化法
转换模型
形式化SRS
理想化
净室模型
形式化增量开发
3.请为某仓库的管理设计一个ER(实体联系图)模型。
该仓库主要管理零件的订购和供应等事项。
仓库向工程项目提供零件,并且根据需要向供应商提供零件。
答:
建立ER图的大致过程如下所述。
(1)确定实体模型
本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。
(2)确定联系模型
一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M:
N)联系;
类似地,零件与供应商之间的联系“订购”,也是多对多(M:
N)联系。
(3)确定实体类型和联系类型的属性
实体类型“零件”的主要属性是零件编号、零件名称、颜色和重量。
实体类型“工程项目”的属性主要是项目编号、项目名称和开个日期。
实体类型“供应商”的属性主要有供应商编号、供应商名称和地址。
联系类型“供应”的属性是向某工程项目供应的某种零件的数量。
联系类型“订购”的属性是向某供应商订购的某种零件的数量。
(4)把实体类型、联系类型及属性组合成ER图
注:
椭圆、矩形、菱形,线段
4.某高校可用的有以下几类:
校由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]
数字零=0
3位数字=3{数字}3
8位数字=非零数字+7位数字
7位数字=7{数字}7
数字=[0|1|2|3|4|5|6|7|8|9]
[|]:
或关系 ,{}:
重复关系 ,+:
和关系,...:
基本数据元素,..:
连接符
5.办公室复印机的工作过程大致如下:
未接收到复印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;
如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后处于闲置状态,准备接受复印命令;
如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。
从问题述可知,复制机的状态主要有闲置、复印、缺纸和卡纸。
引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发现卡纸故障和排除了卡纸故障。
状态、事件
6.如果一个程序有两个输入数据,每个输入都是一个32位的二进制整数,那么这个程序有多少种可能的输入?
如果每微秒可进行一次测试,那么对所有可能的输入进行测试需要多长时间?
每个32位的二进制整数具有个可能的值,因此,具有两个整数输入的程序应该具有个可能的输入。
每微秒(us)可进行一次测试,即每秒可进行个测试,因此,每天可进行的测试数为
60×
60×
24×
=8.64×
这等于每年大约可进行365*8.64*10exp(10)=3.×
个测试。
改:
所以做完全部测试将至少需要年(即10万年)。
7.对一个包含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所示
(2)为使MTTF=100h
MTTF=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个错误潜伏在程序中。
8.为什么在开发大型软件时,采用面向对象型比采用结构化型较易取得成功?
结构化技术要么面向处理(例如面向数据流的设计法),要么面向数据(例如面向数据结构的设计法),但却没有既面向处理又面向数据的结构化技术。
用结构化技术开发出的软件产品的基本成分是产品的行为(即处理)和这些行为所操作的数据。
由于数据和对数据的处理是分离的,尽管开发者把程序划分成了多模块,但是这些模块之间的联系却是比较紧密的(耦合性高,模块独立性低),因此,使用结构化型开发出的软件产品本质上是一个完整的单元。
由此带来的后果是软件规模越大,用结构化型开发软件的技术难度和管理难度就越大。
与结构化技术相反,面向对象技术是一种以数据为主线,把数据和处理相结合的法。
面向对象型把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。
用面向对象型开发软件时,构成软件系统的每个对象就好像一个微型程序,有自己的数据、操作、功能、和用途,因此,可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理(分解、细化,模块化),不仅降低了软件开发的技术难度,而且也使得对软件开发工作的管理变得相对容易了。
9.为什么说夏利牌汽车是小汽车类的特化(继承),而发动机不是小汽车类的特化?
夏利牌汽车具有小汽车的全部属性和行为,它只不过是一种特定品牌的小汽车,因此,夏利牌汽车可以从基类(小汽车)派生出来,也就是说,夏利牌汽车是小汽车类的特化。
发动机是组成小汽车的一种零件。
小汽车还是车身、车灯、轮子等多种其他零件,小汽车所具有的多属性和行为发动机都不具有,因此,发动机不能从小汽车类派生出来,它不是小汽车类的特化。
10.什么是对象?
它与传统的数据有异同?
(1)对象是用面向对象法学开发软件时对客观世界实体的抽象,它是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的统一体。
传统的数据是用传统法学开发软件时对客观实体的抽象,但是,这种抽象是不全面的:
数据只能描述实体的静态属性,不能描述实体的动态行为。
必须从外界对数据加操作,才能改变数据实现实体应有的行为。
(2)对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。
必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能直接从外界对它的私有数据进行操作。
11.什么是模型?
开发软件时为什么要建立模型?
(1)所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
通常,模型:
由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。
更进一步讲,模型是一种思维工具,利用这种工具可以把知识规地表示出来。
(2)众所知,在解决问题之前必须首先理解所要解决的问题。
对问题理解得越透彻,就越容易解决它。
在开发软件的过程中,为了更好地理解客户要求解决的问题,往往需要建立问题域的模型(清晰/准确性)。
为了开发复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示法构造系统的模型,验证模型是否满足客户对目标系统的要求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现这个模型。
对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建立的目的主要是为了降低复杂性。
人的头脑每次只能处理少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。
12.试建立下述订货系统的用例模型(用例图),数据流图(DFD)。
假设一家工厂的采购部每天需要一订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。
对于每个需要再次订货的零件应该列出下述数据:
零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。
零件入库或出库称为事务,通过放在仓库中的终端把事务报告给订货系统。
当某种零件的库存数量少于库存量临界值时就应该再次订货。
从对这个订货系统的需要可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库事务报告给订货系统,系统接收到事务信息之后应该处理事务;
采购员需要使用订货系统提供的产生报表功能,已获取订货报表。
用例模型:
,
数据流图(DFD):
2层
用例图:
系统边界:
矩形,用例:
椭圆,参与者:
小人,关联:
直线
数据流图:
源/终点:
框,加工:
圆框,数据流向:
箭头,文件或数据库:
双杠
13.为什么说面向对象法与人类习惯的思维解题法比较一致(一致性)?
人类认识客观世界、解决现实问题的过程是一个渐进的过程。
人的认识需要在继承以前的有关知识上的基础上,既包括从一般到特殊的演绎思维过程,也包括从特殊到一般的归纳思维过程,面向对象法学过建立类等级而获得的继承特性支持从一