avatar-img

我的軟體開發之路

18公開內容

我們常使用別人設計好的 API 來使用,這符合現代軟體設計的概念,利用軟體元件拼湊組合出新的功能,不做重覆的事。但這樣真的行嗎?中間跳過了甚麼?這個軟體元件為何要這樣設計,它隱含的分析及設計流程全部跳過,如果一昧地只會用別人設計好的東西,那當遇到的非典型情況時,自己又該怎麼處理呢?

全部內容
免費與付費
最新發佈優先
設計模型主要包含兩個部分:靜態模型、動態模型。動態模型設計一般都是在類別模型設計完成後開始,此階段需要使用類別模型的類別。動態模型設計不需要應用「設計原則」和「設計模式」,只需對照「使用案例模型」,並根據使用案例的特點,選一個適合的動態模型表述即可;動態建模不需要面面俱到。
Thumbnail
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
使用案例 (Use Case)是用來描述需求的流程,就是 5W1H8C 中的 How。有很多方法可以分析客戶需求,例如問卷調查、自由發想、資料分析、資料探勘、競爭對手分析等,可以參考「需求分析理論」的相關書籍;但最有效以及最直接的方法還是和客戶交流。只要掌握正確的方法,就可以完成良好的需求分析。
Thumbnail
需求分為「功能屬性」和「品質屬性」, 5W + 1H 屬於功能屬性,8C 屬於品質屬性。能否正確地實現一個需求,既要看功能屬性是否正確,也要看品質屬性是否正確,兩者缺一不可。例如:設計了一個功能強大的機器視覺系統,但動不動就當機,你覺得客戶會使用這樣的系統嗎?
Thumbnail
對軟體專案來說,需求就是專案最一開始的輸入。 需求:對客戶來說有價值的事情。 功能:系統為了滿足客戶價值而提供的能力。 區別是需求還是功能的方式很簡單,只要判斷是否對客戶有價值。 舉例來說:影像處理軟體:「顯示影像」是需求,「讀取檔案」、「取得影像長寬」、「取得色彩位元」等是功能。
Thumbnail
專案管理的流程主要指導專案經理如何管理專案,但對於指導開發人員如何開發專案,並無多大用處。就像「專案管理」有一套完整的流程一樣,「專案開發」也有一套完整的程序。對於物件導向來說,整個開發流程實際上非常清晰,底下我們將「瀑布模型」、「敏捷開發」等稱為『管理流程』;物件導向流程開發稱為『技術流程』。
Thumbnail
封裝、繼承、多型是物件導向的三大核心特徵,判斷一種程式語言是否為物件導向的程式語言,就看其是否支援這三大核心特徵。 軟體類別是對現實類別的模擬,但不是簡單的等同。除了實作現實類別相對應的功能,還會創造出許多現實中不存在的類別。 這個創造過程正是各種設計方法、設計模式、設計原則大顯身手的地方。
Thumbnail
常見的 C 語言是屬於程序導向中結構化程式設計的概念,採取『自上而下、逐步細化、模組化』的方法,從而降低軟體發展的複雜度,因此 C 語言成為 20 世紀 70 年代軟體發展的潮流。因為結構化程式設計的方式無法滿足軟體『可擴充性』和『可維護性』的需求,因此物件導向的概念才開始普及。
Thumbnail
在實務上,為了求快,工程師們常知其然不知所以然,反正呼叫 API 能動或能給出想要的結果就好。但這樣的想法到底是讓軟體設計變的更輕鬆,還是入門容易熟練難呢? 當你邊上理論課程,然後自己又有能力設計出基於理論的實用軟體工具,並分享給其他人使用時,豈不是更滿足也更有成就感!
Thumbnail