下半年试题和答案Word文档下载推荐.docx
《下半年试题和答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《下半年试题和答案Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
请给出合适的质量属性,填入图1-1中
(1)、
(2)空白处;
并选择题干描述中的(a)~(o),将恰当的序号填入(3)~(6)空白处,完成该系统的效用树。
【问题2】
(13分)
在架构评估过程中;
需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。
请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干描述中的(a)~(o)各选出1个属于系统架构风险、敏感点和权衡点的描述。
试题答案:
(1)安全性
(2)可修改性
(3)(h)
(4)(l)
(5)(j)
(6)(n)
架构风险:
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点:
是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点:
是影响多个质量属性的特性,是多个质量属性的敏感点。
(m);
(e);
(i)。
试题分析:
本题考查的是软件质量属性,要求考生掌握常见的软件质量属性的含义与具体的应用场景。
1、性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
代表参数:
响应时间、吞吐量设计策略:
优先级队列、资源调度
2、可用性
可用性(availability)是系统能够正常运行的时间比例。
经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
故障间隔时间设计策略:
冗余、心跳线
3、安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
设计策略:
追踪审计、信息隐藏
4、可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。
通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
此外风险点、非风险点、敏感点与权衡点要能正确区分。
敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
试题2:
阅读以下关于系统设计建模的说明,在答题纸上回答问题1至问题3。
某公司拟研制一款高空监视无人直升机,该无人机采用遥控一自主复合型控制实现垂直升降。
该直升机飞行控制系统由机上部分和地面部分组成,机上部分主要包括无线电传输设备、飞控计算机、导航设备等,地面部分包括遥控操纵设备、无线电传输设备以及地面综合控制计算机等。
其主要工作原理是地面综合控制计算机负责发送相应指令,飞控计算机按照预定程序实现相应功能。
经过需求分析,对该无人直升机控制系统纵向控制基本功能整理如下:
(a)飞控计算机加电后,应完成系统初始化,飞机进入准备起飞状态;
(b)在准备起飞状态中等待地面综合控制计算机发送起飞指令,飞控计算机接收到起飞指令后,进入垂直起飞状态;
(c)垂直起飞过程中如果飞控计算机发现飞机飞行异常,飞行控制系统应转入无线电遥控飞行状态,地面综合控制计算机发送遥控指令;
(d)垂直起飞达到预定起飞高度后,飞机应进入高度保持状态;
(e)飞控计算机在收到地面综合控制计算机发送的目标高度后,飞机应进入垂直升降状态,接近目标高度;
垂直升降过程中出现飞机飞行异常,控制系统应转入无线电遥控飞行;
(f)飞机到达目标高度后,应进入高度保持状态,完成相应的任务;
(g)飞机在接到地面综合控制计算机发送的任务执行结束指令后,进入飞机降落状态;
(h)飞机降落过程中如果出现飞机飞行异常,控制系统应转入无线电遥控飞行;
(i)飞机降落到指定着陆高度后,进入飞机着陆状态,应按照预定着陆算法,进行着陆;
(j)无线电遥控飞行中,地面综合控制计算机发送着陆指令,飞机进入着陆状态,应按照预定着陆算法,进行着陆。
(6分)
状态图和活动图是软件系统设计建模中常用的两种手段,请用200字以内文字简要说明状态图和活动图的含义及其区别。
(10分)
根据题干中描述的基本功能需求,架构师王工通过对需求的分析和总结给出了无人直升机控制系统纵向控制状态图(图2-1)。
请根据题干描述,提炼出相应状态及条件,并完善图2-1所示状态图中的
(1)~(5),将答案填写在答题纸中。
【问题3】
(9分)
根据题目中描述的基本功能需求,架构师王工给出了无人直升机控制系统纵向控制的顶层活动图(图2-2)。
请根据题干描述,完善图2-2活动图的
(1)-(9),将答案填写在答题纸中。
状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。
活动图可以用于描述系统的工作流程和并发行为。
活动图其实可看作状态图的特殊形式,活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的转移可能需要事件的触发)。
两者最大的区别是:
状态图侧重于描述行为的结果,而活动图侧重描述行为的动作。
其次活动图可描述并发行为,而状态图不能。
(1)垂直起飞状态
(2)飞机飞行异常
(3)高度保持状态
(4)垂直升降状态
(5)无线遥控飞行状态
(1)地面综合控制计算机
(2)下传完成系统初始化信息
(3)飞机垂直起飞
(4)飞行高度保持
(5)发送升降指令
(6)飞机垂直升降
(7)发送任务执行结束指令
(8)飞机降落
(9)无线电遥控飞行
试题3:
阅读以下关于嵌入式系统可靠性设计方面的描述,回答问题1至问题3。
某宇航公司长期从事宇航装备的研制工作,嵌入式系统的可靠性分析与设计已成为该公司产品研制中的核心工作,随着宇航装备的综合化技术发展,嵌入式软件规模发生了巨大变化,代码规模已从原来的几十万扩展到上百万,从而带来了由于软件失效而引起系统可靠性降低的隐患。
公司领导非常重视软件可靠性工作,决定抽调王工程师等5人组建可靠性研究团队,专门研究提高本公司宇航装备的系统可靠性和软件可靠性问题,并要求在三个月内,给出本公司在系统和软件设计方面如何考虑可靠性设计的方法和规范。
可靠性研究团队很快拿出了系统及硬件的可靠性提高方案,但对于软件可靠性问题始终没有研究出一种普遍认同的方法。
(共9分)
请用200字以内文字说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术?
(共8分)
王工带领的可靠性研究团队之所以没能快速取得软件可靠性问题的技术突破,其核心原因是他们没有搞懂高可靠性软件应具备的特点。
软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。
除非祓修改,否则软件系统不会随着时间的推移而发生退化。
请根据你对软件可靠性的理解,给出表3-1所列出的硬件可靠性特征对应的软件可靠性特征之间的差异或相似之处,将答案写在答题纸上。
王工带领的可靠性研究团队在分析了大量相关资料基础上,提出软件的质量和可靠性必须在开发过程构建到软件中,也就是说,为了提高软件的可靠性,必须在需求分析、设计阶段开展软件可靠性筹划和设计。
研究团队针对本公司承担的飞行控制系统制定出了一套飞控软件的可靠性设计要求。
飞行控制系统是一种双余度同构型系统,输入采用了独立的两路数据通道,在系统内完成输入数据的交叉对比、表决‘制导率计算,输出数据的交叉对比、表决、一输出等功能,系统的监控模块实现对系统失效或失步的检测与宠位。
其软件的可靠性设计包括恢复块方法和N版本程序设计方法。
请根据恢复块方法工作原理完成图3-1,在
(1)~(4)中填入恰当的内容。
并比较恢复块方法与N版本程序设计方法,将比较结果(5)~(8)填入表3-2中。
图3-1恢复块方法
表3-2
恢复块方法与N版本程序设计的比较
可靠性(Reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。
子特性:
成熟性,容错性,易恢复性,可靠性的依从性。
提高可靠性的技术:
(1)N版本程序设计
(2)恢复块方法
(3)防卫式程序设计
(4)双机热备或集群系统
(5)冗余设计
(1)不会随时间的推移而发生退化,但可能会随数据量的增加而变化
(2)不使用就不会产生失效率的变动,但运行环境的变化可能会导致软件失效
(3)软件维护会恢复原始状态
(4)软件失效之前不会有报警
(1)主块
(2)验证测试
(3)输出正确结果
(4)异常处理
(5)表决
(6)后向恢复
(7)差
(8)好
试题4:
阅读以下关于应用系统数据架构的说明,在答题纸上回答问题l至问题3。
某软件公司拟开发一套贸易综合管理系统,包括客户关系管理子系统和商品信息管理子系统两部分。
客户关系管理子系统主要管理客户信息,并根据贸易业务需要频繁向客户发送相关的电子邮件、短信等提醒信息。
商品信息管理子系统主要为客户提供商品信息在线查询功能,包括商品基本信息、实时库存与价格等。
在对系统进行数据架构设计时,公司项目组的架构师王工主张采用文件系统进行数据管理,原因是目前公司客户和商品数量不大,且系统功能较为简单,采用文件系统进行数据管理简单直观,开发周期短。
架构师李工则建议采用关系数据库进行数据管理,原因在于公司目前正处在高速扩张期,虽然目前的客户和商品数量不大,但随着公司快速发展,需要管理的数据必然飞速膨胀,采用关系数据库作为数据存储层,系统的扩展性更强,并能够对未来可能增加的复杂业务提供有效支持。
经过讨论,项目组初步采纳了李工的意见,决定采用关系数据库存储客户数据,并针对业务特征对系统性能进行优化。
(8分)
请从设计难度、数据冗余程度、数据架构、应用扩展性等4个方面对关系型数据库管理系统和文件系统两种数据存储方式进行比较,填写表4-1中
(1)~(4)。
表4-1
关系型数据库管理系统和文件系统存储方式比较
对系统的核心业务需求进行认真分析后,公司的资深架构师张工提出一种内存数据库和关系数据库的混合存储架构,其核心思想是将需要频繁读写的数据存入内存数据库,而将相对固定不变的数据存入关系数据库。
请首先分析比较内存数据库和关系数据库在数据模型、读写性能、存储容量、可靠性等方面的差异,填写表4-2中
(1)~(4)的空白,并根据张工的思路指定各种业务数据的存储方式,填写表4-3中(5)~(9)中的空白。
表4-2
内存数据库和关系数据库比较
表4-3
业务数据存储方式
(4分)
系统开发完成进行压力测试时,发现在较大数据量的情况下,部分业务查询响应时间过长,经过分析发现其主要原因是部分SQL查询语句效率低下。
请判断表4-4中的SQL语句设计策略哪些可能会提升查询效率,哪些可能会降低查询效率,在
(1)~(4)中填入“提升”或“降低”。
表4-4
SQL设计策略对性能的影响
(1)针对特定应用系统,难度较大
(2)数据冗余较大
(3)以应用为中心管理数据
(4)数据库系统接口标准化,易于在不同应用之间共享数据
(1)关系模式
(2)读写时先从磁盘读入内存,再读写,性能相对较低
(3)运行时整个数据库基本全调入内存,数据库容量受内存容量限制,容量较小
(4)虽然也有恢复机制,但并不是所有故障都能恢复,可靠性较低
(5)内存数据库
(6)内存数据库
(7)关系数据库
(8)内存数据库
(9)内存数据库
(1)提升
(2)降低
(3)降低
(4)提升
阅读以下关于Web应用系统架构设计的叙述,在答题纸上回答问题1至问题3.
某信息技术公司计划开发一套在线投票系统,用于为市场调研、信息调查和销售反馈等业务提供服务。
该系统计划通过大量宣传和奖品鼓励的方式快速积累用户,当用户规模扩大到一定程度时,开始联系相关企业提供信息服务,并按照信息服务种类和用户投票数量收取费用。
为了降低开发成本和提高开发效率,项目组经过讨论后决定采用轻量级JavaEE开发框架设计系统应用架构。
在应用架构设计中,除了满足系统主要功能需求,还需要考虑的因素包括:
(1)项目开发采用MySQL数据库存储数据,一但将来可能移植到其它数据库平台;
(2)系统开发过程中尽可能降低或者消除SQL语句开发的工作量;
(3)投票系统中数据之间的关系复杂,需要支持数据对象的聚合和继承等关系。
项目组基于MVC模式设计出了投票系统的架构,包括表示层、业务逻辑层、数据持久层和数据层。
在具体讨论数据持久层采用哪种技术方案时,老王建议采用成熟的Hibernate框架,小李则认为iBatis更加灵活,更适合作为投票系统数据持久层开发技术。
【问题1)(5分)
请用300以内文字说明什么是数据持久层,使用数据持久层能够为项目开发带来哪些好处?
针对在线投票系统的实际应用需求和要求,项目组应选用哪种技术实现数据持久层?
请用200字以内文字说明其采用该技术的原因。
数据持久层是Web应用系统框架中重要的组成部分,主流的数据持久层技术分别基于不同的技术方案,请在表5-1中
(1)-(4)处分别根据(a)~(d)所列技术的方案类别填入其序号。
表5-1
数据持久层技术分类
(a)BMP,CMP
(b)iBatis/MyBatis
(c)SprmgJdbcTemplate
(d)TopLink,JDO,Hibernate
数据持久层是一组软件服务,将应用程序与该程序所使用的数据源分离,为整个项目提供一个统一、安全、并发的数据持久机制。
好处:
1、程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。
2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
4、简化开发工作,让开发人员更关注于业务逻辑的开发。
1、项目组应选Hibernate框架
2、选择该技术的原因是:
(1)从移植的角度来看使用Hibernate更容易移植到其它数据库平台。
Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好。
MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。
(2)使用Hibernate能降低或者消除SQL语句开发工作量,Hibernate提供了方法完成持久层操作,程序员不需要对SQL的熟练掌握,便可完成任务。
(3)Hibernate提供了对象状态管理的功能,使开发者不再需要理会底层数据库系统的细节,而MyBatis在这一块没有文档说明,用户需要对对象自己进行详细的管理。
(1)(c)
(2)(b)
(3)(d)
(4)(a)
iBatis是apache的一个开源项目,一个O/RMapping解决方案,iBatis最大的特点就是小巧,上手很快。
如果不需要太多复杂的功能,iBatis是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis已经改名为Mybatis了。
EJB有两种主要类型BMP(Beanmanagedpersistence)和CMP(Containermanagedpersistence),这两种类型各有优缺点。
BMP是在Bean中完成对数据库JDBC的各种调用,也就是说,在你的实体bean(entitybean)中,明确写入了SQL语句,如"
insert.."
或"
select.."
并且使用Datasource获得一个数据库资源以及连接(connection)从而对数据库直接进行增加删除修改。
CMP是由EJB容器自动完成对数据库的操作,你所有做的,就是在实体bean重写入SetXXX或getXXX方法,然后在ejb-jar.xml中定义cmp-field就可以。
Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/RMapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。
程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate提供的方法完成持久层操作。
程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
iBATIS的着力点,则在于POJO与SQL之间的映射关系。
然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。
相对Hibernate“O/R”而言,iBATIS是一种“SqlMapping”的ORM实现。
Hibernate的调优方案
制定合理的缓存策略;
尽量使用延迟加载特性;
采用合理的Session管理机制;
使用批量抓取,设定合理的批处理参数(batch_size);
进行合理的O/R映射设计
Mybatis调优方案
MyBatis在Session方面和Hibernate的Session生命周期是一致的,同样需要合理的Session管理机制。
MyBatis同样具有二级缓存机制。
MyBatis可以进行详细的SQL优化设计。
SQL优化方面
Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。
Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。
而Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。
HibernateHQL语句的调优需要将SQL打印出来,而Hibernate的SQL被很多人嫌弃因为太丑了。
MyBatis的SQL是自己手动写的所以调整方便。
但Hibernate具有自己的日志统计。
Mybatis本身不带日志统计,使用Log4j进行日志记录。
扩展性方面
对象管理
Hibernate是完整的对象/关系映射解决方案,它提供了对象状态管理(statemanagement)的功能,使开发者不再需要理会底层数据库系统的细节。
也就是说,相对于常见的JDBC/SQL持久层方案中需要管理SQL语句,Hibernate采用了更自然的面向对象的视角来持久化Java应用中的数据。
换句话说,使用Hibernate的开发者应该总是关注对象的状态(state),不必考虑SQL语句的执行。
这部分细节已经由Hibernate掌管妥当,只有开发者在进行系统性能调优的时候才需要进行了解。
而MyBatis在这一块没有文档说明,用户需要对对象自己进行详细的管理。
抓取策略
Hibernate对实体关联对象的抓取有着良好的机制。
对于每一个关联关系都可以详细地设置是否延迟加载,并且提供关联抓取、查询抓取、子查询抓取、批量抓取四种模式。
它是详细配置和处理的。
而Mybatis的延迟加载是全局配置的。