【软件架构】01-架构的概述

1、定义

软件架构就是软件的顶层结构

RUP(统一过程开发)4 + 1 视图

1)逻辑视图:

描述系统的功能、组件和它们之间的关系。它主要关注系统的静态结构,包括类、接口、包、模块等,并用于表示系统的组织结构、模块划分和关系

2)开发视图:

描述系统的软件开发过程。它关注软件的开发、构建和部署过程,包括开发环境、版本控制、构建工具、编译器等,并用于表示系统的开发工程、构建过程和开发环境。

3)进程视图:

描述系统的并发性和分布性。它关注系统在运行时的行为,包括系统的运行时进程、线程、节点、通信方式等,并用于表示系统的并发性、分布性、通信和同步方式

4)物理视图:

描述系统的部署和配置。它关注系统在物理计算资源上的部署,包括硬件、网络、服务器、存储等,并用于表示系统的部署拓扑、配置和资源分配

5)场景视图:

描述系统在不同情景下的使用场景。它关注系统的用例、用户交互和系统行为,包括用户界面、用例场景、用户需求等,并用于表示系统的功能需求、用户交互和系统行为

以下引入网络图片

2、架构设计的目的

解决因软件系统的复杂度所带来的问题

考虑 时间、成本、质量 因素

设计过程中遵循:简单、合适、演进原则

将性能、可用性、可扩展性、安全等问题考虑到软件的实际需求中。

架构即决策。架构需要面向业务需求,在各种资源(人、财、物、时、事)约束条件下去做权衡、取舍。而决策就会存在不确定性。采用一些高屋建瓴的设计原则有助于去消除不确定,去逼近解决问题的最优解。

相关推荐
zandy10111 小时前
HENGSHI SENSE异构过滤架构:基于三层执行引擎的跨源联邦查询性能优化实践
性能优化·架构·agentic bi·异构结构
brzhang2 小时前
我用 Flutter 做了个小游戏,结果发现这玩意有点意思
前端·后端·架构
用户6387994773052 小时前
我把我的 monorepo 迁移到 Bun,这是我的真实反馈
javascript·架构
brzhang2 小时前
用 Vue 写原生 iOS/Android 应用,我发现这个库比 uni 要轻量且靠谱些
前端·后端·架构
Value_Think_Power2 小时前
golang struct 里组合interface 可以解决什么问题
架构
my91115263 小时前
地平线征程6芯片深度解析2:BPU 纳什架构如何重构智能驾驶计算范式
重构·架构
博一波3 小时前
软考架构-架构风格
架构
zandy10113 小时前
HENGSHI SENSE 6.0技术白皮书:基于HQL语义层的Agentic BI动态计算引擎架构解析
架构·大模型·chatbi·hengshi sense·agentic bi
送秋三十五3 小时前
Docker 构建教程:学习上下文、架构和性能优化技术
学习·docker·架构
1candobetter3 小时前
JAVA后端开发——软件分层架构中的“管道井”原则
java·开发语言·架构