五、 面向?qū)ο蟪绦蛟O計(略)
1. 設計原則
(1) SRP單一職責鏈
每個類都應該只負責做一件事。
(2) OCP開封閉合原則
軟件的實體(類、模塊、函數(shù)等)應該是可以擴展的,但是不可修改的。
(3) LSP替換原則
子類必須能替換他們的基類型。
(4) DIP依賴倒置原則
高層模塊不應該依賴于低層模塊,二者都應該依賴于接口與抽象類。抽象不應該依賴于細節(jié),細節(jié)應依賴于對象。
(5) ISP接口隔離原則
不應該強迫客戶依賴于并未使用的接口,而應該把胖接口分離。
2. 實現(xiàn)UML建模
(1) 業(yè)務對象的提取
(2) 根據(jù)SRS、CRC等實現(xiàn)用況建模
(3) 實現(xiàn)業(yè)務順序圖
(4) 建立類圖,根據(jù)用況圖建立對象之間的關聯(lián)
(5) 繪制活動圖、實現(xiàn)協(xié)作圖、狀態(tài)圖
六、 開發(fā)管理
1. 建立項目計劃
(1) 設計總體架構(gòu)
針對系統(tǒng)的實施需要,采取適當?shù)那页墒斓目蚣芙Y(jié)構(gòu)。
(2) 控制可擴展度
擴展度過大,將提高系統(tǒng)的復雜程度,延長開發(fā)時間;擴展度過低,會直接影響系統(tǒng)的二次開發(fā)與維護?刂葡到y(tǒng)的可擴展性,能提高開發(fā)效率,降低系統(tǒng)維護的難度。
(3) 建立基礎設施
合理分配部署軟、硬件等基礎設施所需要的時間與成本(例如:服務器的訂購安裝、光纖接入、軟件平臺訂購)。
(4) 劃分開發(fā)任務
利用WBS(Work Breakdown Structure,工作分解結(jié)構(gòu))對可交付結(jié)果進行分類與劃分。每個項目都能劃分為多個不同階段,每個階段又可以分為多個工作包(Work Package),工作包是WBS里小的可交付結(jié)果,后從工作包中分解出多個開發(fā)任務列表。
(5) 部署開發(fā)進度
一個項目應該按進度劃分為多個開發(fā)階段,每個階段的開發(fā)周期一般在30~60個工作日以內(nèi)。在此階段內(nèi)應該與客戶舉行協(xié)商會議,制定產(chǎn)品路線圖,在開發(fā)過程中邀請客戶積極參與并提出反饋意見。然后把該時段內(nèi)的開發(fā)任務按照開發(fā)難度,依賴性,重要性等多方條件劃分為多個迭代周期。
在Scrum 敏捷軟件開發(fā)原則中,應該把每個迭代任務進一步細分為多個開發(fā)任務列表,再開發(fā)任務分配給組員各自負責,而開發(fā)時間應該控制在15個工作小時以內(nèi)。如果開發(fā)時間超出15個工作小時,應該考慮把開發(fā)任務再度細化。開發(fā)任務建議應該由組員自主選擇,而不要使用強制分配的方式。
(5) 測試項目成果
每個工作包都應該同步部署測試工作,提高項目的質(zhì)量。對出錯BUG的工作包應該由測試人員以文本方式記錄,向開發(fā)人員展示錯誤所在,讓開發(fā)人員及時進行修改。