閱讀663 返回首頁    go 阿裏雲 go 技術社區[雲棲]


連載:麵向對象葵花寶典:思想、技巧與實踐(14) - 麵向對象開發技術流程

拋開項目流程,讓我們來談談“技術流程”吧!!


談到流程,很多人立刻就會想到熟悉的瀑布模型、螺旋模型、迭代開發、敏捷、RUP等一堆軟件工程相關的軟件開發流程,但對於大部分人來說,這些流程僅僅是項目管理上的概念,隻有項目經理開例會時那紅紅綠綠的甘特圖、燃盡圖、路徑圖等,或者隻有評估工作量和是否要加班的時候,我們才會意識到這些流程的存在。

 

通俗的講,項目管理上的流程主要是用於指導項目經理如何管理項目用的,但對於如何指導開發人員如何開發項目,並無多大用處。一個典型的情況就是剛畢業的大學生,軟件工程掌握的很熟悉,各個開發階段應該做什麼,瀑布流程有什麼優缺點等,談起來都頭頭是道,但真的參加開發項目後,就會發現有一種無從下手的感覺。例如:

Ø 需求分析階段要分析需求,但具體怎麼分析呢?

Ø 客戶的需求是描述性的,例如“我們需要一個POS機”,而代碼是一個一個具體的類和函數,那麼如何從描述性的語言最後轉化到具體的類和函數呢

Ø 具體語言的特性,例如Java和C++的private、protected、public這些屬性是從哪裏來的?什麼時候設計的?

Ø 麵向對象的類、接口等,是怎麼設計出來的 

 

相信這些問題都曾經困擾過很多人,但軟件工程並沒有給出這些問題的答案,因此也就導致了很多開發人員在實際開發過程中,要麼隻能在別人的指導下工作,要麼就瞎蒙亂撞、拚湊堆砌,反正最後也能夠實現需求,至於效果嘛,那就要看運氣了。少數幾個領悟力強的人,經過一段時間的磨練後,也許就慢慢掌握了門道,但大部分人可能就一直原地踏步,不斷的在重複別人分配給自己的工作。

 

其實,就像項目管理上有一套完整的流程一樣,項目開發也有一套完整的過程,尤其對於麵向對象來說,整個開發流程其實是非常清晰的,隻是很少有人將這部分歸納總結提煉出一套用於指導開發人員進行開發的流程。

 

為了區別起見,我們將瀑布模型、敏捷開發等稱為“管理流程”,而將麵向對象開發流程稱為“技術流程”。麵向對象的技術流程可以概括如下:

需求模型 -> 領域模型 -> 設計模型 -> 實現模型

 

l 需求模型

通過和客戶溝通,結合行業經驗和知識,明確要求客戶的需求。

 

l 領域模型

基於需求模型,提煉出領域相關的概念,為後麵的麵向對象設計打下基礎。

 

l 設計模型

以領域模型為基礎,綜合麵向對象的各種設計技巧,完成類的設計。

 

l 實現模型

以設計模型為基礎,將設計模型翻譯為具體的語言實現,完成編碼。

 

以上流程環環相扣,上一步流程的輸出就是下一步流程的輸入。後麵我們可以看到,通過這種一步一個腳印的方式,即使是經驗並不豐富的菜鳥,也能完成從需求到最後實現的相關工作,而不再需要仰望和崇拜其他大蝦大牛,或者自己摸著石頭過河了


================================================ 
轉載請注明出處:https://blog.csdn.net/yunhua_lee/article/details/20150683
================================================ 

最後更新:2017-04-03 12:55:21

  上一篇:go C# DataSet.AcceptChanges 方法
  下一篇:go 九度1549:貨幣問題