2018 春 面向对象 第15次作业
一、测试与正确性论证的比较
测试对于程序正确性的验证极其依赖于测试集的完备性与强度,正确性论证只是对程序是否实现了其规格进行了论证,这两者都不能完全保证程序的正确性。
二、OCL语言调研
对象约束语言(OCL)是一种声明性语言,描述适用于IBM开发的统一建模语言(UML)模型的规则,现在是UML标准的一部分。 最初,OCL仅仅是UML的正式规范语言扩展。OCL现在可以用于任何元对象工具(MOF)对象管理组(OMG)元模型,包括UML。对象约束语言是一种精确的文本语言,它在任何MOF模型或元模型上提供约束和对象查询表达式,否则这些表达式不能用图解表示法表示。 OCL是用于转换模型的新OMG标准建议中的关键组件,即查询/视图/转换(QVT)规范。
作为基于规则的验证语言,Schematron可能被认为是OCL的替代品。 然而,Schematron适用于可扩展标记语言(XML)树,而OCL可以导航基于MOF的模型和元模型(即XML元数据交换(XMI)树)。 换句话说,OCL与UML或MOF相关联,类似于Schematron与XML的关系。 (请注意,Schematron使用XPath在XML树内进行导航。)
作为一种模型规范语言,允许设计人员用无副作用的注释来装饰模型或元模型,OCL可以被Alloy等语言所取代。 通过自然语言如NL2OCL可以自动生成OCL。
与jsf的相似之处,都有有效情况的上下文条件,都使用了数理逻辑语言等,不同点在于OCL没有放弃自然语言,jsf则显得有些自以为是了。
三、类图、顺序图、状态图
UML图
顺序图
状态图
四、总结
4.1. 四个单元模块知识点的联系
第一单元为面向对象基础。
第二单元为多线程编程。
第三单元为设计规格。
第四单元为测试与正确性论证。
个人认为一二单元有渐进关系的联系,三四单元则显得生硬而无关。
4.2. 自身进步
java代码能力获得了一定程度的锻炼,对java的机制与特性有了更深入的理解。
4.3. 对工程化设计的理解
模块化与零散化。
4.4 期望和建议
减少作业量,大二下学期并不是只有一门课程。