OO第三次总结
Posted tz-2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OO第三次总结相关的知识,希望对你有一定的参考价值。
(一)总结介绍规格化设计的大致发展历史和为什么得到了人们的重视
早期程序的代码量不是很大所以人们没有意识到规格化设计的重要性,但随着人们需求的增加以及程序功能性的增强,程序代码量越来越大,一个人无法完成庞大程序的编写和维护的工作量,但编写代码的人不一定会是维护程序的人,在阅读代码进行维护时给维护人员带来巨大的阻碍。所以代码规格应运而生,通过代码规格可以更快的了解相应代码的功能而不需要去阅读源码。大大便捷了程序团队编写和程序的维护。因此规格化设计越来越得到人们的重视,并成为业内的共识。
(二)规格bug分析
3次互测中都没有被找到规格bug,但自己的规格撰写还是有待提升的。
(三)规格不好写法的改进
REQUIRES | 原写法 | 改进写法 |
sortPath |
src != null; |
0<=src.x<80 &&0<=src.y<80 &&0<=dst.x<80 &&0<=dst.y<80 |
initmatrix | None | map!=null |
OpenPath | p1!=null&&p2!=null |
p1!=null&&p2!=null &&graph!=null &&road!=null &&map!=null |
Req |
time!=null |
time!=null &&0<=src.x<80 &&0<=src.y<80 &&0<=dst.x<80 &&0<=dst.y<80 |
gettime | None | this!=null |
EFFECTS | 原写法 | 改进写法 |
offer |
\!IfIn ==> Grabque.offer(taxi); |
(old)Grabque.contains(taxi) == false ==> Grabque.contains(taxi) == true &&Grabque.size() = (old)Grabque.size() + 1 |
poll | \result == reqs.poll(); |
(old)reqs.isEmpty == false ==> \result == (old)reqs.poll() &&\(old)reqs.contain(\result) == false &&reqs.size == (old)reqs.size - 1 |
INFO_all |
(\all int i; i<num.TAXINUM ==> System.out.println(taxis[i].comString()); |
(\all int i; 0<=i<num.TAXINUM ==> System.out.println(taxis[i].comString()); |
PointManager |
\this.n == 0; 该次请求所经过的所有的Point序列; |
\this.n == 0 &&(\all int i; 0<=i<record.pickpath.size ==>\this.points.contian(record.pickpath.get(i)) == true &&\this.points.size = (old)\this.points.size + 1; |
(四)bug与规格分析
bug | |
第九次作业 | 未被测试 |
第十次作业 | 边界上红绿灯无法变换 |
无法打开关闭的道路 | |
第十一次作业 | 未按照最小流量跑 |
感觉功能bug和规格bug目前看来还没什么明显的关系。因为目前为止都还是先写的代码再写规格。
(五)心得体会
这三次作业的代码量相较前一轮明显少了不少,主要是为了培养我们代码规格的撰写规范。但不是每个人的水平都达到了那种境界——就是先写规格再写内容,大部分同学应该还都是先写的内容并debug后再进行规格的撰写,但两次上机实验课让我明显体会到了规格撰写的重要性,有了一个描述完好的规格再对内容进行编写是很容易的一件事。所以规格撰写水平的提升对程序员来说非常重要,自己也需要多花点心思在这方面上。
以上是关于OO第三次总结的主要内容,如果未能解决你的问题,请参考以下文章