学期末最后一次博客

一、测试与正确性论证比较

  测试是使用测试样例对程序进行检测而正确性论证则是根据代码的逻辑进行验证。

  测试难以完全覆盖,需要大量的样例才能近似达到,而正确性论证则不需要花费那么大的精力,只需要根据代码的逻辑和规格进行一系列验证即可。

二、OCL与JSF 

  OCL语言全名为对象约束语言(Object Constraint Language),是一种用于施加在指定的模型元素上约束的语言。UML类图中的所有值都可以被约束,而表达这些约束的方法就是 OCL。在UML2标准中,OCL不仅用来写约束,还能够用来对UML图中的任何元素写表达式。

  OCL是约束(Constraint)语言和查询(Query)语言。OCL基于数学中的集合论和谓词逻辑,有一个形式化的数学语义,但是却没有使用数学符号。它采取了自然语言和数学符号的折中方案,使用普通的ASCII码来表达数学中同样的概念,同时OCL规范也允许用户定义属于自己的OCL符号集。

  与JSF的相同之处:二者都是形式语言,声明式的语言,都没有二义性,都有前置条件和后置条件以及不变式;

  与JSF的不同之处:OCL每个表达式都是具有类型的,且具有许多的基本数据类型等,不像JSF一样完全使用逻辑表达式。

三、

uml类图:

 时序图:

 

 uml状态图:

四、学期总结

1.四个单元知识点总结

  第一单元主要在刚开始接触,主要训练了类训练和类的继承,以及强调了属性private的重要性。

  第二单元开始写多线程程序。着重于线程安全。

  第三单元我们开始了规格设计。补全出租车,同时重点在于JSF程序规格,强调程序规格的重要性。

  第四单元我们进行了单元测试和正确性论证。二者各有优势,都能够论证代码/方法的正确性。

2.程序进步

  一开始写程序我是毫无头绪直接开始进行的,并且代码风格混乱,无用代码多,程序的结构复杂。

  经过多次训练,我学会在一开始设计出框架,然后根据功能慢慢补全。同时所有的功能并不一定要一次性全部实现,分阶段实现有利于减少复杂性。

3. 工程化开发的理解

  一定要有良好的封装性和扩展性。

  不要有过长的过于复杂的方法,尽量把方法碎片化,微量化。

4. 对课程的期望和建议

  指导书希望能够更加明确详细一点。因为很多内容都是后来讨论区补上的,这样十分难以平衡先写作业和后写作业的人的效率和写代码的时间。

  恶意扣分十分恶心,希望这一点得到重视。

猜你喜欢

转载自www.cnblogs.com/jxylove/p/9215407.html
今日推荐