软件的多维视图:
软件系统主要有三个维度:
1.By phases:build-time and run-time views
2.By dynamics:moment and period views
3.By levels:code and component views
1.Build-time and run-time views
(1)build-time view :
idea => requirement => design => code => installable / executable package
简单翻译为构造阶段视图,从想法到需求到设到代码到安装/可执行,都属于构造阶段
从code-level来看,build-time view以为着代码的逻辑组织,源代码是如何通过诸如functions,classes,methods,interfaces等基本代码块有逻辑的组织起来,以及相互之间的依赖关系。
从component-level来看,build-time views意味着代码的物理组织,源代码是如何通过files,directories,packages,libraries组织起来,以及相互之间的依赖关系。
从moment-view来看,build-time view意味着特定时刻的软件形态。
从period-view来看,build-time views意味着软件形态随时间的变化
(2)run-time views:运行阶段视图
关注当你的程序在目标机器中运行时表现如何,以及在运行时目标机器要将哪些磁盘文件存入内存等等的问题。
从code-level来看,run-time views意味着一共可执行程序在内存中的状态以程序内部各个单元间(如objects和functions等)如何相互调用。
从component-level来看,意味着软件包是如何部署到具体的物理环境中(如操作系统,网络,硬件等),以及他们之间如何相互作用。
从moment-view来看,意味着一共程序在特定时刻的表现。
从period-view来看,意味着程序随时间变化的一系列表现,包括过程调用图(procedure call graph),消息图(序列图)(massage graph(sequence diagram)),并行和多线程/进程(parallel and multithreads/processes),分布式进程(distributed processes)等。
2.Moment and period views
moment view 简单翻译为特定时刻视图,period view简单翻译为阶段视图,moment着眼于软件在某一个特定时刻的表现或者组织结构,period着眼于软件在某一个阶段一系列的表现变化或者组织结构的变化。
3.Code and Component views
code views为代码视图,component为组件视图。code着眼于程序本身,包括程序自身的逻辑组织以及程序在内存中的状态。component着眼于程序的外部物理环境,包括程序的物理组织以及程序是如何部署到不同的物理环境中的。