軟件工程 張雯雯 223201062202
2.1實(shí)驗(yàn)過程
2.1.1實(shí)驗(yàn)代碼
給出博客園截圖和網(wǎng)址,并附上github的代碼地址。
GitHub代碼地址:
創(chuàng)建四則運(yùn)算 ·張文文02/-@d300769 (github.com)
博客園網(wǎng)址:
軟件工程 張雯雯 223201062202 - 雯雯Y - 博客園 (cnblogs.com)
2.1.2實(shí)驗(yàn)過程
(1) 本人角色
自己在本次結(jié)對(duì)項(xiàng)目中所擔(dān)任角色,以及結(jié)對(duì)伙伴姓名學(xué)號(hào)。
本人角色: 領(lǐng)航員 張雯雯 223201062202
結(jié)對(duì)伙伴姓名: 駕駛員 劉麗媛 223201062216
(2)
根據(jù)駕駛員和領(lǐng)航員的工作分工,分別撰寫。
駕駛員:系統(tǒng)的實(shí)現(xiàn)過程、算法設(shè)計(jì)、結(jié)對(duì)工作照片等
領(lǐng)航員:代碼測試覆蓋標(biāo)準(zhǔn)、測試用例、代碼檢查表、工作記錄表等。(本部分具體可以參照實(shí)驗(yàn)一的撰寫方法)
本人角色為領(lǐng)航員,實(shí)驗(yàn)過程如下:
代碼測試標(biāo)準(zhǔn)為語句覆蓋;
測試用例:
(1)3,20,1,0,1
(2)2,50,2,1,1
(3)1,60,3,0,1
流程圖如下:

測試過程:
語句覆蓋測試:即每一條語句都執(zhí)行一遍
測試數(shù)據(jù)(1)3,20,1,0,1
測試結(jié)果如圖1所示

圖1
測試數(shù)據(jù)(2)2,50,2,1,1
測試結(jié)果如圖2所示:

圖2
測試數(shù)據(jù)(3)1,60,3,0,1
測試結(jié)果如圖3所示:

圖3
測試截圖如圖4,5,6所示:

圖4

圖5

圖6
代碼審查表如下:
|
功能模塊名稱 |
四則運(yùn)算式生成模塊 |
||
|
審查人
|
張雯雯 |
審查日期 |
2022.11.07 |
|
代碼名稱 |
Shuchu |
代碼作者 |
劉麗媛 |
|
重要性 |
審查項(xiàng) |
|
|
|
重要 |
頭文件和定義文件的名稱是否合理? |
|
|
|
重要 |
頭文件中是否只存放“聲明”而不存放“定義 |
|
|
|
程序的板式 |
|||
|
重要性 |
審查性 |
結(jié)論 |
|
|
|
空行是否得體? |
是 |
|
|
|
代碼行內(nèi)的空格是否得體? |
是 |
|
|
|
“{” 和 “}” 是否各占一行并且對(duì)齊于同一列? |
是 |
|
|
重要 |
一行代碼是否只做一件事?如只定義一個(gè)變量,只寫一條語句。 |
否 |
|
|
重要 |
If、for、while、do等語句自占一行,不論執(zhí)行語句多少都要加 “{}”。 |
是 |
|
|
重要 |
注釋是否有錯(cuò)誤或者可能導(dǎo)致誤解? |
否 |
|
|
命名規(guī)則 |
|||
|
重要性 |
審查項(xiàng) |
結(jié)論 |
|
|
重要 |
命名規(guī)則是否與所采用的操作系統(tǒng)或開發(fā)工具的風(fēng)格保持一致? |
是 |
|
|
|
標(biāo)識(shí)符是否直觀且可以拼讀? |
是 |
|
|
重要 |
程序中是否出現(xiàn)相同的局部變量和全部變量? |
否 |
|
|
|
類名、函數(shù)名、變量和參數(shù)、常量的書寫格式是否遵循一定的規(guī)則? |
是 |
|
|
表達(dá)式與基本語句 |
|||
|
重要性 |
審查項(xiàng) |
結(jié)論 |
|
|
|
是否編寫太復(fù)雜或者多用途的復(fù)合表達(dá)式? |
否 |
|
|
重要 |
是否將復(fù)合表達(dá)式與“真正的數(shù)學(xué)表達(dá)式”混淆? |
否 |
|
|
函數(shù)設(shè)計(jì) |
|||
|
重要性 |
審查項(xiàng) |
結(jié)論 |
|
|
|
參數(shù)的書寫是否完整?不要貪圖省事只寫參數(shù)的類型而省略參數(shù)名字。 |
是 |
|
|
|
參數(shù)命名、順序是否合理? |
是 |
|
|
|
參數(shù)的個(gè)數(shù)是否太多? |
否 |
|
|
|
是否使用類型和數(shù)目不確定的參數(shù) |
否 |
|
|
|
是否省略了函數(shù)返回值的類型? |
是 |
|
|
|
函數(shù)名字與返回值類型在語義上是否沖突? |
否 |
|
|
重要 |
是否將正常值和錯(cuò)誤標(biāo)志混在一起返回?正常值應(yīng)當(dāng)用輸出參數(shù)獲得,而錯(cuò)誤標(biāo)志用return語句返回。 |
否 |
|
工作記錄表
|
項(xiàng)目 |
預(yù)計(jì) |
實(shí)際 |
|
設(shè)計(jì)時(shí)間 |
9:30 |
9:30 |
|
編碼時(shí)間 |
10:20 |
10:20 |
|
測試時(shí)間 |
13:00 |
13:15 |
|
代碼行數(shù) |
192 |
192 |
|
測試代碼行數(shù) |
21 |
21 |
|
錯(cuò)誤數(shù)量 |
0 |
0 |
|
錯(cuò)誤修復(fù)時(shí)間 |
無 |
無 |
|
開發(fā)總時(shí)間 |
四小時(shí) |
四個(gè)半小時(shí) |
3 總結(jié)與體會(huì)
對(duì)隊(duì)友的評(píng)價(jià):
第一次一起合作,過程很愉快,合作的也是相當(dāng)默契了,我們分工明確,她作為導(dǎo)航員用很短的時(shí)間就編寫好了程序,并且沒什么錯(cuò)誤,是位很厲害的同學(xué)了,代碼的縮進(jìn)、排列整潔美觀,大致思路清晰,主函數(shù)方面關(guān)鍵轉(zhuǎn)折點(diǎn)的注釋也恰到好處,整個(gè)主函數(shù)的可讀性非常強(qiáng)。代碼有著簡潔的優(yōu)點(diǎn),比如代碼中的判斷語句就是從主函數(shù)中獨(dú)立了出來,在外部成立了一個(gè)函數(shù),這樣子每次進(jìn)行判斷就只需要調(diào)用判斷語句,而不需要每次都寫一次判斷語句,這樣既降低了程序員工作時(shí)的工作量,也降低了同組成員看代碼的難度。
在我做測試時(shí)她也耐心幫助我完成測試,一開始我對(duì)測試并不怎么熟悉,一步一步的很慢,后來她細(xì)心教我,使我很快完事了測試部分,我覺得這應(yīng)該就是結(jié)對(duì)編程的目的了吧,互幫互助,長短互補(bǔ)吸收對(duì)方優(yōu)點(diǎn)加快工作的效率,效果更為顯著,培養(yǎng)同學(xué)之間的交流溝通。總而言之,此次結(jié)對(duì)編程我們兩個(gè)人完成的很順利。
總結(jié):
通過本次結(jié)對(duì)編程實(shí)驗(yàn),我發(fā)現(xiàn)結(jié)對(duì)編程確實(shí)是一種提高編程效率的方式,在旁面對(duì)駕駛員所操作的每個(gè)步驟,每個(gè)過程,都看在眼里,同時(shí)可以給出恰當(dāng)?shù)慕ㄗh,在代碼規(guī)范上,首先變量要明確,命名要規(guī)范,括號(hào)要有層次感,雖然有時(shí)駕駛員擦覺不到,但是領(lǐng)航員在旁邊觀察的非常清楚,所謂當(dāng)局者迷,旁觀者清,也一定程度上驗(yàn)證了這個(gè)道理,這樣通過交流,溝通,小層面上講是技術(shù)上方法上的提高與創(chuàng)新,提高了代碼的質(zhì)量與工作效率,從大的層面上講也是一種思維的碰撞與跨越。
但是也發(fā)現(xiàn)結(jié)對(duì)編程一些缺點(diǎn):1.如果兩個(gè)人水平參差不齊,很容易出現(xiàn)抱大腿現(xiàn)象。2.在一些不必要的細(xì)節(jié)上發(fā)生爭執(zhí),影響效率3.領(lǐng)航員素質(zhì)不好會(huì)影響駕駛員的編碼進(jìn)程4.溝通能力不強(qiáng)會(huì)影響效率。不過我和我的小伙伴就沒有存在這些問題,從設(shè)計(jì)到編碼再到測試一切都比較順利,也會(huì)遇到一些各種各樣的問題使我們止步不前,但通過搜集材料,向同學(xué)求教,問題最終得以解決,本次實(shí)驗(yàn)學(xué)到了好多東西,也很開心和小伙伴的這次合作!

浙公網(wǎng)安備 33010602011771號(hào)