一个视图中的组件,可能是另一个视图中一个组件的一个部分。
软件架构常常表现为分层的层次结构,这种层次结构将几种不同的结构放在一张图中。20世纪70年代,Parnas指出“层次结构”这个术语已经被滥用,然后精确地定义了它, 并给出了几个不同结构的例子,它们在设计不同系统时实现了不同的目的(Parnas 1974)。将架构的结构描述为一组视图(view),每个视图关注不同的部分,现在已成为了广泛接受的标准架构实践(Clements等2003; IEEE 2000)。我们将使用“架构”这个词来代指一组有标注的图纸和功能描述,它说明了设计和构建一个系统时所使用的结构。在软 件开发社区中,针对这样的图纸和描述,人们使用并建议了许多不同的形式。在Hoffman和Weiss(2000,第14章和第16章)的著作中可以看到一些例子。
一个程序或计算系统的软件架构是系统的一种结构或一组结构,它包含软件元素、这些元素的外部可见的属性,以及元素之间的关系。“外部可见”的属性是其他元素对该元素可以做出的假定,诸如它提供的服务、执行时的特征、错误处理、共享资源的使用等。
—Len Bass、Paul Clements和Rick Kazman
《Software Architecture in Practice, Second Edition》