测试就是经过大量的数据对程序进行检测,论证主要是理论上的东西,就是说给别人为何个人程序是对的。测试可以保证在你的测试集下你的程序是没问题的,而论证能作到对可能出错状况的总结和归纳。因此二者搭配使用效果最好,这样能够在两个方向上保证程序的正确。多线程
OCL语言是约束(Constraint)语言和查询(Query)语言。一个约束就是对一个(或部分)面向对象模型或者系统的一个或者一些值的限制。这一点与JSF相似,JSF中requires必需要有必定的限制才行。UML类图中的全部值均可以被约束,而表达这些约束的方法就是 OCL。在UML2标准中,OCL不只用来写约束,还可以用来对UML图中的任何元素写表达式。在JSF中就是对每一个方法中的过程写表达式,而后每一个OCL表达式都能指出系统中的一个值或者对象。由于 OCL表达式可以求出一个系统中的任何值或者值的集合,所以它具备了和SQL一样的能力,也就是说OCL也是一种查询语言。这一点是JSF所不具备的。学习
OCL的基础是数学中的集合论和谓词逻辑,而且它有一个形式化的数学语义,可是它并无使用某种数学符号。由于虽然数学符号可以清晰的、无歧义的表达事物,可是只有极少的专家能够看懂。因此数学符号并不适合用于一个普遍应用的标准语言。天然语言是最易懂的,可是它是含混不清晰的。OCL取了天然语言和数学符号的折中方案,使用普通的ASCII字符来表达数学中一样的概念。若是你不喜欢当前的OCL表达方法,OCL规范还容许你定义本身的OCL符号集,这点是能够理解的,由于OCL有一个清晰的数学语义。这与JSF中的表述方法一致。测试
这个学期只要学习了面向对象的语言,重中之重是多线程方面的内容,一开始是学习简单的面向对象的思想,以后是多线程的内容,再日后是工程化的处理问题,学会JSF,学会测试本身的程序。ui
我在设计上的进步应该就是类的划分愈来愈精细,写多一些类,每一个类有一些方法。而且在测试本身程序这个问题上,学会了本身构造测试数据,知道了哪些地方容易出错,知道了该用什么样的办法去避免他们。spa
我以为OO这门课还不错,没什么建设性的意见,继续保持吧。线程