试题一(共25分)
阅读以下关于软件系统可行性分析的叙述,在答题纸上回答问题1至问题3。
某软件开发企业受对外贸易公司委托开发一套跨境电子商务系统,项目组从多个
方面对该电子商务系统进行了可行性分析,在项目组给出的可行性分析报告中,对项目的成本、收益情况进行了说明:建设投资总额为300万元,建设期为1年,运营期为4年,该方案现金流量表如表1-1所示。
【问题1】(12分)
软件系统可行性分析包括哪几个方面?用200以内文字说明其含义。
【问题2】(7分)
成本和收益是经济可行性评价的核心要素,成本一般分为开发成本和运营成本,
收益包括有形收益和无形收益,请对照下列7项内容,将其序号分别填入成本和收益对应的类别。
a)系统分析师工资;
b)采购数据库服务器;
c)系统管理员工资;
d)客户满意度增加;
e)销售额同比提高;
f)软件许可证费用;
g)应用服务器数量减少。
【问题3】(6分)
根据表1-1所示现金流量表,分别给出该解决方案的静态投资回收期、动态投资回收期和投资收益率的算术表达式或数值(结果保留2位小数)。
投资收益率就是投出去多少钱与获利多少钱之间的百分比,百分比大于1那么说明项目是盈利的;也可以再此基础上除个年份,代表均摊到每一年能回收多少;
静态投资回收期= 累计净现金流量开始出现正值的年份数-1+∣上年累计净现金流量∣/当年净现金流量;具体来说先看看上个年度的净现金流量,看看距离盈亏平衡点还有多少,然后除以当年的进现金流量就可以了;动态投资回收期无非就是需要计算一个折现率。
技术可行性强调信息系统实现的功能和性能,以及技术能力约束;
法律可行性强调从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
四个可行性还是和标准答案有些偏差。
试题二(共25分)
阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
某软件公司为电子商务企业开发一套网上交易订单管理系统,以提升服务的质量和效率。在项目之初,项目组决定釆用面向对象的开发方法进行系统开发,并对系统的核心业务功能进行了分析,具体描述如下:
注册用户通过商品信息页面在线浏览商品,将需要购买的商品添加进购物车内, 点击“结算”按钮后开始录入订单信息。
用户在订单信息录入页面上选择支付方式,填写并确认收货人、收货地址和联系方式等信息。点击“提交订单”按钮后产生订单,并开始进行订单结算。
订单需要在30分钟内进行支付,否则会自动取消,用户也可以手工取消订单。
用户支付完成,经确认后,系统开始备货,扣除该商品可接单数量,并移除用户购物车中的所有商品资料。
生成订单表单,出货完毕,订单生效。为用户快递商品,等待用户接收。 用户签收商品,交易完成。
【问题1】(12分)
识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。请用300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类举出2个实例。
【问题2】(3分)
在面向对象的设计过程中,活动图(activity
diagram)阐明了业务用例实现的工作流程。请用300字以内的文字给出活动图与流程图(flow chart)的三个主要区别。
【问题3】(10分)
在面向对象的设计过程中,状态图(statechart
diagram)描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)~(e)空白,完成订单处理的状态图。
活动图描述了活动必要的工作顺序,而流程图需要明确指定每个活动之间的先后顺序。
订单结算,订单产生,订单生效,订单取消,购物网站的消息都是围绕订单来展开的;
实体类映射需求的每个实体,控制类用来控制用例工作,结算备货属于控制类;
封装用例内外流动的信息流,就是边界类;
边界类和控制类觉得比较难以理解,但是在用例图看来,控制椭圆工作的类就是控制类,连接椭圆和小人的类就是边界类,这样理解起来稍微要好点。
试题四(共25分)
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:
航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)
代理商(代理商编号,代理商名称,客服电话,地址,负责人)
机票代理(代理商编号,航班编号,票价)
旅客(身份证号,姓名,性别,出生日期,电话)
购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)
在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:
机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)
这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。
【问题1】(6分)
机票代理关系模式的修改,满足了用户对代理商机票价格查询的需求,提高了查询
效率。但这种修改导致机票代理关系模式不满足3NF,会带来存储异常的问题。
1) 请具体说明其问题,并举例说明。
2)这种存储异常会造成数据不一致,请给出解决该存储异常的方案。
【问题2】(9分)
在机票销售信息处理系统中,两个代理商的售票并发执行,可能产生的操作序列如表4-1所示。假设两个代理商执行之前,该航班仅剩1张机票。 1) 请说明上述两个代理商操作的结果。
2)并发操作会带来数据不一致的问题,请具体说明3种问题。
【问题3】(10分)
为了避免问题2中的问题,开发组使用库的读写锁机制,操作序列变为表4-2所示。
5.加写锁
6.释放写锁
本题考查的是关系数据库范式和并发控制等知识点;
使用触发器在修改时,检查并新更对应数据的方式来解决数据不一致的问题。那么就可以解决更新异常的问题。它是反规范化之后为了解决数据冗余而导致不一致性的一种解决方案;
一级封锁协议解决了丢失更新的问题,二级封锁协议解决了丢失更新和读脏数据的问题,三级封锁协议解决了丢失更新,读脏数据,不可重复读三个问题。
读脏数据:两个事务,事务A读取数据并修改后,如果事务B读取修改后的数据,到这里都挺正常没有问题,但此时若事务A回滚了,那么对于事务B来说,读到的数据就是脏数据了;
不可重复读:事务A读取数据之后,事务B更新了这个数据,但事务A不知道,还傻乎乎使用者事务B更新之前的数据。
对一个数据加读锁后其他事务还可以对其加读锁,但是不能加写锁了;而一个数据一旦加了写锁,任何锁都无效了;但是要清楚的知道枷锁其实会产生死锁现象,所以要慎用之。
T4时间事务B需要先做等待,因为在T3时刻,事务A已经上了写锁,所以事务B被中断了;
在T5时刻,事务A提交并释放了锁,那么在T4挂起的才能够继续执行,在执行前需要先查询一下最新的票数,然后减一,最后加上写锁。
通过此题发现自己的基础知识还是掌握不够扎实。
试题三 阅读以下关于嵌入式系统能耗管理设计的描述,在答题纸上回答问題1至问题3。
随着嵌入式系统智能化技术的持续发展,系统的能耗问题已成为亟待解决的难题。某宇航公司研发的一款手持式野外辅助装备,需要较长的巡航时间,由于设计时对功耗问题考虑不周,使得产品出现了批次责任事故。公司领导决定抽调王工等5人组建专门的攻关小组,要求在三个月内完成故障归零。王工接到任务后,经反复论证
与实验,给公司提交了一份基于软件动态节能的改进方案,得到了领导及专家的好评。
【问题1】(7分)
在嵌入式系统中节能技术一般分为静态节能和动态节能两种,请用300字以内文字分别说明什么是静态节能技术和动态节能技术,并列举三种动态节能技术。
【问题2】(6分)
王工的方案得到认可后,他带领团队研究了调度方式和系统能耗之间的关系,请用150字以内的文字说明为了节约系统能耗而釆用的设备调度策略的核心思路,并说明设备调度策略与任务实时性的关系。
【问题3】(12分)
根据上述设备有效调度时刻的策略,分析以下实例,并将答案写在答题纸上。手持式野外辅助装备由三个实时任务和三个独立设备组成(分别表示为:t1、t2和t3;s1、s2和S3),表3-1给出了手持式设备实时任务的时间参数表,这些任务使用独立的设备并且所有设备的特征一致,各设备待机超时可直接进入睡眠状态,处于睡眠状态的设备要经过转换状态后才能进入运行状态。假设初始状态(t=0)设备处于工作状态,且所有设备的工作状态功率为60mw/ms,转换功率为30mw/ms,睡眠功率为10mv/ms。同时假设设备被唤醒的转换时间为10ms。设备待机后被关闭的超时值为10ms。
图3-1给出了未考虑节能需求时任务调度算法,在采用了设备有效时刻调度策略之后,三个设备100ms周期内将按一定顺序被依次关闭和唤醒。图3-2给出了采用设备有效时刻调度策略后s1的功率随时间的变化规律。请计算此时三个设备在100ms 周期内的功耗,并计算100ms周期内,每个设备的节能比。 节能比 = (未节能情况下的系统能耗 - 节能后系统能耗)÷ 未节能情况下的系统能耗
静态节能优化在编译时,动态节能优化在运行时,静态节能体现在对代码的性能优化与代码重构。
主流的动态节能技术完全不清楚,可以了解一下,可以通过电源管理,电压调节,频率调节等方式实现;
计算题比较简单,可以帮助我们理解节能的原理。
试题五(共25分)
阅读以下关于Web应用的叙述,在答题纸上回答问题1至问题3。
某软件企业拟开发一套基于Web的云平台配置管理与监控系统,该系统按租户视图、系统管理视图以及业务视图划分为多个相应的Web应用,系统需求中还包含邮件服务、大文件上传下载、安全攻击防护等典型Web系统基础服务需求。
【问题1】(5分)
在选择系统所采用的Web开发框架时,项目组对Alibaba开发的WebX框架与轻量级Spring
MVC框架进行了对比分析,最终决定采用WebX框架进行开发。请用300字以内文字,从多应用支持、基础服务支持以及可扩展性这三个方面对WebX与Spring
MVC框架进行对比。
【问题2】(12分)
在确定系统釆用的持久层技术方案时,项目组梳理了系统的典型持久化需求,对照需求对比分析了
Hibernate和MyBatis两种持久化方案,请分析两种持久化方案对表
5-1中所列项目需求的支持情况,将候选答案序号A或B填入表5-1相应位置。
【候选答案:A. 支持 B.不支持或支持差】
【问题3】 (8分)
系统实现相应的配置管理与监控功能时,需要集成云平台侧提供的大量服务以实现配置数据的读取写入与不同视图监测数据的获取。项目组在确定服务集成方案时,对比了REST风格RPC与SOAP
RPC两种方案,经过分析讨论,项目组最终决定采用REST风格RPC机制实现服务集成,请判断表5-2中给出的选择REST方案的理由是否合理。
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。
Spring的一个最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架
Spring的基本组成:
1、最完善的轻量级核心框架。
2、通用的事务管理抽象层。
3、JDBC抽象层。
4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
5、AOP功能。
6、灵活的MVC Web应用框架。