软件构造复习1--软件构造中的多维视图

1-1 Multi-Dimensional Views of Software Construction

可以从三个角度看待软件构造

1.时间维度

Moment

从瞬时的角度看待软件

Period

从周期的角度看待软件 即软件的变化

2.编码维度

Build-time

开发阶段:程序员编写代码

Run-time

运行阶段:代码与系统的交互

3.代码-模块维度

Code-level

Source-code Interface Method Class

Component

更加宏观的角度 Package File
软件构造复习1--软件构造中的多维视图

下面分情况考虑软件构造的不同维度

1.1 Build-time,Moment,and code-level

词汇层面

语法层面

算法的流程
[AST:结构化,将源代码变成结构树 Abstract Syntax Tree]

语义层面

不同部分之间的联系–类与类之间的关系
图形化或形式化
了解UML语言

1.2 Build-time,Period,and code-level

Code churn 代码变化 版本控制 github+git

1.3 Build-time,Moment,and component-level

组织程序文件
可以采用库函数的方式去组织

Link

Static Link

构造阶段:库被拷贝进代码形成整体
优点:执行时无需提供库文件
缺点:无法升级

Dynamic Link

针对静态链接的缺点产生
库文件不会在build阶段加入可执行软件,仅做出标记
程序执行时,根据标记装载库至内存

1.4 Build-time,Moment,and component-level

软件实体随时间进行变化—Version 版本

2.Run-time

程序被载入目标机器,开始执行

Executable programs

解释型程序:执行一行编译一行
可以移植性好
软件构造复习1--软件构造中的多维视图

Libraries

库 复用代码

Configuration and data file

配置文件

Distributed programs

分布式程序

Transformation between views

不同视图之间的联系

软件构造复习1--软件构造中的多维视图

软件构造复习1--软件构造中的多维视图