潜鱼在渊

Concentrating on Architectures.

posts - 77, comments - 309, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

What is architecture?

Posted on 2005-12-26 23:55 非鱼 阅读(3210) 评论(3)  编辑  收藏 所属分类: 面向对象设计
    关于架构的定义非常多,它们互相接近,但又有细微的差别。这些定义都基于系统来描述的。所以要理解架构,首先要理解系统的定义。

    系统定义为由一组不同的元素相互连接或关联以提供其单独不能提供的独特功能(Eberhardt Rechtin)。IEEE扩展了这个定义:系统是一组组件组织起来完成一个或一组特别的功能(IEEE Std. 610.12-1990)。

    架构是一个系统的基础组织,包括其组件,组件之间的关系,组件和外界环境之间的关系,以及指导这些 组件设计、演化的原则。(The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. IEEE Std 1471-2000)

    不同的受益人从不同的视点(Viewpoint)看待架构,这导致了架构的描述必定具有不同的视图。不同的架构方法(如Rose 4+1 View、RM-ODP参考模型)都对不同的视图提供了支持。而在企业级应用中,也是根据不同的Viewpoint把企业应用架构分成业务架构 (Business Architecture)、IT技术架构(Information Technology Architecture)、信息架构(Information Architecture)和应用架构(Application Architecture)。就其根本来说是一样的,都是从不同的Viewpoint出发,来描述整个架构。下面是RM-ODP中的不同视图和企业架构中 的分类对应:

    Enterprise Viewpoint <---> Business Architecture
    Computional Viewpoint <---> Application Architecture
    Information Viewpoint <---> Information Architecture
    Technology Viewpoint <---> Information Technology Architecture               
    Engineering Viewpoint <---> Information Technology Architecture

    上述两种虽然形式有所差别,但内容上是比较一致的。而且,其基本要求都是各ViewPoint互相之间描述一致,不得有冲突。

    我们通常说到架构时,往往偏向Computional, Information和Technology方面。最近以来,似乎有更加偏向Technology的趋势,这不是一个好现象。

    关于系统、架构的其他定义:

    系统:

    UML 1.3: A system is a collection of connected units that are organized to accomplish
a specific purpose. A system can be described by one or more models, possibly from
different viewpoints.

    架构:

    Dewayne E. Perry and Alexander L. Wolf: software architecture is a set of architectural (or, if you will, design) elements that have a particular form. We distinguish three different classes of architectural element: processing elements; data elements; and connecting elements.

    Garlan and Perry: The structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time.

    Boosch: Software architecture encompasses the set of significant decisions about the organization of a software system
    • selection of the structural elements and their interfaces by which a system is composed
    • behavior as specified in collaborations among those elements
    • composition of these structural and behavioral elements into larger subsystem

    Bass, Clements, and Kazman: The software architecture of a program or computing system is the structure or structures of the system, which comprise
  • software components
  • the externally visible properties of those components,
  • and the relationships among them.”
   

评论

# re: What is architecture?  回复  更多评论   

2005-12-27 11:17 by wfeng007
我也寒一下。。。。。。。。。。。。。。。看来你学到了模式的精髓了。。。。。

# re: What is architecture?  回复  更多评论   

2005-12-27 20:02 by 非鱼
@wfeng007

不明白。

# re: What is architecture?  回复  更多评论   

2007-05-14 08:45 by flyingfish
这里讲的又是更偏向于技术了。

只有注册用户登录后才能发表评论。


网站导航: