软件架构(software archiecture)的一种定义是这样的:
架构是一组有关如下要素的重要决策:
软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素
和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和
组合方式)的架构风格的选择。
软件架构可以有多种定义,不管对软件架构如何定义,所有的定义都有一个共同的主题,那
就是必须考虑诸如原理、组织、风格、模式、职责、协作、连接、系统的动机和主要子系统等大
尺度方面的问题。
软件架构实际上是两个层面的事情,一个是设计构造一个完整的软件系统,这里的架构也称