OO第三次博客总结作业
OO第三次博客總結(jié)作業(yè)
?
?
1.規(guī)格化設(shè)計的大致發(fā)展歷史和為什么得到了人們的重視
?
?發(fā)展歷史...上網(wǎng)搜索了一圈...什么都沒搜索到,只能談?wù)勛约簩σ?guī)格化設(shè)計重要性的一些看法。
規(guī)格化設(shè)計,顧名思義,是有規(guī)范有規(guī)格的去管理、編寫自己的代碼。這樣的好處就在于,當自己編寫一個大的項目的時候,雖然有成千上萬行的代碼,但是依然能夠通過規(guī)格化設(shè)計準確的檢索到自己想要找的部分。同時,在以后的碼農(nóng)生活中,用戶通過你的規(guī)格化設(shè)計,也能很好的理解和使用你的代碼。
?
2.按照作業(yè),針對自己所被報告的規(guī)格bug以及雷同的規(guī)格bug(限于 bug樹的限制,對手無法上報),列一個表格分析
?
?
| 第九次作業(yè) | |
| requestIn類沒寫JSF | 821行 |
| Taxi類沒寫JSF | 1202行 |
| 不符合JSF規(guī)范 | 182行 |
| 第十次作業(yè) | |
| modifies格式錯誤 | 7行 |
| JSF不符合規(guī)范 | 12行 |
| 第是一次作業(yè) | |
| JSF不符合規(guī)范 | 7行 |
?
3.分析自己規(guī)格bug的產(chǎn)生原因
?
對于JSF沒有那么重視吧...而且每次遇到的人,對于JSF的要求還都挺高的。第一次有JSF要求的作業(yè),正好周三那天有事,本來想的是把功能寫完之后,周三寫一些JSF,后來被耽擱了,就沒寫,還好那次測我的人,沒有對這個要求很高,才沒有很多bug。第二次有JSF,是根本沒把這個太當回事兒,也沒有想到有人會很認真的看過每一個JSF,挑很多錯誤。第三次有JSF,是 上次的一個bug,忘了修復(fù)了。
?
4.分別列舉5個前置條件和5個后置條件的不好寫法,并給出改進寫法
?
前置條件
例1
更改之前
/**
?????* @REQUIRES:(\all int a;);
?????*/
更改之后
/**
?????* @REQUIRES:(\all int a;?0 <= a <=79);
?????*/
例2
更改之前
/**
?????* @REQUIRES:任意a;?
?????*/
更改之后
/**
?????* @REQUIRES:(\all int a;?0 <= a <=79);
?????*/
例3
更改之前
/**
?????* @REQUIRES:(x!=null && x.state==state.order);
?????*/
更改之后
/**
?????* @REQUIRES:(x instanceof taxi && x!=null? x.state==order);
?????*/
例4
更改之前
/**
?????* @REQUIRES:(x!=null && x.state=state.order);
?????*/
更改之后
/**
?????* @REQUIRES:(x!=null && x.state==state.order);
?????*/
例5
更改之前
/**
?????* @REQUIRES:無
?????*/
更改之后
/**
?????* @REQUIRES:None;
?????*/
后置條件
例1
更改之前
/**
?????* @EFFECTS:賦值語句;
?????*/
?
更改之后
/**
?????* @EFFECTS:this.number = number;this.credit = credit;
?????*/
例2
更改之前
/**
?????* @EFFECTS:(credit==credit+k);
?????*/
更改之后
/**
?????* @EFFECTS:(credit==(old)credit+k);
?????*/
例3
更改之前
/**
?????* @EFFECTS:(credit==(old)credit+k);
?????*/
更改之后
/**
?????* @EFFECTS:(credit==(old)credit+k);
?????????* @THREAD_REQUIRES:
?????????* ?????\locked(\this);
?????????* @THREAD_EFFECTS:
?????????* ?????\locked();
?????*/
例4
更改之前
/**
?????* @EFFECTS:(credit=(old)credit+k);
?????*/
更改之后
/**
?????* @EFFECTS:(credit==(old)credit+k);
?????*/
?
5.按照作業(yè)分析被報的功能bug與規(guī)格bug在方法上的聚集關(guān)系
?
?
| 方法名 | 功能bug數(shù) | 規(guī)格bug數(shù) |
| detail.write | 1 | 0 |
| Taxi.run | 2 | 1 |
| RequestIn.run | 2 | 1 |
| RequestAndControl | 1 | 0 |
| Taxi.changelight | 0 | 1 |
| Taxi.change | 0 | 1 |
| Main.main | 0 | 1 |
?
6.歸納自己在設(shè)計規(guī)格和撰寫規(guī)格的基本思路和體會
每次都是先寫完代碼,后補的JSF,所以JSF可能就和實際運行有一些不同。
REQUIRES:回憶回憶有什么前置條件,想起什么就寫什么
MODIFIES:看那些變量是藍色的...因為我用的黑色底板顏色,特別注意return。
EFFECTS:只看結(jié)果,不看過程
THREAD_RQUIRES\THREAD_EFFECTS:方法是否帶鎖。
轉(zhuǎn)載于:https://www.cnblogs.com/zyq16061126/p/9109300.html
總結(jié)
以上是生活随笔為你收集整理的OO第三次博客总结作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20155209 林虹宇 Exp9 We
- 下一篇: SQL Server 跨库查询