OO第四次博客作业

一、 测试与正确性论证的效果差异及优缺点


 

测试:基于前置条件和后置条件对输入划分并抽样产生测试数据,检查方法执行输出 是否满足后置条件

• 优点:易于实施,工程广为采用

• 缺点:无法确保正确性

论证:针对格式化的规格和代码实现,人工方式对代码逻辑进行分析,确认是否所有 满足前置条件的输入都能产生满足后置条件的结果

• 优点:折衷,形式验证与自然语言层次逻辑推理相结合

• 缺点:无法确保自然语言层次逻辑推理的严谨性

二、 OCL语言


 

  对象约束语言,简称OCL,是一种指示用户建模系统中的限制方式。它是UML可选的附加内容,可以用来更好地定义对象的行为,并为任何类元制定约束。

  在对象约束语言中,对象代表了系统的组件,它定义了完善的项目,约束代表限制,而语言并非是指一种正式的计算机语言。

  OCL是一种形式语言,可以应用于任何实现方式的非正规语言。对象约束语言对UML中图形或其他组件都没有控制权,它只是在使用时返回值。OCL并不能修改对象的状态,而是用来只是对状态的修改何时发生。

  OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件。

  相比之下,jsf使用起来就比较简单快捷了.带来的副作用就是由于符号系统的不足,很多程序的表达上比较困难。


UML类图

 

 

时序图

状态图

四、总结


 

 

1.第一个单元的作业我们初步认识面向对象程序的结构特点,区分过程式程序与面向对象程序在结构上的主要差异;如何把程序功能“均衡”分配给多个类,如何让多个类之间进行协同,掌握如何使用继承构造逻辑处理层次。第二个单元我们学习了对象运行机制、线程交互、线程安全设计。第三个单元我们学习了过程规格设计、类规格设计、设计原则。第四个单元我们学习了自动化测试、基于规格的程序正确性证明、程序的模型表示。

 2.第一个单元的几次作业我那时候还不懂得如何用面向对象的思想写,所以那几次作业都是用的面向过程的方法。第二个单元的几次作业,因为是在前几次作业的基础上写的,所以用写越难受,到最后一次电梯作业——多线程电梯无效了一次。那次以后,我决定学会用面向对象的方法写。后面几次的作业一次比一次写得好,bug也少了很多。然后慢慢的思考如何把代码写的更加简洁。在写第十三次作业的时候我把之前的代码重写了,代码长度从以前的800多行缩减到了500多行。

 3. 工程化开发方式是针对大型工程的开发所适应的手段。工程化开发方式通过一套完整的流程限制,增加编程流程,提高了复杂度,降低了思维难度。

 4.希望对于恶意扣分的行为严惩,比如有些同学拿到作业后第一件事就是看又没有泄露个人信息;一个错误可能会导致多个测试点都出错,那么这一个bug可能会导致重复扣分,这样影响公平。作业难度分配不合理,电梯几次作业明显要比出租车几次作业难。

 

转载于:https://www.cnblogs.com/mengxiangjing/p/9225768.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值