軟體工程結對作業——第一階段
請各位同學在開展結對程式設計項目時記錄下述活動,并發表在部落格上。本部落格為結對項目階段性總結,把清單内容講清楚即可,不必長篇大論。一個結對的團隊隻需要發表一篇部落格即可。
- 在部落格開頭給出教學班級和GitLab項目位址,以及結對的兩個同學學号的後四位。
- 簡單描述對于結對程式設計的感受,并給出兩人開展現場結對程式設計的照片。如果還有采用其他的方式進行結對程式設計,也可以用照片或者截圖等形式記錄下來。
- 簡單描述你對本項目程式的設計和實作思路。
- 采用下述PSP表格記錄下你估計在程式的各個子產品的開發上所需的時間和實際花費時間。
項目 | 内容 |
---|---|
這個作業屬于哪個課程 | 2021春季軟體工程 |
這個作業對應的GitLab項目位址 | 軟體工程結對作業 |
學号後四位 | 3439和3358 |
程式設計感受
- 盡管是結對程式設計,但也要在開始結對之前對整個項目的需求進行分析和獨立思考,這樣才能在結對時進行讨論項目的設計和實作思路。剛剛開始第一次進行工作時,兩個人進行架構設計時,是想到哪裡寫到哪裡,效率很低,完全在讨論中度過,并遺留了很多問題。
- 結對程式設計時,兩個人程式設計的習慣以及程式設計思想需要多進行探讨和思考,要學會接受别人的風格思路。
- 在開始程式設計之前,兩個人一定要先交流清楚自己的想法,讨論出一個無異議的實作思路,不要寫到哪裡,發現兩個人的思路不一樣,然後開始辯論兩個人誰的想法好,會嚴重影響編碼效率。
- 結對變成讓我從隊友身上學到了很多東西,比如對與代碼精煉的追求,對于idea各種快捷鍵的使用,受益匪淺。
結對過程照片如下:

設計思路
作業要求為實作一個檔案管理系統,支援檔案與目錄的增删改查等功能。
我們設計了
Dir
類和
File
類來分别實作對于一個目錄和檔案的抽象,設計了
MyFileSystem
類來實作指令對檔案和目錄的操作。
-
類,實作了對于一個目錄的抽象。一個目錄下可以有多個子目錄和多個子檔案,目錄有屬于自己的父目錄、絕對路徑、建立和修改時間等屬性來進行描述。Dir
-
類,實作了對于一個檔案的抽象。一個檔案有檔案絕對路徑、檔案大小、檔案内容、檔案父目錄、建立和修改時間等屬性來進行描述File
-
類,實作了對指令的操作。MyFileSystem
MyFileSystem
類中的操作主要分為兩類:對目錄的操作和的對檔案的操作。
- 對目錄的操作。對目錄的操作重點是如何根據一個目錄路徑來查找該路徑所對應的
對象,并在查找過程中對此路徑的合法性進行判斷。我們的實作是對路徑提取出每一個目錄的Dir
,并從根目錄或目前目錄進行遞歸查找,找到之後進行對目标目錄進行建立、修改或删除等操作,未找到時根據指令來判斷是否抛出異常和是否進行建立目錄。name
- 對于檔案的操作。對檔案的操作重點是如何根據一個路徑查找到該路徑所對應的
類對象,并在查找過程中對輸入路徑進行合法性判斷。我們的實作是同目錄的操作,首先提出路徑中的每一個過程目錄的File
,并從目前根目錄或目前目錄進行遞歸查找,當查找到最後一層目錄之後,在其子檔案中查找目标檔案對象,找到之後,進行對檔案的修改、删除等操作,未找到時根據指令來判斷是否抛出異常和是否進行建立檔案以及對檔案寫入内容。name
PSP表格
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 60 | 120 |
· Estimate | · 估計這個任務需要多少時間 | 10 | |
Development | 開發 | 300 | 330 |
· Analysis | · 需求分析 (包括學習新技術) | 30 | 20 |
· Design Spec | · 生成設計文檔 | ||
· Design Review | · 設計複審 (和同僚稽核設計文檔) | ||
· Coding Standard | · 代碼規範 (為目前的開發制定合适的規範) | ||
· Design | · 具體設計 | ||
· Coding | · 具體編碼 | ||
· Code Review | · 代碼複審0 | ||
· Test | · 測試(自我測試,修改代碼,送出修改) | 180 | |
Reporting | 報告 | ||
· Test Report | · 測試報告 | ||
· Size Measurement | · 計算工作量 | ||
· Postmortem & Process Improvement Plan | · 事後總結, 并提出過程改進計劃 | ||
合計 | 1200 | 1360 |