软件构造:01-软件构造基础

软件构造之软件构造基础

  • 注意
  • 从多维视角看软件构造(Multi-Dimensional Views of Software Construction)
    • 引言
    • 关键
    • 从哪些维度来看软件构造
      • 编程时、某一时刻、代码视角
      • 编程时、某一时期、代码视角
      • 编程时、某一时刻、模块视角
      • 编程时、某一时期、模块视角
      • 运行时、某一时刻、代码视角
      • 运行时、某一时段、代码视角
      • 运行时、某一时刻、模块视角
      • 运行时、某一时段、模块视角
    • 各个视角之间的关系
    • 总结
      • 描述软件系统的三个维度
      • 每个视角的元素、关系以及模型
      • 软件构造:视角的转换
      • 再放上最最关键的图
  • 软件构造的质量目标(Quality Objective of Software Construction)
    • 大纲
    • 外部质量因素
      • 正确性
      • 健壮性
      • 拓展性
      • 复用性
      • 适配性/兼容性
      • 效率
      • 移植性
      • 易用性
      • 功能性
      • 及时性
      • 其他
    • 内部质量因素
    • 质量因素之间的权衡
    • 软件构造的关键
  • 软件构造中的五大质量目标
      • 归纳
      • 三维度分析

注意

虽然说标题是“软件构造基础”,但是实际上这一篇可以认为是后面几篇文章的一个绪论,主要内容由接下来的若干篇同系列的文章组成。

从多维视角看软件构造(Multi-Dimensional Views of Software Construction)

引言

既然我们要学习的是软件构造,什么是软件r> 软件的概念最早由阿兰·图灵提出
在我们的生活中,有各种各样的软件,比如说操作系统和应用程序,有PC端、web端、安卓端、IOS端的各种程序等等,它们都被称为软件。

计算机的交互层级示意图
用户
应用程序
操作系统
硬件

而同时,我们对于软件系统的理解也不断的在改变:从过去到现在依次是:

  1. 程序
  2. 算法 + 数据结构
  3. 程序 + 数据 + 文档
  4. 模块(成分) + 数据/控制流
    如今,我们的coding愈发集成化,模块化编程也占据了主流。

关键

编程时、某一时期、模块视角

每一个模块是如何随着时间变化的呢描述这一种变化,我们引入了版本控制系统,也就有了我们常常说的版本 。

运行时、某一时刻、代码视角

运行时、某一时刻、模块视角

模块分析

各个视角之间的关系

软件构造的质量目标(Quality Objective of Software Construction)

大纲

软件构造的质量特征:

  • 外部和内部质量因素
    • 外部质量因素(使用相关):与用户直接相关,比如运行速度、易用性等等
    • 内部质量因素(编程相关):与编程人员相关,比如模块化、可读性等等
    • 我们的目标在于外部特性,但是内部特性影响甚至从某种意义上决定外部特性。
  • 重要的外部质量因素
  • 各个质量因素的权衡

软件构造的五大质量目标:

  1. 易于理解
  2. 易于改变
  3. 易于拓展
  4. 健壮性
  5. 运行效率

外部质量因素

正确性

正确性:若输入正确,则输出正确
正确性是最重要的质量标准。
保证正确性:

  • 条件性:因为上层模块需要依赖下层模块,所以要想保证下层的模块是正确的。也就是说自底向上,保证每层都正确,同时调用也没有问题
  • 通向正确性的方法:测试以及Debug
  • 形式化方法:数学才可能保证程序的正确性
    特别注意:测试只能证明程序错误,但是不可能证明程序是正确的。

健壮性

健壮性:若输入错误,而程序依旧正常工作

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93563 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月20日
下一篇 2019年1月20日

相关推荐