OO第三次博客作业

一.规格化设计的发展历史及重要性调研  

  规格化设计与结构化、模块化设计密不可分,伴随着OOP语言的发展,规格化设计思想逐渐形成体系,慢慢完善。从1940年的面向机器编程,到之后的面向过程编程,逐渐出现了我们现在使用的各个语言的原始版本。而随着代码量的不断增加,程序功能的不断复杂化,简单的面向过程编程不再能够满足人们的需要,因此,出现了结构化程序设计。

  在这一过程中,编写代码的人们也注意到了规格的重要性。Edsger Dijkstra 于 1968 发表了著名的《GOTO 有害论》的论文,提出了程序设计中常用的GOTO语句的三大危害:破坏了程序的京东一致性,程序不易测试,限制了代码优化,引起了长达数年的论战,并由此产生了结构化程序设计方法。同时,第一个结构化的程序语言 Pascal 也在此时诞生,并迅速流行起来。在此之后,随着硬件的快速发展,程序的复杂度迎来了再一次的飞跃,而这时出现了面向对象编程。此后规格化得到了人们越来越多的重视,因为其可以帮助阅读者迅速理解代码,也能帮助设计者更好的设计、规划自己的程序,避免由于粗心大意造成的种种错误。

二.规格bug及产生原因

  

  因为对规格的不理解和不重视,导致根本没有认真写,忽略了很多细节。

三.改进建议

  1.前置条件

    (1)每一个方法的前置条件都是\exist 需要传入的参数,而不写参数的具体范围。 

           给出具体的参数范围。

    (2)前置条件不使用类似\all的关键字

        按要求使用关键字。

  2.后置条件

    (1)使用自然语言而不用布尔表达式

       由于方法长度过长实现的东西很多,很难用布尔表达式表达,所以就是用自然语言,其实可以拆分方法,使之变得简单。

    (2)直接复制代码

        比如一个get类型的方法,return arraylist.get(i),就直接复制这段代码,至少应该写成\result == arraylist.get(i)。

    (3)使用=而不是==

        构造器方法经常是=,但是要求是布尔表达式。

    (4)没有关于异常的信息

        加入关于异常的信息。

四.功能bug

  

 

五.设计、撰写规格的思路和体会

  个人能够理解代码规格化的好处,比如优化代码风格,使代码的易读性增加,有利于大型工程的团队合作。但是理解不代表能体会到,或者说现阶段能体会到。

  尝试过先写规格再写方法,但是由于即使先想到了一个方法的大致需求,细节还是一直在改变,到头来还是要回去修改规格,这反而增加了完成作业的时间和难度。同时现在的作业都是个人独立完成,也没有什么让别人读懂代码的需求,甚至为了逃避被找bug,越让人看不懂越好,规格的意义就更微乎其微。

  回归到作业的话,互测找规格问题,使面向运气编程这个梗更具有意义了,遇到好的人根本不看规格,遇到坏的人找不到功能bug就死扣规格,而由于规格本身细节就不成熟,导致很多问题根本扯不清谁对谁错,分数最后还是被扣了,这其实本身是课程组老师的问题,但是后果全是由学生承担的,就更让人不理解规格的意义到底是什么了。

posted @ 2018-05-28 18:26  JJJJJJJiYun  阅读(166)  评论(0)    收藏  举报