软件构造的多维视角
三个维度
By dynamics: Moment/Period views
By phases:Build-time/Run-time views
By levels:Code-level/Component-level views
八个视图
Build-time,moment,and code-level view
源代码是如何通过基本程序块组织起来的。如函数、类、方法、接口等,以及他们之间的依赖关系。
三种相互关联的形式:
词汇层面:面向词法的源代码
语法层面:面向语法的程序结构
语义层面:面向语义的程序结构
Build-time,period,and code-level view
代码随着时间的变化,如添加行,修饰或者删除一个文件等
Build-time,moment,and component-level view
源代码的物理组织成文件,这些文件根据目录进行组织
文件封装成包,组建和子系统
可重用的模块以库的形式存在,库存储在自己的磁盘文件中,里面手机里一些可在各种程序中重用的函数
Build-time,period,and component-level view
在一个软件系统中,文件,包,组建和库随时间的变化
Run-time,moment,and code-level view
快照图:描述程序运行时内存里变量层面的状态
内存转储:硬盘上的文件(包含进程内存内容的副本)当进程被某些内部错误或信号中断时产生。
Run-time,period and code-level view
程序单元(对象)之间的交互
执行追踪:用日志方式记录程序执行的调用次序
Run-time,moment,and component-level view
UML(统一建模语言)中的部署图
Run-time,period,and component-level view
运行时软件的高级概念
可执行程序:CPU执行的机器可读指令序列,以及相关联的数据值。这是完全编译好的程序,可以加载到计算机内存中并执行。
库:可由不同程序重用的常用程序对象的集合。大多数操作系统都包括开发人员可以重用的标准库,而不是要求每个程序都提供自己的库。不能直接加载并在目标机器上执行;它必须首先与一个可执行程序链接。
配置和数据文件:不可执行文件,提供了有用的数据和配置信息,程序可以从磁盘加载。
软件建设的质量目标
外部质量因素
代码行数(LOC),圈复杂度,耦合度,凝聚度,可读性、可理解性、明确性、规模等
软件建设的五大质量目标
可理解性
可复用性
可维护性和适应性
健壮性
性能