什么是软件架构

    首先,架构很难被定义.
    Martin Fowler是敏捷开发方法的创始人之一,被开发者们尊为"教父"级人物.
    软件业的人乐于做这样的事--找一些词汇,并将它们引申到大量微妙而有相互矛盾的含义中.一个最大的受害者就是"架构"这个词.

    其次,组成派.
    Mary Shaw,卡耐基梅隆大学软件工程研究所,是软件架构领域的先驱.
    以Mary Shaw为代表的组成派,对架构是这样定义:软件架构是将系统描述成计算组件及组件之间的交互.
    架构=组件+交互

    第三,决策派.
    Grady Booch,James Rumbaugh和Ivar Jacobson是UML的创始人,均为软件工程界的权威,三人被合称为"UML三友".
    架构是一系列重要决策的集合.
    这些决策与以下内容有关:
    a.软件的组织;
    b.构成系统的结构元素及其接口的选择;
    c.这些元素在相互协调中明确表现出的行为;
    d.这些结构元素和行为元素进一步组合所构成的更大规模的子系统;
    e.以及指导这一组织,包括这些元素及其接口,它们的协作和它们的组合--架构风格.

    架构 = 重要决策集

    第四,组成派 vs 决策派
    组成派的观点更关注软件,倾向于组件+交互的思想
    决策派的观点更关注人,倾向于重大决策集合的思想,除了结构和行为,还关注一些非功能的因素.   

   

   

   

   22-06-18

posted @ 2022-05-31 08:45  halfway2  阅读(287)  评论(0)    收藏  举报