软件构造复习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 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
解释型程序:执行一行编译一行
可以移植性好
Libraries
库 复用代码
Configuration and data file
配置文件
Distributed programs
分布式程序