一切要从《系统分析师UML实务手册》谈起

在台湾,有许多读者手上同时拥有《系统分析师UML实务手册》及《C++程序员UML实务手册》这两本书。有些读者看完前者之后,又买了后者;也有些读者买了后者之后,又买了前者。甚至,多位非C++用户的读者来信说到,他们很喜欢《C++程序员UML实务手册》一书。在这里,我想一并谈论我对这两本书的原始写作构想,希望读者喜欢这两本书。

OOAD、UML或MDA的初学者,无论是在校学生或已经身为项目经理、系统分析师或程序员,我都会建议从《系统分析师UML实务手册》读起,然后再续读《C++程序员UML实务手册》,即便您不是C++的使用者,甚至很多年不碰程序代码了,都可以读这两本书,前提是您想学OOAD、UML或MDA

在《系统分析师UML实务手册》一书中,我摘掉了许多烦杂的UML概念,仅精简介绍部分核心概念。我发现在编写过程中,谈论许许多多的主题并不难;如何去除烦杂的枝节,但是又能让读者学到东西,这通常才是我伤透脑筋、不断斟酌的地方。

其实,针对《系统分析师UML实务手册》一书,我把它设想为UML入门书,所以在这本书中没有一次谈论太多UML概念,一方面怕吓走了UML初学者,另一方面也是因为锁定本书为给系统分析师读的UML专书,所以我也得仔细考虑系统分析师在实务上到底得懂多少UML概念才够。基于这两个考虑,我就大刀阔斧砍掉许多关于UML的细节。

我认为学习UML最成功的技巧是“提问”;如果问对了问题,就能找到所需要的答案。那么怎样提问可以获得建构UML模式所需要的资料?我在多次的授课教材中都编写过类似的问卷,试图告诉系统分析师可以向使用者提出哪些问题,而问题的答案可以被填入哪款UML图中。因此,我把“提问”的技巧和经验放到《系统分析师UML实务手册》书里。至于模拟对话的设计,只是为了将“提问”放到一个情境,让读者体验可以在什么情境下提问,如此误打误撞而成。

在《系统分析师UML实务手册》中,我试着带引比较新颖的MDA概念,表面看起来谈得很少,可是却是支撑整本书的重要骨干。MDA的三个主要阶段为CIM(Computation Independent Model)、PIM(Platform Independent Model)和PSM(Platform Specific Model)。在《系统分析师UML实务手册》一书中,界定系统分析师的生成属于CIM及PIM阶段,因此整本书并没有提到PSM的样貌。我自己认为这样的安排是合理的,因为这是一本写给系统分析师的UML专书,不是谈整个开发程序。

不过,我也想到,如果包含PSM或编码阶段,或许可以让读者看到更清楚的全貌。PSM必须锁定实体平台,所以谈PSM的书必须包含更多的UML、更多的实体平台技术、更多的设计技巧,这样一本书必须有更精心的写作构想,否则读者可能会读得很吃力。

但是,我也想要带领《系统分析师UML实务手册》的读者更进一步地学习OO、UML或是任何的软件开发主题。所以编写了《C++程序员UML实务手册》一书。由于这本书是锁定给程序员看的,所以讨论了更多关于UML的概念!

在《C++程序员UML实务手册》一书中,虽然不再提到MDA的概念,但其实我将它界定为PSM及编码阶段。所以,您可以发现《C++程序员UML实务手册》书中的UML图绘制精细。在MDA的定义中,程序语言也是一种实体平台,因此可以说,在《C++程序员UML实务手册》中关于C++的设计图隶属于PSM阶段。

因此,在《C++程序员UML实务手册》一书中,读者可以看到最简单的PSM设计图与PIM设计图的差异,同时也会看到程序员拿到PSM设计图时,可以如何编写程序代码。当然,最重要的是,通过《C++程序员UML实务手册》一书,读者可以学到更多UML在实作阶段的应用状况。

转载于:https://www.cnblogs.com/lenoevo/archive/2008/05/08/1188003.html

实现OO的最后一公里相关推荐

  1. 大闸蟹的OO第二单元总结

    OO的第二单元是讲多线程的协作与控制,三次作业分别为FAFS电梯,ALS电梯和三部需要协作的电梯.三次作业由浅入深,让我们逐渐理解多线程的工作原理和运行状况. 第一次作业: 第一次作业是傻瓜电梯,也就 ...

  2. 物联网在“最后一公里”投递中的应用

    当今,置身于物联网环绕的世界中,可以明确的一点是:物流业无疑是可以从物联网革命中获益的重要一员.在物流中,物联网可以连接供应链中不同的资产,并通过在连接中获得的数据分析来实现新的发现.因此,物联网使得 ...

  3. OO真经——关于面向对象的哲学体系及科学体系的探讨(上)

    http://www.cnblogs.com/leoo2sk/archive/2009/04/09/1432103.html 目录 Catelog 序言 Perface 真经第一章:世界 Waltan ...

  4. 我翻译的一篇文章,OO设计中对象的创建和使用

    OO设计中对象的创建和使用 转载于:https://www.cnblogs.com/lishu1980/archive/2006/06/22/432526.html

  5. 解决流程自动化“最后一公里问题”,达观数据发布智能 RPA

    2019 年7月 26 日,业界领先的人工智能企业达观数据在北京召开"达道至简"为主题的产品发布会,正式推出国内首款自主研发集OCR(光学字符识别)与 NLP(自然语言处理)于一体 ...

  6. OO第三单元作业总结

    OO第三次作业总结 一.JML (一)JML语言理论基础 (1)JML表达式: JML表达式包括以下几种: 原子表达式如\result(方法执行后的返回值).\old(表达式在相应方法执行前的取值): ...

  7. 呼之欲出的量子计算机和漫长的最后一公里

    [嵌牛导读] "量子计算"和"人工智能"是未来最令人激动的话题,也是最前沿的科技领域,如果我们把量子计算机和AI结合在一起,我们可能做出连大自然都没有想到会有如 ...

  8. Python开发基础总结之XML+time+OO

    一.XML 的使用 处理xml消息包比较好用的模块是xml.etree.ElementTree. Element执行xml的根节点. elem.find(path):查找根节点下面路径为path的子节 ...

  9. 数博前沿 | 企业数据应用:聚焦场景,打通“最后一公里”

    数据地位的持续攀升和数字经济的高速发展,让企业数据应用成为新的"时尚".数据有限而价值无限,每个企业都希望从数据金矿中采炼更多.但知易行难,并非所有企业都能发掘出数据的价值,赋能经 ...

最新文章

  1. N 年沉淀,机器学习终于开源!
  2. 邬贺铨院士:认识工业互联网
  3. idea搭建简单spring-boot项目
  4. 编译报错一列----aclocal找不到
  5. P1262_美帝的间谍网络被我部捕获!
  6. python scrapy教程实例_Python之scrapy实例1
  7. 设置Jexus开机启动
  8. MySQL的安装及使用教程
  9. 明天 | 2021单细胞组学国际研讨会(线上)【附直播链接】
  10. 解决:WebDriverException: 'chromedriver' executable needs to be in PATH
  11. [置顶]【留言板 Message Board】
  12. Echarts的使用方法
  13. Ubuntu下多网卡配置RTNETLINK answers: File exists的解决方案
  14. 组合数的几种计算方法
  15. app应用程序的好处
  16. 2019年电赛准备程序STM32版本
  17. 为什么计算机二级未来教育评分低,未来教育计算机Msoffice二级, PPT评分总是说文件不存在, 分数总是0分, 到底是为什么?...
  18. 链表和线性表的优缺点
  19. win10修改桌面图标大小
  20. 17. 权重衰退(weight_decay)

热门文章

  1. MATLAB学习笔记(六)
  2. golang 导入自定义包_二、Go基本命令及定制自定义第三方包
  3. bigdecimal不等于0怎么写_写文章死憋写不出来,怎么破?
  4. led投影仪能换大功率灯吗_LED大功率洗墙灯怎么防水
  5. cad无法加载arx文件_CAD文件损坏?无法打开?试试这8个方法吧
  6. kubernetes 部署 dashboard(详细步骤)
  7. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
  8. vs 之bug集(不断更新中)
  9. 电大计算机网络技术基础,电大--2016年电大 计算机与网络技术基础小抄已排版.doc...
  10. 同事更新几个表_无法抵挡的帅气!西铁城潮酷光动能表