案例分析篇01:软件架构设计考点架构风格及质量属性(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

本文是2024年软考高级系统架构设计师备考的案例分析篇,重点讲解软件架构设计的风格,如数据流、调用返回、独立构件、虚拟机和仓库风格,以及软件质量属性,如性能、可用性、安全性和可修改性等,并提供了相关解决技术和策略。文章适合考生复习使用。
摘要由CSDN通过智能技术生成

专栏系列文章推荐: 

2024高级系统架构设计师备考资料(高频考点&真题&经验)icon-default.png?t=N7T8https://blog.csdn.net/seeker1994/category_12593400.html

【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-先导篇)

案例分析篇08:Web架构设计相关20个考点(2024年软考高级系统架构设计师冲刺知识点总结)

案例分析篇11:UML设计考点(2024年软考系列-高级系统架构设计师冲刺知识点总结)

...... 

软件架构设计考点

        本章节非常重要,不仅案例分析题中会考到,甚至综合知识部分,论文部分也会出现;要背下来。

        以下内容所有加粗的部分都需要背下来!

2     软件架构设计考点

2.1      软件架构风格

        2.1.1    软件架构风格的定义

        2.1.2    数据流风格

        2.1.3    调用返回风格

        2.1.4    独立构件风格

        2.1.5    虚拟机风格

        2.1.6    仓库风格

        2.1.7    过程控制(闭环控制、控制环路)风格

2.2      软件质量属性

        2.2.1    常见的质量属性

        2.2.1    各类解决技术

        2.2.1    常见质量属性和系统风险点、敏感点、权衡点的说法

        2.2.1    权衡点、风险点、敏感点

        2.2.1    六种质量属性对应的策略

2.3      特定领域软件体系结构 DSSA

2.4      架构评估方法

2.5      架构的模型:4+1视图

1、软件架构风格

1.1 定义

        软件架构风格是描述某一特定应用领域中软件系统的组织方式和惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义特性。

        一个架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。

常用的软件架构风格(背):

架构风格大类

架构小类

构件

连接件

数据流风格

批处理序列

计算单元

管理过滤器

过滤器

数据流传输的管道

调用/返回风格

主/子程序

主子程序

过程调用

面向对象

对象

对象间的交付方式

层次结构

每一层

层间的交付方式

独立构件

进程通信

独立的进程

消息传递

事件驱动

模块

隐式调用

仓库风格

黑板系统

知识源

黑板系统或数据库系统

真题举例:

2020-T1

架构风格名称

数据处理方式

系统可扩展性

处理性能

管道-过滤器

数据驱动机制,处理流程事先确定,交互性差

数据与处理紧密联系,调整处理流程需要系统重新启动,可扩展性差

劣势:需数据格式转换,性能降低;

优势:支持并发调用,性能提高;

仓库

数据存储在中心仓库,处理流程独立,支持交互式处理;文件或模型驱动,无事先操作顺序。

数据与处理解耦,可动态添加或删除组件

劣势:数据与处理分离,需要加载数据,性能降低;

优势:数据与处理组件之间无依赖性,可并发调用,性能提高。

        真题中:面向对象风格、管道-过滤器风格都提到过要重启系统,基于规则的系统则不需要重启,基于仓库的风格也不需要重启。

1.2 数据流风格

        面向数据流,按照一定的顺序从前向后执行程序,代表的风格有批处理序列、管道-过滤器。

  • 批处理序列(强构构每每数以)

        调数据作为一个整体件为一系列固定顺序的计算单元,件之间只通过数据传递交互,个处理步骤是一个独立的程序,一步必须在前一步结束才能开始,据必须是完整的,整体的方式进行传递。

        特点:强调整体性,无交互

  • 管道-过滤器(每构经然,变换三通)

        每个构件都有一组输入、输出,件读输入的数据流,过内部处理,后产生输出数据流,这个过程通常是通过对输入数据流的变换或计算来完成的,包括:

        -通过计算和增加信息以丰富数据

        -通过浓缩和删除以精简数据

        -通过改变记录方式以转化数据

        构件为过滤器,连接件是数据流传输的管道。

1.3 调用返回风格

        构件之间存在互相调用的关系,一般是显式的调用,代表的风格有主程序/子程序、面向对象、层次结构。

        主程序子程序:单线程控制,把问题划分为若干个处理步骤,构建即为主程序和子程序,子程序通常可合称为模块,过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。显示调用

        面向对象构件即对象,对象是抽象数据类型的实例。在抽象数据类型中,数据表示和他们相应的操作被封装起来,对象的行为体现在其接收和请求的动作,连接件即对象间的交互方式,对象是通过函数调用来交互的。显示调用。

        层次结构风格:构件组成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己相邻的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度,修改某一层,最多影响相邻层,通常只影响上层。

1.4 独立构件风格

        构件之间是互相独立的,不存在显式的调用关系,而是通过某个事件触发的方式来执行,代表的风格有进程通信、事件驱动系统(隐式调用)。

        进程通信:构件是独立的进程连接件是消息传递,构件间采用命名的消息传递来实现沟通与协作,消息传递的方式可以是点对点、异步或同步方式,以及远程过程(方法)调用等。

        事件驱动系统(隐式调用):构件不直接调用一个过程,而是触发广播一个或多个事件。构件中的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用。这种风格中的构件是匿名的过程,它们之间交互的连接件往往是以过程之间的隐式调用来实现的。

1.4 虚拟机风格

        自定义了一套规则供使用者,使用者基于这个规则来开发构件,能够跨平台适配,代表的风格有解释器、基于规则的系统。业务灵活组合,自定义等关键字,则使用虚拟机风格。

        解释器风格:通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,缺点是执行效率低

        基于规则的系统:包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS(决策支持系统)中。该风格下不需要修改代码,将用户需求实现为可动态改变的规则,当有新需求时只需要定义新规则即可,不需要调整代码和重启系统,但缺点是需要对规则实时解释,性能较差。

1.5 仓库风格

        以数据为中心,所有的操作都是围绕建立的数据中心进行的,代表的风格有数据库系统、超文本系统、黑板系统。

        数据库系统:构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理单元对数据元素进行操作。

        黑板系统:包括知识源、黑板和控制三部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯一媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中(信号处理、问题规划、编译器优化、语音识别等)。

        超文本系统:构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。是一种非线性的网状信息组织方法,它以节点为基本单位,链作为节点之间的联想式关联。通常应用在互联网领域。

        早期的编译器大部分使用的数据流风格,现代编译器的集成开发环境一般采用数据仓储(即以数据为中心的架构风格)架构风格进行开发,其中心数据就是程序的语法树。

中央的可以说是中央数据源/语法结构树

1.6 过程控制(闭环控制、控制环路)风格

        工业中的过程控制是指以温度、压力、流量、液位和成分等工艺参数作为被控变量的自动控制。过程控制也称实时控制,是计算机及时的采集检测数据,按最佳值迅速地对控制对象进行自动控制和自动调节,如数控机床和生产流水线的控制等。通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。反馈循环机制。

比较因素:

比较因素

管道-过滤器风格

数据仓储风格

交互方式

顺序结构或有限的循环结构

星型

数据结构

数据流

文件或模型

控制结构

数据流驱动

业务功能驱动

扩展方法

接口适配

模型适配

2、软件质量属性

        系统非功能需求,即质量属性,指的是一个系统的可度量、可测试的属性,这些属性会影响到系统运行时行为、系统设计方式以及用户的体验等。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。

2.1 常见的质量属性

        性能(Performance)、可用性(Availability)、安全性(Security)、可修改性(Modification)、易用性(Usability)、互操作性(Inter-operation)。

易用性:是衡量用户使用一个软件产品完成指定任务的难易程度。

互操作性:是指系统与外界或系统与系统之间的相互作用能力。

质量属性效用树是对系统质量属性进行识别和优先级排序的工具,效用树主要关注性能、可用性、可修改性、安全性四个方面。

2.2 各类解决技术

        记录/回放是解决可测试性

        内置监控器、进程监视器是解决可用性的。

        影子操作,解决安全性的,真实环境或操作系统的影子。

        解决性能问题:一般从资源需求、资源管理、资源仲裁三个方面。

        安全性相关的战术有:抵抗攻击、检测攻击、从攻击中恢复。

        要注意选项当出现模棱两可的时,需要根据质量场景选择最贴合的。

        通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性。

2.3 常见质量属性和系统风险点、敏感点、权衡点的说法

        写论文会用到!背下来!

安全性:

1)XX系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;

2)对XX信息数据库的所有操作都必须进行完整记录;

性能:

1)正常负载情况下,系统必须在 0.5 秒内对用户的查询请求进行响应;

2)下载文件的速率要保证在10M/S以上;

可用性

1)网络失效后,系统需要在 10 秒内发现错误并启用备用系统;

2)系统主站点断电后,必须在 3 秒内将请求重定向到备用站点;

可修改性

1)在系统升级时,必须保证在 10 人天内可添加一个新的消息处理中间;

2)更改系统的 Web 界面接口必须在 4 人周内;

2.4 权衡点、风险点、敏感点

权衡点

   更改系统加密的级别将对安全性和性能产生影响;

风险点

   如果“养护报告生成”业务逻辑的描述尚未达成共识可能导致部分业务功能模块规则的矛盾,影响系统的可修改性;

敏感点

   对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计。

如果在论文里出现,还可以使用其他干扰项凑字数:

        1)系统必须提供远程调试接口,并支持系统的远程调试;

        2)系统的用户名不能为中文,要求必须以字母开头,长度不少于 5 个字符;

        3)系统用户分为高级管理员、数据管理员和数据维护员等三类;

        4)假设每秒中用户查询请求的数量是 10 个,处理请求的时间为 30 毫秒,则“在 1 秒内完成用户的查询请求”这一要求是可以实现的;--功能性。

        操作性需求(Operational Requirements):与用户操作使用系统相关的一些需求。

        文化需求(Cultural Requirements):带有文化背景因素的系统需求。

        系统具有故障诊断和快速恢复能力属于操作性需求;用户界面支持用户的个性化定制文化需求。

2.5 六种质量属性对应的策略

(1)可用性
        错误检测:命令/响应,心跳机制,异常监控
        错误恢复:表决(裁决表),主动冗余,被动冗余,备件,状态再同步,检查点/回滚
        错误预防:从服务中删除,事物(要么全成功,要么全失败),定期重置,进程监视器
(2)可修改性
        局部化修改:维持语义的一致性,预期期望的变更,泛化该模块,限制可能的选择
        防止连锁反应:信息隐藏,维持现有的接口,限制通信路径,仲裁者的使用
        推迟绑定时间:运行时注册,配置文件,多态,构件更换
(3)性能
        资源需求:减少处理时间所需的资源,减少所处理事件的数量,控制资源使用,限制执行时间
        资源管理:引入并发,维持数据或计算的多个副本,增加可用资源
        资源仲裁:先进/先出,固定优先级,动态优先级调度,静态调度
(4)安全性
        抵抗攻击:对用户进行身份验证,对用户进行授权,维护数据的机密性,维护完整性,限制暴露的信息,限制访问
        检测攻击:部署入侵检测系统
        从攻击中恢复:恢复,识别攻击
(5)可测试性
        输入/输出:记录/回放,将接口—实现分离,优化访问线路/接口
        内部监控:当监视器处于激活状态时,记录事件
(6)易用性
        运行时:任务模型,用户模型,系统模型
        设计:将用户接口与应用的其余部分分离
        支持用户主动:支持用户主动操作

专栏系列文章推荐: 

2024高级系统架构设计师备考资料(高频考点&真题&经验)icon-default.png?t=N7T8https://blog.csdn.net/seeker1994/category_12593400.html

【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-先导篇)

案例分析篇08:Web架构设计相关20个考点(2024年软考高级系统架构设计师冲刺知识点总结)

案例分析篇11:UML设计考点(2024年软考系列-高级系统架构设计师冲刺知识点总结)

......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风浪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值