zoukankan      html  css  js  c++  java
  • 转:软件架构分解

    原文来自于:http://www.infoq.com/cn/news/2014/03/linkedin-log-arch-weekly

    对复杂的大规模软件系统,软件架构分解是架构设计中必不可少的关键步骤。通过分解识别架构元素,同时也是解决非功能需求的重要手段之一。好易科技CTO王国波在“软件架构分解”一文中从架构的定义出发,对架构形而上的本质给出了自己独特的理解。在架构设计上提出了架构分解过程模型和多维度多层次分解模型。他总结的架构分解原则包括:

    • 低耦合、高内聚:莱布尼兹指出:“分解的主要难点在于怎么分。分解策略之一是按容易求解的方式来分,之二是在弱耦合处下手,切断联系”。在弱耦合处下手,切断联系。太精辟了!高内聚、低耦合也是软件设计的基本原则,软件设计中的很多设计原则其实都可以认为它的派生或具体化,如单一职责原则、依赖倒置原则、模块化封装原则,这些原则在架构分解中也是适用的。
    • 层次性:分解通常是先业务后技术,循序渐进,先逻辑后物理,从上到下逐级进行分解展开:系统->子系统->模块->组件->类。
    • 正交原则:和物理学中的正交分解类似,架构分解出的架构元素应是相互独立的,在职责上没有重叠。
    • 抽象原则:架构元素识别,在较大程度上是架构师抽象思维的结果,架构师应该具备在抽象概念层面进行架构构思和架构分解的能力。
    • 稳定性原则:将稳定部分和易变部分分解为不同的架构元素,稳定部分不应依赖易变部分。根据稳定性原则,将通用部分和专用部分分解为不同的元素;将动态部分和静态部分分解为不同的元素;将机制和策略分离为不同的元素;将应用和服务分离。
    • 复用性原则:就是对知识的重用.重用类似系统已有的架构设计、设计经验、成熟的架构模式或参考模型、设计模式、领域模型、架构思想等,因为它们已经在不同的层次上分解识别出了许多架构元素,或者指出了一些分解方向,对我们的架构分解具有借鉴和指导作用。例如 IBM SOA 解决方案参考模型对 SOA 服务化具有重要的指导意义,我们可以参照它对系统进行初步的架构分解。
  • 相关阅读:
    iOS 新浪微博-1.0框架搭建
    实体框架 Code First
    Autofac 依赖注入框架 使用
    Python3.4下使用sqlalchemy
    将做好的py文件打包成模块,供别人安装调用
    ORA-12541:TNS:no listener 客户端tnsnames.ora配置,以及服务端listener.ora配置
    ADO 连接数据库,取到VT_DATE型日期转换成 int型
    python中date、datetime、string的相互转换
    VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN
    Navicat Premium连接Oracle 问题汇总
  • 原文地址:https://www.cnblogs.com/guoyongrong/p/3604453.html
Copyright © 2011-2022 走看看