博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oo第三次博客作业
阅读量:6714 次
发布时间:2019-06-25

本文共 1241 字,大约阅读时间需要 4 分钟。

1.  规格化设计

随着软件开发项目的工程量的逐步提升,为了保证良好的可移植性和传递性,便开始通过规格来降低程序交接的难度,使得每一个接手非本人程序的程序员也可以轻松读懂工程的目的以及各个类的概述,甚至每一个方法的实现过程和功能。在这一过程中,逐渐产生了规格的特性。就过程规格而言,有以下几个方面:1、独立性:针对一个规格抽象的实现与针对其他规格抽象的实现无关,相互之间不会产生影响。2、可修改性:当修改一个规格抽象的实现时,不需要对使用该抽象的其他任何规格抽象及其实现进行调整。3、平易近人性:不去阅读具体代码就可以了解方法功能和类的设计目标及行为。

 

2.规格类bug

       缺少effects (对应方法行数:8)

 

 

 

3.产生原因:忘写了

 

4.规格写法改进

(1)确保time的正确性:

//修改前

public int waittime() {

        /**

        * @MODIFIES: NONE;

        * @EFFECTS:

        * \result == (700 - (System.currentTimeMillis() - time))

        */

}

 

//修改后

public int waittime() {

        /**

         * @Requires: this.time > 0

        * @MODIFIES: NONE;

        * @EFFECTS:

        * \result == (700 - (System.currentTimeMillis() - time))

        */

}

 

(2)确保打印内容有意义

//修改前
public void print() {
        /** @MODIFIES:this.file;
        * @EFFECTS:
        */
}
//修改后
public void print() {
        /** @Requires:this.reoOK() == true
         * @MODIFIES:this.file;
        * @EFFECTS:
        */
}

 

5.bug表格

方法名

功能bug数

规格bug数

BFS(taxi.java)

2

0

run(scheduler.java)

1

0

honorpuls(taxi.java)

0

1

main(main.java)

2

0

 

6.体会

  由于我们并不是按照正确的类构造过程以及方法构造过程来写的程序,因此在写方法规格、数据规格的时候难免会陷入看着程序写规格的陷阱,这就导致了不能再规格书写的时候会有过多的细节展示,甚至是数据表示格式的暴露,这是很不安全的,因为自己永远不知道程序被用户拿到之后会有什么样的后果。另一方面,过程规格可以作为自己实现函数的一个纲领,有了纲领做起来事情才能有条有理,才不拆了东墙补西墙,最后产生连自己都无法把控的bug。

转载于:https://www.cnblogs.com/qiaolan/p/9111288.html

你可能感兴趣的文章
我的友情链接
查看>>
WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!的分析
查看>>
nginx禁止ip直接访问
查看>>
hadoop常用服务管理命令
查看>>
10.28 rsync工具10.29-10.30 rsync选项10.31 rsync通过ssh同步
查看>>
Fault,Error and Failure
查看>>
Go语言的通道(1)-无缓冲通道
查看>>
spring oauth从请求中获取token
查看>>
6.18docker(一)Compose 模板文件
查看>>
每天学点GDB 9
查看>>
前端静态资源缓存控制策略浅析
查看>>
不同模式打开文件的完全列表
查看>>
Jackson将json字符串转换成泛型List
查看>>
jsp,el表达式
查看>>
【leetcode】1035. Uncrossed Lines
查看>>
为什么要用 /dev/null 2>&1 这样的写法
查看>>
简说设计模式
查看>>
java学习面试精华
查看>>
leap motion
查看>>
[Docker]docker搭建私有仓库(ssl、身份认证)
查看>>