任务1 UML概述 任务2 UML静态建模 任务3 UML动态建模
任务1 UML概述 UML的概念 UML的发展 UML的主要内容
UML与OO(面向对象) OO UML OOA OOD DP … … …… …… …… …… UML是OO重要工具
UML的概念 UML的概念 UML的概念 UML Unified Modeling Language 统一建模语言 统一建模语言是一种通用的可视化建模语言,用于对软件系统的制品进行规范化、可视化处理,然后构造它们并建立它们的文档。
UML的发展过程 Grady Booch,James Rumbaugh和Ivar Jacobson
图 与 语言 谁一级棒? 这把刀,也不知道有多长、多宽、多重、由什么材质铸成,由谁铸造?很普通,很平常,也许在我们手中!但,只要是他拿着,握着,这把刀就有了生命,有了气息,追魂的刀,亦是救命的刀,就看他是如何赋予它使命的! 该用图用图 该代码用代码
UML的优势 过去数十种面向对象的建模语言各自为战,而UML可以消除一些潜在差异,一统江湖 通过统一语义和符号表示,提高面向对象技术 使项目建立在一个成熟的标准建模语言基础之上 便于沟通和交流,统一的理解
UML主要内容 UML的主要内容 精确的元模型定义 UML表示法 UML表示符 UML可视化的图形建模语言 UML提供了五类图形
任务2 UML的概念模型 UML Structure 构造块 公共机制 构架 基本UML建模元素、关系和图 达到特定目标的公共UML方法 building blocks 公共机制 common mechanisms 构架 architecture 基本UML建模元素、关系和图 达到特定目标的公共UML方法 系统架构的UML视图
UML基本的构造块 构造块 事物 关系 图 建模元素本身 把事物联系在一起,关系说明两个或多个事物时如何语义相关的 building blocks 事物 things 关系 relationships 图 diagrams 建模元素本身 把事物联系在一起,关系说明两个或多个事物时如何语义相关的 UML模型的视图,它们展现事物的集合,“讲述关于软件系统的故事”,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法 Page 10 4
事物 事物 结构物件 行为物件 分组物件 注解物件 UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点 things 结构物件 行为物件 分组物件 注解物件 UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点 UML模型的动词,如交互、状态机 包,它用于把语义上相关的建模元素分组为内聚的单元 注解,它附加到模型以捕获特殊信息,同黄色便笺很相像
关系 关系 关联 依赖 泛化 实现 描述对象之间的一组链接 事物的改变引起依赖物件的语义改变 relationships 关联 association 依赖 dependency 泛化 generalization 实现 realization 描述对象之间的一组链接 事物的改变引起依赖物件的语义改变 一个元素是另一个元素的特化,而且它可以取代更一般的元素 类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约
collaboration diagrams 图 图 diagrams 静态模型 (系统结构) 动态模型 (系统行为) 类图 class diagrams 顺序图 sequence` diagrams 对象图 object diagrams 协作图 collaboration diagrams 构件图 component diagrams 状态图 statechart diagrams 部署图 deployment diagrams 活动图 activity diagrams 用例图 use case diagrams
extensibility mechanisms UML 公共机制 公共机制 common mechanisms 规格说明 specifications 修饰 adornments 公共分类 common divisions 扩展机制 extensibility mechanisms
规格说明 UML模型: 规格说明 使用图和图标可视化模型 各种建模元素的规格说明所组成 模型元素的特征和语义的文本描述—模型的“肉” 形成了承载模型的语义背板,赋予模型意义,各种图仅仅是该背板的视图或者可视化投影
修饰 修饰:图中建模元素上暴露的信息项 任何UML图仅是模型的视图, 只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,才应该表示那些修饰 Window
公共分类 描述认识世界的特殊方法 类和实例 接口和实现 类元:一类事物的抽象概念;如“银行帐户” 实例:一类事物的特定实例;如“张三丰帐户” 接口:说明事物行为的契约(做什么) 实现:事物是如何工作的特殊细节(如何做)
扩展机制 约 束:允许对模型元素添加新的规则 构造型:基于已有的建模元素引入新的建模元素 约 束:允许对模型元素添加新的规则 构造型:基于已有的建模元素引入新的建模元素 标记值:允许为模型元素添加新的特性,是带有相关值得关键字
JAVA开发平台体系结构 构架是一个系统的组织结构包括: 1. 系统分解成的各个部分 2. 它们的连接性 3. 交互机制 4. 通知系统设计的向导规则
JAVA开发平台架构 构架是一个系统的组织结构包括: 1. 系统分解成的各个部分 2. 它们的连接性 3. 交互机制 4. 通知系统设计的向导规则
架构 构架是一个系统的组织结构包括: 1. 系统分解成的各个部分 2. 它们的连接性 3. 交互机制 4. 通知系统设计的向导规则
4+1视图
UML小结
任务3 UML静态建模机制 用例图 类图 对象图 包 使用类图的建议
用例图 用例图 参与者 用例1 用例2 参与者1 参与者2 Page 25
用例“捕获需求” 用例图从系统外部、从用户角度出发描述系统的功能集 用例图所描述的系统功能依靠外部用户或另一个系统激活,为用户或另一个系统提供服务
用例表达“做什么” 用例图中可以包含若干个用例,用例表达了系统的功能 用例只描述参与者和系统在交互过程中做些什么,并不描述怎么做。
用例图 关联关系 Page 28
用例图 泛化关系 Page 29
用例图 泛化关系 Page 30
用例图 保险销售用例 Page 31
用例图 商品订单用例 Page 32
用例图 教学管理用例 Page 33
用例用于什么情况? 不知道什么情况不用用例 如果没有用到用例,闭门反省
实例:监听器用例
实例:监听器用例 功能需求 场景 监听删除操作,保证数据的安全。 监听删除操作 删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。 步骤 异常情况 异常处理方法 取得实体的类名 ClassNotFoundException异常 日志记录,然后包装成一个HibernateException,向上层抛出。 获取undeletable标签,判断是否存在,是则执行函数体,否则执行父类函数体(onDelete) IllegalAccessException 异常与InvocationTarget- Exception异常 日志记录,然后包装成HibernateException,向上层抛出。
用例图 关系 关联关系 ;依赖关系 ;泛化关系;关系的扩展 用例 扩展 包含 参与者 泛化 注释体 系统边界 注释连接 关联 <<include>> <<extend>> 参与者 用例 系统边界 关联 扩展 包含 泛化 注释体 注释连接 Page 37
类图 类图 类 名称;属性;操作 关联关系 泛化 依赖关系 约束
类图 类 名称;属性;操作
类图 类图
类图 类图
类图 类图 关联 泛化
类图 类图
类图 类图
何时用 类图? 类图是面向对象方法的支柱 如果没用到类图?? 找电杆撞下,看是否用面向对象方法
用 类图 的危险! 类图用滥了,建狗屋画了10页类图 类图没分清粗细层次: 概念类图 规约类图 实现类图
鸟类图
鸟类图
鸟类图
鸟类图
实例:监听器类图
使用类图的建议 使用类图的建议 不要试图使用所有的符号 根据项目开发的不同阶段,用正确的观点来画类图 不要为每个事物都画一个模型,应该把精力放在关键的领域
对象图 对象图 表示在某一时刻类的具体实例和这些实例之间的具体连接关系 对象图 丁一家里的PC:计算机 丁一:作家 名称:DELL446 内存:128 丁一:作家 姓名:丁一 年龄:30
类 与 对象 关系
类 与 对象 关系 对象图使用的是与类图相同的符号和关系
类图和对象图的区别
包 包 包 一种分组机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包 A PackageA A B B C C
包的关系 引用 使用
包--软件比赛作品
架构图--包图的变形
任务4 UML动态建模机制 对象之间的交互 状态图 交互图 活动图 四种图的运用
软件模型与现实 模型与现实要匹配
对象之间的交互 对象之间的交互 简单消息 同步消息 异步消息 同步且立即返回消息
什么是状态图? 状态图 状态图 用来建模对象是如何改变其状态以响应事件,展示对象从创建到删除的生命周期 发票状态图
状态图 状态标记符
状态图 实例:打电话
状态图 状态图 状态和转移 事件
状态图 如果你太喜欢
状态图 详细状态
状态图 状态图 子状态
状态图 状态图 子状态
状态图 状态图 子状态
航班状态
放松下
交互图 交互图 顺序图
交互图 交互图 顺序图
实例:监听器顺序图
电影动画-软件模型 电影大量使用3D动画
交互图 协作图:交互关系 和 链接关系 链接;消息流;对象生命周期
交互图 协作图:交互关系 和 链接关系
交互图 交互图 协作图 链接;消息流;对象生命周期
顺序图与协作图 相同点 描述对象间的交互关系 不同点 顺序图:交互的时间顺序 协作图:交互的静态链接关系
3D电影动态建模
活动图 -状态变种 活动和转移 泳道 对象 信号
活动图 -状态变种 活动和转移 泳道 对象 信号
活动图 活动图 活动和转移 泳道 对象 信号
活动图 活动和转移 泳道 对象 信号
四种图的运用 四种图的运用 动态建模 目的、侧重不同 状态图只有极少关键对象 顺序图、协作图:单用例中几个对象的行为 顺序图突出顺序,协作图着重对象间链接关系