天天看点

从岳父坠入电梯井新闻谈软件建模[202102更新]

​​重点文章:CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]>>​​

【写于2018/10/10,2021/2/23修订,之前发的时候没有设置原创,无法归类到专辑,因此添加一些内容,再发一遍】

以下是最近一则"女婿开电梯门导致岳父惨死"的新闻,可惜生命的同时,也引发了一系列联想。

从岳父坠入电梯井新闻谈软件建模[202102更新]

不少人不了解或者了解但经常下意识忽略:电梯的门和轿厢是分离的部件。部件之间的协作如果有失误,系统就会出问题。电梯可以看作是上下移动的轨道车辆,但比轨道车辆更危险的是,没有地铁车厢时不小心掉入地铁轨道,赶紧爬上来就行,没有轿厢时掉入电梯井道,多半是死翘翘了。

电梯问题是软件建模中的经典问题,许多书籍和论文都喜欢以电梯为例来阐述自己的观点和方法。

(1)《实用面向对象软件工程教程》,作者:Edward Yourdon、Carl A. Argila,1996

从岳父坠入电梯井新闻谈软件建模[202102更新]

(本图片来自孔夫子旧书网)

从岳父坠入电梯井新闻谈软件建模[202102更新]

本书英文名是“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

从岳父坠入电梯井新闻谈软件建模[202102更新]
从岳父坠入电梯井新闻谈软件建模[202102更新]

原书名“Object-Oriented and Classical Software Engineering [8 ed.]”,中文书我没有,只好截个英文书的内页。这本书介绍了各种流派的方法,然后介绍FSM、Petri Net、Z怎么用在电梯上,并给出了文献引用。

(3)Rational Rhapsody附带的的电梯案例

从岳父坠入电梯井新闻谈软件建模[202102更新]