[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试用。
可能是因为看这些看多了,我经常告诫家里的老人和小孩,等电梯时不要靠门太近,门开后看清楚里面不是空的再进去。
[转载请注明出处]
====广告分隔线====
|
||||||||||||||||||||
[训练介绍] 软件开发中,需求是解决“产品怎样好卖”的问题,设计是解决“降低生产成本”的问题。二者相辅相成,缺一不可。而且,不能相互取代。要迈向“低成本制造好卖的产品”的境界,并非喊喊口号就能达到,需要静下心来,学习和实践各种技能。 在这个强调“做减法”的时代,建模是正确帮助您“做减法”的绝佳工具。 本训练就是教授如何使用UML2.5相关的需求和设计技能来全程实例剖析一个系统的过程。 本训练对每个开发工作流,结合讲解、做练习巩固、应用到实际项目三种方式,展示使用UML2.5相关技能开发软件系统的全过程,解答实际应用中的疑难细节问题。 [学员要求] 有一年以上项目经验的需求或设计(编码)人员。不需要您有“UML基础”,只需要您有项目经验。欢迎学员携带自己的项目来听课,由专家在现场进行剖析。 [专家] UMLChina首席专家 潘加宇。在1999年还是一名程序员时,利用业余时间创建了UMLChina,潜心研究软件需求和设计技能。2002年开始对外提供UML需求和设计的技术指导和训练服务,到现在为止,已经上门为超过270家的软件组织提供服务,覆盖了国内各个领域的领袖企业,包括通信、企业管理、电子商务、房地产、网络游戏、地理信息、物流、数码设备、医疗设备、工业控制.....等领域。 [课程大纲] 1. 概论 以上时间分配会根据项目特点和训练进程调整。 |