提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
接下来我们进行软件构造第二章的学习
一、 Views and Quality Objectives of Software Construction
1.构建阶段
idea - requirement - design - code -
installable / executable package
1:代码的逻辑组织和代码的物理组织
2:特定时刻的软件形态和软件形态随时间的变化
(1)Build-time, moment, and code-level view
词汇层面,语法层面和语义层面
1)词汇层面
半结构化:近乎自然语言的风格+遵循特定的编程语法
前者:方便程序员
后者:方便编译器
2)语法层面
语法树(AST):方便我们的理解,将半结构化变为结构化
(彻底结构化,将源代码变为一棵树,对树做各种操作==对源代码的修改)
3)语义层面
通常是图形化或形式化,用于表达“需求”和“设计”思想,再转化成code
(2)Build-time, period, and code-level view
代码变化
(3)Build-time, moment, and component-level view
1)结构
▪ 源代码被物理组织成文件,这些文件进一步按目录组织;
▪ 文件被封装到包中,逻辑上是组件和子系统。
▪ 可重用模块以库的形式存在。
2)库
开发者像使用编程语言指令一样使用库中的功能
来源: 操作系统提供的库; 编程语言提供的库;第三方公司提供的库;你自己积累的库
3)链接库
编程时和build时,需告诉IDE和JVM在哪里寻找某些库
如:javac -classpath ./lib/*.jar
①静态链接
库被拷贝进入代码形成整体,执行的时候无需提供库文件
静态链接发生在构造阶段
②动态链接
动态链接是指编译系统在链接阶段并不把目标文件和函数库文件链接在一起,而是等到程序在运行过程中 需要 使用时才链接函数库。
4)Build-time, period, and component-level view
①Versioning
版本控制是给计算机软件的不同状态分配唯
一的名字或者编号的过程
V 1.6 . 1 . 5
major minor patch