201711架构下午真题

第 1 题

阅读以下关于软件架构评估的叙述,在答题纸上回答问题1和问题2.
【说明】
某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如 下:
(a) 系统用户分为高级管理员、数据管理员和数据维护员等三类;
(b) 系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c) 正常负载情况下,系统必须在 0.5 秒内对用户的查询请求进行响应;
(d) 对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;
(e) 系统的用户名不能为中文,要求必须以字母开头,长度不少于5个字符;
(f) 更改系统加密的级别将对安全性和性能产生影响;
(g) 网络失效后,系统需要在 10 秒内发现错误并启用备用系统;
(h) 查询过程中涉及到的桥梁与公路的实时状态视频传输必须保证画面具有1024×768的分辨率, 40帧 /秒的速率;
(i) 在系统升级时,必须保证在 10 人月内可添加一个新的消息处理中间件;
(j) 系统主站点断电后,必须在 3 秒内将请求重定向到备用站点;
(k) 如果每秒钟用户查询请求的数量是 10 个,处理单个请求的时间为 30 毫秒,则系统应保证在 1秒内完成用户的查询请求;
(l) 对桥梁信息数据库的所有操作都必须进行完整记录;
(m) 更改系统的 Web 界面接口必须在 4 人周内完成;
(n) 如果“养护报告生成”业务逻辑的描述尚未达成共识,可能导致部分业务功能 模块规则的矛盾,影响系统的可修改性
(o) 系统必须提供远程调试接口,并支持系统的远程调试。
在对系统需求,质量属性描述和架构特性进行分析的基础上,系统的架构师给出了三个候选的架构设计方案,公司目前正在组织系统开发的相关人员对系统架构进行评估。

【问题 1】(12 分)
在架构评估过程中,质量属性效用树 (utility tree) 是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图 1-1 中 (1)、(2) 空白处;并选择题干描述的 (a)~(o) ,填入(3) ~(6) 空白处,完成该系统的效用树。


图 1-1

【问题2】(13 分)
在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用 300 字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a) ~(o) 中分别选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

**答案与解析** - 试题难度:较难 - 知识点:案例分析>软件质量属性 - 试题答案:【问题1】
(1)安全性            (2)可修改性                (3)(h)       (4)(l)        (5)(j)        (6)(m)
【问题2】
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
风险点:(n)
敏感点:(d)
权衡点:(f)
- 试题解析:本题考查的是软件质量属性,要求考生掌握常见的软件质量属性的含义与具体的应用场景。
1、性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
代表参数:响应时间、吞吐量 设计策略:优先级队列、资源调度
2、可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
代表参数:故障间隔时间 设计策略:冗余、心跳线
3、安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
设计策略:追踪审计
4、可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
设计策略:信息隐藏
此外风险点、非风险点、敏感点与权衡点要能正确区分。
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。 ### 第 2 题 阅读以下关于软件系统设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括:
(1)统一身份认证模块:提供统一的认证入口,为平台其他核心业务模块提供用户管理、身份认证、权限分级和单点登录等功能;
(2)共享资源管理模块:提供教学资源申报流程服务,包括了资源申报、分类定制、资料上传、资源审核和资源发布等功能;
(3)共享资源展示模块:提供教育教学共享资源的展示服务,包括资源导航、视频点播、资源检索、分类展示、资源评价和推荐等功能;
(4)资源元模型管理模块:依据资源类型提供共享资源的描述属性、内容属性和展示属性,包括共享资源统一标准和规范、资源加工和在线编辑工具、数字水印和模板定制等功能;
(5)系统综合管理模块:提供系统管理和维护服务,包括系统配置、数据备份恢复、资源导入导出和统计分析等功能。
项目组经过分析和讨论,决定采用基于 Java EE 的 MVC 模式设计资源共享平台的软件架构,如图 2-1 所示。
图2-1 资源共享平台软件架构

【问题1】(9分)
MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图 2-1 所示架构将JavaEE中 JSP、Servlet、Service、JavaBean、DAO五种构件分别填入空 (1)~(5) 所示位置。
【问题2】(6分)
项目组架构师王工提出在图 2-1 所示架构设计中加入EJB构件,采用企业级JavaEE架构开发资源共享平台。请说明EJB构件中的 Bean (构件)分为哪三种类型,每种类型Bean的职责是什么。
【问题3】(10分)
如果采用王工提出的企业级 JavaEE 架构,请说明下列(a)-(e)所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean(身份认证构件)
(b)ResPublish Bean(资源发布构件)
(c)ResRetrieval Bean(资源检索构件)
(d)OnlineEdit Bean(在线编辑构件)
(e)Statistics Bean(统计分析构件)

答案与解析

  • 试题难度:较难
  • 知识点:案例分析>软件架构风格与架构设计
  • 试题答案:【问题1】
    MVC架构包含:视图、控制器、模型
    视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
    控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
    模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。
    (1)JSP          (2)Servlet             (3)JavaBean            (4)Service                 (5)DAO
    【问题2】
    EJB中的Bean分三种类型:Session Bean、Entity Beans 和 Message-Driven Bean。
    Session Bean的职责是:维护一个短暂的会话。
    Entity Beans 的职责是:维护一行持久稳固的数据。
    Message-Driven Bean的职责是:异步接受消息。
    【问题3】
    有状态:(a)、(d)
    无状态:(b)、(c)、(e)
  • 试题解析:
    【问题1】
    MVC是一种目前广泛流行的软件设计模式。近年来,随着J2EE(Java 2Enterprise Edition)的成熟,MVC成为了J2EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
    (1) 控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
    (2) 模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
    (3) 视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
    【问题2】
    Session Bean 描述了与客户端的一个短暂的会话。当客户端的执行完成后,Session Bean 和它的数据都将消失;
    Entity Bean 描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责 entity Bean 数据的存储。
    Message-driven bean 结合了 Session Bean 和 Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。

    【问题3】
    本题考查考生对Java EE架构中会话构件(Session Bean)的掌握情况。
    会话构件负责维护客户端与服务端的交互状态,按照是否跨方法调用保存客户端与服务端的交互状态可以分为有状态(Stateful)会话构件和无状态(Stateless)会话构件,前者在交互过程中需要保存客户端与服务端交互的中间状态数据,一般在实现类中有自身的属性用于存储中间状态数据,无状态会话构件则不需要保存客户端与服务端的交互状态数据,客户端每次发起的请求相互独立,不会对服务端状态产生影响,因此服务端类不需要保存中间状态数据。身份认证构件完成初次身份认证后需要在服务端记录客户端的身份信息,在线编辑构件需要在操作过程中记录前一次编辑的操作结果,所以两者需要设汁为有状态会话构件。资源发布、资源检索和统计分析构件对客户端多次请求均保持一致处理过程和结果,所以应设计为无状态会话构件。

第 3 题

阅读以下关于机器人操作系统架构的描述,回答问题  1至问题 3
【说明】
随着人工智能技术的发展,工业机器人已成为当前工业界的热点研究对象。某宇航设备公司为了扩大业务范围,决策层研究决定准备开展工业机器人研制新业务。公司将论证工作交给了软件架构师王工,王工经过分析和调研,从机器人市场现状、领域需求、组成及关键技术和风险分析等方面开展了综合论证。论证报告指出:首先,为了保障本公司机器人研制的持续性,应根据领域需求选择一种适应的设计架构;其次,为了规避风险,公司的研制工作不能从零开始,应该采用国际开源社区所提供机器人操作系统(Robot Operating System, ROS)作为机器人开发的基本平台。
在讨论会上,架构师李工提出不同意见,他认为公司针对宇航领域已开发了某款嵌 入式实时操作系统,且被多种宇航装备使用,可靠性较高。因此应该采用现有架构体系
作为机器人的开发平台。会上王工说明了机器人操作系统与该款操作系统的差别,要沿 用需要进行改造,投入较大。经过激烈讨论,公司领导同意了王工采用 ROS 的意见。

【问题1】(5分)
王工拟采用的ROS具有分布式进程框架,以点对点设计以及服务和节点管理器方式, 使得执行程序可以各自独立地设计,松散地、实时地组合起来。这些进程可以按照功能包和功能包集的方式分组,因而可以容易地分享和发布。请用400字以内文字说明ROS与嵌入式实时操作系统的共同点,以及在实时性和任务通信方式两个方面的差异。 
 

 【问题2】 (10分)
ROS为应用程序间通信提供了主题(Topic) 、服务 (Service)和动作 (Action) 三种消息通信方式,每种通信方式都有其特点。请将以下给出的三类通信的主要特点填入表 3-1 中(1)-(5) 的空白处,将答案写在答题纸上。
(a) 适合用于传输传感器信息(数据流)
(b) 能够知道是否调用成功
(c) 一对多模式
(d) 有握手信号
(e) 服务执行完会有反馈
(f) 可以监控长时间执行的进程
(g) 较复杂
(h) 可能让系统过载(数据太多)
(i) 服务执行完之前,程序会等待
(j) 建立通信较慢

(k) 可能丢失数据
表3-1 ROS三类通信的主要特点</div>

 

【问题3】 (10分)
ROS 的架构定义了 ROS 系统由多个各自独立的节点(组件)组成,并且各个节点之间可以通过发布/订阅( Publish /Subscribe )消息模型进行通信。图 3-1 给出一个简单机器人结构实例,请根据以下文字描述,补充图3-1 中(1)~(5) 处空白,将答案写在答题纸上。
“|机器人开始阶段,所有节点都要注册 (Registration) 到 Master上,注册后,摄像 头节点声明它要发布(Publish)一个叫作/image_data的消息。另外两个节点(图像处理处理节点和图像显示节点)声明它们需要订阅( Subscribe) 这个/image_data消息。因此, 一旦摄像头节点收到相机发送的数据(Data),就立即将数据/image_data直接发送到另外两个节点。


  图3-1

答案与解析

  • 试题难度:较难
  • 知识点:案例分析>嵌入式系统设计
  • 试题答案:【问题1】
    ROS与嵌入式实时操作系统的共同点:
    (1)系统微型化
    (2)系统专用性强
    (3)软硬件依赖性强
    (4)系统资源受限
    ROS与嵌入式实时操作系统的差异:
    实时性:ROS弱于嵌入式实时操作系统
    通信方式:ROS的通信方式较为丰富,嵌入式实时操作系统通信方式单一。
    【问题2】
    (1)(2)(c)(k)                 (3)(4)(i)(j)                   (5)  (f)     
    【问题3】
    (1)Registration  (2)Data            (3)Publish               (4)Subscribe                 (5)Subscribe      
     
  • 试题解析:【问题1】
    ROS与嵌入式实时操作系统的共同点:
    (1)系统微型化
    (2)系统专用性强
    (3)软硬件依赖性强
    (4)系统资源受限
    ROS与嵌入式实时操作系统的差异:
    实时性:ROS弱于嵌入式实时操作系统
    通信方式:ROS的通信方式较为丰富,嵌入式实时操作系统通信方式单一。
    【问题2】
    (1)(2)(c)(k)                 (3)(4)(i)(j)                   (5)  (f)     
    【问题3】
    (1)Registration  (2)Data            (3)Publish               (4)Subscribe                 (5)Subscribe      
     

第 4 题

阅读以下关于数据库设计的叙述,在答题纸上回答问题 1至问题 3。
【说明】
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库;而李工认为本企业内部程序员缺乏数据库开发经验,而且应用简单,应该采用 ORM (对象关系映射)方式。最终经过综合考虑,该软件企业采用了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图 4-1所示。


图 4-1

【问题 1】 (9分)
请用 300 字以内的文字分别说明数据库程序在线访问方式和 ORM 方式的优缺点,说明该软件企业采用 ORM 的原因。
【问题2】 (9分)
请用 100 宇以内的文字说明新体系架构中增加数据访问层的原因。请根据图 4-1 所示,填写图中空白处(1) - (3)。
【问题3】 (7分)
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景;请解释说明工厂模式在数据访问层中的应用。

答案与解析

  • 试题难度:较难
  • 知识点:案例分析>数据架构建模
  • 试题答案:【问题1】
    数据库程序在线访问方式优点:
    1、性能比ORM好
    2、可以处理复杂查询语句
    数据库程序在线访问方式缺点:
    1、要求程序员懂SQL语句
    2、修改与维护相对困难
    ORM优点:
    1、使用ORM可以大大降低学习和开发成本。
    2、程序员不用再写SQL来进行数据库操作。
    3、减少程序的代码量。
    4、降低由于SQL代码质量差而带来的影响。
    ORM缺点:
    1、不太容易处理复杂查询语句。
    2、性能较直接用SQL差。
    本题中的场景之所以选择ORM,主要考虑的是程序缺数据库开发经验,这样SQL语句质量有很大风险。同时学习成本很高。此外应用简单,不也担心ORM对性能的影响。
    【问题2】
    增加数据访问层的原因:
    (1)由于涉及到多种异构数据库平台,数据访问复杂性增加,不宜与业务逻辑混合在一起。
    (2)数据管理变复杂之后,需要使用的代码量增加,分单独层次有利于让逻辑更清晰。
    (3)业务逻辑应以相同的方式应对异构的数据库,此时需要单独的数据访问层屏蔽差异性。
    1)执行业务逻辑/业务组件/业务构件       2)数据访问接口层/DAL接口       3)工厂层/DAL工厂/数据访问工厂 
    【问题3】
    工厂模式分抽象工厂与工厂方法,题目中的场景适合采用抽象工厂设计模式。
    抽象工厂设计模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。其优点是可以非常方便的创建一系列的对象,其使用场景也是创建系列对象的情况。在本题中,可以针对Oracle、MySQL、SQLServer分别建立抽象工厂,若指定当前工厂为Oracle工厂,则创建出来的数据库连接,数据集等一系列的对象都是符合Oracle操作要求的。这样便于数据库之间的切换。
  • 试题解析:ORM,即Object-Relationl Mapping,它在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作即可。
    当你开发一个应用程序的时候(不使用OR Mapping),可能会涉及许多数据访问层的代码,用来从数据库保存、删除、读取对象信息等等,然而这些代码写起来总是重复的。
    一个更好的办法就是引入OR Mapping。实质上,一个OR Mapping会为你生成DAL。与其自己写DAL代码,不如用OR Mapping,你只需要关心对象就好。
    使用ORM可以大大降低学习和开发成本。而在实际的开发中,真正对客户有价值的是其独特的业务功能,而不应该把大量时间花费在编写数据访问、CRUD方法、后期的Bug查找和维护上。在使用ORM之后,ORM框架已经把数据库转变成了我们熟悉的对象,我们将只需要了解面向对象开发就可以实现数据库应用程序的开发,不需要浪费时间在SQL上。同时也可减少代码量,减少数据层出错机会。
    通过Cache的实现,能够对性能进行调优,实现了ORM区隔了实际数据存储和业务层之间的关系,能够对每一层进行单独跟踪,增加了性能优化的可能。

第 5 题

阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题 1至问题 3。
【说明】

某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C 商品交易平台已不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展“秒杀”、“限时促销”等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。 同时,采用增加镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、Web 应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王工和李工的思路,完成新系统的架构设计。

【问题1】 (5分)
请用 200字以内的文字描述什么是“响应式 Web 设计”,并列举 2 个响应式 Web 设计的实现方式。
【问题2】 (16 分)
综合王工和李工的提议,项目组完成了新商品交易平台的系统架构设计方案。新系统架构图如图 5-1 所示。请从选项 (a) - (j) 中为架构图中(1) - (8) 处空白选择相应的内容,补充支持高并发的 Web 应用系统架构设计图。


(a)Web 应用层
(b)界面层
(c)负载均衡层
(d)CDN 内容分发
(e)主数据库
(f) 缓存服务器集群
(g)从数据库
(h)写操作
(i) 读操作
(j) 文件服务器集群
【问题3】 (4 分)
根据李工的提议,新的 B2C 商品交易平台引入了主从复制机制。请针对 B2C商品交易平台的特点,简要叙述引入该机制的好处。

答案与解析

  • 试题难度:较难
  • 知识点:案例分析>Web应用系统架构设计
  • 试题答案:【问题1】
    响应式web设计是指我们设计与开发的页面可以根据用户的行为和不同的设备环境做出相应的响应来调整页面的布局,以提供用户可感知的、流畅的阅读和操作体验。
    实现方式:
    (1)流式布局
    (2)弹性布局(如弹性图片)
    (3)媒体查询
    【问题2】
    (1)(d)       (2)(c)                 (3)(f)                 (4)(a)               
    (5)(6)(e)(h)                          (7)(8)(g)(i)       
    【问题3】
    1、提升性能
    交易平台要求高并发,主从复制方式一主多从,不同的用户请求可以从不同的从数据库读取数据,提高并发度。
    2、可扩展性更优
    如果采用单台数据库服务器,则访问量持续增加时,数据库瓶颈暴露,且无法迅速解决问题。而主从结构可以快速增加从服务器数量,以满足需求。
    3、提升可用性
    一主多从,一台从服务器出现故障不影响整个系统正常工作。
    4、相当于负载均衡
    一主多从分担任务,相当于负载均衡
    5、提升数据安全性
    系统中的数据冗余存放多份,不会因为某台机器硬件故障而导致数据丢失。
  • 试题解析:响应式web设计是指我们设计与开发的页面可以根据用户的行为(比如改变浏览器的窗口大小)和不同的设备环境(比如系统平台、屏幕分辨率以及横竖屏等)做出相应的响应来调整页面的布局,以提供用户可感知的、流畅的阅读和操作体验。响应式设计一般遵循“设计先行,内容优先,移动优先”的原则。就是说,如果一个页面想要响应PC端和移动终端包括用户的一些行为等,那么设计师至少需要设计两套以上页面的设计图(PC端一套,移动终端一套),交互设计师也需先根据终端进行交互设计,把需求中最重要的内容展示在移动小屏幕上,然后前端工程师据此设计开发出响应式框架。

results matching ""

    No results matching ""