UML精粹:Martin Fowler大师解读
需积分: 9 139 浏览量
更新于2024-07-26
收藏 7.47MB PDF 举报
"uml-distilled"
本书《UML精粹》是Martin Fowler的大作,被誉为学习UML的必备参考资料。书中详细介绍了标准对象建模语言的关键概念和元素,旨在为读者提供一个简明扼要的指南。
UML(统一建模语言)是一种用于软件工程的图形表示法,它支持系统的分析、设计和实现。以下是一些书中提到的重要知识点:
1. **实例规格(Instance Specification)**:在第87页,书中提到了实例规格,这是用来表示系统中的具体对象,通过`objectname:ClassName`的形式来标识特定类的实例。
2. **限定关联(Qualified Association)**:在第74页,书中讨论了如何通过限定符来更精确地定义关联关系。例如,`Class`可以有`qualifier`来进一步描述关联。
3. **导航性(Navigability)**:在第42页,书中阐述了导航性是关联方向上的箭头,指示了哪个类可以“导航”到另一个类,如`rolename`,表明了角色的方向。
4. **依赖关系(Dependency)**:在第47页,书中解释了依赖关系,表示一个元素如何依赖于另一个元素。例如,`Source`依赖于`Target`,表示源类对目标类的依赖。
5. **类(Class)**:类是UML中的核心元素,用于表示系统中的对象。类可以有属性(如`attribute:Type[O..1]=initialValue`])和操作(如`operation(arglist):returntype`),以及抽象操作(`abstractOperation`)。
6. **多重性(Multiplicities)**:在第38页,书中详细描述了多重性的概念,如`1`表示一对一关系,`*`表示零或多个,`0..1`表示可选,`m..n`表示数值范围内的多重性。
7. **泛化(Generalization)**:在第45页,泛化关系(也称继承)表示一个类(子类型)继承另一个类(超类型)。`Class`可以有`zeroorone`或`m..n`的泛化关系。
8. **聚合(Aggregation)**:在第67页,聚合是一种特殊的关联,表示一个类包含其他类的实例。聚合分为普通聚合和组合(Composition),其中组合更强调所有权和生命周期。
9. **约束(Constraint)**:在第76页,约束是添加附加规则的机制,如`{narre:description}`,用于限制类或操作的行为。
10. **关键字(Keyword)**:在第65页,UML允许使用关键字来标记类的特性,例如`«keyword»`可以用来标记接口或抽象类。
11. **类图(Class Diagram)**:这是UML中最常见的图表,用于展示类之间的关系,如继承、关联等。还可以标记为接口(`«interface»`)和抽象类(`Abstract`)。
12. **通信图(Communication Diagram)**:在第131页,通信图(以前称为顺序图)强调对象间的交互顺序,用`objectname:class`和消息传递(`olenarre 1:mes`)来表示。
以上只是《UML精粹》中部分关键知识点的概述,全书详细深入地介绍了UML的各种图、元素和关系,是理解和应用UML进行系统建模的宝贵资源。
2022-09-19 上传
194 浏览量
2009-10-06 上传
2009-02-18 上传
2008-10-07 上传
2010-01-26 上传
2011-09-15 上传
2012-02-26 上传
xongxg
- 粉丝: 0
- 资源: 4
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍