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