从概念性架构到实际架构
软件架构的一般设计过程:先进行概念性架构的设计,把最关键的设计要素和交互机制确定,然后在考虑具体技术的应用,设计出实际架构。
什么是概念性架构?
概念性架构的特点:
通过主要的设计元素以及它们之间的关系来描述系统。
符合软件架构的特点:架构= 组件+ 交互。
往往是粗粒度的。
包括一些高层次的决策,对将来系统的扩展和维护非常重要。
重在说明关键的机制。
属于最初的架构设计成果。
软件概念性架构和敏捷开发中的隐喻很像,都是一种对软件系统非常宽泛的描述,是一种软件系统涉及到的人员,包括开发人员和客户,进行交流时的一种途径和方式。
概念性架构属于高度抽象情况下的产物,所以不会体现出某一特定系统的个性化,这也是同一类型的很多产品的概念性架构都趋同的原因。
概念性架构往往与具体技术的运用和具体平台的选择没有关系,而实际架构则非常关心这些问题。
从概念性架构到实际架构,概念性架构是不可能直接实现的,开发人员还需要关注以下几点:
1. 接口。概念性架构中没有接口的概念,只是抽象的组件和组件之间的交互。
2. 子系统。概念性架构中只有抽象的组件,这些组件没有接口之友职责,一般是处理组件、数据组件或者连接组件的一种。
3. 交互机制。实际架构中的交互机制是‘实在’的,例如通过接口、回调等,而概念性架构中的交互机制是‘概念化’的,例如‘A层使用B层的服务’,而所谓的‘使用’,并没有指明采取哪种方式。
参考文献
《软件架构设计》 温昱
作者:李潘
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通