OO第四次博客

• 1. 论述测试与正确性论证的效果差异,比较其优缺点

测试就是通过大量的数据对程序进行检测,论证主要是理论上的东西,就是说给别人为什么我的程序是对的。测试能够保证在你的测试集下你的程序是没问题的,而论证能做到对可能出错情况的总结和概括。所以两者搭配使用效果最好,这样可以在两个方向上保证程序的正确。

• 2. 调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同 之处

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中的表述方法一致。

• 3. 根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和 请求,至少整理出 一幅UML类图、一幅顺序图和一幅状态图,并使用 图(graph)来表示出模型

 

4. 整理总结一个学期所学所练

这个学期只要学习了面向对象的语言,重中之重是多线程方面的内容,一开始是学习简单的面向对象的思想,之后是多线程的内容,再往后是工程化的处理问题,学会JSF,学会测试自己的程序。

我在设计上的进步应该就是类的划分越来越精细,写多一些类,每个类有一些方法。并且在测试自己程序这个问题上,学会了自己构造测试数据,知道了哪些地方容易出错,知道了该用什么样的办法去避免他们。

我觉得OO这门课还不错,没什么建设性的意见,继续保持吧。

posted @ 2018-06-25 18:31  SiMrua  阅读(104)  评论(0编辑  收藏  举报