專案管理的流程主要指導專案經理如何管理專案,但對於指導開發人員如何開發專案,並無多大用處。

剛畢業的學生或許對「軟體工程」很熟悉,對各個開發階段應該做什麼,不同的開發流程有什麼優缺點,說的頭頭是道。

可是一旦參與專案開發後,便會有一種無從下手的感覺。

 

舉例來說:

  • 1. 需求分析階段要分析需求,但具體怎麼分析?
  • 2. 客戶的需求是描述語句,例如「我們需要一個影像處理的軟體」,而程式碼則是一個具體的類別和函式。那怎麼從描述語句轉化成具體的類別和函式呢?
  • 3. 具體的語言特性,例如 C++private, protected, public 等屬性是來自哪裡?該如何設計?
  • 4. 物件導向的類別、屬性、方法等,是怎麼設計出來的?

 

相信以上的問題都曾困擾著你我,但軟體工程並未給出答案,導致我們在實際開發過程中,只能在別人的設計與指導下工作,或是亂湊出能滿足需求的想法,至於效果,就得靠上天眷顧了。

有慧根的人,經過一段時間的磨練後,可能就漸漸掌握門道,但大多數的人可能就一直原地踏步,不斷地執行別人分配的工作內容。

其實,就像「專案管理」有一套完整的流程一樣,「專案開發」也有一套完整的程序。

對於物件導向來說,整個開發流程實際上非常清晰,底下我們將「瀑布模型」、「敏捷開發」等稱為『管理流程』;物件導向流程開發稱為『技術流程』。

 

物件導向的技術流程可以概括如下:

需求模型 → 領域模型 → 設計模型 → 實作模型

  1. 1. 需求模型:透過和客戶溝通,結合產業經驗和知識,明確地闡述客戶的需求。
  2. 2. 領域模型:根據需求模型,擷取出領域相關概念,為後面的物件導向設計打下基礎。
  3. 3. 設計模型:以領域模型為基礎,綜合物件導向的各種設計技巧,完成類別的設計。
  4. 4. 實作模型:以設計模型為基礎,將設計轉譯為具體的程式語言實作,完成程式碼撰寫。

 

技術流程環環相扣,上一步流程的輸入就是下一步流程的輸入。藉由這種 step by step 的方式,可以完成從需求到最後實作的相關工作。

arrow
arrow

    OtakuYeh 發表在 痞客邦 留言(0) 人氣()