l

2014年5月5日 星期一

原始碼真的是軟體設計的產出物嗎?

Apr. 30 10:28~11:08

螢幕截圖 2014-04-30 11.00.45

IDE支援自動建構,存檔的當下就把可執行軟體給產生了。

 

Teddy在〈除舊佈新 (2)〉和〈這不是軟體設計〉介紹過一個觀念,就是「軟體設計的產出物是原始碼(source code)」,在上「Design Patterns這樣學就會了:入門實作班」的時候,Teddy也介紹了這個觀念,並且從「原始碼就是設計產出物」的角度,來看為什麼要學習設計模式。

以下是某次課程中,學員與Teddy的對話….

學員:如果原始碼就是設計,難道我們在做需求分析、訂規格的時候,要直接寫成source code嗎?

Teddy:不是這個意思,為了產出設計(source code),你需要收集資料,思考、推演,在這個過程中,你可以用任何的方式來記錄你所收集的資料,你要寫use case、user story、畫UML diagram、定義通訊協定,都可以,但這些活動與活動的產出物不是「設計的最終產出物」,因為「設計最終的產出物是原始碼」。

學員:這也太奇怪了吧,如果收集需求、撰寫規格等不算是設計,那算什麼?

Teddy:廣義的說,這些活動也是「軟體設計的一環」,但它們不是「軟體設計最終的產出物」,這兩者的意義是不一樣的。狹義的來看,這些活動與產出物算是為了設計所做的準備工作。收集需求、定義規格,你可以說是「需求分析」,這當然是「軟體開發(software development)」的一種活動,但Teddy所說的「軟體設計的產出物」,是指可以把這份「產出物」,經過「生產活動(production)」直接得到產品(running software)的「那個東西」。軟體的生產活動,比較小的軟體只要在IDE按下「編譯」按鈕就可以產生可執行程式,複雜的系統需要經過建構、整合、包裝、布署等流程來產生可執行程式。

Teddy:請問你的規格書可以直接產生可執行檔嗎?

學員:不行。

Teddy:所以它不是軟體設計的最終產出物。

學員內心獨白:這也太玄了一點吧。

***

友藏內心獨白:玄之又玄,眾妙之門挑眉質疑

沒有留言:

張貼留言