题:效用树+风险点、敏感点和权衡点
某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如下:
- (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】
在架构评估过程中,质量属性效用树是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性填入图中 (1)、(2) 空白处;并选择题干描述的 (a)~(o) ,填入(3)~(6) 空白处,完成该系统的效用树。
【问题2】
在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用 300 字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从 题干(a)~(o) 中分别选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。
【解答】
【问题1】
- 效用树质量属性包括:性能、可用性、可靠性、健壮性、安全性、可修改性、可变性、易用性、可测试性、功能性和互操作性等。
- (1):安全性,因为(b)为安全性
- (2):可修改性,因为(i)为可修改性
- (3):(k),吞度量性能
- (4):(f),安全性
- (5):(j),硬件故障,可用性
- (6):(m),为可修改性
- 性能质量,(c)为响应时间,(k)为吞度量,所以(3)填(k)
- 因为(b)为安全性,所以(1)填安全性,(f)也为安全性,所有(4)填(f)。
- 可用性(g)为网络故障,(j)为硬件故障,所以(5)填(j)
- (i)为可修改性,所以(2)填可修改性,(m)也为可修改性,所以(6)填(m)
【问题2】
- 风险点:
- 是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
- 如:对系统的某些业务逻辑尚未达成共识,导致系统业务重复,影响可修改性。
- (n)为风险点
- 敏感点
- 敏感点是一个或多个构件的特性。研究敏感点可使设计人员或分析员明确在搞清楚如何实现质量目标时应注意什么。
- 如:对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;
- (f)为敏感点
- 权衡点:
- 是影响多个质量属性的特性,是多个质量属性的敏感点。
- 如:更改系统加密的级别将对安全性和性能产生影响;
- (f)为权衡点,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
- 非风险点:
- 是指架构设计中不会造成潜在问题的架构决策的关注点,是可行的可接受。
- 如:正常负载情况下,系统必须在 0.5 秒内对用户的查询请求进行响应;
- c为非风险点。
题:效用树+面向对象与基于规则比较
某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分的等级,并针对不同等级的用户提供相应的折扣方案 。在需求分析与架构设计阶段,电子商务公司提出的需求、质量属性描述和架构特性如下 :
- (a) 用户目前分为普通用户、银卡用户、金卡用户和白金用户四个等级,后续需要能够根据消费情况进行动态调整;
- (b) 系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
- (c) 在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应;
- (d) 在各种节假日或公司活动中,针对所有级别用户,系统均能够根据用户实时的消费情况动态调整折扣力度;
- (e) 系统主站点断电后,应在5秒内将请求重定向到备用站点;
- (f) 系统支持中文昵称,但用户名要求必须以字母开头,长度不少于8个字符;
- (g) 当系统发生网络失效后,需要在15秒内发现错误并启用备用网络;
- (h) 系统在展示商品的实时视频时,需要保证视频画面具有 1024×768 像素的分辨率,40帧/秒的速率;
- (i) 系统要扩容时,应保证在10人•月内完成所有的部署与测试工作;
- (j) 系统应对用户信息数据库的所有操作都进行完整记录:
- (k) 更改系统的Web界面接口必须在4人•周内完成;
- (l) 系统必须提供远程调试接口,并支持远程调试 。
在对系统需求、质量属性描述和架构特性进行分析的基础上,该系统架构师给出了两种候选的架构设计方案,公司组织相关专家对系统架构进行评估。
【问题1】(13 分)
针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析,填写下表中的(1)~(3)空白处。
架构风格名称 | 灵活性 | 可扩展性 | 性能 |
---|---|---|---|
面向对象 | 将用户级别、折扣规则等封装为对象,在系统启动时加载。 | (2) | (3) |
基于规则 | (1) | 加入新的用户级别和折扣规则时,只需定义新的规则,解释规则即可进行扩展。 | 需要对用户级别和折扣规则进行实施解释,性能较差。 |
【问题2】(12 分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请合适的质量属性名称填入下图中(1)、(2)空白处,并题干描述的(a)~(1)填入(3)~(6)空白处,完成该系统的效用树。
【解答】
【问题1】
- 用户级别与折扣规则管理功能更适合采用基于规则的架构风格。
- (1) 将用户级别、折扣规则等描述为可动态改变的规则数据;
- (2) 加入新的用户级别和折扣规则时需要重新定义新的对象,并需要重启系统;
- (3) 用户级别和折扣规则已经在系统内编码,可直接运行,性能较好。
【问题2】
- (1) 安全性
- (2) 可修改性
- (3)(h)
- (4)(j)
- (5)(e)
- (6)(k)
题:效用树+管道过滤器与仓库风格比较
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的重要功能,包括我的编辑,语法高亮提示,代码编频,系统调试,代码气库管理等,在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
- a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能
- b)在企常负载情况下,系统应该在 0.2s 内对用户的界面操作请求进行响应。
- c)系统应该具备完善的安全防护措措施,能够对黑客的攻击行为进行检测和防御。
- d)系统主站点断电后应在 3s 内将请求重定向到备用站点。
- e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符。
- f)系统宕机后,需要在15s内发现错误,并启用备用系统。
- g)在正常负载情况下,用户的代码提交请求应在 0.5s 内完成。
- h)系统支持硬件设备灵活扩容,应保证在2人天内完成。
- i)系统需要针对代码仓库的所有操作进行详细记录,便于后期查阅与审计。
- j)更改系统 web 界面风格需要在 4人天内完成。
- k)系统本身需要提供远程调试接口,支持开发团队进行远程排错。
在对系统需求质量属性和架构特性进行分析的基础上,该公司的系统架构给了两种方案。
【问题 1】(13 分)
架构风格名词 | 数据处理方式 | 系统拓展性 | 处理性能 |
---|---|---|---|
管道-过滤器 | 数据驱动机制,处理流程实现确定,交互性差 | (2) | 劣势:需数据格式转换,性能较低 优势:支持开发调用,性能较高 |
仓库 | (1) | 数据与处理解耦合,可动态添加 | 劣势:(3) 优势:(4) |
【问题 2】(12 分)
【解答】
【问题1】
- (1)文件或模型驱动,无事先操作顺序,交互性好。
- (2)组件需要与数据仓库进行数据适配。
- (3)组件互相独立,之间不存在互相调用。
- (4)不需数据转换
【问题2】
- (1)安全性
- (2)可修改性
- (3)g
- (4)i
- (5)f
- (6)j
2019:非功能性需求+分布式架构+SQL注入
某公司拟开发一个物流车辆管理系统,该系统可支持各车辆实时位置监控、车辆历史轨迹管理、违规违章记录管理、车辆固定资产管理、随车备品及配件更换记录管理、车辆寿命管理等功能需求。其非功能性需求如下:
(1)系统应支持大于 50 个终端设备的并发请求;
(2)系统应能够实时识别车牌,识别时间应小于 1s;
(3)系统应 7x24 小时工作;
(4)具有友好的用户界面;
(5)可抵御常见 SOL注入攻击;
(6)独立事务操作响应时间应小于 3s;
(7)系统在故障情况下,应在1小时内恢复;
(8)新用户学习使用系统的时间少于1小时。
面对系统需求,公司召开项目组讨论会议,制订系统设计方案,最终决定基于分布式架构设计实现该物流车辆管理系统,应用Kafka、Redis 数据缓存等技术实现对物流车辆自身数据业务数据进行快速、高效的处理。
【问题 1】(4 分)
请将上述非功能性需求(1)~(8)归类到性能、安全性、可用性、易用性这四类非功能性需求
【问题 2】(14 分)
经项目组讨论,完成了该系统的分布式架构设,如图所示。请从下面给出的(a)~(i)中进行选择,补充完善图中(1)-(7)处空白的内容。
【问题3】(7 分)
该物流车辆管理系统需抵御常见的 SOL注入攻击,请用 200 字以内的文字说明什么是 SOL注入攻击,并列举出两种抵御 SOL注入攻击的方式。
【解答】
【问题1】
- 性能:(1)(2)(6)
- 安全性:(5)
- 可用性:(3)(7)
- 易用性:(4)(8)
【问题2】
- (1):(d)
- (2):(e)
- (3):(i)
- (4):(h)
- (5):(g)
- (6):(f)
- (7):(a)
【问题3】
SQL注入攻击是一种代码注入技术,攻击者通过在数据库查询中插入恶意SQL语句,来破坏原有SQL语句的结构,从而实现对数据库的非法操作。
抵御SQL注入攻击方式:
- 参数化查询:将SQL语句中的变量部分用参数代替,这样数据库就不会将这些参数当作SQL语句的一部分来执行,从而避免了恶意SQL代码的执行。
- 输入验证:对用户输入进行严格的验证,确保输入数据符合预期的格式和类型。
2018:非功能性需求+胖瘦客户端
某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及文化用品销售、定制、竞拍和点评等板块,以提升商城的信息化建设水平。该软件公司组织项目组完成了需求调研,现已进入到系统架构设计阶段。考虑到系统需求对架构设计决策的影响,项目组先列出了可能影响系统架构设计的部分需求如下:
(a)用户界面支持用户的个性化定制;
(b)系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;
(c)用户户操作的响应时间应不大于3秒,竟拍板块不大1秒;
(d)系统具有故障诊断和快速恢复能力;
(e)用户密码需要加密传输;
(f)系统需要支持不低于 2G 的数据缓存;
(g)用户操作停滞时间超过一定时限需要重新登录验证
(h)系统支持用户选择汉语、英语或法语三种语言之一进行操作。
项目组提出了两种系统架构设计方案:瘦客户端 C/S 架构和胖客户端 C/S 架构,经过对上述需求逐条分析和讨论,最终决定采用瘦客户端 C/S 架构进行设计。
【问题 1】(8 分)
在系统架构设计中,决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。请简要说明四类需求的含义。
【问题 2】(8 分)
根据表 1-1 的分类,将题干所给出的系统需求(a)~(h)分别填入(1)~(4)。
- 操作性需求:(1)
- 性能需求:(2)
- 安全性需求:(3)
- 文化需求:(4)
【问题 3】(8 分)
请说明瘦客户端 C/S 架构能够满足题干中给出的哪些系统需求 ( 只需要回答出三个系统需
求 ) 。
【解答】
【问题1】
- 操作性需求:操作性需求关注系统在日常运行中的管理和使用方面的需求。
- 性能需求:性能需求关注系统处理信息和响应请求的能力。
- 安全性需求:安全性需求关注系统抵御攻击和保护敏感数据的能力。
- 文化需求:文化需求关注系统是否符合组织的文化和价值观。
【问题2】
- 操作性需求:(1):(a)(b)
- 性能需求:(2):(c)(d) (f)
- 安全性需求:(3):(e) (g)
- 文化需求:(4):(h)
【问题3】
最符合瘦客户端的需求有:
- (c)用户户操作的响应时间应不大于3秒,竟拍板块不大1秒:服务端的处理能力更强
- (d)系统具有故障诊断和快速恢复能力:瘦客户端的简单架构便于故障诊断,且恢复通常依赖于服务器端的服务。
- (e)用户密码需要加密传输; 客户端只负责加密,加密处理需要在服务端
2021:效用树+解释器+管道过滤器+解释器
某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。
该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;
(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;
(c)平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;
(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;
(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;
(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;
(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;
(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;
(i)平台部署后,针对界面风格的修改需要在3人天内完成;
(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;
(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;
(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。
在对平台需求、质量属性描述和架构特性进行分析的基础上,公司的架构师给出了三种候选的架构设计方案,公司目前正在组织相关专家对平台架构进行评估。
【问题1】 (9分)
在架构评估过程中,,质量属性效用树是对系统质属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称域入图中(1)、(2)空白处,并从题干中的(a)-(i)中选择合适的质量属性描述,填入(3)-(6)空白处,完成该平台的效用树。
【问题2】 (16分)
针对该系统的功能,赵工建议采用解释器架构风格,李工建议采用管道过滤器的架构风格,王工则建议采用隐式调用架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格。
【解答】
【问题1】
- (1)性能
- (2)可修改性
- (3)e
- (4)j
- (5)h
- (6)i
【问题2】
针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析:
-
解释器架构风格:
- 优点:
- 提供了灵活的机器学习流程定义能力,可以通过解释器解释用户定义的机器学习流程。
- 具有良好的扩展性,可以方便地添加新的算法组件和解释器。
- 缺点:
- 可能会导致系统性能下降,因为解释器需要对用户定义的流程进行解释和执行。
- 实现复杂度较高,需要设计和实现灵活的解释器框架。
- 优点:
-
管道过滤器架构风格:
- 优点:
- 提供了可组合和可重用的算法组件,用户可以通过连接不同的过滤器构建机器学习流程。
- 结构清晰,易于理解和维护。
- 缺点:
- 可能会导致流程定义的灵活性不足,因为用户受到过滤器的限制,可能无法实现某些复杂的流程定义。
- 需要定义大量的过滤器,增加了系统的复杂度和开发成本。
- 优点:
-
隐式调用架构风格:
- 优点:
- 提供了简单而直接的方式来调用和执行算法,适合对学习算法的实时性要求较高的场景。
- 可以实现较高的系统性能,因为隐式调用通常是直接调用函数或方法。
- 缺点:
- 可能会限制机器学习流程的灵活性,因为流程定义受到函数调用的限制,可能无法实现某些复杂的流程。
- 优点:
综合考虑,针对该平台的核心应用场景,以及对机器学习流程定义的灵活性和学习算法的可扩展性要求,解释器架构风格更适合。因为解释器架构提供了灵活的流程定义能力,并且可以方便地扩展新的算法组件和解释器,同时也能满足对系统性能的要求。
2022:效用树+面向对象和解释器
某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。
在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效:
(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警:
(c)在正常负载情况下,系统应在0.3秒内对用户的界面操作请求进行响应:
(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于6个字符。
(e)在正常负载情况下,用户支付商品费用后在3秒内确认订单支付信息:
(f)系统主站点电力中断后,应在5秒内将请求重定向到备用站点:
(g)系统支持横向存储扩展,要求在2人天内完成所有的扩展与测试工作
(h)系统宕机后,需要在10秒内感知错误,并自动启动热备份系统:
(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断:
(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;
(k)支持对系统的外观进行调整和配置,调整工作需要在4人天内完成。
在对系统需求、质量属性描述和架构特性进行分析的基础上,系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。
【问题1】(12分)
在架构评估过程中,质量属性效用树是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并选择题干描述的(a)~(k)填入(3)~(6)空白处,完成该系统的效用树。
【问题2】(13分)
针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能;王工则建议采用解释器(interpreters)架构风格,将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则的可修改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系统更适合采用哪种架构风格。
【解答】
【问题1】
- (1)安全性
- (2)可修改性
- (3)e
- (4)j
- (5)h
- (6)k
【问题2】
折扣规则的可修改性
-
面向对象架构:折扣规则封装在独立对象中,修改规则需要修改对象代码,灵活性较低。
-
解释器架构风格:折扣规则定义为独立的规则文件,修改规则只需修改文件内容,灵活性较高。
个性化折扣定义灵活性
-
面向对象架构:需要扩展对象类或创建新的对象来实现新的折扣规则,开发成本较高。
-
解释器架构风格:可以通过新增规则文件来定义新的折扣规则,开发成本较低。
系统性能
-
面向对象架构:对象调用需要一定的开销,减少了不必要的解释和转换开销,系统性能较高。
-
解释器架构风格:实时解释规则需要一定的运行时间,系统性能可能略低。
由于当前用户规模不大,性能优先级低,该系统因采用解释器架构风格。