UML精粹:标准对象建模语言简明指南(第3版) - (EPUB全文下载)

文件大小:2.12 mb。
文件格式:epub 格式。
书籍内容:

UML精粹:标准对象建模语言简明指南(第3版)
第1章 简介
第2章 开发过程
第3章 类图:基础
第4章 序列图
第5章 类图:进阶概念
第6章 对象图
第7章 包图
第8章 部署图
第9章 用例
第10章 状态机图
第11章 活动图
第12章 通信图
第13章 组合结构
第14章 组件图
第15章 协作
第16章 交互概述图
第17章 时间图
附录A UML版本之间的变化
参考文献
索引
后折页
封底
第1章 简介
1.1 UML是什么
统一建模语言(UML)是一组图形表示法。这些表示法的背后有共同的元模型。UML帮助描述和设计软件系统,特别是使用面向对象(OO)风格建造的软件系统。这个定义多少有点简化了。事实上,对不同的人来说,UML会稍微不同。之所以会这样,有它自己的历史原因,也有人们为了达到高效的软件工程过程采用不同视图的原因。因此,本章的主要任务是,通过解释人们看待和使用UML的不同方式,拉开本书的大幕。
图形建模语言在软件业已经出现很长时间了。背后的基本驱动力就是:编程语言的抽象级别不够高,不方便讨论设计。
尽管事实上图形建模语言出现很长时间了,但是对于它们在软件业中扮演的角色有很多的争议。轮到UML头上,也有一样的争议。
相对来说,UML是比较开放的标准,它由对象管理组织(OMG)控制。OMG是一个由各公司组成的联盟。OMG成立的目的是为了建立支持互操作性的标准,特别是面向对象系统的互操作性。OMG最广为人知的工作成果可能是CORBA(通用对象请求代理架构)标准。
20世纪80年代末到20世纪90年代初,出现了许多面向对象的图形建模语言,UML是这些语言的联合。1997年UML诞生后,这段特定的巴别塔时代成了历史。我和其他许多开发人员一样,深深感谢UML的出现。
1.2 使用UML的方式
关于UML在软件开发中所扮演角色的核心问题是——人们会用不同的方式使用它,其他图形建模语言也存在这种使用上的差别。这导致了一个长期以来的争论:如何使用UML。
为了理清这个问题,Steve Mellor和我分别针对人们使用UML的特征归纳出三种模式:草稿、蓝图和编程语言。目前最常用的一种,是把UML当做草稿(UML as sketch),至少从我的“偏见”看是这样。在这种用法中,开发人员使用UML协助沟通系统的某些方面。在把UML当做蓝图时,你可以从正向工程或逆向工程两个方向使用草稿。正向工程(forward engineering)在编写代码之前画UML图,而逆向工程(reverse engineering)从已有代码建造UML图,目的是帮助人们理解代码。
把UML当做草稿,其本质是选择性。正向使用草稿,你粗略画出即将要编码的东西,通常要和团队中的一群人讨论。使用草稿的目的是来帮助沟通想法或者展示所要做事情的可选方案。你不会谈论即将要写的所有代码,只会和同事谈论一下重要的东西,或者在开始编程之前将一部分设计可视化。像这样的会议可以很短,如花10分钟讨论需要几小时进行的编程,或者用一天时间来讨论一个需要两周时间的迭代。
在逆向工程中,可以使用草稿来解释系统的某些部分如何工作。你不用展示每一个类,只需展示那些令人感兴趣的、在深入到代码之前值得讨论的类。
因为打草稿是相当非正式和动态的,需要快速地协作进行,所以常用的媒介之一是白板。草稿在文档中也有用,在这种情况下,焦点是沟通而不是完整性。草稿工具是轻量级的画图工具,通常人们不会特别纠结于UML的严格规则。书籍(例如我的其他书籍)中展示的大多数UML图都是草稿。它们强调的是选择性的沟通,而不是完整的规则。
相反,把UML当做蓝图(UML as blueprint)就要关心完整性。在正向工程中,思路是由一名设计人员开发蓝图,他的工作是为程序员建造详细设计,然后程序员在此基础上编码。设计应该足够完整,列出所有设计决策,程序员应该能够跟随设计,把编码当做基本不需要思考的、相当直接的活动。设计人员和程序员可以是同一个人,但通常设计人员是一名更高级的开发人员,他为一个团队的程序做设计。这个方法的灵感来自其他形式的工程,即职业工程师创建工程图,移交给建筑公司来建造。
设计人员可以对所有细节画蓝图,也可以对特定的区域画蓝图。一种常见的做法是,设计人员开发蓝图级模型只做到子系统的接口,而让开发人员负责实现细节。
在逆向工程中,蓝图的目标是传达关于代码的详细信息,可以在纸质文档上,也可以在交互式的图形浏览器上。蓝图能够以图形的形式展示类的每个细节,更易于开发人员理解。
比起草稿来,蓝图需要复杂得多的工具,以处理任务所需的细节。特制的CASE(计算机辅助软件工程)工具就属于这一类,不过CASE这个术语已经变得不太好听,厂商目前都避免使用这个词。正向工程工具支持画图并把图放进存储器中保存信息。逆向工程工具阅读源代码,解释源代码后将其放进存储器,并生成图形。像这样可以做正向和逆向工程的工具被称为双程(round-trip)工具。
一些工具使用源代码本身作为存储器,把图当做代码的图形视角。这些工具和编程更接近,经常直接和程序编辑器集成。我喜欢把这些工具看做无转换(tripless)工具。
蓝图和草稿之间的界限有些模糊,但是我认为,两者的区别基于这个事实:草稿故意画成不完整的,强调重要信息,而蓝图倾向于全面,目的经常是把编程缩减成简单的机械活动。简言之,我的观点是草稿是探索性的,而蓝图是定义性的。
在UML方面做得越多,编程变得越机械,显然,这时编程应该被自动化。事实上,有许多CASE工具是生成某些形式的代码,自动化地建造系统的一个重要部分。最终到达这样一个境界——整个系统可以用UML来表述,进而将UML作为编程语言(UML as programming language)。在这个环境下,开发人员画UML图,直接编译为可执行代码——UML变成了源代码。显然,UML的这种用法需要特别复杂的工具。(同样,这个模式下正向和逆向工程的概念就没有意义了,因为UML和源代码是同一个东西。)
模型驱动架 ............

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » UML精粹:标准对象建模语言简明指南(第3版) - (EPUB全文下载)