面向对象编程第四阶段总结

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

  测试是对每个方法构造样例,进行代码全覆盖来检查代码是否存在问题;而正确性论证是对其正确性和合理性进行论证,来判断是否代码是否符合逻辑。

  测试的优点在于更加直观,书写起来相对比较简单方便,但是很难做到100%覆盖,有时会有一些问题被遗漏;正确性论证是在逻辑的基础上对代码进行论证,更加严密,覆盖率也更高,但是缺点是书写起来非常繁琐。

 

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

  OCL是约束(Constraint)语言和查询(Query)语言。一个约束就是对一个(或部分)面向对象模型或者系统的一个或者一些值的限制。UML类图中的所有值都可以被约束,而表达这些约束的方法就是 OCL。在UML2标准中,OCL不仅用来写约束,还能够用来对UML图中的任何元素写表达式。每个OCL表达式都能指出系统中的一个值或者对象。因为 OCL表达式能够求出一个系统中的任何值或者值的集合,因此它具有了和SQL同样的能力,也就是说OCL也是一种查询语言。

  OCL是基于数学的,但没有使用数学符号。OCL的基础是数学中的集合论和谓词逻辑,并且它有一个形式化的数学语义,但是它并没有使用某种数学符号。因为虽然数学符号能够清晰的、无歧义的表达事物,但是只有极少的专家可以看懂。所以数学符号并不适合用于一个广泛应用的标准语言。

  自然语言是最易懂的,但是它是含混不清晰的。OCL取了自然语言和数学符号的折中方案,使用普通的ASCII字符来表达数学中同样的概念。如果你不喜欢当前的OCL表达方法,OCL规范还允许你定义自己的OCL符号集,这点是可以理解的,因为OCL有一个清晰的数学语义。

  OCL是一个类型语言,任何表达式的值都是属于一个类型的。这个类型可以是预定义的标准类型例如Boolean或者Integer,也可以是UML图中的元素例如对象。也可以是这些元素组成的集合,例如对象的集合、包、有序集合等等。

  表达式仅仅描述了应该去做"什么",而不是应该"怎样"去做。因为OCL是宣言式语言,所以UML中的表达式被提升到了纯建模的领域,而不必理会实现的细节和实现的语言。

 

OCL与JSF的相似处:

  都是一种约束语言;两者都有“前置条件”、“后置条件”、“不变式”等

 

OCL与JSF的不同点:

  JSF仍可使用自然语言进行描述,而OCL的规范更加严格,表达式有具体的类型分别。

 

3. 根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和请求,至少整理出一幅UML类图、一幅顺序图和一幅状态图,并使用图(graph)来表示出模型。

UML类图

 

顺序图

 

 

4. 整理总结一个学期所学所练

4.1阐述四个单元模块知识点之间的关系

       第一个单元的作业由基础的多项式加减和两次电梯组成,主要是训练使用JAVA语言以及熟悉面向对象编程的思想,为进一步的学习打下基础;从第二个单元开始接触多线程,逐步了解并加深了对多线程编程的理解;第三个单元主要是对出租车设计进一步完善并且练习了书写规格,梳理编程思路,规范编程思想;第四个单元主要是对书写好的程序进行测试。

 

4.2梳理自己所设计实现的程序,分析自己在设计、测试和质量上的进步

       由于水平原因,我写程序时一般是先在纸上梳理好逻辑关系,大致制定好要实现几个类及其要实现的功能,理清思路之后开始写代码,写完之后通过一个一个的样例发现bug并进行修复,但由于最开始思考的不完善,经常会出现比较大的逻辑问题,导致修改给我带来的非常大的工作量,改动之后重新DEBUG也是一个非常费时的过程。我在DEBUG上花了这么多时间主要还是因为对一些细枝末节的情况思考的不完善,不停地修改可能又会导致新的问题,这个过程的反复进行十分费时费力。经过一个学期的训练之后在书写规范上有着一定的进步,编程能力得到了一定的提高,但是离真正写出好的程序还差得很远,继续加油吧。

 

4.3阐述自己对工程化开发的理解

  工程化即系统化、模块化、规范化的一个过程。指将具有一定规模数量的单个系统或功能部件,按照一定的规范,组合成一个模块鲜明、系统性强的整体。工程化往往对程序的规范性要求很高,以我目前的水准对于工程化开发并没有太多的实际体验,还是先好好练习提高基础的编程能力吧。

 

4.4对课程的任何期望或建议

       这学期的oo结束了,终于可以松一口气,对于这门课我也没有太多想说的,谢谢各位老师和助教。

转载于:https://www.cnblogs.com/impact0/p/9225988.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值