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

1、定义

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

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

1)逻辑视图:

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

2)开发视图:

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

3)进程视图:

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

4)物理视图:

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

5)场景视图:

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

以下引入网络图片

2、架构设计的目的

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

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

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

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

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

相关推荐
TracyCoder12319 分钟前
解读华为云Redis Proxy集群规格:架构、规格与带宽性能
redis·架构·华为云
SmartBrain33 分钟前
OCR 模型在医疗场景的选型研究
人工智能·算法·语言模型·架构·aigc·ocr
老百姓懂点AI1 小时前
[RAG架构] 拒绝向量检索幻觉:智能体来了(西南总部)AI agent指挥官的GraphRAG实战与AI调度官的混合索引策略
人工智能·架构
eso19831 小时前
如何确保程序化广告系统中微服务架构的高可用性和可扩展性?
微服务·云原生·架构
Gofarlic_oms11 小时前
通过Kisssoft API接口实现许可证管理自动化集成
大数据·运维·人工智能·分布式·架构·自动化
逻极2 小时前
OpenClaw「Clawdbot/Moltbot」 深入解析:核心架构深度剖析
python·ai·架构·agent·ai编程·moltbot·openclaw
pcm1235673 小时前
设计C/S架构的IM通信软件(3)
java·c语言·架构
岁岁种桃花儿3 小时前
深度解析DolphinScheduler核心架构:去中心化调度的设计与实践
架构·去中心化·区块链
hellojackjiang20113 小时前
如何保障分布式IM聊天系统的消息可靠性(即消息不丢)
分布式·网络安全·架构·信息与通信