build-time views
idea =>requirement=>design=>code=>installable/executable package
代码层面:代码的逻辑组织
component层面:代码的物理组织
moment层面:特定时刻的软件形态
period层面:软件形态随时间的变化
Build-time, moment, and code-level view
如何使用基本程序块逻辑地组织源代码,如函数、类、方法、接口等,以及它们之间的依赖关系
源代码、语法分析树(AST)、接口、类、属性、方法、类视图
Build-time, period, and code-level view
代码变化(code churn)
Build-time, moment, and component-level view
包、文件、静态链接、build脚本、测试用例
源代码被组织成文件,这些文件进一步被目录组织
文件被封装到包中,逻辑上被装在组件和子系统中
可复用的模块在library中(library的来源有多种:os提供,编程语言提供,第三方公司提供,自己基类)
Build-time, period, and component-level view
关注的是各项软件实体随时间如何变化
SCI(配置项)、version
run-time views
运行时:程序被载入目标及其,开始执行
代码层面:逻辑尸体在内存中如何呈现
构件层面:物理实体在物理硬件环境中如何呈现
moment view:逻辑/物理实体在内存/硬件环境中特定时刻的形态如何
period view:逻辑/物理实体在内存/硬件环境中的形态随时间如何变化
Run-time, moment, and code-level view
代码快照图、内存转储文件
这些查看的都时某一时刻的信息
Run-time, period and code-level view
程序的执行栈追踪,也就是查看程序的执行顺序
Run-time, moment, and component-level view
动态链接、库、运行配置
UML中的部署图
Run-time, period, and component-level view
事件日志