OO第四次博客作业(2018春)

 

一、论述测试与正确性论证

  单元测试的特点是:针对程序编写测试代码、从结果验证、保证基本模块的正确性;

  正确性论证的特点是:通过分析代码进行逻辑论证、从原理验证、保证了基本模块和整体的正确性。

  对比两者,测试能更准确、快速地发现bug,验证过程更模块化,便于不同的程序员对同一个程序进行交互;正确性论证则全面地验证了代码的正确性,在写论证文档时,能够发现一些自己代码中一些逻辑错误以及结构上不合理的地方。但是在编写测试样例的时候,需要花费很多时间才能做到高覆盖率,而且对程序的整体性论证有些欠缺;正确性论证的缺点是理论分析不一定能够完全符合代码的内容。总的来说,两者结合,理论加实践,基本能够保证代码的正确性。

二、调研OCL语言

  对象约束语言(Object Constraint Language),一种用来进行约束定义的,形式化的无二义的语言。它是UML可选的附加内容,可以用来更好地定义对象的行为,并为任何类元指定约束。

  相同点:都有前置条件、后置条件和不变式; 都是对对象/方法的约束。

  不同点:OCL是一种语言,有许多基本数据类型,而JSF基本都是使用逻辑表达式。

三、十四次作业

1.类图

 

扫描二维码关注公众号,回复: 1743153 查看本文章

2.顺序图

 

3.状态图

 

 四、整理总结

1.第一单元是入门教程,明确了面向对象的设计思路,主要训练java程序的语法和写法以及继承和类的抽象,都是单周期程序。从第二单元开始,就出现了多线程程序。更多地学习了一些设计原则和线程安全的知识。第三单元设计了出租车调度系统,程序设计起来难度不算大,但要写的JSF,让我们的程序更加工程化。第四单元的重点在单元测试和正确性论证,二者结合互补,保证了代码的正确性。

2.从第一次作业到现在,我们设计的程序实现了:多项式的加减、ALS多线程电梯、ifttt、出租车调度系统。总体来说,在设计上,慢慢从匆忙下手到先完整设计再动手写代码;从测试上,从随便找测试样例测试到有目的地编写测试样例再到模块化的单元测试;从代码质量上,感觉自己的程序在变得完整规范。

3.我们写的程序远远称不上工程,但后面的几次作业的jsf规格和正确性验证都是在向工程化靠拢。工程化开发,我的理解就是,很多程序员开发维护一个巨大的程序。而其中很重要的就是程序员间在代码层面的交流。任何一个软件工程大致上分为以上三步: 开发 -> 测试 -> 部署上线。具体到前端工程中,每一步又涵盖了很多细节。其中的每个细节都要有规范和准则去依靠和遵守,这样工程化开发才能高效进行。

4.希望将规格的书写渗透到前几次作业中~

猜你喜欢

转载自www.cnblogs.com/wjy12138/p/9222434.html