软考--软件工程基础知识-03

  • 软件质量特性(ISO/IEC25010)
    --软工第四版,不展开
    1. 正确性
    2. 可用性
    3. 可靠性
    4. 有效性
    5. 安全性
    6. 可维护性
    7. 可移植性
    8. 可复用性

  • 软件质量特性(ISO/IEC9126)
    --软件设计师教程第五版,蓝皮书5,以下以该版本知识点整理规划
    1. 效率
    2. 可靠性
    3. 功能性
    4. 易使用性
    5. 可维护性
    6. 可移植性

  • 效率:软件的性能水平和资源量之间的关系。
    1. 时间特性:响应、处理时间,软件执行功能时的吞吐量。
    2. 资源特性:执行功能时,所使用的资源量,使用资源的持续时间有关的属性。
  • 可靠性:规定时间或一段时间内,软件维持其性能水平的能力。不取决于软件的开发方式。
    1. 成熟性:由软件故障引起失效的频度相关。
    2. 容错性:软件错误情况下维持指定的性能水平的能力。
    3. 易恢复性:故障发生后,重新简历其性能水平,并恢复直接受影响数据的能力。
  • 功能性:功能及其指定的性质存在关系的属性。
    1. 适应性:对规定任务能否提供一组功能,以及功能是否适合有关的软件属性。
    2. 准确性:是否能够得到正确或相符的结果或效果。
    3. 交互性:与其他指定系统进行交互操作的能力。
    4. 依从性:软件是否服从有关的标准、约定、法规及类似规定。
    5. 安全性:避免对程序及数据的非法授权,故意或意外访问的能力。
  • 易使用性:为使用所需的努力,用户对某种使用所作的个别评价相关的属性。
    1. 易理解性:用户为理解逻辑概念及其应用,所付出的努力。(了解拿来处理什么问题)
    2. 易学性:用户为学习其应用所付出的努力。(输入、输出,学习怎么处理问题)
    3. 易操作性:用户为学习如何操作所付出的努力。(学习怎么操作)
  • 可维护性:与进行规定的修改所需要的努力相关的属性。
    1. 易分析性:诊断缺陷或失效原因,判定待修改的部分所需努力相关的属性。
    2. 易改变性: 与进行修改、排错或适应环境变换所需的努力。
    3. 稳定性:修改造成未预料效果的风险有关的属性。
    4. 易测试性:为确认经修改软件所需努力有关的属性。
  • 可移植性:软件从某一环境转移到另一环境的能力。
    1. 适应性:转移过程中的处理或手段有关的属性。
    2. 易安装性:指定环境下,安装软件所需努力有关的属性。
    3. 一致性:使软件服从可移植性有关标准或约定的软件属性。
    4. 易替换性:改软件替换其他软件的难易度。

  • McCall模型
    1. 产品修正
      a. 可维护性
      b. 灵活性
      c. 可测试性
    2. 产品转移
      a. 可移植性
      b. 复用性
      c. 互用性
    3. 产品运行
      a. 效率
      b. 可靠性
      c. 正确性
      d. 完整性
      e. 易使用性

  • 设计质量评审
    1. 软件的规格说明是否符合用户的要求。
    2. 评审的可靠性
    3. 评审的保密措施实现情况。
    4. 评审操作特性实施情况。
    5. 评审性能实现情况。
    6. 评审软件是否具有可修改性、可扩充性、可互换性、可移植性
    7. 平生软件是否具有可测试性
    8. 平生软件是否具有复用性
      不包括模块层次

  • 软件结构
    1. 功能结构
      a. 数据结构
      b. 功能结构
      c. 数据结构和功能结构之间的对应关系
    2. 功能的通用性
    3. 模块的层次
    4. 模块结构
      a. 控制流结构
      b. 数据流结构
      c. 模块结构与功能结构之间的对应关系
    5. 处理过程的结构

  • 与运行环境的接口
    1. 与硬件的接口
    2. 与用户接口

  • 冗余技术
    1. 结构冗余
      a. 静态冗余
      b. 动态冗余
      c. 混合荣誉
    2. 信息冗余
    3. 时间冗余
    4. 冗余附加技术

  • 冗余附加技术
    1. 屏蔽硬件错误的容错技术
      a. 关键程序和数据的冗余存储及调用。
      b. 检测、表决、切换、重构、纠错、复算的实现。
    2. 屏蔽软件错误的容错技术
      a. 冗余备份程序的存储及调用。
      b. 实现错误检测和错误恢复的程序。
      c. 实现容错软件所需的固化程序。

  • 软件复杂性包括程序复杂性和文档复杂性,主要体现在程序复杂性中。
  • 程序复杂性度量的参数
    1. 规模:总共的指令数,或源程序行数。(源程序行数是主要参数)
    2. 难度
    3. 结构
    4. 智能度:算法难易度

  • 环路复杂度:V(G) = m - n + 2p
  • m是图G中弧的个数,实线。
  • n是图G中的节点数。
  • p是图G中强连通分量个数。(程序总是连通的,所以可以认为该分量为1)
  • 常用公式:V(G) = m - n + 2
    例子

  • 软件维护工具
    1. 版本控制工具
    2. 文档分析工具
    3. 开发信息库工具
    4. 逆向工程工具
    5. 在工程工具

  • 高质量文档
    1. 针对性: 针对不同读者。
    2. 精确性:行文确切,无多义性描述。
    3. 清晰性:简明。
    4. 完整性:完整的。
    5. 灵活性:规模,复杂度是灵活的。
    6. 可追溯性:文档间可追溯。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容