关于软件构造的三维度八视图
三维度:
Build-time(构造阶段):idea→ requirement→design→ code→installable/executable package
Code-level view: source code–how source code are logically organized by basic program blocks such as functions,classes,methods,interfaces, etc,and the dependencies among them 代码的逻辑组织
Component-level view: architecture-- how source code are physically organized by files,directories,packages, libraries, and the dependencies among them代码的物理组织
Moment view: what do source code and component look like in a specific time 特定时刻的软件形态
Period view: how do they evolve/change along with time软件形态随时间的变化
Runtime: what does a program look like when it runs inside the target machine, and what are all the disk files that the target machine needs to load into memory?运行时:程序被载入目标机器,开始执行
Code-level view: source code-- what do the in-memory states of an executable program look like and how do program units (objects, functions,etc)interact with each other?代码层面:逻辑实体在内存中如何呈现?
Component-level view: architecture — how are software packages deployed into physical environment (OS, network, hardware, etc)and how do they interact?构件层面:物理实体在物理硬件环境中如何呈现?
Moment view: how do programs behave in a specific time逻辑/物理实体在内存/硬件环境中特定时刻的形态如何?
Period view:how do they behave along with time 逻辑/物理实体在内存/硬件环境中的形态随时间如何变化?
八视图
有一些已经了解过的不再赘述,这里记录一些我之前不太熟悉的
Code churn:代码变化,代码行的变化之类的 因为是变化所以period 因为代码行,所以是codelevel,因为还没到运行阶段还是构建阶段
Memory dump:内存信息转储 包含了运行时候的正在与运行的程序还有寄存器堆栈等情况,所以runtime,而且是某一个时刻的moment 而且是代码层面不是其他物理实体。
Execution stack trace:执行追踪,记录程序执行调用次序,运行时,代码层面,一个时间段的period
Event log:系统层面的事件日志,运行时,period,组件
Concurrent multi-threads:多线程情况,运行时,period,代码层面
Multi-processes distributed processes:多进程情况,运行时,period,组件层面