OO第四次博客作业   OO第四次博客作业

OO第四次博客作业

重点放前面,所以先放4.4。

4.4对课程的建议

取消互测!

  取消互测,并不是说取消就取消的,而是有充分的理由的:

  首先,OO这门课的重要目的之一,就是在于锻炼同学们对需求的理解能力(这也是为什么指导书并没有在细节方面规定的面面俱到)。而正如老师上课所说,需求理解没有绝对的正确标准,只有功能的完成度与实现成本的权衡。

  但是,OO又偏要引入互测这种评判形式。而由于互测牵扯到同学们个人的最后得分,当然大多数同学都想尽量多扣分,在可扣可不扣的地方都会选择扣分。换句话说,为了避免自己被扣分,同学们必然会在种种细节上向助教求证,以确保自己不会被扣分,也就是说,互测为了规范测试者的行为,必须要有一个绝对性的正确标准。  这学期中,这个绝对的正确标准可以说就是助教对需求的理解。

  这就是互测带来的矛盾:需求理解训练中,没有唯一正确标准,所以指导书写的很概括很简略;但互测中为了评判标准与规范行为,又必须要存在一个绝对的正确标准作为判断依据。这一矛盾导致每次同学们都需要花费极为大量的时间在询问细节要求、或者根据后来突然更改的要求修改代码上,导致同学们付出的时间巨大,学到的东西却极为有限。 

  的确OO目前的模式确实也能让我们学到东西,对我们也有好处,但是这一矛盾带来问题也让很多同学十分痛苦。换句话说,每天跑步有利身体健康,所以就让你每天跑50KM,换了你,你愿意嘛???

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

  测试只能确保测试到的部分完全正确,但对于没有测试到的部分无法对正确性做出判断。

    优点:简单直接,不容易出错

    缺点:难以完全覆盖所有分支,保证程序整体正确性

  正确性论证在论证过程正确的基础上,可以确保整个程序的正确性。

    优点:从理论层面论证,对论证过的部分可以完全覆盖

    缺点:论证较难,论证过程本身也可能出错

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

  一个约束就是对一个(或部分)面向对象模型或者系统的一个或者一些值的限制。UML类图中的所有值都可以被约束,而表达这些约束的方法就是 OCL。自然语言是最易懂的,但是它是含混不清晰的。OCL取了自然语言和数学符号的折中方案,使用普通的ASCII字符来表达数学中同样的概念。如果你不喜欢当前的OCL表达方法,OCL规范还允许你定义自己的OCL符号集,这点是可以理解的,因为OCL有一个清晰的数学语义。

  也就是说,OCL在功能上与JSF规格极为相似,但OCL以牺牲一部分严谨性为代价,使用了更易懂的语言,而JSF则使用数学语言,确保了严谨性,降低了可读性。

3.类图时序图和状态图

类图:

OO第四次博客作业
 
OO第四次博客作业

时序图:

OO第四次博客作业
 
OO第四次博客作业

状态图:

OO第四次博客作业
 
OO第四次博客作业

4.学期总结

4.1知识点之间关系

  四个单元的知识点相辅相成,逐渐深入。

4.2在设计、测试、质量上的进步

  经过OO的训练,设计时考虑的更加周全,测试的更加全面,代码质量有一定提升。

4.3对工程化开发的理解

  工程化开发是现代在实际的软件开发过程中所不必可少的一项技能,也是我们将来走入职场时必须所要掌握的一项技能。尽管现阶段由于代码量有限,工程化开发的优势与必要性还不能很好的体现出来,但是这并不影响其重要性。