随着软件系统规模和复杂性的不断增大,为保证软件质量,提高软件可靠性、可重用性和可维护性,软件设计的核心已从“算法+ 数据结构= 程序”的传统计算模式转向对系统的总体结构即软件体系结构(Software Architecture,SA) 的设计和规范。这类方法主要着眼于软件系统的全局组织形式,在更高层次上把握系统各组件之间的内在联系。并从全局的、整体的角度去理解和分析整个系统的行为和特性,有助于解决当前开发复杂的大型软件所存在的困难。
软件体系结构的概念最初在1968 年被提出的,它要求人们应更加关注软件是如何分解与组合的,而不仅限于编程,这样将更有利于软件的开发与维护。目前软件体系结构已发展为软件工程领域的一个独立的分支,是软件工程的一个新的研究方向。
软件体系结构到现在还没有一个标准的定义,这里有一个相对被广泛接受的定义,(D. Garlan &M. Shaw ,1993) 软件体系结构是软件设计过程中的一个层次,在计算过程中的算法设计和数据结构之上,