架构之美第八章-软件架构的含义

来源:互联网 发布:淘宝爆款怎样打造爆款 编辑:程序博客网 时间:2024/04/29 06:56
  如果认为“架构”是一个简单的实体,能够用一份文档或一张图纸来描述,那就错了。架构师必须做出许多设计决定。要想有用,这些决定必须用文档记录下来,这样就能够
进行复审、讨论、修改和批准,然后作为后续决定和构建时的约束。对于软件系统,这些设计决定包括行为上的和结构上的。
        外部行为描述展示了产品如何与它的用户、其他系统和外部设备进行交互,这应该表现为需求。结构描述展示了产品如何划分为多个部分,以及这些部分之间的关系。我们还
需要内部行为描述,用于描述组件之间的交互接口。结构上的描述常常展示相同部分的一些不同视图,因为不可能把所有信息以有意义的方式组织到一张图纸或一份文档中。

一个视图中的组件,可能是另一个视图中一个组件的一个部分。

         软件架构常常表现为分层的层次结构,这种层次结构将几种不同的结构放在一张图中。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》
0 0
原创粉丝点击