码迷,mamicode.com
首页 > 其他好文 > 详细

第四次博客

时间:2018-06-25 20:17:24      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:实现   基本类型   说明   返回值   形式语言   art   优雅   通过   repo   

测试与正确性论证:

测试的目的是将程序的代码做到全覆盖,从而确保每个分支都运行一遍,进而分析代码中是否有错误,错误出在哪里。这个方法是实用的,但不是完备的。而正确性论证则通过大量的穷举,基于repOK和jsf来论证正确性,是逻辑层次的,可以说绝对正确,但相对复杂。私以为,二者的区别在于,测试可以说明没找到错,论证说明是对的。

 

对象约束语言:

OCL(object constraint language)对象约束语言,一种用来进行约束定义的,形式化的无二义的语言。包含四种基本语言要素:

  1. 类型(基本类型,高级类型)
  2. 操作
  3. 表达式(由操作数和运算符构成)
  4. 语句

它是UML可选的附加内容,可以用来更好地定义对象的行为,并为任何类元指定约束。在对象约束语言中,对象代表了系统的组件,它定义了完善的项目,约束代表限制。

OCL是一种形式语言,可以应用于任何实现方式的非正规语言。它对UML中图形或其他组件都没有控制权,它只是在使用时返回值。OCL并不能修改对象的状态,而是用来指示对状态的修改何时发生。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。

相比JSF,OCL中涉及到上下文,不变量等一系列规范,相比我们所使用的JSF更加复杂和精细化,OCL中本身定义了基本数据类型和一些高级数据类型,还有运算符和表达式中的一些书写规范,几乎算得上是一种编程语言。(然而并不是)

OCL和JSF中都有对前置条件和后置条件的说明,都是不具有二义性的,可以说JSF是一种简化以及自由化了的OCL。

 

学期总结

 

知识点联系

  第一单元主要是一些设计思想,类,接口,继承等,第二单元是多线程的共享数据管理和冲突解决,第一章是必要的基础,只有封装好每个类,才能实现更好多线程的程序。第三单元是规格化设计。第四单元是单元测试和正确性论证,根据规格对每个方法进行测试和覆盖率检查,对每个类进行正确性论证。

设计的程序

  多项式加减

  傻瓜单电梯

  可捎带单电梯

  可捎带多线程电梯

  出租车调度

  可开关道路的出租车调度

  可开关道路和带有红绿灯的出租车调度

  可开关道路和带有可追踪出租车和红绿灯的出租车调度

 

  写多项式作业时,初次接触面向对象,写得很面向过程。在之后的系列作业中,由于本身功能实现具有难度,虽然对一些类进行了封装,但是仍然没有实现功能的划分,于是每次作业都在对之前的作业进行大改(直到出租车才有所改善)。从电梯到出租车的系列作业,从简单的两三个类到十几个类,在设计上已经能够尝试去遵循SOLID设计原则。

  在测试上没什么太大进步。。。大概是是从胡乱测试到了根据测试树构造数据?

   而程序的质量是仍然有很大的进步空间的,人懒写的又少,还是要多练才行(下周一定又开始努力)。

 工程化开发

   了解不深,也无法实现工程化。过短的作业周期,过大的作业压力,过迷的指导要求,光是活下来都已经举步维艰,还指望什么舞姿优雅。

 期望和建议

       望越办越好。

第四次博客

标签:实现   基本类型   说明   返回值   形式语言   art   优雅   通过   repo   

原文地址:https://www.cnblogs.com/sxz1606/p/9225824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!