软件构造之软件构造基础
- 注意
- 从多维视角看软件构造(Multi-Dimensional Views of Software Construction)
-
- 引言
- 关键
- 从哪些维度来看软件构造
-
- 编程时、某一时刻、代码视角
- 编程时、某一时期、代码视角
- 编程时、某一时刻、模块视角
- 编程时、某一时期、模块视角
- 运行时、某一时刻、代码视角
- 运行时、某一时段、代码视角
- 运行时、某一时刻、模块视角
- 运行时、某一时段、模块视角
- 各个视角之间的关系
- 总结
-
- 描述软件系统的三个维度
- 每个视角的元素、关系以及模型
- 软件构造:视角的转换
- 再放上最最关键的图
- 软件构造的质量目标(Quality Objective of Software Construction)
-
- 大纲
- 外部质量因素
-
- 正确性
- 健壮性
- 拓展性
- 复用性
- 适配性/兼容性
- 效率
- 移植性
- 易用性
- 功能性
- 及时性
- 其他
- 内部质量因素
- 质量因素之间的权衡
- 软件构造的关键
- 软件构造中的五大质量目标
-
-
- 归纳
- 三维度分析
-
注意
虽然说标题是“软件构造基础”,但是实际上这一篇可以认为是后面几篇文章的一个绪论,主要内容由接下来的若干篇同系列的文章组成。
从多维视角看软件构造(Multi-Dimensional Views of Software Construction)
引言
既然我们要学习的是软件构造,什么是软件r> 软件的概念最早由阿兰·图灵提出
在我们的生活中,有各种各样的软件,比如说操作系统和应用程序,有PC端、web端、安卓端、IOS端的各种程序等等,它们都被称为软件。
计算机的交互层级示意图 |
---|
用户 |
应用程序 |
操作系统 |
硬件 |
而同时,我们对于软件系统的理解也不断的在改变:从过去到现在依次是:
- 程序
- 算法 + 数据结构
- 程序 + 数据 + 文档
- 模块(成分) + 数据/控制流
如今,我们的coding愈发集成化,模块化编程也占据了主流。
关键
编程时、某一时期、模块视角
每一个模块是如何随着时间变化的呢描述这一种变化,我们引入了版本控制系统,也就有了我们常常说的版本 。
运行时、某一时刻、代码视角
运行时、某一时刻、模块视角
模块分析
各个视角之间的关系
软件构造的质量目标(Quality Objective of Software Construction)
大纲
软件构造的质量特征:
- 外部和内部质量因素
- 外部质量因素(使用相关):与用户直接相关,比如运行速度、易用性等等
- 内部质量因素(编程相关):与编程人员相关,比如模块化、可读性等等
- 我们的目标在于外部特性,但是内部特性影响甚至从某种意义上决定外部特性。
- 重要的外部质量因素
- 各个质量因素的权衡
软件构造的五大质量目标:
- 易于理解
- 易于改变
- 易于拓展
- 健壮性
- 运行效率
外部质量因素
正确性
正确性:若输入正确,则输出正确
正确性是最重要的质量标准。
保证正确性:
- 条件性:因为上层模块需要依赖下层模块,所以要想保证下层的模块是正确的。也就是说自底向上,保证每层都正确,同时调用也没有问题
- 通向正确性的方法:测试以及Debug
- 形式化方法:数学才可能保证程序的正确性
特别注意:测试只能证明程序错误,但是不可能证明程序是正确的。
健壮性
健壮性:若输入错误,而程序依旧正常工作
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93563 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!