結對作業-stage_1


教學班 羅傑、任建班周五3、4節
gitlab項目地址 Here it is.
成員 周遠航(3004) 李辰洋(3477)

結對編程體驗

感受

  • 在前期設計時,兩人合作可以收集更多資料,提供更多想法,有利於設計更完備的架構。
  • 一人寫代碼、一人領航員的配合方式及時對於能肉眼辨別的錯誤進行糾正,例如筆誤、空指針錯誤等。

照片

設計階段:對指導書進行精讀,設計整體邏輯架構和類。

編程階段:一人主筆,一人領航,交替進行。

在后期由於課業原因不方便同時在線時,我們還選擇了分工協作的方式,每人負責相對獨立的方法實現,push后對方對其進行檢查。

設計思路

在初期設計時,我們充分融合了linux哲學核心思想:一切皆文件,並參考了Google開源java7文件系統實現源碼,對於本次結對任務的初期架構進行了如下設計:

  • MyFileSystem

    文件系統核心類。記錄了root和currentPosition兩個目錄入口。

  • DirectoryEntry

    目錄入口類。用於管理目錄下的所有文件(包括目錄文件、普通文件)以及文件樹的上下級關系。

  • File

    抽象類,“一切皆文件”中的“文件”,所有文件的父類,定義了一些文件的統一屬性。

  • RegularFile

    普通文件,繼承File抽象類。

  • Directory

    目錄文件,繼承File抽象類。

在完成本次任務的架構設計后,我們嘗試使用TDD(測試驅動開發)的開發流程,使用JUnit4模塊為MyFileSystem類需要實現的接口方法建立測試。通過基本設計框架的確定,以及測試模塊的搭建,更好地指導了本次任務的開發和功能實現。

時間規划

PSP2.1 Personal Software Process Stages 預估耗時(分鍾) 實際耗時(分鍾
Planning 計划 90 90
Estimate 估計這個任務需要多少時間 360 600
Development 開發 270 300
Analysis 需求分析 (包括學習新技術) 30 30
Design Spec 生成設計文檔 10 10
Design Review 設計復審 (和同事審核設計文檔) 10 10
Coding Standard 代碼規范 (為目前的開發制定合適的規范) 0 0
Design 具體設計 30 30
Coding 具體編碼 120 120
Code Review 代碼復審 120 300
Test 測試(自我測試,修改代碼,提交修改) 120 300
Reporting 報告 60 60
Postmortem & Process Improvement Plan 事后總結, 並提出過程改進計划 20 20

整體來看,設計和主要代碼的編寫過程比較順利,后期的測試花費了比想象中更多的時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM