目录
[【问题 1】(13 分)](#【问题 1】(13 分))
[【问题 2】(12 分)](#【问题 2】(12 分))
[【问题 1】解析](#【问题 1】解析)
[【问题 2】解析](#【问题 2】解析)
案例
阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。
【题目】
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的主要功能包括代码编辑、语法高亮显示、代码编译、系统调试、代码仓库管理等。在需求分析与架构设计阶段公司提出的需求和质量属性描述如下:
(a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能;
(b)在正常负载情况下,系统应在0.2秒内对用户的界面操作请求进行响应;
(c)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(d)系统主站点断电后,应在3秒内将请求重定向到备用站点;
(e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符;
(f)系统宕机后,需要在 15 秒内发现错误并启用备用系统;
(g)在正常负载情况下,用户的代码提交请求应该在 0.5秒内完成;
(h)系统支持硬件设备灵活扩容,应保证在2人·天内完成所有的部署与测试工作;
(i)系统需要为针对代码仓库的所有操作情况进行详细记录,便于后期查阅与审计;
(j)更改系统的 Web 界面风格需要在 4人·天内完成;
(k)系统本身需要提供远程调试接口,支持开发团队进行远程排错。
在对系统需求、质量属性和架构特性进行分析的基础上,该公司的系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对候选系统架构进行评估。
【问题 1】(13 分)
针对该系统的功能,李工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(repository)架构风格。请指出该系统更适合采用哪种架构风格,并针对系统的主要功能,从数据处理方式、系统的可扩展性和处理性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的(1)一(4)空白处。
架构风格名称 | 数据处理方式 | 系统可扩展性 | 处理性能 |
---|---|---|---|
管道-过滤器 | 数据驱动机制,处理流程事先确定,交互性差 | (2) | 劣势:需要数据格式转换,性能降低 优势:支持过滤器并发调用,性能提高 |
仓库 | (1) | 数据与处理解耦合,可动态添加和删除处理组件 | 劣势:(3) 优势:(4) |
[表 1-1 两种架构风格的比较与分析] |
【问题 2】(12 分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图 1-1 中(1)、(2)空白处,并选择题干描 述的(a)一(k)填入(3)一(6)空白处,完成该系统的效用树。
【答案】
本题考查软件架构评估方面的知识与应用主要包括质量属性效用树和架构分析两个部分。
此类题目要求考生认真阅读题目对系统需求的描述,经过分类、概括等方法,从中确定软件功能需求软件质量属性、架构风险、架构敏感点、架构权衡点等内容,并采用效用树这一工具对架构进行评估。
【问题 1】解析
本问题考查考生对影响系统架构风格选型的理解与掌握。根据系统要求,李工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(repository)架构风格。考生需要从系统的主要功能和要求,从数据处理方式、系统的可扩展性和处理性能三个方面对这两种架构风格的优势和劣势进行比较与分析。具体如下表所示。
答案:
该系统更适合采用仓库架构风格。
博主(2):动态添加过滤器,扩展性较好。
【问题 2】解析
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。质量属性效用树主要关注性能、可用性、安全性和可修改性等四个用户最为关注的质量属性,考生需要对题干的需求进行分析,逐一找出这四个质量属性对应的描述,然后填入空白处即可。经过对题干进行分析,可以看出:
(a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能(功能需求);
(b)在正常负载情况下,系统应在 0.2秒内对用户的界面操作请求进行响应(性能);
(c)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御(安全性);
(d)系统主站点断电后,应在3秒内将请求重定向到备用站点(可用性);
(e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符(功能需求);
(f)系统宕机后,需要在 15 秒内发现错误并启用备用系统(可用性);
(g)在正常负载情况下,用户的代码提交请求应该在 0.5秒内完成(性能);
(h)系统支持硬件设备灵活扩容,应保证在2人·天内完成所有的部署与测试工作(可修改性);
(i)系统需要为针对代码仓库的所有操作情况进行详细记录,便于后期查阅与审计(安全性);
(j)更改系统的 Web 界面风格需要在 4人·天内完成(可修改性);
(k)系统本身需要提供远程调试接口,支持开发团队进行远程排错(可测试性)。
答案:
(1)安全性
(2)可修改性
(3)(g)
(4)(i)
(5)(f)
(6)(j)
练了这么多题,该类型题应该满分拿下了吧
相关推荐
2015年系统架构师案例分析试题一-CSDN博客文章浏览阅读979次,点赞36次,收藏37次。系统架构风险:架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点:影响多个质量属性的特征,是多个质量属性的敏感点。https://shuaici.blog.csdn.net/article/details/1410532862016年系统架构师案例分析试题一-CSDN博客文章浏览阅读980次,点赞24次,收藏41次。不同的架构设计决策是架构师必须具有的基本能力:从交互方式方面看,管道-过滤器风格具有顺序结构或有限的循环结构;采用数据仓储风格时,工具之间无直接交互,通过数据仓储间接交互。从数据结构方面看,管道-过滤器风格具有数据驱动的特征,数据到来后就进行计算;数据仓储风格以文件或模型为主要数据结构。从控制结构方面看,管道-过滤器风格具有顺序结构或有限的循环结构;数据仓储风格则以业务功能驱动。https://shuaici.blog.csdn.net/article/details/1413268302017年系统架构师案例分析试题一-CSDN博客文章浏览阅读1.9k次,点赞38次,收藏49次。确定软件功能需求、软件质量属性、架构风险、架构敏感点、架构权衡点等内容,并采用效用树这一工具对架构进行评估。架构敏感点、架构权衡点等内容,并采用效用树这一工具对架构进行评估。系统架构风险:架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点:影响多个质量属性的特征,是多个质量属性的敏感点。https://shuaici.blog.csdn.net/article/details/1414254672018年系统架构师案例分析试题一-CSDN博客文章浏览阅读1.1k次,点赞46次,收藏34次。操作性需求:与用户操作使用系统相关的一些需求。性能需求:指响应时间、吞吐量、准确性、有效性、资源利用率等与系统完成任务效率相关的指标。可靠性、可用性等指标可归为此类。安全性需求:系统向合法用户提供服务并阻止非授权用户使用服务方面的系统需求。文化需求:带有文化背景因素的系统需求。https://shuaici.blog.csdn.net/article/details/1416790092019年系统架构师案例分析试题一-CSDN博客文章浏览阅读1.6k次,点赞54次,收藏66次。系统架构风险:架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点:影响多个质量属性的特征,是多个质量属性的敏感点。https://shuaici.blog.csdn.net/article/details/141955800