软件应用程序体系结构是定义一个满足所有技术与经营需求的结构化解决方案的过程。同时也
要优化诸如性能,安全,可管理性等公共的质量特性。它涉及一系列基于大量因素的决策,并且每个
决策对质量,性能,可维护性及应用程序的全面成功有重大影响。

     Philippe Kruchten, Grady Booch, Kurt Bittner与Rich Reitman基于Mary Shaw与David
Garlan的作品,引申与完善了体系结构的定义。他们的定义的是:
     软件体系结构包括一组有关软件系统组织的重大决策。而软件系统组织又包括结构化元素的选择
及组成系统的元素接口,元素间协作时的特定行为,组成更大子系统的结构化的行为元素的组合以及指
导这个组织的体系结构风格。软件体系结构也涉及功能,可用性,还原能力(resilience),性能,重
用(reuse),可理解性(comprehensibility),经济与技术约束,权衡(tradeoffs)与审美关切(aesthetic
concerns).

     在<<企业应用程序体系结构模式>>一书中,Martin Fowler总结了当解释体系结构时重现的公共
主题。他确定了如下的主题:
     对系统的最高层分解;难于更改的决策;在一个系统中有多个体系结构;系统生命期内能改变的
重要体系结构方面的东西;归根结底,体系结构是任何重要的东西。

     在<<软件体系结构实践>>(第二版)一书中,Bass, Clements与Kazman将体系结构定义为:
     一个程序或计算系统的软件体系结构是系统的一个或多个结构,这些结构由软件元素,这些元素
的外部可见属性以及这些元素的相互关系组成。体系结构关注接口的公共部分,元素的内部细节(只与
内部实现有关),而这些不属于体系结构。