本章小结:
1.1软件构造的多维度视角
描述软件构造的三个维度:
——阶段:build-time || run-time
——动态:moment || period
——级别: code || component
软件系统的构成要素:
——软件=程序(代码)?
——软件=算法+数据结构?
——软件=程序+数据+文档?
——软件=模块(组件)+数据/控制流?
软件构造的多维度视角:
》》Build-time(构造阶段)
构造阶段:想法->需求->设计->代码->可安装/可执行的包
Code-level(代码级别):源代码,主要是源代码各个模块的逻辑组织:函数,方法,类,接口
Component-level(组件级别):源代码的物理组织:文件,目录,包,库
Moment view(时刻):特定时刻软件的状态
Period view(时期):软件状态在一段时间的变化
1.Build-time,Moment,Code-level(代码组织结构)
——词汇层面:从每个用词考虑
——语法层面:抽象语法树(AST)
——语义层面:类图
2.Build-time,Period,Code-level(代码一段时期内的变化)
比如行数的增加,对文件的修改和删除
3.Build-time,Moment,Component-level(代码的物理结构)
源代码被存入文件之后被组织成目录;文件被封装在包里面,逻辑上进入组件和子系统;可重用的模块以库的形式存在,库有多种来源,操作系统、编程语言、第三方、你自己
——静态链接:发生在构造阶段,库直接被靠拷贝进入代码形成整体
——动态链接:在构造阶段仅仅做出标记,不加入可执行文件;程序运行时再进入内存;使得库可以更新版本;多个程序可以只复制一份库进入内存
4.Build-time,Period,Component-level(软件版本变化)
——SCI(软件配置项&