軟體工程結對作業部落格
Github項目原位址 (https://github.com/BillDior/BUAA_SE_01)
Github項目現位址 (https://github.com/kenyin123/WordChains)
作業介紹
項目 | 内容 |
---|---|
作業所處課程 | 班級部落格 |
作業要求介紹 | 作業要求 |
我在這個課程的目标 | 初步了解結對程式設計的規範,增加協作程式設計經驗 |
這個作業在哪個具體方面幫助我實作目标 | 加深了對于C++的了解,學習了圖論算法等 |
psp表格
Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|
計劃 | 60 | |
· 估計這個任務需要多少時間 | ||
開發 | 2910 | |
· 需求分析 (包括學習新技術) | 600 | |
· 生成設計文檔 | 100 | |
· 設計複審 (和同僚稽核設計文檔) | 30 | |
· 代碼規範 (為目前的開發制定合适的規範) | 20 | |
· 具體設計 | 240 | |
· 具體編碼 | 1500 | |
· 代碼複審 | 120 | |
· 測試(自我測試,修改代碼,送出修改) | 300 | |
報告 | 150 | |
· 測試報告 | ||
· 計算工作量 | ||
· 事後總結, 并提出過程改進計劃 | ||
合計 | 3120 |
接口設計
Information Hiding:設計了private參數
Interface Design:接口封裝得還可以。
Loose Coupling:沒有實作
計算子產品接口的設計與實作過程
UML圖

計算子產品接口部分的性能改進
第一張圖是30個單詞左右的時候。第二張圖是增加到了36個。測試資料内有很多環,增加了六個就極大地影響了整體時間。圖内搜尋最長鍊的算法還可以進一步優化。
Design by Contract
契約式設計,優點是可以保證程式的正确性,缺點是過于繁瑣。我并未使用這種程式設計思想。
計算子產品部分單元測試展示
我學習了單元測試的知識,并嘗試寫了一些測試資料。
測試覆寫率的檢測暫未實作。
計算子產品部分異常處理說明
這裡我處理了當沒有r參數時發現環的異常。
這裡我處理了檔案名缺失和參數邏輯錯誤。
指令行子產品的詳細設計過程
讀取指令行參數,先判斷參數是否有邏輯或者格式錯誤。如果有錯誤給出錯誤資訊。
指令行子產品與計算子產品的對接
使用了一個github上的工具,cxxopts
将得到的參數判斷後傳給wlOption
描述結對的過程
在結對後我們沒能有效地溝通。首先是我對題目感到畏懼覺得自己沒有能力完成,然後隊友可能事情比較忙,也不是很主動。後來我因為個人原因沒能在規定時間内繼續完成作業。後續是我單獨完成的作業。
結對程式設計的優缺點
優點:
1、自己不會的地方可以請教隊友
2、兩個人溝通順利的情況下,比多人團隊輕松
3、配置設定任務、交流進度友善及時
缺點:
當兩個人溝通不順利、鬧沖突的時候,相比團隊程式設計,會更加消極,難以處理問題。多人團隊的隊員之間沖突相對來說會小很多。
我的優點:
1、性格溫和
2、願意出力
我的缺點:
1、不夠自律,喜歡拖延
2、程式設計能力弱
3、溝通能力差
我的結對對象優點:
1、程式設計能力好
2、耐心
我的結對對象缺點:
1、不夠努力
2、不主動交流
2550 | ||
360 | ||
10 | ||
180 | ||
2790 |
最後,感謝老師和助教一直以來對我的關心和幫助。也感謝結對程式設計作業,讓我收獲很多。