软构学习-1-软件构造的多维度视图和质量目标
目录
1 软件构造的多维度视图和质量目标
Build-Moment-Code
源代码是如何以代码块的方式组织起来的:
- functions
- classes
- methods
- interface
三种相互关联的形式:
-
词汇层面:面向词汇的源代码
-
语法层面:程序语法的组织结构,如(AST)
-
语义层面:面向语义的程序结构,如Class Digram
Build-Period-Code
Code churn:代码变化
Buile-Moment-Component
这一部分是源代码的物理组织形式:
- 文件(File)
- 文件夹(Directories)
- 包(Packages)
- 库(Libraries)
库包括;
- Static Linking(静态链接)
- Dynamic Linking(动态链接)
Build-Period-Component
这一部分标志软件实体随时间的变化:
- 配置项(SCI)
- 版本(Version)
- 版本控制系统(VCS)
- 版本控制工具Git
Git
Run-Moment-Code
这一部分的内容包括:
- 程序快照(Snapshot diagram):
描述程序运行时内存里变量层面的状态。 - 程序状态粒度(Fine-grained states of a program)
Run-Period-Code
主要内容:
- 时序图(Sequence diagram):
描述程序运行时的步骤。
Run-Moment-Component
这一部分主要是软件各部分的部署:
- 部署图(Deployment diagram)
Run-Period-Component
主要内容:
- 事件日志:系统层面
主要关注的层面:
软件的性能指标
包含三个方面:
- 外部质量因素 影响 用户
- 内部质量因素 影响 软件本身和它的开发者
- 外部质量取决于内部质量
外部质量因素
- 正确性
- 测试和调试:保证正确性的方法
- 防御式编程
- 形式化方法
- 健壮性
健壮性是对正确性的补充,即出现规约定义之外的情形的时候,软件要做出恰当的反应 - 可扩展性
- 可复用性