1、 规格化设计算法
规格化抽象,即将执行的细节抽象为用户所需求的行为(模块作什么)。编程
主要做用在于提升工程设计中的可维护性,可读性,明确功能,使整个编程任务变得清晰有序以减小程序BUG。数据结构
说其发展历史,彷佛显得有些牵强,由于“规格化设计”这个标准的概念尚未获得普遍运用以致于百度上进行查找全都是北航同窗的博客……不过相似的规范化设计仍然在计算机编程中发挥着比较重要的做用,在面向对象中,其主要衍生于数据抽象和过程抽象这样的初始概念,以后因为代码维护的重要性结合面向对象的特色产生了规格化设计的概念,以此使程序井井有条有条不紊。学习
2、做业中规格BUG总结优化
第九次做业 : this
无规格BUG ;spa
第十次做业 : debug
REQUIRES规格bug2个 ; EFFECTS规格bug1个 ;设计
错误缘由 : (1)前置条件整型变量未限制范围大于0 ; (2)前置条件格式不正确(\old的使用) ;对象
(3)后置条件用天然语言描述 ;
第十一次做业:
REQUIRES规格bug2个 ; 一个方法未写规格 ;
错误缘由 : (1)前置条件整型变量未限制范围 ; (2)前置条件国歌约束之间使用 " ; " 链接而不是" && " ;
错误缘由总结:
这几此做业的规格bug出现缘由主要是由于未能覆盖全部方法的全部约束,以及某些细节的格式错误。
3、规格改进实例
一、前置条件实例
(1)实例1
代码段截图:
前置条件更正为:
time>=InitTime ;
(2)实例2
改进前:
更正为:
p1!=null && p2!=null ;
(3)实例3
改进前:
前置条件改进为:
command.detail.paidan!=null && command.detail.paidan.way!=null && command.detail.paidan.waytime!=null ;
(4)实例4
改进前代码:
前置条件改进为:
time>=0 ;
二、后置条件实例
(1)实例1
改进前:
后置条件改进为:
(\exist int i; 0 <= i< queue.size;queue[i].from==this.from && queue[i].to==this.to && abs(queue[i].time-this.time)<100)==>\result==true;
(2)实例2
改进前代码:
后置条件改进为:
(\all int i; 0 <= i< str.size;(new command(str).IsLegel()==true ==>queue.contains(command)==true)) ;
4、规格撰写心得体会
最后抒发如下本身这一个月的编程体会……
不得不说这一个月是我大学以来最无聊的编程体验,由于几乎全部的时间都围绕着一个事情:扣分(不论是给别人扣分仍是被别人扣分,如何写代码已经把“不被扣分”放在了首要的位置)……
老师可能没法体会到目前学院的OO课程氛围是怎样的,毕竟做为决策者,中心是培养咱们的能力,至于采起的措施能不能起到效果或者说能不能真正起到利大于弊的效果,目前确实没法下定论,可是能够确定的是OO这门课程的学习氛围确实很是差,最明显的一点:每次周五十点之后朋友圈满满的负能量(这个各位同窗应该是深有体会的)…
我并非单纯抱着吐槽的目的写这些感想,由于我并不否定课程组的初衷,规格化的编程思想在工程设计中确实是很重要的,可是出发点与实际状况经常会背道而驰,因此我想把真实状况放映出来,同时表达一下本身对于课程的见解;
规格化设计的目的在于提升可维护性,提升可读性,明确模块的目的,经过编写规格的时间大大减小更多的debug时间和代码维护的时间,这样看确实应该起到“事半功倍”的效果,可是因为目前这种规格化设计的死板性和互测中标准的欠缺,咱们目前的状况彷佛是“事倍功半”,而且…直接致使了OO互测再也不像是相互学习的途径,而更像是一场没有硝烟的战争,然而战争的结果却没法让人信服(这也是为何目前OO课的课程氛围极差,充满了负能量);
同为编程为基础,我想同另外两门课做为对比:
一是大一的数据结构:大做业中同窗们能真正经过对课程知识的理解和实践去探索挖掘其中的细节奥秘,以此不断优化本身程序的算法(尽管时间只减小了1毫秒,仍然是货真价实的提升);
二是大二上的计组:要求及其严苛,可是标准统一,评分干脆,因此尽管艰难可是没有抱怨过了就是过了没过就是没过,心服口服。
固然并非说OO就一无可取,OO也有它的优势,而且面向对象自己的特性致使了不少时候在标准上就没法作到彻底统一,可是针对目前OO课程的体系,是否能够借鉴一下这两门课的课程思想,尤为是改善一下学院内的学习氛围,若是一门课迫使你们一步步地把分数变为绝对核心,同时这门课带给你们的不是完成任务之后的兴奋和成就感,而是相互“损害”弥漫的负能量,想一想仍是挺悲哀的…
撇开评价不说,其实仍是须要感谢课程组对于每位同窗的付出,毕竟有时理想与现实总不能作到统一,或许老师和助教也是无奈……
只能但愿这门课的体系能愈来愈完善,全部人的努力都会获得回报,共勉…