软件构造学习心得

软件构造前三章学习心得


前言

大概经历了两周的软件构造课程的学习,让我对这门课有了点初步的认识,在接下来先梳理一下这两周里学的三章的主要概括,最后总结一下心得。


一、Views and Quality Objectives of Software Construction

1.软件构造的特点


我认识到了软件构造与数据结构算法课的差异,现在着重的不是代码与算法了,更应该是复杂软件系统的构造。

接着就是本章的重点了:

2.八视图


某个时刻与一段时间,构造阶段与运行阶段,代码层面与结构层面。这222构成了如上的八视图。当然紧接着还有各个视图之间的转化,这里就不一一展开了。

接下来涉及到了软件系统的质量问题,主要分成内部因素与外部因素,当然外部质量还是取决于内部质量,显然内部因素更为重要。测试与调试时发现的错误更易解决,还有考虑防御式编程,当然还有形式化方法;再者就是考虑程序的健壮性问题,可扩展性问题,可复用性问题及兼容性问题。

当然这部分还有很多上课提及的细节,这里就不一一赘述了。

二、Testing and Test-First Programming

1.软件测试

在这部分老师首先向我们普及了软件测试的重要性并介绍了多种测试方法,让我印象深刻就是白盒测试与黑盒测试;在这我意识到了之前的偶然随机测试是多么的可笑,当然这还有句我觉得很有意思的话:要转变心态,用“让其出错”和“尽快出错”作为写高质量代码的日常法宝,抛弃这样的想法:我的代码是宝贝,可不能总让它出错!学会对自己的代码更暴力些

2.测试用例

首先看看测试用例的概念:测试用例:输入+执行条件+期望结果。
测试用例就是要做到:最可能发现错误,不重复、不冗余,最有效,既不简单也不复杂。
对于测试用例的设计,首先要说的就是基于等价类划分的测试,这能帮助你更加全面的测试你的软件,避免疏忽的漏洞;当然在等价类划分时,还应将边界作为等价类之一加入考虑。
到这,老师已经反复多次强调了测试优先的编程,而且说“测试代码”比写代码更有成就感?虽然现在还不是很能体会到,但我认为应该还是现在接触的太少了吧!

3.测试工具

老师主要介绍了Junit工具的使用,并会在后续的实验课上使用它。

三、Software Construction Process and Configuration Management

第三章首先主要介绍了下述几个部分:1.Software Development Lifecycle (SDLC);2 Traditional Software Process Models;3 Agile Development;4 Software Configuration
Management (SCM)and Version Control System (VCS)。基于到上述的描述后,针对于需求与效率,本章的重点来了: Git as an example of SCM tool!

这张图片上主要包含了对于git的一些基本概念与指令的使用,git可以被理解为本地的CMDB,针对于之前的改成存着每个文件的修改版本而不是储存每次的不同,利用空间换取时间,提高了效率。接下来再上一张图:

这张图完美的展示了各个提交版本之间的关系(部分的更新迭代及整体的版本变化等)。
针对于至上述的学习,再加上随后的习题课上的老师对于git的使用演示,我感觉我对这部分的只是又有了一个更深的理解!


总结

学习软件构造的前三章,我深刻领悟了构建高质量软件的重要性。从八视图理解构建过程,到测试优先编程的实践,再到版本控制工具Git的应用,均为我奠定了坚实基础。通过理论与实践的结合,我逐渐形成了对软件构造的重视态度与积极行动,为未来更深入的学习打下了良好基础。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值