上篇案例回顾:
解释器,管道过滤,隐式调用优缺点?
解释器 则是独立的语法规则,可以通过解释器来解析,可扩展性很高,灵活性强。
管道过滤则是侧重于数据的输入和输出,上一个模块的数据输出是下一个模块的输入,连接件事管道,过滤则是构件。
隐式调用则强调触发和异步,多个构件会注册到一个模块里,当模块改变的时候,构件都会接收到消息从而跟着变化。它的扩展性高于管道过滤,低于解释器。
顺序图协作图区别?
顺序图强调流程的时间顺序。
协作图强调模块之间的
对象模型,动态模型,和功能模型主要的作用和关联?
对象模型是静态模型,最基础最核心的模型,由对象图来构件。
动态模型主要表示交互次序,由状态图来建模。
功能模型是数据流的表示,主要DFD数据流图建模。
对象模型是动态模型和功能模型的基础,对象模型的动作表示动态模型的操作和功能模型的函数。
动态模型主要表示控制构件,当有变化的时候,则激活。
功能模型是建立在对象模型的操作和动态模型动作基础上,功能模型是对象模型的说明上,并且对对象值的约束。
- 在线软件开发系统
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的主要功能包括代码编辑、语法高亮显示、代码编译、系统调试、代码仓库管理等。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能;
(b)在正常负载情况下,系统应在0.2秒内对用户的界面操作请求进行响应;
(c)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(d)系统主站点断电后,应在3秒内将请求重定向到备用站点;
(e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符;
(f)系统宕机后,需要在15秒内发现错误并启用备用系统;
(g)在正常负载情况下,用户的代码提交请求应该在0.5秒内完成;
(h)系统支持硬件设备灵活扩容,应保证在2人·天内完成所有的部署与测试工作;
(i)系统需要为针对代码仓库的所有操作情况进行详细记录,便于后期查阅与审计;
(j)更改系统的Web界面风格需要在4人·天内完成;
(k)系统本身需要提供远程调试接口,支持开发团队进行远程排错。
在对系统需求、质量属性和架构特性进行分析的基础上,该公司的系统架构的给出了两种候选的架构设计方案,公司目前正在组织相关专家对候选系统架构进行评估。
(13分)
针对该系统的功能,李工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(reposilory)架构风格。请指出该系统更适合采用哪种架构风格,并针对系统的主要功能,从数据处理方式、系统的可扩展性和处理性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的( )~( )空白处。
答案:
1)数据存储在独立的中心仓库,交互性强。
- 数据与处理紧密相关,不可以动态添加和删除,需要重启。
- 劣势:数据和组件分离,需要加载数据,性能低。
- 优势:支持并发访问数据库,提高性能,数据和组件无依赖关系。
(12分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中( )、( )空白处,并选择题干描述的(a)~(k)填入( )~( )空白处,完成该系统的效用树。
答案:
- 是g
由c知道(1)是 安全性(4)是 i
- 选择f
- 可修改性 (6)是j
二、Web的工业设备监测系统
某公司拟开发一款基于Web的工业设备监测系统,以实现对多种工业设备数据的分类采集、运行状态监测以及相关信息的管理。该系统应具备以下功能:
现场设备状态采集功能:根据数据类型对设备监测指标状态信号进行分类采集;
设备采集数据传输功能:利用可靠的传输技术,实现将设备数据从制造现场传输到系统后台;
设备监测显示功能:对设备的运行状态、工作状态以及报警状态进行监则并提供相应的图形化显示界面;
设备信息管理功能:支持设备运行历史状态、报警记录、参数信息的查询。
同时,该系统还需满足以下非功能性需求:
(a)系统应支持大于100个工业设备的并行监测;
(b)设备数据从制造现场传输到系统后台的传输时间小于1s;
(c)系统应7X24小时工作;
(d)可抵御常见XSS攻击:
(e)系统在故障情况下,应在0.5小时内恢复;
(f)支持数据审计。
面对系统需求,公司召开项目组讨论会议,制定系统设计方案,最终决定采用三层拓扑结构,即现场设备数据采集层、Web监测服务层和前端Web显示层。
(6分)
请按照性能、安全性和可用性等三类非功能性需求分类,选择题干描述的(a)~(f) 填入( 1)~(3 )。
答案:
- 选择b,a
- 选择d,f
- 选择e,c
(14分)
该系统的Web监测服务层拟采用SSM (spring+spring MVC+Mybatis)框架进行系统研发。SSM框架的工作流程图如图5-1所示,请从下面给出的(a)~(k)中进行选择,补充完善图5-1中(1 )~( 7)处空白的内容。
(a)Connection Pool
(b)Struts2
(c)Persistent Layer
(d)Mybatis
(e)HTTP
(f)MVC
(g)Kafka
(h)View Layer
(i)JSP
(j) Controller Layer
(k) Spring
答案:
(1)选择(a),Connection Pool
(2)选择(c),Persistent Layer
(3)选择d,mybatis
(4)选择b
(5)选择j,controller
(6)选择h,view layer
(7)选择e,http
4和7选错了,分别是(k)spring和i(JSP)。
(5分)
该工业设备检测系统拟采用工业控制领域中统一的数据访问机制,实现与多种不同设备的数据交互,请用200字以内的文字说明采用标准的数据访问机制的原因。
答案:
标准的数据库开发机制是可以在硬件的供应商和软件的开发商之间建立一套完整的规则。基于这套规则,数据交互对双方来说都是透明的,硬件供应商只需要考虑自己的需求和传输协议,软件开发商不需要关心硬件如何操作的,实现对设备数据采集的统一管理。
- redis社区网站平台
某互联网文化发展公司因业务发展,需要建立网上社区平台,为用户提供一个对网络文化产品(如互联网小说、电影、漫画等)进行评论、交流的平台。该平台的部分功能如下:
(a)用户帖子的评论计数器;
(b)支持粉丝列表功能;
(c)支持标签管理;
(d)支持共同好友功能等;
(e)提供排名功能,如当天最热前10名帖子排名、热搜榜前5排名等;
(f)用户信息的结构化存储;
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能、高并发,以支持大量用户的同时访问。开发团队经过综合考虑,在数据管理上决定采用Redis+数据库(缓存+数据库)的解决方案。
(10分)
Redis支持丰富的数据类型,并能够提供一些常见功能需求的解决方案。请选择题干描述的(a)~(g)功能选项,填入表4-1中( 1)~(5 )的空白处。
答案:
(1)选择a
(2)选择g,b
(3)选择d,c
- 选择f
- 选择e
(7分)
该网上社区平台需要为用户提供7X24小时的不间断服务。同时在系统出现宕机等故障时,能在最短时间内通过重启等方式重新建立服务。为此,开发团队选择了Redis持久化支持。Redis有两种持久化方式,分别是RDB(Redis DataBase)持久化方式和AOF(Append Only File)持久化方式。开发团队最终选择了RDB方式。
请用200字以内的文字,从磁盘更新频率、数据安全、数据一致性、重启性能和数据文件大小五个方面比较两种方式,并简要说明开发团队选择RDB的原因。
答案:
重启性能,rdb高于aof。
数据文件大小,aof更大。
磁盘更新频率,aof更新频率更高。
数据安全,aof更安全。
数据一致性,aof更好,通过append来新增,当宕机的时候,可以通过redis-check-aof来恢复数据。而rdb是通过配置的间隔时间存储,会存在数据丢失。
所以选择RDB保证重启效率。
(8分)
缓存中存储当前的热点数据,Redis为每个KEY值都设置了过期时间,以提高缓存命中率。为了清除非热点数据,Redis选择“定期删除+惰性删除”策略。如果该策略失效,Redis内存使用率会越来越高,一般应采用内存淘汰机制来解决。
请用100字以内的文字简要描述该策略的失效场景,并给出三种内存淘汰机制。
答案:
当没有定期删除这个key,并且没有很久没有访问这个key,所以导致惰性删除也失效。
- 从数据集随机进行淘汰。
- 从数据集选择最近最少使用的进行淘汰
- 对已设置过期时间的使用最少数据进行淘汰。
- 对以设置过期时间的数据将要过期的进行淘汰
- 对已设置过期时间的数据随机淘汰。