结对项目——电梯调度算法的实现和测试
?
?
隊員:11061147徐姍&&11061180王宇杰
對于結對編程的總結:
優(yōu)點:
1、理解代碼的效率更高:對于理解由一門不太熟悉的語言寫出的程序,結對編程有很強的優(yōu)勢。一個人容易出現(xiàn)似懂非懂的狀況,但是兩個人,遇到問題就馬上提出來,在討論的過程中不但理解更加深入,也更快速。
2、書寫代碼的效率更高:兩個人有所分工,書寫代碼速度會更快,并且在寫代碼的過程中,也不是各寫各的,相互之間有交流,誰有靈感就直接說。這樣寫出的代碼更書寫效率和執(zhí)行效率都更高。
3、優(yōu)化代碼的效率更高:優(yōu)化代碼時,隊友會用挑剔的眼光看自己所寫的代碼,這樣更易發(fā)現(xiàn)問題,否則一個人的思維,總認為自己是對的,是完美的,不知怎樣優(yōu)化。
4、提高與他人的交流能力:結對編程由于是隨機分配,使得原本并不熟悉的兩個人,要為同一個目標而奮斗,所以增加許多交流的機會,提高自己與隊友交流合作能力的同時,建立了友誼。
5、保持編程熱情:一個人在解決問題時,很容易因為一點困難,就氣餒,但是兩個人一起就可以互相激勵,共同解決,保持那份熱情,繼續(xù)努力。
缺點:
1、通常情況下,每個人的編程風格都不一樣,對于我們這樣的初學者來說,很少有人有很好的編程規(guī)范,所以理解他人的代碼就很不適應,所以我們在今后還是要規(guī)范自己的編程風格,方便他人理解。
2、由于結對編程是兩個人合作,所以在一定程度上,會產生依賴心理,認為自己可以偷懶,反正有隊友呢。
3、有時自己思路很清晰,但隊友怎樣也無法理解,每個人都堅持自己的想法,容易產生沖突,甚至是對結對編程的抵觸情緒。
?
?
隊友(王宇杰)優(yōu)點:認真、思維活躍、善于傾聽隊友的想法并作出理智判斷
隊友(王宇杰)缺點:學習一門新的語言能力不是很強
?
Information Hiding信息隱藏
信息隱藏指在設計和確定模塊時,使得一個模塊內包含的特定信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說,是不可訪問的。在實現(xiàn)算法的過程中,我們對于不同類做適當?shù)碾[藏,即不可訪問,這樣保證了信息獨立性的同時,也保證了其安全性(不易在其他類中被修改)。 interface design接口設計 接口泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其交互的方式,就如面向對象程序設計提供的多重抽象化。接口設計包括三個方面:1、用戶接口
??? 用來說明將向用戶提供的命令和它們的語法結構,以及軟件的回答信息。
2、外部接口
??? 用來說明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件之間的接口關系。
3、內部接口
??? 用來說明本系統(tǒng)之內的各個系統(tǒng)元素之間的接口的安排 在本次結對編程中,我們利用了IRequest、IElevator、IPassenger、IScheduler等接口,方便接受用戶信息,也方便構建相應類來繼承其屬性。 loose coupling松散耦合 松散耦合是指模塊之間要盡量保持獨立,模塊之間盡量少的牽連,以免修改一個模塊后導致其他模塊的異常,這樣便于程序的修改和管理。本次編程對于模塊之間的設計并未體現(xiàn),但是從老師給的代碼中,我們體會到了模塊獨立的重要性。 契約式設計 也被稱為契約編程,編程的合同,設計合同編程,軟件設計方法。它規(guī)定,軟件設計師應該定義正式的,精確的和可核查的接口規(guī)范的軟件組件,它擴展了普通的抽象數(shù)據(jù)類型定義的前提條件,后置條件和不變。契約式設計不會取代常規(guī)的測試策略,如單元測試,集成測試和系統(tǒng)測試。相反,它補充外部與內部的自我測試,在測試過程中相隔離測試和生產代碼中,可以激活測試。內部的自我測試的好處是,他們可以檢測錯誤,才表現(xiàn)為無效的結果由客戶端觀察。這將導致更早,更具體的錯誤檢測。 核心算法: 為四個電梯建立四個數(shù)組,每當遇到該電梯有請求時,對該電梯已有請求進行排序,數(shù)組標號小的存大的樓層數(shù)。在任意一層時,先判斷離頂層近,還是底層近,確定電梯此刻的移動方向,移動過程中,順道帶上該方向的乘客(如果承載量允許的話)。對于大量出現(xiàn)在0、1層的情況,我們選擇從最底層到最頂層,是乘客目的地的樓層就停,不是的繼續(xù)向該方向前進。 UML類圖:
轉載于:https://www.cnblogs.com/xushan/p/3358584.html
總結
以上是生活随笔為你收集整理的结对项目——电梯调度算法的实现和测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE 11G EXP导出空表方法
- 下一篇: lora网关软件设计_SX1301网关设