結對項目-第一階段
項目 | 內容 |
---|---|
教學班級 | 2021春季軟件工程(羅傑 任健) (北京航空航天大學 - 計算機學院) |
GitLab項目地址 | 2021_Xiaodong_Lu-Pengyang_Xie_pair_work |
Mokoghost學號后四位 | 3647 |
duckingss學號后四位 | 3054 |
結對編程體驗
結對編程使我們受益匪淺,明顯讓我們的工程能力提升並從對方身上學到很多優秀的工程習慣。在結對編程過程中,我們充分討論,協同完成頂層設計,討論架構,在教室的白板上寫寫畫畫,整個過程無比絲滑並建立了深♂厚♂的友誼。

代碼實現過程中,我們采用了原OO的checkstyle
和Javadoc
,並且使用了駝峰命名法,使得代碼整潔易讀。你寫我查的過程讓我們雙方都對代碼有了充分的熟悉,並且增強了代碼的魯棒性,讓我們能夠及時地發現手抖產生的低級bug。
同時,作業內容使我們重新回顧了Java
、面向對象和操作系統的知識。體驗了一次極限編程:第一天從下午三點連續編程到凌晨四點十五分,第二天繼續從下午三點編程至凌晨兩點。過程中產生的疑問都發布在指導書的issue
上,與課程中的其他同學和助教產生了五個有意義的討論:
課程設計建議
雖然在進行結對編程的時候收獲良多,但是我仍然覺得這門課程的設計不合時宜:
-
課程設計過重。作為一門必修課(我認為必修課也要因材施教),沒有給同學選擇的權力,大三下有的同學要考研,有的同學要實習,有的同學要科研,如果一周要花三四天來完成一門兩學分的課程,明顯不合適,在這里我想問老師們一個問題:北航計算機學院是否只培養軟件工程師?如果是,那么讓同學全身心投入到這門課中大家不會有意見,但是請在招生簡章中明確地寫出來,我未來不打算從事這個工作。同時,鄒老師書中說:
這門課程相當於4—5個學分的課。考慮到各個學校的具體情況,老師也可以考慮把這門課當作兩門課的結合(軟件工程理論和軟件工程實踐);也可以安排兩個學期
學院不是這樣安排的。
-
意義不明的流程。不知道測評系統的設計者是否痴迷於神秘主義,或者是單純享受給學生創造困難?至少這樣的作業提交/評測方式給我們造成了極重的負擔,在凌晨三點寫完代碼后還要花費一個小時提交代碼,好不容易在午夜前通過測試,卻要在配置CI上花費兩個小時以上。許多工作明明可以用更方便(對於學生和平台設計者雙方而言)的方式進行,卻要將配置、評測的工作下放讓學生完成部分,增大了學生和老師工作的耦合!從我們這次的開發經驗來講,我認為我們做了很多與作業無關的事。
PSP 規划
PSP2.1 | Personal Software Process Stages | 預估耗時(分鍾) | 實際耗時(分鍾) |
---|---|---|---|
Planning | 計划 | 10 | ~10 |
· Estimate | · 估計這個任務需要多少時間 | 10 | ~10 |
Development | 開發 | 890 | 1205 |
· Analysis | · 需求分析 (包括學習新技術) | 240 | 180 |
· Design Spec | · 生成設計文檔 | 30 | 30 |
· Design Review | · 設計復審 (和同事審核設計文檔) | 10 | 5 |
· Coding Standard | · 代碼規范 (為目前的開發制定合適的規范) | 10 | 30 |
· Design | · 具體設計 | 60 | 320 |
· Coding | · 具體編碼 | 360 | 460 |
· Code Review | · 代碼復審 | 60 | 0 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 120 | 180 |
Reporting | 報告 | 60 | 90 |
· Test Report | · 測試報告 | 30 | 30 |
· Size Measurement | · 計算工作量 | 20 | 30 |
· Postmortem & Process Improvement Plan | · 事后總結, 並提出過程改進計划 | 30 | 30 |
合計 | 960 | 1305 |