软构学习-1-软件构造的多维度视图和质量目标

发布时间 2023-05-20 11:45:53作者: No3eTB

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

主要内容:

  • 事件日志:系统层面

主要关注的层面:

软件的性能指标

包含三个方面:

  • 外部质量因素 影响 用户
  • 内部质量因素 影响 软件本身和它的开发者
  • 外部质量取决于内部质量

外部质量因素

  • 正确性
    • 测试和调试:保证正确性的方法
    • 防御式编程
    • 形式化方法
  • 健壮性
    健壮性是对正确性的补充,即出现规约定义之外的情形的时候,软件要做出恰当的反应
  • 可扩展性
  • 可复用性

内部质量因素