论坛首页 入门技术论坛

软件架构的六个定义

浏览 1511 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-17  
   架构,从字面上很容易联想到建筑学中的构建蓝图,不过他是相对稳定的,而软件中的架构是需要不断演进的动态过程。软件架构是对系统构件及其交互关系的高层抽象描述,是软件系统的蓝图和整体结构,用于指导后续的设计与开发,以使抽象具体化。软件架构一直没有一个确切的定义,但是,普遍认为软件架构是一种关注和描述软件系统整体组织结构和性能的抽象系统机制,为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成   
    虽然软件系结构的概念早在20世纪80年代就已经提出,但真正引起关注和重视是在90年代。
    1992年,Ikwayne Perry和Ales Wolf定义:软件体系结构={元素,形式,准则}。软件体系结构是由具有特定形式的体系结构元素或设计元素构成,包括处理元素、数据元素和连接元素。处理元素负责对数据进行加工,数据元素是被加工的信息连接元素把体系结构的不同部分组合连接起来。软件体系结构形式由专有特性和关系组成。而在多个体系结构方案中选择合适的体系结构方案往往基于一组

准则。这一定义注重区分处理元素、数据元素和连接元素,这一方法在其它的定义和方法中基本上得到保持。
    1993年 DavidW an和MaryS haw提出:软件体系结构=}组件,连接件,约束}。组件可以是一组代
码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程调用等,用于表示组件之间的相互作用。一个软件体系结构还包括某些约束,约束一般为对象连接时的规则或指明连接的势态和条件。软件体系结构是设计过程的一个层次,它处理那些超越算法和数据结构的设计,研究整体结构设计和描述方法。
    1994年 , Bass等人提出:体系结构设计至少应包括应用领域的功能分割、系统结构、结构的领域功能分配三个方面。
    1995年 , DavidG arlan和MaryS haw修正定义:软件体系结构包括系统组件的结构、组件的相互关系以及控制组件设计演化的原则和指导三个方面。
    1996 年 ,Kmchten指出,软件体系结构有四个角度:概念角度、模块角度、运行角度和代码角度。概念角度描述系统的主要组件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述一个系统的动态结构;代码角度描述各种代码和库函数在开发环境中的组织。
    1997年 , Bass,Cl ements和KazTnan提出:软件体系结构包括组件、组件的外部可见性以及相互的关系。其中软件组件的外部可见性是指软件组件提供的服务、性能、特性、共享资源使用等。该定义强调体系结构分析需要从系统中抽象出用于分析、决策的信息。概括各种不同观点,可发现它们都支持这样的观点,即:软件体系结构包括系统总体组织、全局控制、通信技术、同步、数据存取、设计元素的功能、组织、规模、性能、设计方案的选择。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics