先要搞清楚软件构造的对象是什么,如何刻画,在关注如何构造。

1,Five key quality objectives of software construction
软件构造的五个关键质量目标
容易理解:优雅并且漂亮的代码/容易理解
准备好改变:可维护性和适应性
开发成本低:设计/重用:可重用性
远离错误:稳健性 
高效运行:性能好
2,软件系统的质量

External 1: Correctness(正确性),正确就是满足spec,这是软件开发最重要的因素,一个可用的软件一定是正确的,所以首要保证软件的正确性,其他的都可以做妥协、让步,但只有这一项不可妥协。

External 2: Robustness(鲁棒性),通过抛出异常然后处理异常等方式让出错的程序恢复到正常的执行流程上。

External 3: Extendibility(易扩展性),要便于软件功能的增加/扩展(ADT、OOP、留下一个Visitor),降低未来修改软件时的成本。

External 4: Reusability(复用性),在异性之间尽可能地寻找共性,以便于未来可以直接使用现在写的这段代码。这样可以降低软件地开发成本。

External 5: Compatibility(兼容性),在不同的环境下都是可用的,不同的软件系统之间相互可容易的集成。

External 6: Efficiency(效率),不要过早的优化,性能在没有正确性保障的条件下是没有意义的。

External 7: Portability(可移植性),软件可方便的在不同的技术环境之间移植。

External 8: Ease of use(易用性),学习成本低,结构简单、清晰,易于使用。

External 9: Functionality(功能性),功能过多会导致易用性的降低。主要功能要首要提升质量。

External 10: Timeliness(时效性),软件要能够在交付时间之前完成开发交给使用者。

External 10++: Other qualities,Verifiability (可验证性),Integrity (完整性),Repairability (可修复性),Economy (经济性)。

3,软件构造多维图

Moment维度关注于程序在某一个时刻的表现,而Period维度更关注于程序在一段时间内的表现;
Build-time维度关注程序还未被投入运行,编码阶段的表现,而Run-time维度更关注于程序运行时的表现;
Code-level维度关注程序的语句层面,Component-level维度更关注于一段代码,当作一个块观察比如一个包、一个库。
(1) Build-time, moment, and code-level view 关注的是源码的组织情况,可在词汇(源码)、语法(抽象语法树)、语义(类图)三个层面分别分析。

(2) Build-time, period, and code-level view 关注的是代码的变化(Code churn代码变化)

(3) Build-time, moment, and component-level view 关注的是包/库,而且是静态链接库

(4) Build-time, period, and component-level view 关注代码的更迭,与(2)中不同的是,这个维度下更关注文件版本的变化,而不是具体语句的变化(2中关注的是哪一行代码被修改了)----VCS的引出

(5) Run-time, moment, and code-level view 关注的是程序在某个时间点内存中的情况,如代码快照图(Code Snapshot)、内存信息转储(Memory dump)。

(6) Run-time, period and code-level view 关注的是代码的执行情况,执行跟踪

(7) Run-time, moment, and component-level view 关注的也是包/库,但却是在代码执行过程中的情况,如动态链接库

(8) Run-time, period, and component-level view 关注的是系统的使用情况,使用日志查看

哈工大软件构造学习笔记1 Views and Quality Objectives of Software Construction相关推荐

  1. 2021-06-29 Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标

    第一章:Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标 目标 1.从三个维度看软件系统的构成 2.用什么样的 ...

  2. SC Chapter 1:Views and Quality Objectives of Software Construction Review

    Chapter 1: Views and Quality Objectives of Software Construction 1.1 Multi-Dimensional Views of Soft ...

  3. 1 Views and Quality Objectives of Software Construction

    文章目录 1. 软件构造过程中的多维视图 每一部分的具体内容-->Build-time 每一部分的具体内容-->Run-time 2. 视图之间的联系 3. 软件系统的质量 外部因素 内部 ...

  4. 哈工大2022春软件构造学习笔记1

    课程概述 第一部分:软件构造基础 第二部分:ADT+OOP 第三部分:面向可复用性和可维护性的软件构造 第四部分:面向健壮性与正确性的软件构造 第一章 软件构造的多维度视图和质量目标 软件构造的多维度 ...

  5. 软件构造学习笔记-第八周

    本周重点是Liskov可替换原则.它要求父类和子类的行为一致性,子类要有更强的不变量.更弱的前置条件.更强的后置条件.在该原则的要求下,每个子类都可以对父类进行替换.这在开发过程中会带来极大的便利,在 ...

  6. 软件构造学习笔记(九)面向复用的软件构造技术

    目录链接 Part I What is Software Reuse? Part II How to measure "reusability"? Part III Levels ...

  7. 2020春季学期哈工大软件构造学习心得三

    Abstract Data Type (ADT) and ObjectOriented Programming (OOP) 前言 前两章回答了:什么是"高质量的软件". 如何从不同 ...

  8. 2020春季学期哈工大软件构造学习心得二

    前言 上一章主要讲了软件构造的结果形态以及如何是一个"好"的软件 这一章主要学习软件开发遵循着一个什么样的过程 - 软件生命周期与配置管理 From 0 to 1,from 1 t ...

  9. 2020春季学期哈工大软件构造学习心得一

    前言: 今年是特殊的一年,由于新冠病毒的爆发,导致我们无法正常开学,所以网上开课如期进行,其中软件构造是这学期我们要面临的巨大挑战. 准备工作: 上学期末得知本门课程需要学习Java语言进行编程,所以 ...

最新文章

  1. PCL中点云的超体素(SuperVoxel)
  2. listen函数的第二个参数_【图像处理】OpenCV系列十七 --- 几何图像变换函数详解(一)...
  3. 进程间的通信方式(二):管道Pipe和命令管道FIFO
  4. JavaScript对象、原型、原型链知识总结思维导图
  5. 解决问题:pycharm中SSH报错failed:<br/>Authentication failure
  6. php 8发布,PHP 8.0.0 正式版发布啦,一个崭新时代来临!
  7. 毕业设计——如何画系统功能结构图?
  8. 美股世界/汇财证券开户说明(viewtrade)
  9. C++编写红警3 1.12版本修改器
  10. 剑指Offer(第二版)-思路简述-第一期(简单难度)
  11. 活动现场大屏幕互动系统(微信墙)修复版完美PHP源码,带完整素材包和详细使用文档
  12. CAD数字签名的实现
  13. 《平衡掌控者 游戏数值战斗设计》学习笔记(二)人物基础属性设计
  14. Foxmail接受密码错误
  15. Stocks VS Securities
  16. 计算机专业英语词组,[计算机专业英语词组.doc
  17. 【CV】Latent diffusion model 扩散模型体验
  18. Qt 之 QVideoFrame转换为QImage
  19. 题目 1514: [蓝桥杯][算法提高VIP]夺宝奇兵
  20. 测试行业的发展趋势和看法

热门文章

  1. 【HTML 中的二次贝塞尔曲线 和三次贝塞尔曲线】(使用说明详解)
  2. 文学鼻祖网站关闭服务器,华语网络文学鼻祖网站“榕树下”关站 “享年”23岁...
  3. java 编程习题 之 猴子偷桃
  4. 电商数据分析案例 与 职责要求
  5. [转]“高科技无产阶级”:卢瑟、宅男与屌丝
  6. 微信公众号如何做好日常维护?
  7. 深度学习入门的建议_来自《简单粗暴Tensorflow2》
  8. 回归问题的评价指标 MAE MSE RMSE R2 score Adjusted R2 score 和 重要知识点总结
  9. eclipse打包出错 GC overhead limite execteeded
  10. STM32初学者补足基础知识(第15讲-软件如何硬件)