概览
描述一个软件系统的三个维度:
- 阶段:构建时/执行时
- 状态:时刻/一段时间
- 水平:代码/组件
多维度的软件视图
Software system =
- Programs(UI, Algorithms, Utilities, APIs, testcases, etc)
- Data(files, datebase, etc)
- Documents(需求规格说明SRS, 设计规格说明SDD,user manuals, etc)
Build-time视图
软件构建的核心过程和环节:
Build-time:idea->requirement->design->code->installable/executable package
Build-time, moment, and code-level view
在逻辑上代码是如何通过基本程序块组织的。
- 面向词法
- 面向语法
- 面向语意
Build-time, period, and code-level view
代码的变化
Build-time, moment, and component-level view
- 文件组织成目录
- 文件被封装成包、组件和子系统
- 可复用模块形成类库
Build-time, period, and component-level view
版本控制是给计算机软件的不同状态分配唯一的名字或者编号的过程
软件演化是指软件产生之后,由于不同的原因对其进行持续的升级过程。
Run-time视图
可执行程序:CPU可以执行的机器可读的指令序列,以及相关的数据。
类库:一些可以被不同的程序重复使用的代码集合。
Run-time, moment, and code-level view
刻画内存中某时刻变量的状态
Run-time, period and code-level view
程序中个部分的相互调用,如程序执行轨迹
Run-time, moment, and component-level view
程序的某个状态
Run-time, period, and component-level view
程序的事件日志