软件系统有三个相互正交的三个维度
- 按阶段划分:构造时/运行时视图 Build-time/Run-time
- 按动态性划分:时刻/阶段视图 Moment/Period
- 按构造对象的层次划分:代码/模块视图 Code-level/Component-level
软件构造的过程伴随着视图的转换
Build-time视图
-
Build-time, Moment, and Code-level view
代码的逻辑结构- 词汇层面(源代码) - 语法层面(抽象语法树) - 语义层面(类图)
-
Build-time, Moment, and Component-level view
代码的文件结构- 源文件 - 库 - 包 - 测试用例
-
Build-time, Period, and Code-level view
代码的变化 -
Build-time, Period, and Component-level view
版本更新,配置项更变
Runtime-time视图
- Run-time, Moment, and Code-level view
刻画程序运行时内存及变量的状态 - Run-time, Moment, and Component-level view
刻画程序运行时的结构,如部署图,展示硬件的配置及其软件如何部署到网络结构中,常用来帮助理解分布式系统 - Run-time, Period, and Code-level view
刻画程序运行时的各部分调用顺序以及线程相关,如栈轨迹 - Build-time, Period, and Component-level view
刻画程序运行时的事件流以及进程相关(系统层面),如事件日志