已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
统一建模语言UML UML模型系统体系结构 UML UnifiedModelingLanguage Unified Booch Rumbaugh Jacobson UML由世界著名的面向对象技术专家G Booch J Rumbaugh I Jacobson发起 在Booch方法 OMT方法和OOSE方法基础上 广泛征求意见 汲众家之长 几经修改而完成的 1997年被OMG ObjectManagementGroup 采纳为业界标准 Modeling 建模 UML用于建模 即表达模型设计 而且自身拥有四层体系结构 模型是系统一个抽象的概括 强调系统设计特定的重要方面 同时忽略大量底层的编程细节 而建模就是为了捕捉 描述系统的核心 同一研究对象不同人建立的模型可能同样好或同样差 Language 是一种可视化建模语言 有语法和语义 消除了自然语言的歧义 虽然与具体面向对象语言无关 但学会UML的关键之处是将UML模型与具体代码实现相互结合 UMLmodel Sourcecode Objectstructures Executingprogram UML Programminglanguage Abstractviewof Abstractviewof Specifies Specifies 模型与代码之间的关系 四层元模型体系结构 Run timeInstance运行实例层 Model模型层 Metamodel元模型层 Metametamodel元元模型层 Class person1 Person Person Tool Association InfrastructureLibrary Core Constructs Class InfrastructureLibrary Core Abstraction Relationships 规定元模型的语言 规定模型的语言 定义描述语义域的语言 UML的主要特点 建模设计上的标准化与可视化的结合建模设计上的语言无关性 建模设计上标准性与扩展性的统一 UML视图 View 描述软件系统的不同方面 结构视域 实现视域 行为视域 环境视域 用户视域 4 1视图模型 不同开发者对视图的关心角度 UML图 Diagram 用于描述模型 是模型元素的一个集合单元 敏捷软件原则 需要时再添加 UML的主要图类型 活动图 用例图 协作图 对象图 类图 状态图 序列图 Workflow Scenarios Inter classbehavior Inter classbehavior Structure Structure Interactionequencebetweenobjects UML图在设计过程中的演化关系 发现类方法 名词短语 公共类 用例导出 CRC 类 职责 协作 提炼类方法 系统范围内 清晰目的 不能孤立 有属性 类功能单一 Association Generalization Structure UML图的类型划分 UML视图与图对应关系 B A B A Usecase B A 用例图主要模型元素及其含义 参与者 角色 用例 包含关系 扩展关系 关联关系 泛化关系 参与者是针对用例所扮演的角色 可以人也可以是事物 用例是功能 功能是完整的 外部可见的 相互独立的 完整含义 用例的执行逻辑必须完整 即有主要执行的流程 也有各种次要流程和意外处理流程 外部可见的 不是内部功能 是参与者可以感知的 相互独立的 用例开始执行到最终结束不依赖于其他用例 是参与者和用例之间的通信渠道 如果没有箭头 则代表通信是双向的 是用例与用例的一种依赖关系 它允许被包含用例中的公共行为从包含用例中分解出来 如B用例包含A用例 则意味着B用例要执行 必须先执行A用例 是用例与用例的关系 B用例扩展A用例 表示A用例在某种条件满足下 可以执行B用例 因而B用例是A用例的额外功能 另外当B用例的执行可以由A用例而来 也可以由其他途径而来时 没有包含那种强制含义 B用例和A用例也是一种扩展关系 是用例与用例 参与者与参与者之间的一种继承关系 表示一个用例 角色 将继承另一用例 角色 的所有功能 语义含义 用例图是对需求中系统功能的规格说明 不对系统约束进行说明 并被作为验收测试的依据 用例图模型的建立过程 确定参与者和用例 确定参与者与用例之间的关系 确定参与者之间的关系 确定用例之间的关系 确定需求边界 在用例图中用矩形框表示 对用例功能进行描述 形成文档 例 包含二个角色 四个用例 其中B用例和A用例之间的关系为包含 即B用例执行前必须先执行A用例 C和A的关系为扩展 即A用例在某种条件满足下 可以扩展出C用例 D用例和A用例的关系为继承 表明D将拥有A用例的所有功能 参与者1和参与者2之间的关系为继承 表示参与者2除了可以驱动A B用例外 还可以驱动参与者1的所有用例 即图中的D用例 用例规格说明格式 表示类及其关联关系的图 类图 长短式 抽象类和具体类表示 类多重性表示 封装表示 Component 主要的模型元素 类 关联 泛化 依赖关系 接口 包 类中属性和操作的类范围和对象范围 Canister display getNumOpenSlots setStatus numCanisters int numWafers int size float Canister 静态属性 构造方法 静态方法 此三者专属于类 其他属性和方法虽然在类中定义 实际为对象而服务 对象图为类图实例 是类图的一个快照 对象图 长式 属性 值 对象名 类名 对象名 类名 短式 类图和对象图的比较 类是数据类型 UML在表示所有语言数据类型上不够 用构造型 stereotype 进行数据类型 模型元素 的扩展 基本int数据类型 MyInterface Java语言的接口 用户自定义枚举类型 泛化 抽象类与继承关系的UML表示泛化构造型 抽象类在编程上的可替换 Interchageable 与多态性 Accountac ac newCurrentAccount System out println ac getBalance ac newDepositAccount System out println ac getBalance 关联 一 关联名 关联方向 关联角色 关联多重性 classPerson Componyemployer classCompany Person employee 类A 类B 角色a 角色b 关联名 关联多重性 关联多重性 关联 二 实现 类图为关联 对象图为链接 代码实现为引用 类图中的关联关系将决定对象图 序列图中对象的交互关系 用代码表示类图多重性含义 一 classA Bb classB Aa A B两个类对象可以引用对方也可以不引用 总之可自由选择 用代码表示类图多重性含义 二 A类对象必须引用B类对象 B类对象则可以引用也可以不引用A对象 classA Bb A B b if b null throwNullLinkError b b classB Aa 用代码表示类图多重性含义 三 classA Bb A B b if b null throwNullLinkError b b b setA this classB Aa voidsetA A a if a null throwNullLinkError a a 先产生B类对象 再产生A类对象 只要A类对象产生时 二者就构成了相互引用 如果产生对象的方式反过来 如法炮制 关联 三 关联的元数 一元关联或自关联或递归关联 二元关联 三元关联 MailMessage Attachment composition Computer Processor 1 aggregation 关联 四 聚合 部分是整体的一部分 组合 整体拥有部分 关联 五 关联约束 委员会 人 subset 1 成员 主席 主席是成员中的一员 委员会有一个成员的引用集合 有一个 主席引用 主席对象被 主席引用 引用外 在成员引用集合中也存在一个引用指向主席对象 多边形 线段 ordered 多边形中存在一个线段的引用集合 多个线段对象的引用是以有序的方式加入集合当中 购房合同 人 公司 xor 购房合同的主体只能有一个 要么是人 要么是公司 老板 人 工人1 人 工人2 人 A 公司 老板 人 工人1 人 工人2 人 A 公司 B 公司 约束条件下的对象链接图 没有约束条件下的可能存在的对象链接关系图 关联 六 关联类 产生条件 多重性中的多对多 将对应关系进行存储 classRegistration privateintmark privateStudentstudent Registration Studentst student st mark 0 classModule privateVectorregistrations newVector publicvoidenroll Studentst registrations addElement newRegistration st 关联 七 关联与类的泛化 classDirectory privateHashtabletheFiles 关联 八 受限 qualified 关联的表示及实现 name是theFiles中的Key Directory File interface MyClass MyInterface MyClass MyInterface 接口表示及实现 classMyDependentClass voidmyFunction1 MyReferencedClassr MyReferencedClassmyFunction2 voidmyFunction3 MyReferencedClassm dependence referencetoaclass parameter orreturntype orlocalvariabletype MyDependentClass MyReferencedClass 依赖的表示和实现 依赖的表示和实现 MyClass MyInterface UseClass classUseClass voidmyFunction MyInterfacemi Student jack Student 包及包图 包是UML的模型元素之一 是一种分组机制 把一些模型元素组织成语义上相关的组 包可以包含类 接口 组件 结点和其他包 包之间有引入 依赖 继承的关系 包图用来描述系统模型的体系结构层次 一个包就是一个子系统 包图是设计中的概念 在建模时起到归类的作用 对于实际系统没有意义 不需要转化成可执行的系统 包图中涉及到的注解到包名边的构造型主要有 系统模型 子系统模型 是其他包的一个访问接口视图包 另一个包的代理 由模式组成的包 包名 可含有包路径 包层次 A包在类定义层次使用了B包继承了D包 在对象层次调用了C包中的对象 顺序图 序列 图 顺序图又称为序列图 描述对象之间动态的消息交互关系 体现对象间消息传递的时间顺序 图顶层的水平轴为交互的对象 对象下的虚线代表对象生命线 虚线上的矩形框表示对象接受消息后被激活期 代表方法的执行 对象间消息交互从图的最顶端开始 自上向下体现的是消息交互的时间顺序 Client端是消息的发送端 拥有myObject的引用 Operation 是MyClass的方法 该方法中有myClass1对象的引用 Operation1 是MyClass1的方法 a是MyClass的声明 a Operation b是MyClass1声明 b Operation1 交互图中的消息 1 消息格式 序号 条件 重复次数 回送值 操作名 参数表 2 消息四种类型 简单消息 同步消息 异步消息和返回消息 消息的类型 内部消息的表示方法 3 内部消息和循环消息表示方法 4 消息中的构造型 创建消亡用同步消息 建立顺序图步骤 1 确定交互的类对象2 在序列图左上角画一个矩形框代表该对象 使用UML标记方法 object Class3 画一个延长矩形框在该对象下面表示一个操作的执行 4 画一个箭头指向右边 myObject MyClass myObject1 MyClass1 operation1 合作图 协作 图 用于描述相互合作的对象间的交互关系 模型元素由类元或对象 链接 消息构成 类元角色 描述对象在交互中扮演的角色 winner Account 链接 用实线表示两个类元 对象 之间的链接 用构造型表明链接的种类 消息 格式同顺序图 合作图中的循环消息表示法 对象的创建与撤销 new 合作中新产生的对象或链接 destroy 合作中销毁的对象或链接 transient 合作中产生又销毁的对象或链接 消息构造型 链接撤销 对象撤销 顺序图和合作图的相互转化 活动图 活动图用于描述系统需求各用例内活动的执行顺序或类方法中主要活动的执行流程 活动 活动由子活动或动作构成 动作是不可再分的活动 其执行不能被打断 动作不能象活动那样拥有入口动作 出口动作和内部迁移 活动和动作都拥有相同的UML表示符号 模型元素 活动 迁移 分支与合并 开始活动 结束活动 分叉 汇合 迁移 由带箭头的实线表示 表示动作状态的转移 当迁移上无条件时 称为无条件动作流 当有条件时 条件满足迁移发生 分支与合并 一个入迁移 多个具有互斥条件的出迁移 迁移沿判定条件为真的分支迁移 合并 将多个具有互斥条件的入迁移合并成一个出迁移 即当有一个入迁移发生时 就会引起出迁移 迁移也可以分叉和汇合 分叉形成并发迁移 汇合则对迁移进行同步 开始活动与结束活动 开始活动是活动图的开始 只能有一个 结束活动是活动图的结束 一个活动图可以存在多个结束活动 状态图 描述系统或类可能有的不同状态及其引起状态迁移的事件 对象的状态决定了对象的行为 模型元素 迁移 开始状态 结束状态 状态 状态 由状态名和活动组成 在状态图中 状态名唯一 活动是在该状态下执行的事件和动作 是可选项 每个状态有有入口 执行和出口三个标准事件 每个事件对应一个动作 如果在状态的活动区还画有一个或多个状态图 则称为嵌套状态 迁移 由带箭头的实线表示 表示状态的转移 迁移的完整描述为 事件 参数 条件 动作 迁移可以接判断 判断一入多出 且出迁条件互斥 条件判断 开始状态与结束状态 开始状态是状态图的开始 对于同一层次状态图而言只能有一个 嵌套的状态图可以有自己的开始状态和结束状态 结束状态是状态图的结束 一个状态图可以有多个结束状态 状态图与活动图的相同点和不同点 相同点 1 图中的建模元素有相似之处 2 对系统或对象在生存周期的状态和行为进行描述 不同点 1 状态图中迁移发生时 必须有事件发生或条件满足 而活动图的迁移可以无条件或没有事件发生 2 状态图对于系统状态的描述可以横跨多个用例 而活动图则是针对同一用例内部的动作执行给出描述 构件图 构件图描述构件及其相互依赖关系 用于将系统逻辑设计与物理模块进行对应 模型元素 构件 接口 依赖 构件 相对逻辑设计上的类和对象 构件是和物理系统相关的一个概念 不同的语言对构件的定义有所不同 UML中的构件含义包括代码文件 也指数据库 动态链接库 web页面等 依赖 构件中的关系以依赖的形式表达 可分为编译依赖和调用依赖两类 接口 构件和接口存在实现和调用两种关系 构件构造型 构件依赖中使用的含义 部署图 部署图描述了构件在物理硬件上的分布情况 模型元素 构件 结点 关联 结点 表示某种计算资源的物理对象 包括计算机 外部设备 打印机 读卡器 通信设备等 结点内部放置构件 表示构件部署在该结点上 同一个结点内部的构件关系用依赖表达 关联 结点之间的关联表示结点之间物理连接以及其上用的通信协议 依赖 部署图中的构造型 用来表达结点通讯使用的协议等 经典案例 案例1工厂仓库管理信息管理 需求 publicclassPart privateStringname privatelongnumber privateDoublecost publicPart String name long numbr double cost name name number number cost cost publicStringgetName returnname publiclonggetNumber returnnumber publicdoublegetCost returncost 问题 潜在需求 仓库零件非常多 这样设计的问题有 1 对象属性冗余 造成内存浪费以及维护上的困难 2 仓库中没有零件无法记录零件类型 针对需求NO1 3的设计 publicclassPart privateCatalogueEntryentry publicPart CatalogueEntrye entry e Screws Bolts 上述问题的解决方案 publicclassPart privateCatalogueEntryentry publicPart CatalogueEntrye entry e publicdoublecost returnentry getcost Part成本查询的相应调整 针对需求NO4的设计 组合表示 场景描述 p3和p2组成a2 a2和p1组成a1 潜在需求 一个assembly可以对应多个part或assembly 设计要求 引用上存在多样性现象 Vector链表中的每个单元可引用任何对象 因而Assembly或Part的引用都可以放入 但组合物中加入构件时有两种方案 很明显方案2较好 publicclassAssembly privateVectorcomponents newVector publicvoidaddAssemble Assemblyc components add c publicvoidaddPart Partc components add c publicvoidadd Objectc components add c 方案1 方案2 多样性 上图中的组合关系又可以表示如下 为解决 黑洞 问题 同时也为了Vector中组成对象能用一致的接口进行调用 Assembly以及Part必须具有后天的 血缘 关系 而不是天然的Object的 血缘 关系 因而Object的角色最好由自定义的抽象类Component充当 它有一个抽象接口方法cost 类图语义 凡是Object的子类都可加入Assembly当中 但这样设计后 加入Assembly当中的对象都失去原来的特征 只剩Object的特征 且因为集合结构Vector中对象引用多样性 无法进行准确还原 好似 黑洞 针对需求NO5的设计 组合物成本查询 最终的类图和对应的代码 遍历 动态绑定 发统一消息 抽象类的定义保证了cost 接口在子类定义和对象调用中的一致性 案例1总结 案例2图形编辑器需求 图形编辑器用例图 图形编辑器界面 1 软件初始启动 处于创建长方形的状态 编辑区域默认产生第一个编辑图层 图形编辑提示区域提示为 第一页 2 创建图形 创建图形用例 用于创建直线 椭圆 矩形 用户首先选择创建图形的类型 之后将鼠标移至图形编辑区域 按下鼠标确定起始点 之后拖动鼠标 在绘图区域动态绘出相应图形 当鼠标释放时 在起始和终止点所包含的长方形区域内 将图形绘制在当前的图层上 3 选择图形 主事件流是 对已创建的图形进行选择 可单选也可多选 选择的图形应标出选中状态 当图形嵌套时 在其内部点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育产品加盟体系构建与运营
- 安全教育培训班实施纲要
- 2026上半年中小学教师资格结构化面试模拟试题及答案解析
- 统计流程规范
- 婚内财产忠诚协议书
- 智能算力服务研究报告(2026年)
- 租赁合同改成合作协议
- 租车违约赔付协议书
- 税费补充协议书
- 第三方合同终止协议
- eras围手术期营养管理
- 矿山支柱作业安全培训课件
- 机械类中职学业水平考试专业综合理论考试题库(含答案)
- 重视心血管-肾脏-代谢综合征(CKM)
- 摄影中的光与色彩
- 中考听说信息询问解题技巧
- 污水处理厂设计计算说明书cass工艺
- 中国传媒大学-主持人即兴口语训练-课件-1
- 调酒与茶艺智慧树知到答案章节测试2023年三亚航空旅游职业学院
- 小学六年级期中考试后家长会
- 史学概论版课件
评论
0/150
提交评论