2019年系统分析师下午试题Ⅰ分析与解答
试题一(25分)
阅读以下关于软件系统分析的叙述,在答题纸上回答问题1至问题3。
说明
某软件企业为电信公司开发了一套网上营业厅系统,以提升服务的质量和效率。项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务,如表1-1所示。在此基础上,绘制了项目P—E—R—T图,简称PERT图。
表1-1 网上营业厅系统PERT图
【问题 1】(10分)
PERT图采用网络图来描述一个项目的任务网络,不仅可以表达子任务的计划安排,还可以在任务计划执行过程中估计任务完成的情况。针对表1-2中关于PERT图中关键路径的描述(1)~(5),判断对PERT图的特点描述是否正确,并说明原因。
表1-2 PERT图特点描述
参考答案
(1)正确。关键路径是项目中持续时间最长的活动顺序,关键路径决定了项目完成的最短工期。
(2)错误。关键路径可以有一条或者多条。
(3)错误。在项目执行过程中,如果非关键路径上的活动拖延到超过其松弛时间(总时差)时,关键路径就会发生变化。
(4)正确。关键路径越多说明项目的关键工作也就越多,而关键工作不允许拖延,因此项目会变得更加复杂。
(5)正确。关键路径上的任务不能延迟,延迟会导致项目工期延长。工期延长会导致项目进度、成本、范围等的变更。
【问题 2】(5分)
根据表1-1所示任务及其各项任务之间的依赖关系,计算对应PERT图中的关键路径及项目所需工期。
参考答案
画出本题的PERT图如下。
根据PERT图,可以看出路径ABCEGHI为最长路径,是本题的唯一关键路径,总工期为25周。
【问题3】(10分)
根据表1-1所示任务及其各项任务之间的依赖关系,分别计算对应PERT图中任务C~G的松弛时间(Slack Time),将答案填入(a)~(e)中的空白处。
参考答案
每个活动的松弛时间为“最晚开始时间-最早开始时间”或“最晚结束时间-最早结束时间”。
其中最早时间可以采用“正推法”。根据【问题2】所画的PERT图,从起始节点顺着箭头方向,求出每个活动的最早时间。
最晚时间采用“逆推法”。从终止节点逆着箭头方向,求出每个活动的最晚时间。处于关键路径上的活动,其松弛时间为0,不难计算其余各活动的松弛时间。具体结果详见【问题2】答案部分。
试题二(25分)
阅读以下关于基于MDA(Model Driven Architecture)的软件开发过程的叙述,在答题纸上回答问题1至问题3。
说明
某公司拟开发一套手机通信录管理软件,实现对手机中联系人的组织与管理。公司系统分析师王工首先进行了需求分析,得到的系统需求列举如下:
用户可通过查询接口查找联系人,软件以列表的方式将查找到的联系人显示在屏幕上。显示信息包括姓名、照片和电话号码。用户点击手机的“后退”按钮则退出此软件。点击联系人列表进入联系人详细信息界面,包括姓名、照片、电话号码、电子邮箱、地址和公司等信息。为每个电话号码提供发送短信和拨打电话两个按键实现对应的操作。用户点击手机的“后退”按钮则回到联系人列表界面。在联系人详细信息界面点击电话号码对应的发送短信按键则进入发送短信界面。界面包括发送对象信息显示、短信内容输入和发送按键三个功能。用户点击发送按键则发送短信并返回联系人详细信息界面;点击“后退”按钮则回到联系人详细信息界面。在联系人详细信息界面内点击电话号码对应的拨打电话按键则进入手机的拨打电话界面。在通话结束或挂断电话后返回联系人详细信息界面。
在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议基于公司现有的软件开发框架,采用新的基于模型驱动架构的软件开发方法,将开发人员从大量的重复工作和技术细节中解放出来,使之将主要精力集中在具体的功能或者可用性的设计上。公司任命王工为项目技术负责人,负责项目的开发工作。
【问题1】(7分)
请用300字以内的文字,从可移植性、平台互操作性、文档和代码的一致性三个方面说明基于MDA的软件开发方法的优势。
参考答案
在MDA框架中,首先使用平台无关的建模语言来搭建平台无关的模型PIM,然后根据特定平台和实现语言的映射规则,将PIM转换以生成平台相关的模型PSM,最终生成应用程序代码和测试框架。因此MDA方法可移植性比较好。
MDA方法中提供了模型转换标准,以及对象约束语言,工具厂商可以开发自动化的工具,开发人员只需关注于业务建模,开发PIM。从PIM到最后面向具体技术平台的可执行的应用程序,都由自动化的MDA工具来解决,很好地实现了平台互操作性。
在MDA中代码是由模型生成的,可以保证文档和代码的一致性。
【问题2】(8分)
王工经过分析,设计出了一个基于MDA的软件开发流程,如图2-1所示。请填写图2-1中(1)~(4)处的空白,完成开发流程。
图2-1 基于MDA的软件开发流程
参考答案
(1)平台无关模型(PIM)
(2)UML建模
(3)模型变换(映射)
(4)模型生成源码
【问题3】(10分)
王工经过需求分析,首先建立了该手机通信录管理软件的状态机模型,如图2-2所示。请对题干需求进行仔细分析,填写图2-2中(1)~(5)处的空白。
图2-2 手机通信录管理软件的状态机模型
参考答案
(1)点击“后退”按钮
(2)联系人详细信息界面
(3)点击“发送给”按键或点击“后退”按钮
(4)点击“拨打电话”按键
(5)拨打电话界面
试题三(25分)
阅读以下关于安全攸关嵌入式系统相关技术的描述,在答题纸上回答问题1至问题3。
说明
某公司机电管理系列产品被广泛应用于飞行器后,现场事故频繁发生,轻则飞机座舱显示机电设备工作异常,重则系统预警,切入备份运行。这些事故给航空公司带来了重大经济损失。
公司领导非常重视航空公司的问题反馈,责令公司王总带队到现场进行故障排查。经过一个多月的排查,故障现象始终未复现,同时,公司实验室内也在反复出现故障,结果未取得显著成效,但发现产品存在偶然丢失协议包的现象。随后,公司领导组织行业专家召开故障分析会。王总在会上对前期故障排查情况进行了说明,指出从外场现象看CCDL协议包丢失是引起系统报警、切换的主要原因。图3-1给出了机电管理产品的工作原理,机电管理系统主要承担了对飞行器的刹车、燃油和环控等子系统进行监视与控制,它对飞行器而言是安全攸关系统,因此,从系统结构上采用了双余度计算机系统。具体工作流程简要说明如下:
1.机电管理系统由1号计算机和2号计算机组成,双机互为余度备份;
2.双机中分别驻留了一个100ms周期的CCDL任务,完成双机间的交叉对比和实时监控等工作。10ms定时器作为任务的工作频率;
3.交叉对比协议包包含一组“AA55”报头、消息长度、数据和校验码;
4.2号机将协议包通过422总线发送给1号机(422总线接口芯片有8级缓冲);
5.1号机通过中断方式将422总线数据接收到大环形缓冲区中(大小为4096 B);
6.100ms的CCDL定时任务将大环形缓冲区的数据以512B为单位拷贝到小环形缓冲区中(大小为512 B);
7.CCDL任务按照协议包格式解析小环形缓冲的数据,如果校验错误,丢弃当前协议包;
8.在协议包格式正确的情况下,进行数据交叉比对,比对正确则输出;比对不正确,并连续不正确超过门限,则报警。
图3-1 机电管理系统工作管理图
【问题1】(12分)
王总汇报时指出,在设计安全攸关系统软件时,往往不重视安全攸关软件设计方法,不遵守C语言安全编码规范,导致程序质量较差,代码中存在安全隐患。请简要说明表3-1给出的C语言代码是C语言安全编码标准中(如MISARC标准)不允许采用的代码结构的原因。
表3-1 C语言代码实例
(续表)
参考答案
(1)不允许。违背(建议)规则6.3:“必须用typedef显示标识出各数据类型的长度和符号特性,避免直接使用标准的数据类型。如typedef unsigned int unit32_t”。
(2)不允许。违背(建议)规则6.3、(强制)规则15.3“switch语句的最后一个句子应当是default子句”和强制规则15.5“switch语句至少应有一个case子句”。
(3)不允许。违背(建议)规则6.3。
(4)不允许。违背(建议)规则6.3和(强制)规则8.1:“函数应当有原型说明,且原型在函数的定义和调用范围内都是可见的。”
(5)不允许。违背(建议)规则6.3和(强制)规则12.2 :“表达式的值在标准所允许的任何次序下应该都是相同的。”
(6)不允许。违背(建议)规则6.3和(强制)规则10.3“(unsigned int *)s”是危险的类型转换。
【问题2】(10分)
请根据自己对图3-1所示机电管理系统工作原理图的分析,用300字以内的文字说明本实例中可能存在哪三方面数据传输时丢失协议包现象,并简要说明原因。
参考答案
(1)422总线传输速率可达10Mbit/s,4096B缓冲区是环形缓冲区,若数据不断从2号机发送过来,可能导致未及时处理的数据被覆盖,造成丢包。
(2)CCDL任务解析小环形缓冲的数据,若校验错误可能会导致丢包。
(3)CCDL任务做协议包文交叉比对时,发现数据不一致,可能会导致丢包。
【问题3】(3分)
针对以上分析出的三种丢包原因,请举例给出两种以上的修改丢包bug的可能的方法。
参考答案
方案一:扩展4096B环形缓冲区容量,以减少缓冲区溢出现象。
方案二:将422总线升级为485总线,以提高传输可靠性。
试题四(25分)
阅读以下关于数据管理的叙述,在答题纸上回答问题1至问题3。
说明
某软件企业开发了一套新闻社交类软件,提供常见的新闻发布、用户关注、用户推荐、新闻点评、新闻推荐、热点新闻等功能,项目采用MySQL数据库来存储业务数据。系统上线后,随着用户数量的增加,数据库服务器的压力不断加大。
为此,该企业设立了专门的工作组来解决此问题。张工提出对MySQL数据库进行扩展,采用读写分离,主从复制的策略,好处是程序改动比较小,可以较快完成,后续也可以扩展到MySQL集群,其方案如图4-1所示。李工认为,该系统的诸多功能并不需要采用关系数据库,甚至关系数据库限制了功能的实现,应该采用NoSQL数据库来替代MySQL,重新构造系统的数据层。而刘工认为张工的方案过于保守,对该系统的某些功能,如关注列表、推荐列表、热搜榜单等实现困难,且性能提升不大;而李工的方案又太激进,工作量太大,短期无法完成,应尽量综合二者的优点,采用Key-Value数据库+MySQL数据库的混合方案。
图4-1 张工方案示意图
经过组内多次讨论,该企业最终决定采用刘工提出的方案。
【问题1】(8分)
张工方案中采用了读写分离,主从复制策略。其中,读写分离设置物理上不同的主/从服务器,让主服务器负责数据的(a)操作,从服务器负责数据的(b)操作,从而有效减少数据并发操作的(c),但却带来了(d)。因此,需要采用主从复制策略保持数据的(e)。
MySQL数据库中,主/从复制是通过binarylog来实现主/从服务器的数据同步,MySQL数据库支持的三种复制类型分别是(f)、(g)、(h)。
请将答案填入(a)~(h)处的空白,完成上述描述。
参考答案
(a)写
(b)读
(c)延迟
(d)数据不一致
(e)一致性(或同步)
(f)基于SQL语句的复制
(g)基于行的复制
(h)混合模式复制
注:(f)(g)(h)不分次序。
【问题2】(8分)
李工方案中给出了关系数据库与NoSQL数据库的比较,如表4-1所示,以此来说明该新闻社交类软件更适合采用NoSQL数据库。请完成表4-1中(a)~(d)处的空白。
表4-1 关系数据库与NoSQL数据库特征比较
参考答案
(a)弱一致性
(b)非结构化
(c)弱事务性
(d)海量数据
【问题3】(9分)
刘工提出的方案采用了Key-Value数据库+MySQL数据库的混合方案,是根据数据的读写特点将数据分别部署到不同的数据库中。但是由于部分数据可能同时存在于两个数据库中,因此存在数据同步问题。请用200字以内的文字简要说明解决该数据同步问题的三种方法。
参考答案
(1)通过定时任务做数据定期同步;
(2)通过触发器实现数据同步;
(3)通过数据库插件实现数据同步。
试题五(25分)
阅读以下关于Web应用系统的叙述,在答题纸上回答问题1至问题3。
说明
某公司因业务需要,拟在短时间内同时完成“小型图书与音像制品借阅系统”和“大学图书馆管理系统”两项基于B/S的Web应用系统研发工作。
小型图书与音像制品借阅系统向某所学校的所有学生提供图书与音像制品借阅服务。所有学生无须任何费用即可自动成为会员,每人每次最多可借阅5本图书和3个音像制品。图书需在1个月之内归还,音像制品需在1周之内归还。如未能如期归还,则取消其借阅其他图书和音像制品的权限,但无须罚款。学生可通过网络查询图书和音像制品的状态,但不支持预订。
大学图书馆管理系统向某所大学的师生提供图书借阅服务。有多个图书存储地点,即多个分馆。捜索功能应能查询所有分馆的信息,但所有的分馆都处于同一个校园内,不支持馆际借阅。本科生和研究生一次可借阅16本书,每本书需在1个月内归还。教师一次可借阅任意数量的书,每本书需在2个月内归还,且支持教师预订图书。如预订图书处于被借出状态,系统自动向借阅者发送邮件提醒。借阅期限到达前3天,向借阅者发送邮件提醒。超出借阅期限1周,借阅者需缴纳罚款2元/天。存在过期未还或罚款待缴纳的借阅者无法再借阅其他图书。图书馆仅向教师和研究生提供杂志借阅服务。
基于上述需求,该公司召开项目研发讨论会。会议上,李工建议开发借阅系统产品线,基于产品线完成这两个Web应用系统的研发工作。张工同意李工的观点,并提出采用MVP(Model View Presenter)代替MVC的设计模式研发该产品线。
【问题1】(6分)
软件产品线是提升软件复用的重要手段,请用300字以内的文字分别简要描述什么是软件复用和软件产品线。
参考答案
软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。
软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。软件产品线是一个十分适合专业开发组织的软件开发方法,能有效地提高软件生产率和质量,缩短开发时间,降低总开发成本。
【问题2】(16分)
产品约束是软件产品线核心资产开发的重要输入,请从以下已给出的(a)~(k)各项内容中,分别选出产品的相似点和不同点填入表5-1中(1)~(8)处的空白,完成该软件产品线的产品约束分析。
(a)项目当前状态;(b)项目操作;(c)预订策略;(d)会员分类;(e)借阅项目数量;(f)项目的类型和属性;(g)检索功能;(h)与支付相关的用户信息;(i)图书编号;(j)教师;(k)学生
表5-1 产品约束分析
参考答案
(1)f、i、g
(2)a
(3)b
(4)f、i、g
(5)d、j、k、h
(6)e
(7)c
(8)d、j、k、h
【问题3】(3分)
MVP模式是由MVC模式派生出的一种设计模式。请说明张工建议借阅系统产品线采用MVP模式代替MVC模式的原因。
参考答案
MVP将M与V彻底分离,所有交互均通过P来传达,有利于软件构件及架构的复用,有利于修改,可扩展性良好。