一、规格化设计的发展历史
20世纪60年代,软件出现严重的危机,Dijkstra提出了goto语句的危害,由此引发了软件界长达数年的论战,并产生了结构化的程序设计方法。
随着计算机技术的发展,结构设计化语言和结构化分析已经无法满足用户的需求,OOP由此应运而生,即面向对象的程序设计。面向对象程序设计的诞生是程序设计方法学的一场革命,大大提高了开发效率,减少了软件开发的复杂度,提高了软件的可维护性,可扩展性。1990年以来,面向对象分析、测试、度量和管理研究都得到长足的发展。规格化设计随其而生,为了提高程序的规范性,对类。方法等进行规范化设计,有利于模块化的划分。
二、规格化设计得到重视的原因
规格化设计可以提高程序的规范性、可读性,可以有效整理逻辑,避免出错;对类、方法等进行规范化设计,也有利于程序的模块化划分。规格化设计程序可以使得数据更加安全可控,也便于测试、维护程序,同时也方便其他人去理解应用该代码,因而受到程序设计人员的重视。
三、bug分析
作业 |
bug类别 |
所在方法 |
代码行数 |
产生原因 |
|
9 |
无 |
|
|
|
|
10 |
error |
running |
80 |
忘记考虑接单时在无红绿灯口的情况 |
|
|
JSF |
Comp |
10 |
构造方法的EFFECTS为NONE |
|
|
JSF |
Out |
33 |
eFFECTS过于简单 |
|
|
ERROR |
run |
40 |
数组越界 |
|
11 |
JSF |
Readrequest |
32 |
EFFECTS过于简单 |
|
由于是先写完代码再补规格,所以未发现联系。
四、规格的不规范写法
(1)使用自然语言
to:改用布尔表达式
(2)MODIFIES列出来的变量,在EFFECTS中却未体现
to:将MODIFIES中出现的变量如何更改在EFFECTS中表示出来
(3)REQUIRES使用None来表示
to:使用True或this!=null
(4)拼写错误
to:写完之后再检查一遍有没有单词拼写错误
体会:先写规格可能确实会帮助自己在写方法时对方向的把控,同时也会方便别人对代码的理解与使用。此外,实验课上的经历貌似让人在规格上的收获更大些。