某公司新近签订了一份控制系统软件的研制合同。合同技术要求如下:(1)本控制系统的软件运行平台拟采用嵌入式实时操作系统,控制系统的工作周期为10ms,要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出。(2)为了提高整个系统的可靠性,控制系统采用容错处理,即用两个相对独立的计算机承担相同的工作,通过交叉对比,实现控制的双余度管理;当任何一台计算机出现故障时,系统可以进行单余度控制。系统结构如图 8-2所示。
公司总工程师将本项任务交付给项目主管李工程师实施,要求李工按双方合同要求完成本项目的策划、需求分析和方案设计工作,重点强调系统的可靠性要求,并特别提示:目前比较流行的嵌入式操作系统普遍采用可抢占式优先级调度策略,不能满足用户关于“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”的要求。 【问题1】李工接到任务后,认为本项目比较简单,很快就安排3名技术人员分别负责数据采集/输出模块、数据处理模块和比较监控模块的编写。总工程师听到汇报后,认为李工的方案和安排不妥,理由是李工忽视了系统的可靠性要求,对系统需求的理解不够深入为实现系统关于可靠性方面的需求: (1)你认为在组织结构、人员分工、设计开发等方面应做出哪些安排和规定? (2)请写出关于余度表决算法的考虑。 【问题2】请用200字以内的文字说明李工应如何设计优先级调度策略,并按照表8-3的要求实现任务流程处理。 【问题3】图8-3为控制软件的数据流程关系,请根据本题给出的各个功能模块,填补其中的空缺处。
正确答案及解析
正确答案
解析
一、试题分析在可靠性要求极高的控制系统中(如航空、航天和核电厂等领域),控制设备的可靠性问题始终是嵌入式领域待解决的问题。一旦发生控制错误,将会引起机毁人亡的惨剧,设置带来区域性的灾难,因此,余度技术是计算机技术中最为关键的技术。在传统的余度控制计算机系统中,为了保证系统的实时性和控制的完整性,一般不采用嵌入式操作系统,而是用软件直接控制硬件的方式实施,但随着计算机技术发展,软件开发手段的不断完善,目前广泛应用了嵌入式实时操作系统作为余度软件的基本支持平台。但是,为了确保实时性要求,达到余度管理同步操作的精确性,必然对操作系统加以限制。本题重点是考核考生如何应用余度技术完成高可靠性控制系统的策划与设计的能力。1. 总结问题的要点本题主要是围绕具有高可靠性控制系统这一应用背景来考虑的,考察相关领域考生对具有余度需求的项目进行组织、策划和设计的方法。作为系统分析师,在启动项目之前,应学会充分论证用户需求对实施过程的组织能力。本题的主要要点应该包括以下几方面内容:n 项目的组织要合理,解决由于人员素质的差异而带来的软件缺陷。n 采用的编程语言要有一定冗余能力,以预防语言的二义性带来的软件缺陷。n 设计方法要合理,针对两余度硬件平台的特点,重点考虑两余度的设计策略,n 实现余度间交叉对比和失步后的处理方法。因此,本题的选用具有一定的普遍性。【问题1】本问题主要是要求考生通过对题目的理解,根据题目给出的技术参数和硬件结构,设计出配套的人员组织和典型余度实现的具体方法,包括软件项目组织、语言的选择和具体的表决方法。考生应抓住命题中内容要点,通过项目分解,给出余度设计的几种方法。本题主要考察考生分析问题的能力。开发人员的相互独立性、不同种高级语言的使用以及表决算法的设计是高可靠性控制系统必须考虑的三大因素。【问题2】本问题是在通用操作系统的基础上,为了达到本题所要求的“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”这一技术特点,在问题一总体思路的基础上,给出在操作系统之上实现精确的交叉对比与系统同步的方法。要求考生对操作系统的任务调度方法有一定的了解,这样才能准确回答此问题。本题主要考验考生在嵌入式实时操作系统之上开发任务确定性调度的设计方法,需要根据题中表内所示的10ms内的任务分派情况,设计出系统软件定时器的节拍数和对操作系统中任务管理的限制等问题,重点衡量对嵌入式系统知识面的掌握程度。【问题3】本题包含两个问题,其一是根据本题给出的两余度数据处理流程的关系,以填空方式,给出流程中默认的处理功能及数据流关系。本题主要考验考试对余度管理的具体处理步骤的熟悉程度;其二是说明在系统发生失步的情况下,如何继承性地处理余度数据。2. 根据问题要点,仔细阅读正文,找出相应的段落本题第二段描述了问题的所在,从图8-2中可以看出,本题的余度方案是两余度系统,输入是一个数据源进入计算机系统,在系统内一分为二,分别输入到不同的计算机中;而输出仅有一路,这说明,两个计算机分别处理完后,通过交叉对比,选择最为接近的数据作为输出数据。理解了这一点,对余度系统的设计具有一定的帮助。本题的第一段值得关注,尤其是文中提到的“要求控制软件能够精确地按事先预定的时间顺序完成数据采集、处理和输出”,是本题关键所在,也是回答【问题2】的基础。本题的第三段主要通过“10ms工作周期内的时间分配表”间接地描述余度管理的重要功能流程,考生可根据本题上述描述的内容,确定性描绘出本题的控制流程。而失步问题值得关注,本题中没有明确提出,但是,作为余度系统,失步是重要的处理环节,考生必须知道。3. 分析试题的内容,构思答案要点通过前两步的分析与归纳,余度问题将是本题首要关注内容之一,也是提高系统可靠性极为重要的考虑内容。通过组织管理、在消化了余度管理核心思想的基础上,主要对任务调度管理、同步设计等关键技术进行解决,就可以设计出较为完善的余度系统。因此,【问题1】和【问题2】是通过对本题的理解而形成答案;【问题3】是基于考生对余度系统理解,完成本命题的流程设计。二、参考答案【问题1】(1)成立两个独立的软件开发小组。两个小组合作编写统一的系统需求稳当和软件功能说明书。两个小组分别进行软件开发,最好使用不同的编程设计语言(如C语言、C++语言和ADA语言)。(2)余度表决算法一般采用主从式。以下假设设计计算机1为主机,计算机2为从机。对输入数据进行交叉对比,如果一致,则用计算机1的数据为数据处理;如果不一致,有历史数据时,计算机1用历史数据为数据处理;无历史数据时,若计算机1和计算机2 的数据中有一个在门限值之内,则使用该数据作为数据处理,若无门限值之内的数据,则计算机1使用默认数据进行处理。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。对输出数据进行交叉对比,如果一致,用计算机1的数据为输出数据;如果不一致,且计算机1和计算机2均无历史数据,则计算机1用默认数据作为输出数据。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。【问题2】设计时,将本项目的所有任务设定为统一的优先级,避免优先级抢占;根据10ms工作周期内的时间节点划分,设定操作系统的时钟节拍为0.5ms,设计出一个软件定时器;根据软件定时器的计时情况,在事先安排好的时间节点上,分别启动相应的任务工作;如果在规定的时间上任务工作未完成,则按超时处理。原则上使用上一周期的数据。【问题3】(1)数据采集 (2)交叉对比 (3)同步 (4)同步 (5)交叉对比 (6)输出【问题4】计算机1和计算机2进行同步操作时,相互间未能同步上,则称为失步。在一个工作周期开始时,两个计算机在时间上必须同步,一旦发生失步,为了确保系统的稳定,本周期内的工作将采用上一周期的数据进行;如果输出失步,则输出交叉对比功能无效,使用上一周期的输出数据作为本周期的输出。
包含此试题的试卷
你可能感兴趣的试题
阅读以下关于Web系统架构设计的教述,在答题纸上回答问题1至问题3。
【说明】
某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:1)用户可使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;2)支持家居设备数据的实时存储和查询;3)基于用户数据,挖掘用户生活习惯,向用户提供家居设备智能化使用建议。
基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系统的设计思路。经过深入讨论,公司决定采用李工的设计思路。
【问题1】 (8分)
请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。
【问题2】 (12分)
请从下面给出的(a) ~ (j) 中进行选择,补充完善图5-1中空(1) ~ (6)处的内容,协助李工完成该系统的架构设计方案。
(a) Wi-FI
(b) 蓝牙
?驱动程序
(d)数据库
(e)家庭网关
(f)云平台
(g)微服务
(h)用户终端
(i)鸿蒙
(j)TCP/IP
【问题3】 (5分)
该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议
- 查看答案
某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:
(a)注册登录
(b)信息浏览
(c)账号管理
(d)预约挂号
(e)查询与取消预约
(F)号源管理
(g)报告查询
(h)预约管理
(i)报表管理
(j)信用管理
【问题1】 (6 分)
若采用面向对象方法对预约挂号管理系统进行分析,得到如图2-1所示的用例图。请将合适的参与者名称填入图2-1中的(1)和(2)处,使用题干给出的功能描述(a)(j),完善用例(3)(12)的名称,将正确答案填在答题纸上。
【问题2】 (10分)
预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预约界面,并显示给预约人员;预约人员选择医生及就诊时间后确认预约,系统反馈预约结果,并向用户显示是否预约成功。
采用面向对象方法对预约挂号过程进行分析,得到如图2-2所示的顺序图,使用题干中给出的描述,完善图2-2中对象(1),及消息(2)~(4)的名称,将正确答案填在普题纸上请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别?
【问题3】 (9分)
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?
- 查看答案
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。
经过规范化设计之后,该系统的部分数据库表结构如下所示。
供应商(供应商ID,供应商名称,联系方式,供应商地址);
药品(药品ID,药品名称,药品型号,药品价格,供应商ID);
药品库存(药品ID,当前库存数量);
订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。
【问题1】 (9分)
在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。
为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:
药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量) ;
请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法
【问题2】 (9分)
王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。
【问题3】 (7分)
该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis和MySQL的数据实时同步问题。
(1) Redis的数据类型包括String、 Hash、 List、 Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。
(2)请用200字以内的文字解释说明解决Redis和MySQL数据实时同步问题的常见方案
- 查看答案
某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;
(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;
(c)平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;
(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;
(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;
(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;
(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;
(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;
(i)平台部署后,针对界面风格的修改需要在3人天内完成;
(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;
(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;
(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。
在对平台需求、质量属性描述和架构特性进行分析的基础上,公司的架构师给出了三种候选的架构设计方案,公司目前正在组织相关专家对平台架构进行评估。
【问题1】 (9分)
在架构评估过程中,,质量属性效用树(utility tree)是对系统质属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称域入图1-1中(1)、(2)空白处,并从题干中的(a)-(i)中选择合适的质量属性描述,填入(3)-(6)空白处,完成该平台的效用树。
【问题2】 (16分)
针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道过滤器(ppe-and-hlter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格
- 查看答案
某项目进入详细设计阶段后,项目经理为后续活动制定了如图2所示的网络计划图,图中的“△”标志代表开发过程的一个里程碑,此处需进行阶段评审,模块1和模块2都要通过评审后才能开始修复。
项目经理对网络图中的各活动进行了成本估算,估计每人每天耗费的成本为1000元,安排了各活动的人员数量并统计了模块1、模块2的开发和测试活动的工作量(如表2所示),其中阶段评审活动不计入项目组的时间和人力成本预算,如表2所示。
[问题1] (3分)
请计算该项目自模块开发起至模块测试全部结束的计划工期。
[问题2] (10分)
详细设计完成后,项目组用了11天才进入阶段评审。在阶段评审中发现:模块1开发已完成,测试尚未开始;模块2的开发和测试均已完成,修复工作尚未开始,模块2的实际工作量比计划多用了3人?天。
(1)请计算自详细设计完成至阶段评审期间模块1的PV、EV、AC,并评价其进度和成本绩效。
(2)请计算自详细设计完成至阶段评审期间模块2的PV、EV、AC,并评价其进度和成本绩效。
[问题3] (8分)
(1)如果阶段评审未作出任何调整措施,项目仍按当前状况进展,请预测从阶段评审结束到软件集成开始这一期间模块l、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
(2)如果阶段评审后采取了有效的措施,项目仍按计划进展,请预测从阶段评审结束到软件集成开始这一期间模块1、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
[问题4] (4分)
请结合软件开发和测试的一般过程,指出项目经理制定的网络计划和人力成本预算中存在的问题。
- 查看答案