软件架构的一般设计过程:先进行概念性架构的设计,把最关键的设计要素和交互机制确定,然后在考虑具体技术的应用,设计出实际架构。
什么是概念性架构?
概念性架构的特点:
通过主要的设计元素以及它们之间的关系来描述系统。
符合软件架构的特点:架构= 组件+ 交互。
往往是粗粒度的。
包括一些高层次的决策,对将来系统的扩展和维护非常重要。
重在说明关键的机制。
属于最初的架构设计成果。
软件概念性架构和敏捷开发中的隐喻很像,都是一种对软件系统非常宽泛的描述,是一种软件系统涉及到的人员,包括开发人员和客户,进行交流时的一种途径和方式。
概念性架构属于高度抽象情况下的产物,所以不会体现出某一特定系统的个性化,这也是同一类型的很多产品的概念性架构都趋同的原因。
概念性架构往往与具体技术的运用和具体平台的选择没有关系,而实际架构则非常关心这些问题。
从概念性架构到实际架构,概念性架构是不可能直接实现的,开发人员还需要关注以下几点:
1. 接口。概念性架构中没有接口的概念,只是抽象的组件和组件之间的交互。
2. 子系统。概念性架构中只有抽象的组件,这些组件没有接口之友职责,一般是处理组件、数据组件或者连接组件的一种。
3. 交互机制。实际架构中的交互机制是‘实在’的,例如通过接口、回调等,而概念性架构中的交互机制是‘概念化’的,例如‘A层使用B层的服务’,而所谓的‘使用’,并没有指明采取哪种方式。
参考文献
《软件架构设计》 温昱