● 某公司在对一家用车库门嵌入式软件系统进行架构设计时,识别出两个关键的质量属性场景,其中“当
(56)
A. 可用性
B. 性能
C. 可修改性
D. 可测试性
(57)
A. 可用性
B. 性能
C. 可修改性
D. 可测试性
(56)
A. 可用性
B. 性能
C. 可修改性
D. 可测试性
(57)
A. 可用性
B. 性能
C. 可修改性
D. 可测试性
A.可用性
B.性能
C.可修改性
D.可测试性@@@SXB@@@A.可用性
B.性能
C.可修改性
D.可测试性
阅读以下关于嵌入式软件体系架构的叙述。
3. 某公司承担了一项宇航嵌入式设备的研制任务。本项目除对硬件设备环境有很高的要求外,还要求支持以下功能:
(1) 设备由多个处理机模块组成,需要时外场可快速更换(即LRM结构);
(2) 应用软件应与硬件无关,便于软硬件的升级;
(3) 由于宇航嵌入式设备中要支持不同功能,系统应支持完成不同功能任务间的数据隔离;
(4) 宇航设备可靠性要求高,系统要有故障处理能力。
公司在接到此项任务后,进行了反复论证,提出三层栈(TLS)软件总体架构,如下图所示,并将软件设计工作交给了李工,要求他在三周内完成软件总体设计工作,给出总体设计方案。
[问题1]
用150字以内的文字,说明公司制定的TLS软件架构的层次特点,并针对上述功能需求(1)~(4),说明架构中各层内涵。
[问题2]
在TLS软件架构的基础上,关于选择哪种类型的嵌入式操作系统问题,李工与总工程师发生了严重分歧。李工认为,宇航系统是实时系统,操作系统的处理时间越快越好,隔离意味着以时间作代价,没有必要,建议选择类似于VxWorks5.5的操作系统;总工程师认为,应用软件间隔离是宇航系统安全性要求,宇航系统在选择操作系统时必须考虑这一点,建议选择类似于Linux的操作系统。
请说明两种操作系统的主要差异,完成下表中的空白部分,并针对本任务要求,用200字以内的文字说明你选择操作系统的类型和理由。
两种操作系统的主要差异
[问题3]
故障处理是宇航系统软件设计中极为重要的组成部分。故障处理主要包括故障监视、故障定位、故障隔离和系统容错(重组)。用150字以内的文字说明嵌入式系统中故障主要分哪几类?并分别给出两种常用的故障滤波算法和容错算法。
阅读以下关于某嵌入式实时系统的软件需求的叙述,回答问题1、问题2和问题3。
某公司承担了一项嵌入式实时控制系统的软件开发任务,其内容是按系统要求的固定的时间序列采集、处理、输出数据,以实现对多个设备的综合控制。
系统由硬件和软件组成,硬件由处理机(采用PowerPC603e,主频133MHz)、存储器、定时器、中断控制器、双口存储器(空间大小1 024KB)、4路422半双工串行接口 (其中两路的频率115 200Hz,另两路频率38400Hz)、两路A/D、D/A数模转换器和10路离散量接口组成。系统的软件需求如下(注:B:字节;s:秒;ms:毫秒):
.系统要求以5ms为周期从双口存储器中采集1 024KB的输入数据,处理任务的时间约为1ms;(称为5ms任务)
.要求以20ms为周期从两路422接口(115 200Hz)中采集一定格式的大小系统为64B的数据,在完成处理(处理时间约为4ms)任务后,分别输出大小为16B的控制命令;(称为20ms任务)
.系统要求以60ms为周期从两路422接口(38400Hz)中采集一定数据格式的大小为6B数据,从两路A/D接口采集28位数据,在完成处理(处理时间约为2ms)任务后,分别输出大小为2B的控制命令和一个28位D/A数据,输出8路离散量控制数据;(称为60ms任务)
.作为系统的安全监控保障,系统要求在每1s内对系统软硬件状态进行测试并完成系统工作的状态记录工作。该任务共需处理时间是5ms。(称为1s任务)
本公司课题组根据用户的硬件环境及对软件的需求,就软件的实施方案展开了激烈的讨论,讨论的首要问题就是本系统中软件的运行平台是采用嵌入式实时操作系统还是在裸机上直接开发,李工程师(简称李工)提出为了保证系统的实时性,应该采用在裸机上直接开发的方式,关键部分采用汇编语言编写,而王工程师(简称王工)提出,由于系统将由多种周期的处理任务组成,为了保证系统的可靠性,应该采用商用嵌入式实时操作系统作为本项目的开发基础,经过充分论证,最后李工接受了王工的建议,并申报课题组组长,课题组长同意采用了操作系统的方案,并指出必须尽快对需求的时间性能做出评估。
请用450字以内文字简要说明王工提出的采用嵌入式实时操作系统的理由或优点,并说明选择操作系统产品时需要重点考虑其哪些功能与性能?
阅读有关嵌入式系统新架构风格方面的描述,在答题纸上回答问题1至问题3。
在传统的嵌入式系统中,由于应用背景的不同,架构风格存在着差异。某公司长期从事各类嵌入式电子产品的研发工作,为了扩展业务.拟承担安全关键嵌入式产品的研制,为了统一本公司嵌入式产品的架构,以兼顾安全关键系统和非安全关键系统,公司领导层提出了采用国外近年新的跨领域嵌入式系统架构,新架构主要有6个特点:
(1)面向构件化
(2)开放式
(3)支持多种安全级别
(4)服务的层次化
(5)确定性核心
(6)内部组合的标准化
图3-1给出了跨领域嵌入式系统架构,图中CS表示领域无关的核心服务、OS表示领域无关的选择性服务、DSC表示领域相关的中心服务、DSO表示领域相关的选择性服务。该架构通常称为“腰”型架构,将嵌入式系统分为核心服务层、域服务层和应用服务层三个层次,实现了应用间相对无关性设计,架构的腰部为与领域无关的核心服务。
【问题l】(8分)
请用200字以内文字说明图3-1“腰”型架构的特点。
【问题2】 (10分)
针对图3-1的“腰”部的核心层,表3-1中给出了10种服务,请判断这些服务中哪些属于核心服务(Core Services),哪些属于选择性服务(Optional Service),将结果填到表3-1中。
【问题3】(7分)
该公司遵从图3-1定义的嵌入式架构风格,梳理了现有产品序列,定义了公司产品中涉及的软件主要包括以下4类:
(1)基于分区化的嵌入式操作系统(如:VxWorks653)
(2)存储管理部件(如:文件系统)
(3)支持产品互联的多种网络协议部件(如:TCP/IP、ppp、CAN、1394等)
(4)应用软件
请根据你所掌握的上述软件的相关知识,说明这些软件应归属图3-1中核心服务层、
域服务层和应用服务层中的哪一层。并举例说明上述软件提供的服务中哪些归属于架构的OS、CS、DSC和DSO服务,填写表3-2。
试题一(共25分)
阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题 3。
【说明】
某公司欲针对 Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、 功能变更、 数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
【问题 1】(7分)
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用 200 字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
【问题 2】(12分)
请完成表1-1 中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。
【问题 3】(6分)
图1-1 是李工给出的架构设计示意图, 请将恰当的功能描述填入图中的(1)~(4)。
阅读以下关于工业控制系统软件方面的叙述,在回答问题1至问题4。
某公司新近签订了一份控制系统软件的研制合同。合同技术要求如下:
(1)本控制系统的软件运行平台拟采用嵌入式实时操作系统,控制系统的工作周期为10ms,要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出。
(2)为了提高整个系统的可靠性,控制系统采用容错处理,即用两个相对独立的计算机承担相同的工作,通过交叉对比,实现控制的双余度管理;当任何一台计算机出现故障时,系统可以进行单余度控制。系统结构如图4-1所示。
(3)在10ms工作周期内的时间分配如表4-1所示。
公司总工程师将本项任务交付给项目主管李工程师实施,要求李工按双方合同要求完成本项目的策划、需求分析和方案设计工作,重点强调系统的可靠性要求,并特别提示:目前比较流行的嵌入式操作系统普遍采用可抢占式优先级调度策略,不能满足用户关于“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”的要求。
李工接到任务后,认为本项目比较简单,很快就安排3名技术人员分别负责数据采集/输出模块、数据处理模块和比较监控模块的编写。总工程师听到汇报后,认为李工的方案和安排不妥,理由是李工忽视了系统的可靠性要求,对系统需求的理解不够深入。为实现系统关于可靠性方面的需求:
(1)你认为在组织结构、人员分工、设计开发等方面应做出哪些安排和规定?
(2)请写出关于余度表决算法的考虑。
试题三 (共15 分 )
下面是关于嵌入式软件测试方面的叙述,回答问题1 至问题 3,将解答填入答题纸的对应栏内。
【说明 】
某公司是一个有资质的专业嵌入式软件测评中心,承担了一项嵌入式软件的测试任务。按用户要求,需要对被测软件进行单元测试、部件(集成)测试和系统测试。
【 问题1】6 分)
软件测试中的单元测试、部件(集成)测试和系统测试都有各自的测试目标。以下描述中属于单元测试的是 (1) ,属于部件(集成)测试的是 (2) ,属于系统测试的是 (3) ,请把以下 8 个选项的序号分别填入上述空白处,且不能重复。将答案填写在答题纸对应的栏目中。
① 测试对象为单个模块或者函数
② 测试对象包括整个软件系统,以及软件所依赖的硬件,外设等
③ 测试对象为多个模块或多个单元
④ 整个测试必须在系统实际运行环境中进行
⑤ 主要测试模块内部逻辑结构的正确性
⑥ 测试各个模块间的调用接口
⑦ 包括测试部分全局数据结构及变量
⑧ 主要测试局部数据结构及变量
【 问题2】 (5 分 )
被测软件研制方提出,为节约成本,由软件开发人员对所开发的软件进行测试,测评中心仅仅进行测试结果确认,并按测评中心规定编写各种测试文档并出具证明。此提议遭到测评中心的反对。软件研制方认为:
(1)自己编写的程序,结构熟悉,需求清楚,易发现问题;
(2)自己测试后,又经过第三方的确认,是可行的;
(3)知识产权可受保护。
测评中心反驳:
(1)程序不能由编写者自己测试,就像不能既当运动员又当裁判员一样;
(2)自己测试,有弄虚作假的嫌疑;
(3)软件测试不能丧失独立性,仅由测评中心确认,损害测评中心声誉,不行。 针对上述情况,应该由 (1) 进行测试。软件研制方的3条理由正确的有 (2) 条,错误的有 (3) 条;测评中心所说的正确的有 (4) 条,错误的有 (5) 条。
【问题3】(4分)
判断以下关于软件测试叙述的正确性,回答“错”或“对” , 并将其填入答题纸的
对应栏内。
(1)判定/条件覆盖使每个分支至少被执行一次,且判定中的每个条件都获得所有
可能的逻辑值。
(2)在没需求文档的条件下能够进行黑盒测试。
(3)在进行压力测试的同时可以进行单元测试。
(4)软件测试中设计的测试实例(test case)主要由输入数据和预期输出结果两部分组成。