軟體開發流程概要(筆記)

來源:互聯網
上載者:User

一、Feature List(功能列表) 和Use Case Diagrams(使用案例圖)

需求分析的第一步要麼是確定功能列表(Feature List),要麼是得出使用案例圖(Use Case Diagrams)。

不斷的和使用者交流,界定清楚各個主要的Feature和主要的用例,儘可能的準確界定系統需要做到的和實現的功能。

不必追求一次得到完整的列表或用例,隨著迭代次數的增加,自然會得到完善的。這樣你就清楚系統需要做些什麼以及使用者會如何使用這個系統。

二、Break Up the Problem(瓦解問題)

知道要做些什麼功能後,就把這些功能按照相互關係進行分類,把系統分成幾個模組。

盡量使模組之間的互動減少,介面清晰(應用像封裝,單責任等OO的設計原則)。

一個規模比較大的系統,如果有科學的模組劃分,能很大程度上提高並行開發的效率,減少由於某個模組交付延期對於其他模組的影響。

三、Requirement(需求)

開始某個功能或用例開發之前,需要對問題有準確的理解,然後再次和使用者交流,進行針對某個細化用例或功能的分解。第一次迭代時,功能點或用例的選取就要找最根本的,最核心的,被別的部分依賴最多的一個來開始進行開發的迭代。

這裡就有兩種開發模式:功能驅動(Feature Driven)或是用例驅動(Use Case Driven)。

功能驅動開發顆粒度比用例驅動要小一些。選擇哪一種路徑決定下一步得到什麼。

選擇用例驅動就要寫用例(Use Case),用例有很多種表現形式:使用案例圖、自然語言描述、步驟分解等。最終都要把主要路徑,其他路徑都能包括進來,也就是各種情境(Scenario)都要包括。

用例的用處是為了和使用者進行交流,以使用者熟悉的方式,確認我們對於需求的理解是正確的,完整的。

四、Domain Analysis(領域分析) 和Design(設計)

領域分析:是指把用例中名詞和最終系統中的實體類進行映射,動詞和方法進行映射。

當然這種映射沒有一一對應的關係,需要根據具體情況進行增刪改。最終把這些類和方法組裝成類圖(Class Diagram)。類圖是軟體開發中一個關鍵的中間產品,能夠讓其他關心你系統的程式員快速的對系統架構有整體的瞭解。

系統設計:也就是參照實際情況和一些設計原則、設計模式,對類圖上的各個類進行分解、組合、抽象、細化等操作。一個結構合理,功能清晰,兼顧維護性和擴充性的類圖對於後續開發工作的貢獻是不言而喻的。

五、Implementation(實現)

實現看起來只是參照類圖和其他的現有代碼,進行一些類似堆疊代碼的工作,其實卻遠不止如此。第一、需要有良好的編碼風格,使代碼具有很好的可讀性。

第二、要有足夠的單元測試保證(現在測試驅動(Test Driven)已經非常受重視)。

第三、要考慮代碼重用,能夠最大限度的採用已有方法或演算法進行功能的實現。

第四、要有隨時重構(Refactoring)的意識,以保證代碼能夠在不斷增長的過程中保持簡潔、高效、可讀、可維護、可擴充、可重用。

第五、對於OO的基本規則,要有切合實際的應用(比如:OCP,SRP,DRY等這些規則)。

六、Iteration(迭代)

一般是在實現完一個功能或是用例之後,再選取另一個功能或用例應用前幾個步驟進行迭代的開發,直到所有的功能或用例全部實現。

其中可能會不時的對系統的功能列表、使用案例圖等進行修改和更新。也就需要和客戶有通暢清晰的溝通,保證所開發的系統就是使用者所想要的。

七、Delivery(交付)

有了以上這些步驟的保證,最終就可以把軟體進行交付。
學習來源:http://www.cnblogs.com/lihongchao/archive/2008/01/12/1036586.html

 

 

摘自: http://www.cnblogs.com/xugang/archive/2008/04/06/1138863.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.