實戰系列『影像處理軟體設計』- [3] 物件導向方法:分析和設計流程概述

更新於 發佈於 閱讀時間約 3 分鐘

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

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

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

舉例來說:

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

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

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

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

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

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

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

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

技術流程環環相扣,上一步流程的輸入就是下一步流程的輸入。

藉由這種 step by step 的方式,可以完成從需求到最後實作的相關工作。

留言
avatar-img
留言分享你的想法!
avatar-img
一個工程師的創業之旅的沙龍
73會員
442內容數
閱讀可以用最低的成本來獲得別人經驗,培養閱讀能力,一生受益。但要記住,別只讓自己的大腦永遠處於「輸入狀態」,要適當地「輸出」自己的想法。透過閱讀輸入,再利用寫作輸出,就像「費曼學習法」說的一樣,教授到別人能夠了解,自己才算是領悟了這門學問。
2023/08/21
設計模型主要包含兩個部分:靜態模型、動態模型。動態模型設計一般都是在類別模型設計完成後開始,此階段需要使用類別模型的類別。動態模型設計不需要應用「設計原則」和「設計模式」,只需對照「使用案例模型」,並根據使用案例的特點,選一個適合的動態模型表述即可;動態建模不需要面面俱到。
Thumbnail
2023/08/21
設計模型主要包含兩個部分:靜態模型、動態模型。動態模型設計一般都是在類別模型設計完成後開始,此階段需要使用類別模型的類別。動態模型設計不需要應用「設計原則」和「設計模式」,只需對照「使用案例模型」,並根據使用案例的特點,選一個適合的動態模型表述即可;動態建模不需要面面俱到。
Thumbnail
2023/07/31
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
2023/07/31
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
2023/07/23
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
2023/07/23
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
雖然這系列的課程是設計給工程師的,然而在學習敏捷開發(Scrum 為主)的過程中,我們是從如何做「產品」的角度去做切入,也因此在課程接近尾聲的時候我們再次討論了產品跟專案的差異,也是這一週課程中各種安排的理由所在。
Thumbnail
雖然這系列的課程是設計給工程師的,然而在學習敏捷開發(Scrum 為主)的過程中,我們是從如何做「產品」的角度去做切入,也因此在課程接近尾聲的時候我們再次討論了產品跟專案的差異,也是這一週課程中各種安排的理由所在。
Thumbnail
雖然標題是產品經理,但我想大家可能對專案開發比較有興趣。 為了讓整篇的含金量高一點,我會放入一些系統工程相關的東西 一般產品開發可能不需要到這麼嚴格。 專案管理及匯報 專案採購和產品採購 小趣談
Thumbnail
雖然標題是產品經理,但我想大家可能對專案開發比較有興趣。 為了讓整篇的含金量高一點,我會放入一些系統工程相關的東西 一般產品開發可能不需要到這麼嚴格。 專案管理及匯報 專案採購和產品採購 小趣談
Thumbnail
工作拆解第一式 用「階段」為基礎的拆分 用「交付物」為基礎的拆分 微管理(micro-management)不會讓事情更好 「專案管理」也是WBS的一部份 小趣談
Thumbnail
工作拆解第一式 用「階段」為基礎的拆分 用「交付物」為基礎的拆分 微管理(micro-management)不會讓事情更好 「專案管理」也是WBS的一部份 小趣談
Thumbnail
我和拍電影最近的距離大概是當短片的臨演…這本書令我感興趣的是拍電影的組織與管理,同樣是專案型組織,電影這個百年產業一定有可以借鏡的地方吧!所以我從資訊業的角度看拍電影。
Thumbnail
我和拍電影最近的距離大概是當短片的臨演…這本書令我感興趣的是拍電影的組織與管理,同樣是專案型組織,電影這個百年產業一定有可以借鏡的地方吧!所以我從資訊業的角度看拍電影。
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
物件導向的概念,以python程式為範例。
Thumbnail
物件導向的概念,以python程式為範例。
Thumbnail
最近收到了一封學生的信,詢問在職場中UI Designer是什麼?想在公司建立一套基本的流程,這張圖片應該許多人都看過,裡頭有很多專業的名詞,以及像金字一樣往上堆疊的順序,在討論工作流程前,我們一樣先來了解每個詞彙代表什麼、以及它存在的目的是什麼。 Us
Thumbnail
最近收到了一封學生的信,詢問在職場中UI Designer是什麼?想在公司建立一套基本的流程,這張圖片應該許多人都看過,裡頭有很多專業的名詞,以及像金字一樣往上堆疊的順序,在討論工作流程前,我們一樣先來了解每個詞彙代表什麼、以及它存在的目的是什麼。 Us
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News