唐磊的个人博客

2010年11月软考系统架构设计师考试下午试题

试题一(共25分)

阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题3。

【说明】

某公司欲针对Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分 析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。

在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估 会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。

[问题1](7分)

在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。

[问题2](12分)

请完成表1-1中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。

[问题3](6分)

图1-1是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)一(4)。

试题二(共25分)

阅读以下关于软件系统数据架构建模的说明,在答题纸上回答问题1至问题3。

[说明]

RMO是一家运动服装制造销售公司,计划在五年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统CRSS。RMO公司决定由其技术部成立专门的项目组负责 CRSS的开发和维护工作。

项目组在仔细调研和分析系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读写分离结构实现,具有较好的运行性 能和可扩展性。

项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。

[问题1](8分)

请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。

[问题2](13分)

在刘工建议的基础上,为了避免CRSS系统的单点故障,请用200字以内文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。

[问题3](4分)

RMO公司销售区域将在未来五年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。

试题三(共25分)

阅读以下关于汽车电子基础软件架构的说明,在答题纸上回答问题1至问题3。

【说明】

某软件公司承担了某项国家重点项目的研制工作,任务重点是参考国外汽车电子发展趋势,开发某汽车公司的企业汽车电子基础软件的架构,逐步实现汽车企业未来技术发展规划。

该软件公司接收此项任务后,调动全体技术人员深入收集国外相关技术资料,经过多方调研和分析,公司提出遵照国际组织最新推出的AUTOSAR规范,按统筹 规划、分步骤实施的原则,实现汽车公司的基础软件架构设计。图3-1给出了AUTOSAR规范所定义的工作包,图中灰色部分代表本项目工作所包含的内容, 即软件架构和基础软件。

[问题1](7分)

AUTOSAR 规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。为了定义汽车电子的软件开发过程,公司李工和王工分别提出了两种软件开发流程,其开发流程见图3-2和3-3(图中ECU是指汽车电子中的电子控制单元)。请说明李工和王工谁定义的流程更符合AUTOSAR的规定,并说明理由。

[问题2](10分)

图3-1中的II-1.1.1项中定义了软件架构和操作系统的要求,图3-4是满足AUTOSAR定义的操作系统各功能模块的层次结构,请说明(1)~(5)箭头所标的具体操作含义。

[问题3](8分)

AUTOSAR是一种开放式架构,用150字以内的文字,说明采用AUTOSAR架构的主要优点,并说明汽车电子ECU覆盖汽车的哪三个领域。

试题四(共25分)

阅读以下关于系统设计与开发工具集成的说明,在答题纸上回答问题1至问题3。

【说明】

TeleDev是一个大型的电信软件开发公司,公司内部采用多种商业/开源的工具进行软件系统设计与开发工作。为了提高系统开发效率,公司管理层决定开发 一个分布式的系统设计与开发工具集成框架,将现有的系统设计与开发工具有效集成在一起。集成框架开发小组经过广泛调研,得到了如下核心需求:

 (1)目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能;

 (2)目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换;

 (3)集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系;

 (4)集成框架应能集成一些常用的第三方实用工具,如即时通信,邮件系统等。

集成框架开发小组经过分析与讨论,最终决定采用企业服务总线(ESB)作为集成框架的基础架构。

[问题1](8分)

ESB是目前企业级应用集成常用的基础架构。请列举出ESB的4个主要功能,并从集成系统的部署方式、待集成系统之间的祸合程度、集成系统的可扩展性3个方面说明为何采用ESB作为集成框架的基础架构。

[问题2](12分)

在ESB基础架构的基础上,请根据题干描述中的4个需求,说明每个需求应该采用何种具体的集成方式或架构风格最为合适。

[问题3](5分)

请指出在实现工具之间数据格式的灵活转换时,通常采用的设计模式是什么,并对实现过程进行简要描述。试题五(共25分)

阅读以下信息系统可靠性问题的说明,在答题纸上回答问题1至问题3。

【说明】

某软件公司开发一项基于数据流的软件,其系统的主要功能是对输入数据进行多次分析、处理和加工,生成需要的输出数据。需求方对该系统的软件可靠性要求很 高,要求系统能够长时间无故障运行。该公司将该系统设计交给王工负责。王工给出该系统的模块示意图如图5-1所示。王工解释:只要各个模块的可靠度足够 高,失效率足够低,则整个软件系统的可靠性是有保证的。



李工对王工的方案提出了异议。李工认为王工的说法有两个问题:第一,即使每个模块的可靠度足够高,但是整个软件系统模块之间全部采用串联,则整个软件系统 的可靠度明显下降。假设各个模块的可靠度均为0.99则整个软件系统的可靠度为0.994≈0.96:第二,软件系统模块全部采用串联结构时,一旦某个模 块失效,则意味着整个软件系统失效。

李工认为,应该在软件系统中采用冗余技术中的动态冗余或者软件容错的N版本程序设计技术,对容易失效或者非常重要的模块进行冗余设计,将模块之间的串联结 构部分变为并联结构,来提高整个软件系统的可靠性。同时,李工给出了采用动态冗余技术后的软件系统模块示意图,如图5-2所示。



刘工建议,李工方案中M1和M4模块没有采用容错设计,但MI和M4发生故障有可能导致严重后果。因此,可以在M1和M4模块设计上采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。

注:假设各个模块的可靠度均为0.99。

[问题1](4分)

在系统可靠性中,可靠度和失效率是两个非常关键的指标,请分别解释其含义。

[问题2](13分)

请解释李工提出的动态冗余和N版本程序设计技术,给出图5-1中模块M2采用图5-2动态冗余技术后的可靠度。

请给出采用李工设计方案后整个系统可靠度的计算方法,并计算结果。

[问题3](8分)

请给出检错技术的优缺点,并说明检测技术常见的实现方式和处理方式
tanglei wechat
欢迎扫描二维码关注我的微信公众号