2024系统架构师---论软件系统架构风格

论软件系统架构风格

系统架构风格(System Architecture Style)是描述某一特定应用领域中系统组织方式的惯用模式架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的口软件系统架构风格反映了领域中众多软件系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。软件系统架构风格的共有部分可以使得不同系统共享同一个实现代码,系统能够按照常用的、规范化的方式来组织,便于不同设计者很容易地理解系统架构。

请以"软件系统架构风格"论题,依次从以下三个方面进行论述:

1.概要叙述你参与分析和开发的软件系统开发项目以及你所担任的主要工作。

2.分析软件系统开发中常用的软件系统架构风格有哪些?详细述每种风格的具体含义。

3.详细说明在你所参与的软件系统开发项目中,采用了哪种软件系统架。

理论素材准备
数据流风格

批处理序列:

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

管道-过滤器:

每个构件都有一组输入和输出,构件读取输入的数据流,经过内部处理,产生输出数据流。前一个构件的输出作为后一个构件的输入,前后数据流关联。过滤器就是构件,连接件就是管道。早期编译器就是采用的这种架构,要一步一步处理的,均可考虑此架构风格。二者区别在于批处理前后构件不一定有关联,并且是作为整体传递,即必须前一个执行完才能执行下一个。管道-过滤器是前一个输出作为后一个输入,前面执行到部分可以开始下一个的执行。

调用/返回风格主程序/子程序:

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

面向对象:

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

层次结构:

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

层次结构优点:

1、支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现。2、不同的层次处于不同的抽象级别,越靠近底层,抽象级别越高;越靠近顶层,抽象级别越低。3、由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持。

缺点:

1、并不是每个系统都可以很容易的划分为分层的模式。

2、很难找到一个合适的、正确的层次抽象方法。

相关推荐
caimouse9 小时前
ReactOS 图形系统架构分析
系统架构
黄俊懿1 天前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第三节:CDN扩展-多地址直连
网络·计算机网络·架构·系统架构·cdn·dns·架构设计
微三云 - 廖会灵 (私域系统开发)2 天前
抖店 OPC 自动化运营系统架构与商业代理分控体系完整解析
运维·系统架构·自动化
沫璃染墨2 天前
《Qt从零入门系列(一):Qt框架初识——从发展历史到跨平台开发》
c++·qt·系统架构·gui
微三云 - 廖会灵 (私域系统开发)2 天前
高并发私域团购系统架构实践:拆解良久团购模式下的五级分销与合规结算引擎
系统架构
youngerwang3 天前
【软件系统架构案例分析 Day 8】可用性战术:双活数据中心设计
系统架构·可用性战术·双活数据中心
youngerwang3 天前
【软件系统架构案例分析 Day 10】安全性战术:零信任架构在企业内网的应用
系统架构·零信任架构·安全性战术·企业内网intranet
ai_coder_ai3 天前
大模型应用系统架构设计及其应用
系统架构
郑州光合科技余经理4 天前
代驾系统架构拆解:订单链路、权限组织与私有化源码交付
开发语言·后端·算法·架构·系统架构·uni-app·php
BerryS3N4 天前
大模型 (LLM) 全栈技术深度解析与实战指南:从 Transformer 底层原理、三阶段训练范式到 RAG 与 Agent 系统架构
深度学习·系统架构·transformer