当前位置: 首页 > news >正文

实现OO的最后一公里(经典导读)

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

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

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

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

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

 

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

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

 

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

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

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

 

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

 

您可以在当当网第一时间采购该套丛书:

   

您也可以在互动网购买此套丛书

     

您可以在华储网购买此套丛书:http://www.huachu.com.cn

相关文章:

  • 2008年05月世界编程语言排行榜
  • CSDN、China-pub战略合作活动
  • 自由软件之父Richard Stallman 中国行
  • 荣耀、方兵ASP.NET实战进阶
  • 邱郁惠--开源StarUML建模实战 技术讲座
  • 看雪论坛 第一届软件设计大赛
  • 邱郁惠开源StarUML建模实战录音和纪灯下载
  • 自由软件之父Richard Stallman 中国行圆满结束
  • 作为一个Flash平台开发/设计者应该拥有的10本书
  • IT 开发者,我们一起在行动
  • 《Ajax构建工具箱指南》随书光盘使用说明
  • 开源StarUML建模实战 在线专家门诊实录
  • 又到一年面试高峰期--面试总结
  • suningin华为招聘--前人经验
  • 俞黎敏与JAVA脚本编程
  • java8 Stream Pipelines 浅析
  • Javascript设计模式学习之Observer(观察者)模式
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS基础之数据类型、对象、原型、原型链、继承
  • Mysql数据库的条件查询语句
  • nfs客户端进程变D,延伸linux的lock
  • pdf文件如何在线转换为jpg图片
  • Puppeteer:浏览器控制器
  • rabbitmq延迟消息示例
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • vue-router 实现分析
  • Vue--数据传输
  • Webpack 4x 之路 ( 四 )
  • webpack入门学习手记(二)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 从PHP迁移至Golang - 基础篇
  • 动态规划入门(以爬楼梯为例)
  • 入口文件开始,分析Vue源码实现
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Panda3d 碰撞检测系统介绍
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (实战篇)如何缓存数据
  • (小白学Java)Java简介和基本配置
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)ObjectiveC 深浅拷贝学习
  • **python多态
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET CLR Hosting 简介
  • .net core 依赖注入的基本用发
  • .net mvc 获取url中controller和action
  • .NET MVC之AOP
  • .NET 命令行参数包含应用程序路径吗?