天天看點

軟體工程結對作業部落格

軟體工程結對作業部落格

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

最後,感謝老師和助教一直以來對我的關心和幫助。也感謝結對程式設計作業,讓我收獲很多。