第四次课程总结

一.测试与正确性论证的效果差异
1.测试
优点:测试寻找bug的方式比较简单, 可以很快速的验证程序的基本功能, 调试非常方便.
缺点:测试很难达到对程序的全面覆盖, 构造一些复杂的测试样例可能难度较大.测试无法证明程序是完全正确的.
2.正确性论证
优点:正确性论证可以证明程序是正确的.
缺点:论证步骤复杂,难度较大, 并且如果论证的条件存在问题同样可能导致错误的论证.


二.调研OCL语言
OCL语言是用来描述UML建模细节的对象约束语言, 是一种形式化的语言,
和jsf的相似之处有:
在理想情况下都没有二义性, 都使用了不变量, 前置条件和后置条件对方法进行了约束.
不同之处:
OCL使用了数学语言和自然语言结合的方式, 而JSF用的是数学语言.
OCL是一种类型语言, 任何表达式的值都是属于一个类型的.

三. 第十四次作业的单电梯系统的UML类图、一幅顺序图和一幅状态图

1.UML图

 二.顺序图

三.状态图

四.总结
1.课程总结

第一单元重点在于对于面向对象编程思想的学习. 是从面向过程编程到面向对象编程的一个过渡学习.

第二单元重点在于学习多线程, 基于第一单元所编写的单线程电梯, 将其改写成多线程电梯.侧重于实际应用, 难度较大, 调试bug的难度也比第一单元难了不少, 并且经常出现死锁或者其他crash.
第三单元学习了规格化,JSF, 这单元不再侧重于编写程序, 而在于构建程序, 规格化程序, 学习让自己程序规格更加规范.
第四单元是正确性论证. 正确性论证基于第三单元的编写的规格(jsf), 同时和测试也是向对立的两种完全不同的验证程序的方法.

2.程序梳理
刚开始编写程序的时候, 对我来说处理输入是一个很大的难点, 对于正则使用不熟练, 导致对于输入的判断很复杂, 思路不清晰, 同时设计程序时, 经常将许多语句堆在一个代码中, 或者代码中出现了许多重复的语句.通过练习, 我正则使用的更加熟练了, 关于处理数据方面的代码写得更加的整洁, 思路清晰, 对于代码中经常出现的部分也都封装成了一个函数, 程序结构的设计也更加的合理.

3.自己对工程化开发的理解
工程化开发是非常有必要的, 我们现在写的代码还比较短, 处理起来还比较简单, 当代码多到一定程度时, 如果没有工程化的方法, 可能修改一个很小的参数都许多废很大的劲. 工程化对于代码的可维护性是非常有必要的. 同时工程化写出的代码因为遵守相应的规则, 阅读性和拓展性也非常好.

4.对课程的建议
该课程对我学习面向对象的编程有很大的作用, 但是该课程的作业量实在是太大了, 对我学习其他课程产生了很大的负面作用. 建议适当的为学生们减负, 明确每次作业的重点. 其实该课程的互测环节对大家的作用是弊大于利

猜你喜欢

转载自www.cnblogs.com/challenging/p/9225815.html