zoukankan      html  css  js  c++  java
  • 画架构图

    首先贴一个知乎上的答案:

    作者:禚娴静
    链接:https://www.zhihu.com/question/27440059/answer/68649917
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    软件架构是一种无法以简单的一维方式进行说明的复杂实体。
    -Paul Clements 《软件架构编档》
    正如上面提到的,不同的受众,比如用户、客户、开发人员、测试人员、运维人员,需要从各自工作的角度去理解和使用架构。所以回答这个问题,需要首先了解这幅架构图画出来是给谁看,你想从那个维度去入手。
    确定了这个问题之后,再来了解架构视图有哪些维度和组成要素:
    1. 架构视图
    最经典的当属4+1视图:
    • 逻辑视图
    • 开发视图
    • 过程视图
    • 物理视图
    • 场景视图

    4+1视图提出后,业界也有其它的观点提出,诸如SEI(模块视图、组建和连接件视图、分配视图)、西门子4种视图(概念、模块、代码、执行视图)、以及RM-ODP(企业视图、信息视图、计算视图、工程师图)等。
    常见的视图除了上述4+1视图外还包括:数据视图、安全视图、实现视图等。

    2. 了解架构视图的四要素
    • 图示化主要元素和元素之间的关系
    • 具有明确的图例、定义和说明元素
    • 每个元素具备明确的接口和行为规范
    • 设计原理和设计决策的信息

    3. 简单说一下几个视图针对的角色和维度:
    逻辑视图一般针对客户、用户、业务人员、开发组织,主要从系统的功能元素、以及它们的接口、职责、交互维度入手。主要元素包括系统、子系统、功能模块、子功能模块、接口等。

    开发视图一般针对开发和测试相关人员,主要描述系统如何开发实现;主要元素包括描述系统的分层、分区、框架、系统通用服务、业务通用服务、类和接口、系统平台和大基础框架。用途是知道开发设计和实现。

    物理视图一般针对系统运维人员、集成人员,它是系统逻辑组件到物理节点的映射,节点与节点间的物理网络配置等,主要关注非功能性需求,诸如性能(吞吐量)、可伸缩性、可靠性,可用性等,从而得出相关的物理部署结构图。

    4. 写在最后
    了解这些,确定了你的受众和切入的维度后,你就可以决定你要用什么样的视图和视图组合来表达你的内容,挑选一个你得心应手的工具去实施就可以了。
    在我看来,用白板和团队一起画出来是一件极美的好玩的事情。

    个人观点,仅供参考。
     
     
     
    不同的视图是针对不同的受众。
     
     关于画图工具有一个phodal的文章:https://github.com/phodal/articles/issues/18。
     
    Graphviz是一个我比较心仪的工具,因为可以从一个文本来生成图形,但是我想要一个可以点击的node,这个还真没有:
     
    浏览了phodal的选项,只剩下D3.js可以实现了。
     
     
     
  • 相关阅读:
    列举ASP.NET 页面之间传递值的几种方式
    SQL Server 2010附加数据库失败:无法打开物理文件拒绝访问解决方法
    运行出现错误是:未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600,找不到它的依赖项,并且问题出现在web.config里面
    快捷键
    VS中出现无法嵌入互操作类型
    Java模拟试题(2015-9-2)
    IDEA 的配置文件导入命名空间
    第四章、程序计数器
    IDEA建Mappper.xml
    第三章、运行时数据区概述及线程
  • 原文地址:https://www.cnblogs.com/evanxyhu/p/architect-diagram.html
Copyright © 2011-2022 走看看