一. 单元测试与正确性论证
测试:测试一般分为功能性测试和边界条件测试,功能性测试是为了保证程序能够完成要求的正常功能,边界测试是测试边界条件,一般来说,如果不能正常处理边界条件,程序崩溃也是经常的事情。测试的优点是比较直观,比较清楚的知道测得内容,很直观,效率比较高,缺点是即使所有的测试点都过了,也不能保证程序没有bug,很难覆盖所有情况。
正确性论证:正确性论证是从代码逻辑的角度来论证代码是否有无bug,优点是能够全面覆盖程序正确性,缺点是不够直观,十分繁琐,而且耗时多,个人认为正确性论证的性价比不是很高。。。。
二. OCL
OCL时对象约束语言(Object Constraint Language)的缩写。为了解决约束表达问题,IBM公司设计了OCL,经过发展,OCL已经为标准化组织OMG所接受,成为UML标准的一部分。OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。它包含的集合类型有Collection, Set, OrderedSet, Bag和Sequence。语言要素包括类型,操作,表达式和语句。
OCL相比JSF要复杂得多,因为它要保证严格的无二义性并且遵守一些列规范,复杂到几乎是一门编程语言。而我们使用的JSF确实简化的多,也相对容易书写。
三. UML
四. 学期总结
这学期的学习让我了解了面向对象编程,从最开始的基础知识,到线程协调方面的知识,以及后来的测试以及正确性论证等等。。。
再有这学期的学习让我对程序的规范有了重新的认识,只有把每一部分的程序规范化,这样“拼凑起来”才能够达到预期的效果。
虽然经过了一学期的学习,但感觉自己还不能算真正掌握了面向对象编程,所以在以后的时间里,我还会加强对这方面的理解的。