大象:Thinking in UML(第2版)

谭云杰

出版时间

2012-03-01

ISBN

9787508492346

评分

★★★★★
书籍介绍
大象:Thinking in UML(第二版),ISBN:9787508492346,作者:谭云杰 著
AI导读
核心看点
  • 超越语法细节,深入RUP统一软件过程与UML建模思想。
  • 强调用例驱动开发,从业务需求到软件设计的完整映射。
  • 提供严谨的抽象方法论,帮助理解系统内部结构与逻辑。
适合谁读
  • 希望建立系统化软件工程思维的初级开发者。
  • 从事需求分析、系统架构设计的软件工程师。
  • 对面向对象分析与设计有进阶学习需求的读者。
读前提醒
  • 重在领悟建模思想,不必拘泥于UML图形规范。
  • 行文偏理论且略显啰嗦,建议结合项目实践阅读。
  • 部分案例偏向传统行业,需灵活迁移至互联网场景。
读者共识
  • 被誉为被书名耽误的佳作,对理清开发思路极有帮助。
  • 前两章质量极高,后续内容部分读者觉得枯燥难懂。
  • 虽显教条,但能让人认清自身工作在软件开发中的位置。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "RUP即Rational Unified Process,是Rational公司开发的软件过程产品。The Unified Software Development Process也指的是RUP,不过去掉了前面的公司名。本文分别采用“统一软件过程”和“RUP”作为其全称和简称。 就笔者所了解,当前国内业界普遍关心的一个问题是:RUP的剪裁原理是什么,有没有工程化的RUP剪裁过程。本文将讨论上面两个问题。本文有不少观点来自个人心得,有不妥之处,敬请斧正。 第一部分 RUP的剪裁原理 首先介绍“软件过程也是软件”这一著名原理,然后指明RUP的剪裁原理是:软件过程开发的再工程。 一、 软件过程也是软"
  • "建模(Modeling),是指通过对客观事物建立一种抽象的方法用以表征事物并获得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察到对象的内部结构和工作原理的便于理解的表达。 模型要能够真实反映客观事物就需要一个论证过程,使得模型建立过程是严谨的,并且结果是可追溯和验证的。 对于一种软件建模方法来说,为现实世界建立模型也要是严谨的,可追溯和可验证的,除了描述清楚需求,还要能很容易将这个模型转化为计算机也能够理解的模型。 建立模型的过程是一个抽象的过程,要建立模型,首先要知道如何抽象现实世界。 现实世界的本质无非是由人,事,物和规则组成的。 UML中,人 - 参与者"
  • "业务模型映射了原始需求信息,之后要经历一个概念化(Conceptual)的过程建立适合计算机理解和实现的模型,这个模型称为分析模型。(Analysis Model) 分析模型有: 1. 边界类 2. 实体类 3. 控制类 在这个阶段,还可以对这些分析类在不同的视角上进行分类和整理,得到包,组件和节点。软件架构也是在这个阶段产生。"
  • "在设计模型中,概念模型中的边界类可以被转化为操作界面或系统接口;控制类可以被转化为计算程序或控制程序,例如工作流,算法体等;实体类可以转化为数据库表,XML文档或者其他持久化类。 这个转化过程是有章可循的,可以遵循的规则有: 1. 软件架构和框架 2. 编程语言 3. 规范或中间件"
  • "统一过程归纳和集成了软件开发活动中的最佳实践,它定义了软件开发过程中最重要的阶段和工作(四个阶段和九个核心工作流),定义了参与软件开发过程中的各种角色和他们的职责,还定义了软件生产过程中产生的工件,并提供了模板。最后,采用演进式软件生命周期(迭代)将工作,角色和成果物串在一起,形成了统一过程。 UML是一种语言,用来描述软件生产过程中要产生的文档,统一过程则指导如何产生这些文档以及这些文档要讲述什么的方法。 (重量级)统一过程 vs. (轻量级)敏捷方法"
  • "要解决问题领域就要归纳出所有必要的抽象角度(用例),为这些用例描述出可能的特定场景,并找到实现这些场景的事物,规则和行为。再换个说法,如果我们找到的那些事物,规则和行为实现了所有必要的用例,那么问题领域就被解决了。这就是用例驱动方法的原理。 在统一过程中,一个用例就是一个分析单元,设计单元,开发单元,测试单元甚至部署单元。 用例可以驱动的内容包括: 1. 逻辑视图:该视图以图形方式说明关键的用例实现,子系统,包和类,即,人,事,物,规则,是如何分类组织的。 2. 进程视图:以图形方式说明了系统中进程的详细组织结构,其他包括类和子系统到进程和线程的映射,即,人,事,物,规则,是如何交互的。 3."
  • "视图用于组织UML元素,表达出模型某一方面的含义。 视图面临的问题是如何正确的应用? 什么地方用视图?应用那一种视图?总共需要哪些视图? 软件有着很多不同的方面,静态的,动态的,结构性的,逻辑性的,软件建模即要针对这些方面分别建模,用例图,对象图,类图,包图,活地图等。这些视图从不同的方面描述了一个软件的结构和组成,所有这些视图的集合表达了一个软件的完整含义。所以,建模最主要的工作就是为软件绘制那些表达软件含义的视图来完整地表达软件的含义。 不同的干系人习惯于从不同的视角看待软件,因此软件建模另一项重要的工作是为不同的干系人从他们所关心的视角展示视图。"
  • "1. 一切都是对象 2. 对象都是独立的 3. 对象都具有原子性 4. 对象都是可抽象的 5. 对象都有层次性"
用户评论
让我知道自己以前做的工作在整个软件开发中的位置;以及软件开发是在做什么。关键是重要的例子用的都是电力系统企业软件,“重温旧梦” :)
有所启发
所谓系统思维就是考虑系统内事物的互相影响而不是观察单个事物的变化,归纳、抽象系统内的运行规律而不是研究单个点的存在意义
业务建模BA看看
学习统一过程
书是好书 但是前面的太啰嗦了…后面的我想看的部分又…好短啊
软件设计的九阳真经!工作不满十年就不用看了,另外书中有70%在讲技术,但是还有30%对产品架构师会非常有启发!
一本难得的好书,不仅详实地介绍了uml工具具体的使用方法,需求分析“道”的层面也有较多讨论。可作为日常工作中的工具书进行查阅,书中的有些知识读一遍可能没有太多感触,需要在实践中边运用,边思考。
把一大堆的概念解释的很清楚,真不错!有点相见恨晚的感觉。RUP对中小项目或许过重,但很多理念,指导思想其实是值得借鉴,并结合实际情况灵活运用的。有方法,有规矩,总比土法炼钢来得靠谱。
下载
收藏