第一章:Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标
目标
1.从三个维度看软件系统的构成
2.用什么样的模型/视图**描述**软件系统
3.将“软件构造”看作"**不同视图之间的转换**"
4.软件构造过程中应考虑的重要质量指标
5.如果未达到期望的质量目标,会有什么后果
6.有哪些面向质量指标的软件构造技术
总之,要搞清楚软件构造的对象是什么、如何刻画,然后关注如何构造,除了要搞清楚“要构造的结果是什么”还要理解“构造的结果怎么样才算好”。
多维软件视图
构造阶段
想法——需求——设计——编码——可安装/可执行包
源代码是如何按基本程序块(如函数、类、方法、接口等)逻辑组织的,以及程序块之间的依赖关系。
三种具有内在关联的形式:
1.词汇层面
2.语法层面
3.语义层面
面向语法(Syntax-oriented)的程序结构:
AST(Abstract Syntax Tree 抽象语法树):将半结构化源代码表示为结构化树,彻底结构化,将源代码变为一棵树,对树做各种操作==对源代码的修改。
如下图:
这个AST对应的源代码:
代码变化(Code churn):从一个版本到另一个版本添加、修改或删除到文件中的行。
源代码被物理地组织成文件,这些文件进一步被目录组织;文件被封装到包中,逻辑上是组件和子系统;可重用模块以库的形式出现。
开发者像使用编程语言指令一样使用库中的功能。
编程时和build时,需告诉IDE和JVM在哪里寻找某些库。
javac -classpath ./lib/*.jar
静态链接发生在构造阶段