第四次博客作业

OO第四次博客作业

1.论述测试与正确性论证

  程序测试是编写测试文件,通过自己构造一系列实例的输入,对期望输出和实际输出进行对比,来实现对程序的测试,这种测试的好处有很多,比如可以根据问题的要求和功能构造易错的测试用例来对程序进行高效的测试,也可以在测试过程中很快地定位到自己的错误所在进而纠正程序,但是不足是由于程序的输入是不可预知的所以不可能穷举完所有的程序输入,在一定程度上就不能完全证明程序是正确的。

  程序正确性论证是研究如何使用程序设计语言编制程序,以正确实现预定的目标.程序正确性理论提出编制正确程序的两种途径一种称为程序验证,研究如何使用数学推理来严格论证程序是否符合其目标.另一种称为程序综合,研究如何由给定目标出发,逐步构造一个在计算机系统上可运行的程序,而且要求构造过程的每一步都是严格保持正确无误的。正确性论证过程中通过严密的逻辑和布尔表达式来对所有的情况进行分析论证,虽然步骤繁琐篇幅较长,但是更加全面和有力。

2.OCL和JSF

  OCL与JSF的相同性体现在

       1>查询性的语言,也就是说任何动作都不会对模型本身造成任何的影响或者改变

       2>无二义性规范语言

       3>包含前置条件后置条件和不变量

       4>强类型的语言,任何一个元素,都是有类型的,并且任何操作的返回值一定有一个确定的类型。

 

  不同点:

  1>用OCL可以描述四类约束,分别是不变量、前置条件、后置条件和监护条件。

  2>OCL虽然号称“对象约束语言”,不过实际上可以用来约束MOF四层模型中任意一层的模型以及实例。它真正的意义是建模相关领域约束语言。

  3>OCL里面很强调时间点,任何操作都定义为瞬时完成的,即操作中模型的状态不会改变。基于实现考虑,这么规定有一定的道理,不然在多线程系统中,OCL约束很有可能失效。

    另外precondition和 postcondition也明确规定是在方法执行的前后时间点才有约束,时间点不对约束无效。

3.

  类图目的就是为了简化逻辑,让我们的思维可以站在类级别的去考虑问题从而避免一开始就陷入细节

  顺序图可以直观的反应程序执行的过程,特别 在表示各个对象间的调用顺序,那么顺序图是一个很好的选择

  类图:

 

   顺序图:

 

  状态图:

 

 

4.总结

  第一单元是面向对象入门

    这个阶段的目的是把大家在c语言中养成的面向过程思维向面向对象转化的过程,同时也学习java基础知识来进行初步的编程。学习类和属性方法,类的封装等等。

  第二单元是对多线程的全面学习

    第二单元以第一单元为基础,进行从1到3,从3到n的转变,在这一过程中重点让学生体会和学习了多线程的安全和如何保障安全。

  第三单元则是规格规范化和工程化的转化

    将初始学习时的不规范行为和设计进行反思和规范化处理,为以后的规格工业化,和合作编程打下基础。

  第四单元则是程序正确性验证

    其实这也进入工程的最后阶段,即验证工程的正确性以来判断是否完成任务。

 

    自己的进步在于从C语言编程到java编程的改变,以及面向过程思维到面向对象的转化

  我觉得自己最大的收获就是编程工程化。以前的一个程序一个方法干到底的思路已经让我在编程过程的纠错,思路方面尝到了苦果。

  现在面向对象后的封装和分类,使得自己可以根据功能和结构来划分不同的类,便于纠错和维护。

  从野路子到规范化的转化无疑是符合大规模编程和协作工程的要求。

 

    在我看来工程化开发需要不同的人和团队进行协作开发,在这一过程中对工程开发过程中需要进行实时的沟通和协作,需要进行任务的交接,需要后期不同的人的维护。

  所以很重要的一点就是工程化开发要有严格的规范要求,使得与你协作,对接,为你程序维护的人能够理解你的代码和程序。所以在我看来工程化开发最重要的是统一的严格规范。

猜你喜欢

转载自www.cnblogs.com/killme7/p/9218433.html