哈工大软件构造第一章(课件翻译)

Chapter 1: Views and Quality Objectives of Software Construction

1. 软件构造过程中的多维度视图

多维度视图
在这里插入图片描述

  • 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 关注的是系统的使用情况,使用日志查看

2. 视图之间的联系

在这里插入图片描述
从无到有,写出了代码,就进入了Build-time维度,开始只是单个的没有任何联系的代码文件,所以是在moment+Code-level维度,此时随着时间的推移,代码删删改改,就属于Period+Code-level了,而代码越写越多成为了一个包,甚至形成了一个库,于是就属于moment+Component-level维度了,但是随着时间的推移,你的库文件由于需求的变化发生了变化,所以就属于Period+Component-level。代码写好了,投入运行,进入Run-time维度,观察的如果是某一句代码的执行后结果,那就是moment+Code-level维度,但如果看的是代码执行的轨迹,那就是Period+Code-level维度,而如果看的是一个库文件的连接情况等,那就是moment+Component-level维度了,如果看的是线程或进程的执行过程,也就是通过日志等手段查看一段时间内系统都做了什么事情,那么就是Period+Component-level了。

1.2 Quality Objectives of Software Construction

1. 软件系统的质量

外部质量因素
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 (经济性)。

内部质量因素
代码行数(LOC)、圈复杂度、结构:高内聚低耦合、可读性、可理解性、整洁度、大小

折中、妥协
这些质量属性之间往往不能兼得,当某一项满足的足够好的时候有可能其他项的表现极差,因而需要做权衡,使得各部分的表现都较好,在某些特定要求下也可以放弃优化其他项而做到某一项的极致,这需要靠开发者的经验积累来判断。正确性是绝不能与其他质量因素折中的!!!在OOP开发中,通过封装、模块化、组件、抽象、分散、错误处理、信息隐藏、框架、接口等技术来尽可能地满足上述地质量因素,提高软件的开发质量。

2. 五个关键的质量指标

(1)Elegant and beautiful code:代码要容易理解,通过统一变量/方法的命名标准、代码的风格、注释、包组织结构、必要时重构代码等方式让代码尽可能的容易理解。
(2)Design for/with reuse:ADT/OOP、接口、继承(Overload、Override)、多态、泛型、框架等技术可用于提高代码的可复用性。
(4)Low complexity:当复杂度较低的时候,代码就容易被扩展新的功能,所以要高内聚低耦合,遵从SOLID原则、OO设计模式、使用VCS控制代码版本
(5)Robustness and correctness:使用测试驱动的开发、异常处理、Assertion机制、防御式编程等技术保证程序的健壮性和正确性。
Performance and efficiency:使用设计模式、并行/多线程等技术提升性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《力学》是哈工大出版社出版的教材,是工科学生学习物理力学的重要教材之一。这本书是哈工大力学教研室根据多年来教学经验编写的第六版。在这个版本中,作者对原来版本的内容进行了一定的修改和完善,力求让学生更好地理解和掌握力学的基础知识。 该课件共分为六个章节,包含了力学的基本概念、运动学、静力学、动力学、作用和反作用原理以及能量守恒定律等内容。通过学习这些内容,学生能够获得力学基本原理的理论知识,从而能够应用这些原理解决实际问题。 与之前的版本相比,这个版本的课件在讲解内容上更为简洁明了,增加了大量的例题和习题,以帮助学生更好地理解和记忆知识点。此外,该课件使用了图文并茂的方式展示,给学生提供了更直观、更易理解的学习体验。 该课件还提供了配套的解析和习题答案,供学生自主学习和复习。同时,哈工大力学教研室还推出了一些配套课程和实验,以帮助学生更好地掌握力学的理论和实践。 总的来说,哈工大第六版《力学》课件是一本优秀的教材,它通过简洁明了的讲解和丰富的例题习题,帮助学生建立起对力学基本原理的正确理解,并培养学生的解决实际问题的能力。无论是作为学生的教材,还是作为工程技术人员的参考书,都是非常实用和有价值的一本书。 ### 回答2: "Lixueke Han Gongda Di Liu Ban Kejian" 是一个以力学为主题的课程,此版本为哈尔滨工业大学出版的第六版课件。 该课程旨在帮助学生理解物体受力和运动规律的基本原理。课件涵盖了广泛的力学知识,包括静力学、动力学、质点力学、刚体力学等内容。通过学习这些知识,学生将能够掌握基本的物理原理,理解物体受力和运动时的行为和特性。 这个版本的课件经过了哈尔滨工业大学多年的教学实践和不断的修订,已经得到了广大学生和教师的认可和好评。 课件中的内容包括了理论知识的介绍和详细的数学推导,以及通过解决一些实际问题来应用这些知识的方法。此外,课件还提供了大量的习题和例题,供学生进行练习和巩固所学知识。 该课件的特点之一是对重要概念和原理的清晰讲解,使学生能够深入理解力学的基本原理,并能够将其应用于解决实际问题。另外,课件中还融入了一些实例和案例分析,帮助学生更好地理解和应用所学知识。 总之,"Lixueke Han Gongda Di Liu Ban Kejian" 是一本全面而详细的力学课程教材,它将帮助学生建立起对力学基本原理的深刻理解,提升解决力学问题的能力,并为日后深入学习和研究力学奠定坚实基础。 ### 回答3: 《力学(第六版)》是哈尔滨工业大学的一套课件。力学是物理学的一个分支,研究物体受到外力作用时的运动规律。该课件是根据力学的基本原理和公式编写而成的教学资料。 这套课件的第六版是在前几版的基础上进行了更新和改进。通过引入新的案例和具体问题,使学生更好地理解和掌握力学的基础概念和原理。课件中的内容覆盖了力学的各个知识点,包括力、质点运动、力的合成与分解、牛顿定律、动量、功和能量等。 课件的编排清晰,简明扼要。每个知识点都有详细的解析和示意图,方便学生理解和记忆。另外,课件中也包含了大量的例题和习题,供学生练习和巩固所学知识。 使用《力学(第六版)》这套课件进行学习,学生可以更加系统和全面地学习力学的基本原理和方法。课件的内容丰富,涵盖了力学的各个方面,对于学生提高解题能力和应用力学知识解决实际问题具有重要的作用。 总之,哈尔滨工业大学的《力学(第六版)》课件是一套很好的学习工具,通过学习这套课件,可以帮助学生更好地掌握力学的基本概念和原理,提高解题能力,并为将来的学习和科研打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值