OO第四次博客作业
测试与正确性论证
在对比每次大家分享的互测经验时,总是有两种方式,第一种就是测试,从分类树开始,对每个分支都构建许多测试样例,从而达到找bug的成就,甚至不乏某些人构造出一些奇奇怪怪的样例,然后去readme里抠字眼(跑题了)。
另一种方式就是阅读对方的代码,分析代码的逻辑,从而寻找别人代码的逻辑漏洞,这种方法其实也非常高效的,只要理解了对方的代码,那么藏在角落的bug都会现形。
这里的两种方式就分别对应着这里的测试和正确性论证。测试即设计测试样例,将运行结果同期望结果比较,来判断程序是否正确,但是测试只能证明程序运行不正确,不能证明程序是正确的。而正确性论证则是根据代码规格,逐一论证各部分代码的实现是否符合规格,从而论证程序是否正确。
OCL语言调研
对象约束语言,简称OCL,它是一种用于施加在指定的模型元素上约束的语言。
OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。两者都有前置条件和后置条件,不过OCL是有基本类型的,显然不能像JSF那样用自然语言了。
OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。这些标准型是OCL表达式的组成部分。
因此相比之下,JSF极大的简化了OCL的一些规范。
UML图
1.类图
2.顺序图
3.状态图
四、模块之间的关系
(1)
1、第一模块主要是JAVA基础部分,这一阶段主要是帮助我们熟悉JAVA语法和用法
2、第二模块是全局最艰难的地方,多线程编程
3、第三模块是对我们编程训练的加强训练
4、第四部分则是更偏向于总结
(2)
进步:开学时,我的程序就像面条,陕西的面条?不过经过一个学期的训练,现在的程序看起来好看多了,具体的进步嘛,在每个阶段都已经说过啦。
(3)
在这么课里,我们暂时还没有团队开发,不过已经涉及到了工程化开发,这里我学会了写规格,并且进行规格化测试,总体来说还是收获颇丰啊!
(4)吐槽的话都说累了,提点建议把:
a.总是有些人只要是模棱两可的BUG,就都报上,难道随便报bug不需要为这种行为付出代价吗?没有代价的坏事,任何人都会做。强烈建议仲裁输的一方扣分!
b.OO 3学分搞得比10学分还累,是不是该删掉一些,比如OO实验,或者将实验改为课下做,可以减少很多同学的压力
c.第一周就开始,很多人连JAVA是啥都不知道,能否给点时间先自学一下,假期也行,不过得出一个教程和练习把,要不就是游戏开始就打怪的节奏。