OO第三次博客总结作业
OO第三次博客總結(jié)作業(yè)
?
?
1.規(guī)格化設(shè)計(jì)的大致發(fā)展歷史和為什么得到了人們的重視
?
?發(fā)展歷史...上網(wǎng)搜索了一圈...什么都沒搜索到,只能談?wù)勛约簩?duì)規(guī)格化設(shè)計(jì)重要性的一些看法。
規(guī)格化設(shè)計(jì),顧名思義,是有規(guī)范有規(guī)格的去管理、編寫自己的代碼。這樣的好處就在于,當(dāng)自己編寫一個(gè)大的項(xiàng)目的時(shí)候,雖然有成千上萬行的代碼,但是依然能夠通過規(guī)格化設(shè)計(jì)準(zhǔn)確的檢索到自己想要找的部分。同時(shí),在以后的碼農(nóng)生活中,用戶通過你的規(guī)格化設(shè)計(jì),也能很好的理解和使用你的代碼。
?
2.按照作業(yè),針對(duì)自己所被報(bào)告的規(guī)格bug以及雷同的規(guī)格bug(限于 bug樹的限制,對(duì)手無法上報(bào)),列一個(gè)表格分析
?
?
| 第九次作業(yè) | |
| requestIn類沒寫JSF | 821行 |
| Taxi類沒寫JSF | 1202行 |
| 不符合JSF規(guī)范 | 182行 |
| 第十次作業(yè) | |
| modifies格式錯(cuò)誤 | 7行 |
| JSF不符合規(guī)范 | 12行 |
| 第是一次作業(yè) | |
| JSF不符合規(guī)范 | 7行 |
?
3.分析自己規(guī)格bug的產(chǎn)生原因
?
對(duì)于JSF沒有那么重視吧...而且每次遇到的人,對(duì)于JSF的要求還都挺高的。第一次有JSF要求的作業(yè),正好周三那天有事,本來想的是把功能寫完之后,周三寫一些JSF,后來被耽擱了,就沒寫,還好那次測我的人,沒有對(duì)這個(gè)要求很高,才沒有很多bug。第二次有JSF,是根本沒把這個(gè)太當(dāng)回事兒,也沒有想到有人會(huì)很認(rèn)真的看過每一個(gè)JSF,挑很多錯(cuò)誤。第三次有JSF,是 上次的一個(gè)bug,忘了修復(fù)了。
?
4.分別列舉5個(gè)前置條件和5個(gè)后置條件的不好寫法,并給出改進(jìn)寫法
?
前置條件
例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è)分析被報(bào)的功能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è)計(jì)規(guī)格和撰寫規(guī)格的基本思路和體會(huì)
每次都是先寫完代碼,后補(bǔ)的JSF,所以JSF可能就和實(shí)際運(yùn)行有一些不同。
REQUIRES:回憶回憶有什么前置條件,想起什么就寫什么
MODIFIES:看那些變量是藍(lán)色的...因?yàn)槲矣玫暮谏装孱伾?#xff0c;特別注意return。
EFFECTS:只看結(jié)果,不看過程
THREAD_RQUIRES\THREAD_EFFECTS:方法是否帶鎖。
轉(zhuǎn)載于:https://www.cnblogs.com/zyq16061126/p/9109300.html
總結(jié)
以上是生活随笔為你收集整理的OO第三次博客总结作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20155209 林虹宇 Exp9 We
- 下一篇: 第一章 计算机语言分类