從岳父墜入電梯井新聞談軟體建模
- 2019 年 10 月 6 日
- 筆記
[2018/10/10]
以下是最近一則"女婿開電梯門導致岳父慘死"的新聞,可惜生命的同時,也引發了一系列聯想。

不少人不了解或者了解但經常下意識忽略:電梯的門和轎廂是分離的部件。部件之間的協作如果有失誤,系統就會出問題。電梯可以看作是上下移動的軌道車輛,但比軌道車輛更危險的是,沒有地鐵車廂時不小心掉入地鐵軌道,趕緊爬上來就行,沒有轎廂時掉入電梯井道,多半是死翹翹了。
電梯問題是軟體建模中的經典問題,許多書籍和論文都喜歡以電梯為例來闡述自己的觀點和方法。
(1)《實用面向對象軟體工程教程》,作者:Edward Yourdon、Carl A. Argila,1996

(本圖片來自孔夫子舊書網)

本書英文名是「Case Studies in Object-Oriented Analysis and Design」,應譯為「面向對象分析設計案例研究」。內容就是兩個案例:電梯調度系統和雜誌訂閱系統。這本書和楊芙清、邵維忠的《面向對象的系統分析》(1998)是我最早的面向對象建模讀物了,看了很多很多遍。至今,《實用面向對象軟體工程教程》還列在《軟體方法》的推薦閱讀(http://www.umlchina.com/book/softmeth_ref.htm)里。
200*年的時候,可能是覺得沒必要再看了,就把書送給了某個學生。過了一陣又想,沒有鎮山之寶可不行啊,可是這老書到哪去再弄一本呢?有一次在上海蓮花路王海鵬家做客,看到他書架上有,就厚著臉皮向他要來了。2012年買了iPad,下載了網上的掃描版,然後連王海鵬這本也送人了。
(2)《面向對象與傳統軟體工程 原書第8版》,作者:Stephen R.Schach,2010


原書名「Object-Oriented and Classical Software Engineering [8 ed.]」,中文書我沒有,只好截個英文書的內頁。這本書介紹了各種流派的方法,然後展示怎麼用在電梯上。本書了解了解就可以了,不用購買。
(3)Rational Rhapsody附帶的的電梯案例

這是一個可以運行的例子。安裝Rhapsody後,在Samples文件夾的C++案例裡面找。可以自己到IBM網站(https://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper/)下載Rational Rhapsody試用。
可能是因為看這些看多了,我經常告誡家裡的老人和小孩,等電梯時不要靠門太近,門開後看清楚裡面不是空的再進去。
[轉載請註明出處]