面向对象第四次总结作业

测试与正确性论证

通过实际的测试样例来测试代码是检查代码正确性最常见的方法。通过实际的运行,可以检验程序的基本功能,还能发现一些只看代码难以发现的问题,运行效率和使用体验也难以仅从代码检验。但是例子是无穷多的,枚举所有实际情况是不现实的,能做的仅是测试到所有类别。

正确性论证从理论层面证明了工程的正确性。但是论证是有难度的,比样例测试更加耗费时间和精力。而且也人可能出错,保证论证准确又要花更多精力。

OCL语言与JSF

OCL(object constraint language)对象约束语言,用来进行约束定义的,形式化的无二义的语言。主要是在建模时说明建模元素的有关细节,例如:约束,前置条件,后置条件等。

用OCL包含四种基本语言要素:类型(基本类型,高级类型),操作,表达式,语句。

相同点:

相似性:

OCL与JSF都是形式化的约束语言,消除了二义性。

OCL主要包括不变量,前置条件,后置条件以及监护规则,

JSF对应有repOK(),REQUIRES,EFFECTS以及MODIFIES。

不同点:

OCL是统一建模语言(UML) 模型的规则,作为对图形符号的补充。

OCL规定更详细复杂。

 

UML

UML类图

 

UML顺序图

 

UML状态图

 

 

学期总结

四个模块的知识

java面向对象基础:基础。学习java语法,继承,正则表达式。大致了解工程的标准与理念。

多线程:多线程程序设计,考虑多线程之间的同步互斥问题。

规格化设计:通过规格来约束程序,提高工程质量。定义标准,便于合作。

测试与论证:通过覆盖性测试和正确性论证来测试和保证程序的正确性。

 

程序梳理

前几次的作业主要都在学习新的东西:java,正则,继承,多线程,文件操作等。

从开始检查程序设计原则时我才开始注意功能以外的地方,程序的风格(变量名,方法名的格式,空行等),方法规模和类规模的合适大小,类的数量,更方便继承的写法,异常处理的习惯等。

很多写法都是从阅读别人代码中学到的(当然前提是代码好读),有时直到发现我的bug别人以这种方式应对才会认为这种写法合理。课上讲的虽然增进了了解,但难以直接体现在代码上(我好菜啊)。

 

工程化开发

个人感觉对工程化开发的理解还是很浅显。

就是要明确地区分模块功能,确定统一合理的代码风格,利用工程方法(或者叫相应工具吧)进行分析和测试。而这几点都需要锻炼才能做得更好。

 

期望和建议

只是一些胡乱的设想

期末公开相关人名单。

先有一次规格设计,下一次再程序设计。

转载于:https://www.cnblogs.com/ffiamz/p/9224713.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值