软件工程题
2009 年 A 一.选择题(每小题 1 分,共 10 分)1.软件需求分析的任务不包括()。
A.问题分析 B.信息域分析 C.结构化设计 D.确定逻辑结构 2. 在 UML 中,描述系统与外部系统及用户之间交互的图是()。
A.类图 B.用况图 C.对象图 D.协作图 3. 在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。
A.要求软件做什么 B.要给软件提供哪些信息 C.要求软件工作效率如何 D.要求软件具有什么样的结构 4. 软件测试的目的是(B)。
A.评价软件的质量 B.发现软件的错误 C.找出软件中的所有错误 D.证明软件是正确的 5.面向对象的开发方法的典型软件生命周期模型是(B)。
A.瀑布模型 B.喷泉模型 C.智能模型 D.螺旋模型 6.白盒法又称为逻辑覆盖法,主要用于(D)。
A.功能测试 B.系统测试 C.α测试 D.单元测试 7.结构化分析方法(SA 法)使用的主要描述工具有()。
A.数据库 B.模块结构图 C.PAD 图 D.分层的 DFD 图 8.UML 中,包图是一种()。
A.集合 B.数据结构 C.分组机制 D.对系统的动态描述 9.总体设计的目的是确定整个系统的()
A.规模 B.功能及模块结构 C.费用 D.测试方案 10.在 SD 方法中全面指导模块划分的最重要的原则是()A.程序模块化 B.模块高内聚 C.模块低耦合 D.模块独立性 二、填空题(每空 1 分,共 10 分)1.某数字仪表板控制系统软件结构如下图所示,该软件结构的深度是_________、宽度为_________,其中数据转换控制模块的扇出数为_________。
2.面向对象方法的四个核心概念可以用下列方程来概括:
OO= _________ + _________ + _________+ 消息通信(communication with messages)3.在 UML 中可以使用_________图、_________图、_________图、通信图和_________图对系统进行行为建模。
三、简答题(每小题 8 分,共 40 分)1.状态机图中的基本元素有哪些?简述 UML 绘制状态机图的步骤? 2.什么是软件构件?常用的构件标准有哪些?构件库管理系统的两个关键技术是什么?
3.简述软件测试要经过哪几个主要阶段,每个阶段与软件生命周期中哪个阶段的什么文档有关? 4.某厂对部分职工重新分配工作的政策是:年龄在 20 岁以下者,初中文化程度脱产学习,高中文化程度当电工。20 岁至 40 岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。年龄在 40 岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用判定树描述上述问题的处理逻辑。
5.什么是软件维护? 软件维护分为哪几种类型? 四、应用题(共 40 分)1.(10 分)阅读下列说明和数据流图,回答问题 1 至问题 3,某图书管理系统的主要功能是 图书管理和信息查询。对于初次借书的读者,系统自动生成读者号,并与读者基本信息(姓名、单位、地址等)一起写入读者文件。
系统的图书管理功能分为 4 个方面:购入新书、读者借书、读者还书以及图书注销。
(1)购入新书时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期,将这些信息写入图书目录文件并修改文件中的库存总量(表示到目前为止,购入此种图书的数量)。
(2)读者借书时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数(假设每位读者能同时借阅的书不超过 5本),若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。
(3)读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录,标明还书日期,再写回到借书文件中,若图
书逾期,则处以相应的罚款。
(4)注销图书时,需填写注销单并修改图书目录文件中的库存总量。系统的信息查询功能主要包括读者信息查询和图书信息查询。其中读者信息查询可得到读者的基本信息以及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。
图书管理系统的顶层图如图 1 所示;图书管理系统的第 0 层 DFD图如图 2 所示。其中,加工 2 的细化图如图 3 所示。
[问题 1] 数据流图 2 中有两条数据流是错误的,请指出这两条数据流的起点和终点。
[问题 2] 数据流图 3 中缺少三条数据流,请指出这三条数据流的起点和终点。
[问题 3] 根据系统功能和数据流图填充下列数据字典条目中的(1)和(2):
查洵请求信息=[查询读者请求信息|查询图书请求信息] 读者情况=读者号+姓名+所在单位+{借书情况} 管理工作请求单=(1)入库单=(2)2、某报表处理系统要求用户输入处理报表的日期,日期限制在 2003 年 1 月至2008 年 12 月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。
系统日期规定由年、月的 6 位数字字符组成,前四位代表年,后两位代表月。
请给出如何用等价类划分法设计测试用例, 来测试程序的日期检查功能? 3、(15 分)结合课程设计中你完成的任务情况,谈谈你对软件工程基本原理和方法的理解,有什么收获和体会? 软件工程是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,他已成为了一个综合的一个能够解决问题的思想集合。做软件工程教给了我们在完成一个实际项目时的一般程序及过程。并且它是一项非常有用的技能,不仅仅局限于软件工程的范畴,我们即使是从事其它行业,不也是要从需求获取开始,一直有条有理地做事情。
2009 年 B 一、选择题(每小题 1 分,共 10 分)1.软件生存周期模型有多种,下列选项中,()不是软件生存周期模型。
A.螺旋模型 B.增量模型 C.功能模型 D.瀑布模型 2.软件生命周期包括系统工程、需求分析、概要设计、详细设计、编码、()、维护等活动。
A.应用 B.测试 C.检测 D.以上答案都不对 3.准确地解决“软件必须做什么”是()阶段的任务。
A.可行性研究 B.详细设计 C.需求分析 D.编码 4.衡量模块独立性的度量标准是模块的()。
A.抽象和信息隐蔽 B.局部化和封装化 C.内聚性和耦合性 D.激活机制和控制方法 5.在面向数据流的软件设计方法中,一般将信息流分为()。
A.变换流和事务流 B.变换流和控制流 C.事务流和控制流 D.数据流和控制流 6.一个模块把数值量作为参数传送给另一个模块。这两个模块之间的耦合是()。
A.逻辑耦合 B.数据耦合 C.控制耦合 D.内容耦合 7. 在 UML 中,描述系统与外部系统及用户之间交互的图是()。
A.类图 B.用况图 C.对象图 D.协作图 8. 软件测试的目的是()。
A.评价软件的质量 B.发现软件的错误 C.找出软件中的所有错误 D.证明软件是正确的9.UML 中,包图是一种()。
A.集合 B.数据结构 C.分组机制 D.对系统的动态描述 10.下列()属于判定覆盖。
A.每个语句都被执行 B.选择的测试数据必须足够多 C.每个判定的每种可能的结果都被执行 D.判定表达式中的每个条件都取到可能的值 二、填空题(每空 1 分,共 10 分)1.某数字仪表板控制系统软件结构如下图所示,该软件结构的深度是_________、宽度为_________,其中数据转换控制模块的扇出数为_________。
2.UML 中的状态机图中的状态有_________、_________和中间状态三种类型。
3.在 UML 中可以使用_________图、_________图、_________图、通信图和_________图对系统进行行为建模。
4.________________的目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。
三、简答题(每小题 8 分,共 40 分)
1.类图中的整体部分关系有哪两种类型?他们之间有什么区别? 2.什么是软件构件?常用的构件标准有哪些?构件库管理系统的两个关键技术是什么? 3.简述软件测试要经过哪几个主要阶段,每个阶段与软件生命周期中哪个阶段的什么文档有关? 4.某航空公司行李托运费的算法如下:按规定:重量不超过 30 公斤的行李可免费托运。重量超过 30 公斤时,对超运部分,头等舱国内乘客收 4 元/公斤;其它舱位国内乘客收 6 元/公斤;外国乘客收费为国内乘客的 2 倍;残疾乘客的收费为正常乘客的 1/2。请用判定表或判定树描述上述问题的处理逻辑。
5.什么是软件维护? 软件维护分为哪几种类型? 四、应用题(共 40 分)1.(10 分)一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐 CD、录音图书磁带和报纸等出版物,供读者借阅,具体包括借阅、归还、编目、上架四项功能,其中读者可以利用借阅和归还功能进行借阅和归还操作,管理员负责给出版物编目和上架功能。这些出版物具有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等公共属性,以及借出、收回等公共服务。此外这些出版物还存在特有属性,如:书籍有作者属性、杂志有日期属性、小册子有作者属性、电影录像带有电影名属性、音乐 CD 有演员名属性、录音图书磁带有作者属性,报纸有日期属性。请为图书馆馆藏出版物建立用例模型和对象模型。(也可以用结构化方法给出系统的数据流图模型和实体关系模型)2、(15 分)某模块的程序流程图如下,请分别设计满足判定覆盖和条件覆盖的测试用 例。
设计测试用例时,请采用下面给定的真值表格式,在真值表中填写 x、y、z 的值和各个逻辑表达式的真假(T 或者 F)。
判定覆盖采用的真值表格式:
条件覆盖采用的真值表格式:
3、(15 分)结合课程设计中你完成的任务情况,谈谈你对软件工程基本原理和方法的理解,有什 么收获和体会?
A 答案:《软件工程》参考答案及评分标准 一、选择题(每空 1 分,共 10 分)1、C 2、B 3、A 4、B 5、B 6、D 7、D 8、C 9、B 10、D 二、填空题(每空 1 分,共 10 分)1.4,9,3 2.对象+类+继承 3.状态机图,活动图,顺序图,协作图。
三、简答题(每小题 8 分,共 40 分)1.答:状态机图中的基本元素包括状态,迁移,起始状态和终结状态(2 分)绘制状态机图的步骤如下:
1)列出对象具有的所有状态 状态分为起始状态、结束状态和中间状态。一张状态机图可以有一个起始状态和若干个(可以为 0)结束状态。(2 分)2)标识导致状态转换的事件 当一个对象接收到某个事件时,会导致从一个状态转换到另一个状态,称为状态迁移(transition)。
(2 分)3)为状态和迁移定义状态变量和动作 在状态迁移和/或处于某个状态中时都可能需要执行一些相应的动作,综合这些动作,使得对象完成相应的功能。(2 分)2.软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件 常用的构件标准有 CORBA(公共对象请求代理体系结构),COM,EJB 构件库管理系统的两个关键技术是构件的描述与检索 3.答:单元测试、集成测试、确认测试和系统测试,单元测试——程序源代码文档及详细设计文档,集成测试——软件总体设计及详细设计规格说明书 确认测试——软件需求规格说明书 系统测试——系统需求规格说明书 4、答:
5.软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,(4 分)包括改正性维护(1 分)、适应性维护(2 分)、扩充与完善性维护(2 分)、预防性维护(2 分)4 种类型 四、应用题(共 40 分)1、[问题 1]起点:读者文件 终点:登记读者信息或 3。起点:处理查询请求或 2。终点:读者文件。
(3 分)[问题 2]起点:图书目录文件 终点:图书信息查询或 2.2。起点:借书文件 终点:读者信息查询或 2.1。
起点:借书文件 终点:图书信息查询或 2.2。
(3 分)[问题 3](1)[入库单|借书单|还书单|注销单]。
(2)分类目录号+书名+作者+价格+数量+购书日期。
(4 分)2、答:
1)等价类划分
对表中编号为 1,2,3 的 3 个有效等价类用一个测试用例覆盖:
3).为每一个无效等价类设至少设计一个测试用例
B 答案《软件工程》参考答案及评分标准 一、选择题(每空 1 分,共 10 分)1、C 2、B 3、C 4、C 5、A 6、B 7、B 8、C 9、C 10、C 二、填空题(每空 1 分,共 10 分)1.4,9,3 2.初始状态,终态 3.状态机图,活动图,顺序图,协作图。
4.可行性研究 三、简答题(每小题 8 分,共 40 分)1.答:
聚集(aggregation)是表示整体一部分关系的一种关联,它的“部分”对象可以是仸意“整体”对象的一部分 组合(composition):组合是一种更强形式的关联,代表整体的组合对象有管理它的部分对象的特有责仸,如部分对象的分配和解除分配。组合关联具有强的物主身份,即“整体”对象拥有“部分”对象,“部分”对象生存在“整体”对象中。
2.软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件 常用的构件标准有 CORBA(公共对象请求代理体系结构),COM,EJB 构件库管理系统的两个关键技术是构件的描述与检索 3.答:单元测试、集成测试、确认测试和系统测试,单元测试——程序源代码文档及详细设计文档,集成测试——软件总体设计及详细设计规格说明书 确认测试——软件需求规格说明书 系统测试——系统需求规格说明书 4、答:判定树如下:
5.软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,(4 分)包括改正性维护(1 分)、适应性维护(1 分)、扩充与完善性维护(1 分)、预防性维护(1 分)4 种类型 四、应用题(共 45 分)1、答案:用例图(4 分)
【评分标准】两个角色(1 分),四个用例(2 分),四条连线(1 分)对象模型如图(6 分)【评分标准】父类(2 分),子类(3 分),继承关系(1 分)利用结构化方法酌情给分。
2、答:
本题无法给出唯一正确的答案,各自设计的测试用例可能完全不同。
但是可以通过判别真值表,来判断测试用例的设计是否正确。
例如在判定覆盖中判定(x>3)&&(z<10)和判定(x==4)||(y>5)都必须取到 T 和 F 值。
