1. 程式人生 > >隨想錄(從瀑布、迭代開發到敏捷開發)

隨想錄(從瀑布、迭代開發到敏捷開發)

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】

    軟體開發有很多的模式,一般認為有三種模式,分別是瀑布、迭代開發、敏捷開發。瀑布模型是最基本的開發方式,它有嚴格的處理流程,分別是需求、設計、開發、測試、交付。瀑布模型看上去合理,但是它開發週期長、對變更需求響應慢,很難適應市場需求。因此,在此基礎上,軟體專家們提出了迭代開發。針對傳統開發的缺點,迭代開發通過迭代改進的措施,不斷改進流程和質量,最終滿足客戶的要求。為了達到迭代開發的要求,大家還發明瞭uml和rup的理念。對於中、大型軟體,迭代開發的理念是很合適的。但是對於中小軟體,大家普遍認為迭代開發還是慢,它對開發的同學要求高,不僅每次迭代時要求所有的工作流都要參與,還要求同學們熟悉uml等各種工具,增加了學習的負擔。為此,軟體專家們引入了故事牆、結對程式設計、測試驅動、每日改進、白板進度表、燃盡圖等很多措施,除了保留迭代開發中的必要環節,對剩下來的流程,要麼刪除、要麼縮減,進一步提出了敏捷開發(包括scrum、xp程式設計、測試驅動開發等等)的概念,這也是軟體開發的發展流程。

1、你的建議是什麼?

    優先學習好rup、uml,有選擇地學習敏捷開發。

2、為什麼要學完uml、再學rup?

    rup其實是實現uml的方法論,本身是基於迭代開發模型的。在rup中,橫向是初始、細化、構造和交付的時間軸,縱向是核心工作流和支援工作流。在時間軸上會有若干個迭代週期,每個迭代週期需要各工作流一起合作。在此過程中,每個工作流可以按照自己的特點用uml進行設計和繪製。這就是rup的基本理念。

3、rup的圖形如何表示?


4、能不能跳過rup,直接學習敏捷開發?

    學習軟體開發的整個歷史,有助於自己更好地瞭解軟體開發的全過程。

5、個人開發軟體需不需要uml、rup?

    建議個人開發軟體的時候,也要畫uml圖,更要學會邏輯提煉和設計模組介面。

6、除了瀑布、迭代和敏捷開發,還要學習什麼?

    對於架構師來說,不光要設計出軟體,也要了解為什麼設計這款軟體,如何運維這款軟體,很多時候瞭解需求比實現需求更重要。

7、如何提高程式碼架構水平?

  實踐、實踐、再實踐,首先從uml+rup開始。

8、三種開發模式解決的是什麼問題?

    軟體工程的問題。

9、uml圖形是不是隻能用於一種rup工作流?

    不是,比如流程圖既可以用於需求分析、也可以用於詳細設計,這取決於是哪一種工作流。

    如果是架構師,那麼uml主要用來進行需求分析、業務分析和架構設計。

    如果是軟體開發者,那麼uml則主要用來進行軟體設計本身。

    如果是測試開發的同學,那麼uml可以用來進行測試用例的開發、設計,也可以進行測試框架的架構設計。

    所以,uml只是一個工具,架構師、開發者、測試者都可以使用。

10、設計模式什麼時候使用?

一般是uml開發過程中對流程和介面進行抽象的時候使用。與此類似的方法還有分層分塊、外掛管理、微核心、微服務、mvc等技術。