软件构造多维视图

对软件构造多维视图的表格进行整理:

表格一共按照三个层次划分:

按照程序阶段划分,分为构造阶段(build-time)和运行阶段(run-time)

按照动态时间划分,分为时刻(moment)和时期(period)

按照层级划分,分为代码层级(code)和组件层级(component)

1. build-time
(1) build-time; moment; code-level
三种相互关联的形式

面向词法:半结构化源代码
面向词法:(AST抽象语法树)半结构化的源代码变成语法树(编译器能够处理)
面向词法:UML视图(通常是图形化或形式化的)
(2) build-time; period; code-level
Code churn(代码变化)

(3) build-time; moment; component-level
源代码如何组织成文件——通过类库
文件被压缩进package,逻辑上进入components(组件)and sub-systems(子系统)
链接技术(动态 / 静态)
Library

操作系统提供的库
编程语言提供的库
第三方公司提供的库
自己编写的库
链接:编程时和build时,需告诉IDE和JVM在哪里寻找某些库。

静态链接

库被拷贝进入代码形成整体,执行的时候无需提供库文件。
静态链接发生在构造阶段。
(4) build-time; period; component-level
配置项的更改
各项软件实体随时间如何变化
软件随时间变化的版本
版本控制(通过Git,SVN等等)

2. run-time
动态链接

库文件不会在build阶段被加入可执行软件,仅仅做出标记。
程序运行时,根据标记装载库至内存。
发布软件时,记得将程序所依赖的所有动态库都复制给用户。
分布式程序

需要多个运行程序,分别部署于多个计算机物理环境。
需要多端口或者多线程。
(5) run-time; moment; code-level
Code SnapShot(代码快照)
描述程序运行时内存里变量层面的状态。


Memory dump(内存信息转储)
常发生在异常退出时,把内存中信息写到文件中(常用来调试)。


(6) run-time, period and code-level view
Execution tracing(执行跟踪)
用日志方式记录程序执行的调用次序。


(7) run-time; moment; component-level
UML部署图

执行跟踪:根据跟踪日志里的信息进行调试或诊断软件问题。
(8) run-time; period; component-level
事件日志(系统层面)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值