第一章 多维度的软件构造
1.1Multi-dimensional software views
- By phases: build- and run-time views(按阶段:构建和运行时视图)
- By dynamics: moment and period views(按动态:时刻和时段视图)
- By levels: code and component views(按级别:代码和组件视图)
1.1.1软件
软件系统的组成:
软件的各种视图:
Build-time views
下图是Build-time views的一个流程
对于
- Moment view: 特定时间节点的属性
- Code-level view: 有效代码,如函数,类,接口等等
- Component-level view:结构,如文件,包,库等等
- Period view:一段时间的变化情况
- Code-level view: 代码的增删改动
- Component-level view:工程的版本更替
Runtime Views
Runtime Views研究当程序在目标计算机中运行时,它看起来是什么样子的,目标计算机需要将哪些磁盘文件加载到内存中。
无论对于Code-level view还是Component-level view,在运行时的视图都是检测相似的东西
- Code-level view:可执行程序的内存状态是什么样子的?程序单元(对象、函数等)如何相互作用
- Component-level view:软件包如何部署到物理环境(操作系统、网络、硬件等)中,以及它们如何交互
下面是其直观体现
- Moment view: 特定时间节点的属性
- Code-level view: Code Snapshot,Memory dump等
- Component-level view: 库,包,链接,数据库,中间件,网络 和硬件的属性
- Period view:一段时间的变化情况
- Code-level view: 执行跟踪
- Component-level view:日志
1.2Elements, relations, and models of each view
Elements, relations, and models of each view(每个视图的元素、关系和模型)