软件架构主要涉及以下几个方面:
系统形态
包括CS(客户端-服务器)、BS(浏览器-服务器)、原生移动端、分布式、同步异步等。
软件系统结构
包含软件的组件、分层结构、组件之间的交互方式等。
技术选择
编程语言(如Java、C++、Python)、部署平台(如Linux、Windows)等。
框架选择
如Web MVC、ORM框架等。
设计方法与模式
包括编写代码(如架构原型、框架、基础代码编写)和代码评审。
逻辑架构
描述软件系统中的各个元件之间的关系,例如外部接口、软件界面、业务功能模块、数据库等。
物理架构
描述软件元件在硬件系统中的位置,例如分布式系统的物理架构。
系统架构
涉及业务架构和软件架构,业务架构描述业务领域的主要业务模块及其组织结构,软件架构则是对软件结构的规划和各模块或子系统的职责设定。
软件架构的六个方面
包括稳定性、高性能、一致性、扩展性、观察性和安全性,每个方面包含具体的内容,如稳定性涉及异步、调度、容错等。
架构风格
包括层次结构、客户端-服务器、发布-订阅、管道-过滤器、微服务等。
模块化设计
将系统分解为独立的模块或组件,并定义它们之间的接口和交互方式。
分层结构
将系统分解为多个层次,每个层次负责不同的功能和责任,常见的分层结构包括表示层、业务逻辑层和数据访问层。
服务导向架构(SOA)
将系统分解为独立的服务,并通过服务接口进行通信。
容器化和微服务
将系统拆分为多个微小的服务,并通过容器进行部署和管理。
应用架构设计步骤
根据业务架构,将业务需求转化为IT系统,识别核心应用服务,划分应用结构,设计应用结构与业务流程、数据之间的关系。
这些内容构成了软件架构的主要框架和要点,有助于指导大型软件系统的设计、实现和维护。