大学UML面向对象建模基础-徐锋-课件PPT
收藏
资源目录
压缩包内文档预览:(预览前20页/共30页)
编号:21836372
类型:共享资源
大小:24.18MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
uml
面向
对象
建模
基础
徐锋
课件
ppt
- 资源描述:
-
大学UML面向对象建模基础-徐锋-课件PPT,大学,uml,面向,对象,建模,基础,徐锋,课件,ppt
- 内容简介:
-
UML面向对象建模基础,UML概述,知识图谱,Agenda,什么是UML 什么是模型 常见的UML认识误区 本章小结,Agenda,什么是UML 什么是模型 常见的UML认识误区 本章小结,UML发展历程,UML的特性与发展现状,UML是一种Language(语言) UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language 已进入全面应用阶段的事实标准 应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域 成为“产生式编程”的重要支持技术:MDA、 可执行UML等,Agenda,什么是UML 什么是模型 常见的UML认识误区 本章小结,模型是对现实的简化,常见的模型,生活相关:气象图、道路交通图、交通标志 展示相关:建筑物模型、沙盘、公司总部的3D复制品 数据分析相关:条形图、饼状图 业务分析相关:组织结构图、跨职能流程图 设计相关:建筑平面图、管线图、电路板设计图,建模的目的与原则,帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化 仅当需要模型时,才构建它 选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。,为什么使用UML建模,可以建立什么模型,UML是一种统一的、标准化的建模语言 UML是一种应用面很广泛的建模语言,草图与蓝图,蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型 草图则通常是指手工绘制的、规范度较低的在纸张的UML模型 大胆地绘制草图,尽可能基于草图进行讨论。对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中,谁应该建模,业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与 需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与 设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。 实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。 数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。,Agenda,什么是UML 什么是模型 常见的UML认识误区 本章小结,常见误区,UML是一种方法论 UML就是一堆图形 UML只能够应用于面向对象开发中 UML就是Rose里的符号 UML的学习周期很长、很复杂,Agenda,什么是UML 什么是模型 常见的UML认识误区 本章小结,本章小结,首先概要地介绍了什么是UML、UML的发展历程和发展现状,让读者对UML的来龙去脉有个感性的了解 然后,从模型的定义开始,讲述建模的意义、选用UML建模的好处以及模型类别、负责建模的人员等知识,帮助读者理解UML的应用领域以及它的意义,以建立对UML及模型的宏观认识 最后,本章还指出了UML初学者容易走入的认识误区,帮助读者更好的认识UML,为UML的学习指出正确的方向,UML面向对象建模基础UML概述知识图谱Agenda什么是UML什么是模型常见的UML认识误区本章小结Agenda什么是UML什么是模型常见的UML认识误区本章小结UML发展历程UML的特性与发展现状UML是一种Language(语言)UML是一种Modeling(建模)LanguageUML是Unified(统一)Modeling Language已进入全面应用阶段的事实标准应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域成为“产生式编程”的重要支持技术:MDA、可执行UML等Agenda什么是UML什么是模型常见的UML认识误区本章小结模型是对现实的简化常见的模型生活相关:气象图、道路交通图、交通标志展示相关:建筑物模型、沙盘、公司总部的3D复制品数据分析相关:条形图、饼状图业务分析相关:组织结构图、跨职能流程图设计相关:建筑平面图、管线图、电路板设计图 建模的目的与原则帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化 仅当需要模型时,才构建它 选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。 为什么使用UML建模,可以建立什么模型UML是一种统一的、标准化的建模语言 UML是一种应用面很广泛的建模语言 草图与蓝图蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型 草图则通常是指手工绘制的、规范度较低的在纸张的UML模型 大胆地绘制草图,尽可能基于草图进行讨论。对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中 谁应该建模业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。Agenda什么是UML什么是模型常见的UML认识误区本章小结常见误区UML是一种方法论UML就是一堆图形UML只能够应用于面向对象开发中UML就是Rose里的符号UML的学习周期很长、很复杂Agenda什么是UML什么是模型常见的UML认识误区本章小结本章小结首先概要地介绍了什么是UML、UML的发展历程和发展现状,让读者对UML的来龙去脉有个感性的了解 然后,从模型的定义开始,讲述建模的意义、选用UML建模的好处以及模型类别、负责建模的人员等知识,帮助读者理解UML的应用领域以及它的意义,以建立对UML及模型的宏观认识 最后,本章还指出了UML初学者容易走入的认识误区,帮助读者更好的认识UML,为UML的学习指出正确的方向 UML面向对象建模基础,UML世界的构成,知识图谱,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,UML组成,基本构造块:也就是建模 元素,是模型的主体 UML规则:也就是支配基 本构造块如何放在一起的 规则 公共机制:运用于整个 UML模型中的公共机制、 扩展机制,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,事物构造块,事物构造块是对模型中最具有代表性的成分的抽象 结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。 行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。 分组事物:UML中的容器,用来组织模型,使模型更加的结构化。 注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。,面向对象视角下的世界,首先建立反应现实世界中不同事物的“构造块”,然后确定“构造块”之间的“关系”,再确定各个构造块的属性和“行为”。这样,在软件系统中就可以模拟现实世界的“构造块”之间的交互与协作 面向对象软件开发的核心思想就是高内聚(封装)、低耦合(消息驱动),使用简洁的接口拼合简单的部件,结构事物,类(class)和对象(object) 接口(interface) 主动类(active class) 用例(use case) 协作(collaboration) 构件(component) 节点(node),类和对象,类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的一个实例,接口,接口是描述某个类或构件的一个服务操作集,主动类,主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到 启动控制活动的作用 主动类是指其对象至少拥有一个进 程或线程,能够启动控制活动的类,用例与协作,用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个 用例定义一组用例实例。 协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构 成的一个群体。 对于某个用例的实现就可 以表示为一个协作,构件,在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件) 构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换,节点,为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件 节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力,行为事物,交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 交互的表示法很简单,就是一条有向直线,并在上面标有操作名 状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 在UML模型中将状态画为一个圆 角矩形,并在矩形内写出状态名 称及其子状态,分组事物,对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标,注释事物,结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,UML模型关系的种类,关联关系,关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。 在UML中,使用一条实线来表示关联关系 在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述,泛化、实现、扩展与依赖,泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。 实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 扩展表示将一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,UML规则,命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符 范围:与类的作用域相似,包括所有者作用域(owner scope)和目标作用域(target scope)两类 可见性:,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,规格描述,在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :,UML修饰与通用划分,在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类 UML通用划分: 1)类与对象的划分:类是一种抽象,对象是一个具体 的实例 2)接口与实现的分离:接口是一种声明、是一个契 约,也是服务的入口;实现则是负责实施接口提供 的契约,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,UML扩展机制,构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块 标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“标记信息”的字符串 约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,UML定义的图,UML视图和图,UML图形分类,4+1视图,开发过程,Agenda,UML的组成 事物构造块 关系构造块 UML规则 UML公共机制 UML扩展机制 UML体系结构与图 本章小结,本章小结,首先阐述了事物构造块、关系构造块,它们是UML建模元素的主体。事务构造块包括结构、行为、分组和注释四种类型;关系构造块主要包括关联、泛化、依赖、实现 接着简要阐述了UML中公共的规则 然后,系统地介绍了规格说明、修饰和通用划分三种公共机制;并对扩展机制进行了更深入的讲解 在本章的最后又将读者的目光转回到“图”这个最重要的构造块中,简要地阐述了UML 2.0中定义的13种图,以及不同图的划分和类别,UML面向对象建模基础UML世界的构成知识图谱AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结UML组成基本构造块:也就是建模元素,是模型的主体UML规则:也就是支配基本构造块如何放在一起的规则公共机制:运用于整个UML模型中的公共机制、扩展机制AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结事物构造块事物构造块是对模型中最具有代表性的成分的抽象 结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。面向对象视角下的世界首先建立反应现实世界中不同事物的“构造块”,然后确定“构造块”之间的“关系”,再确定各个构造块的属性和“行为”。这样,在软件系统中就可以模拟现实世界的“构造块”之间的交互与协作 面向对象软件开发的核心思想就是高内聚(封装)、低耦合(消息驱动),使用简洁的接口拼合简单的部件结构事物类(class)和对象(object)接口(interface)主动类(active class)用例(use case)协作(collaboration)构件(component)节点(node)类和对象类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的一个实例 接口接口是描述某个类或构件的一个服务操作集 主动类主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到启动控制活动的作用 主动类是指其对象至少拥有一个进程或线程,能够启动控制活动的类 用例与协作用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。 协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。 对于某个用例的实现就可以表示为一个协作 构件在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件) 构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换 节点为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件 节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力 行为事物交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 交互的表示法很简单,就是一条有向直线,并在上面标有操作名 状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名称及其子状态 分组事物对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标 注释事物结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分 AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结UML模型关系的种类关联关系关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。在UML中,使用一条实线来表示关联关系 在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述 泛化、实现、扩展与依赖泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 扩展表示将一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。 AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结UML规则命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符 范围:与类的作用域相似,包括所有者作用域(owner scope)和目标作用域(target scope)两类 可见性:AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结规格描述在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :UML修饰与通用划分在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类 UML通用划分:1)类与对象的划分:类是一种抽象,对象是一个具体 的实例 2)接口与实现的分离:接口是一种声明、是一个契 约,也是服务的入口;实现则是负责实施接口提供 的契约 AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结UML扩展机制构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块 标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“标记信息”的字符串 约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结UML定义的图UML视图和图UML图形分类4+1视图开发过程AgendaUML的组成事物构造块关系构造块UML规则UML公共机制UML扩展机制UML体系结构与图本章小结本章小结首先阐述了事物构造块、关系构造块,它们是UML建模元素的主体。事务构造块包括结构、行为、分组和注释四种类型;关系构造块主要包括关联、泛化、依赖、实现接着简要阐述了UML中公共的规则然后,系统地介绍了规格说明、修饰和通用划分三种公共机制;并对扩展机制进行了更深入的讲解 在本章的最后又将读者的目光转回到“图”这个最重要的构造块中,简要地阐述了UML 2.0中定义的13种图,以及不同图的划分和类别 UML面向对象建模基础,类图,知识图谱,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,面向对象思想,面向对象思想,每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。 在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求 用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想,如何用UML表示一个类,名称:每个类都有一个惟一的名称,通常采用CamelCase格式表示 属性:是已被命名的类的 特性,它描述该类实例中 包含的信息 操作:是类所提供的服务, 它可以由类的任何对象请求以影响其行为 属性名和操作名也通常采用CamelCase格式表示,只不过首字母通常为小写。,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,示例类图,先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义,读图过程,读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut 读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。 1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。 2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。,读图过程,多重性:用来说明关联的两个类之间的数量关系,读图过程理解方法与图,Order类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”标志位的 先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉,使用了更多辅助建模元素的类图,增强的辅助建模元素,导航箭号:类的实例之间只能沿着导航箭头的方向传递 ,在Order中可以获取其相应的Consignee,而从Consignee中是无法了解与其相关的Order的 角色名称:Customer端有一个“+Owner”字符串 ,这表示Customer扮演的角色是Owner,也能对关联进行命名,增强的辅助建模元素,导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名称前加上一个“/”符号。 限定符:在Order和OrderItem之间的组合关系中,OrderItem这端多了一个方框,里面写着“ProductId”。它在UML中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中,它的用途是说明:对于一张订单,每一种产品只能用一个订单项 约束:用来说明规则,xor 职责:在类的属性栏中添加注释行表示,或增加了一个新的分栏,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,接口与抽象类,抽象类是一种不能够被直接实例化的类,也就是说不能够创建一个属于抽象类的对象 接口则是一种类似于抽象 类的机制,它是一个没有 具体实现的类,关联类,关联类即是关联也是类,它不仅像关联那样连接两个类,而且还可以定义一组属于关系本身的特性,模板类,可以根据占位符或参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型,主动类与嵌套类,主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程 在诸如Java的语言中,允许你将一个类的定义放在另一个类定义的内部,这就是嵌套类,在Java中也称为内层类。嵌套类是声明在它的外层类中的,因此只能够通过外层类或外层类的对象对它进行访问,常见依赖关系与Java程序实现,引用对象和值对象,引用对象:reference object,例如客户、产品、订单等对象都是典型的引用对象,对于这些对象而言,标识(identity)是很重要的,因为对于现实世界中的一个实体只需要一个软件对象来表示 值对象:例如日期、重量、高度等对象都是典型的值对象,表示现实世界中的同一个对象往往有多个值对象,对象约束语言,环境与约束:每个OCL表达式都必须是针对某个元素的,因此在OCL表达式前必须说明它针对元素(这就称为环境) 1)“context Object inv:”,其中Object是OCL表达式针对的建模元素名称; 2)“ Object ”,其中Object是OCL表达式针对的建模元素名称。 当声明了环境之后,就可以用self来引用它的变量,对象约束语言,子集约束: 一致性:一个客户拥有零个或多个合同,发票是基于某个合同的,而一个客户将收到零张或多张发票 Invoice:self.contract.customer=self.customer,对象约束语言,异或关系: 规定的取值范围:Rectangle:length0 and width0,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,需求描述,小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计,发现类,小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计,筛选备选类,“小王”、“人”、“家里”很明显是系统外的概念,无须对其建模; 而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模; 很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。 “基本信息”则是书名、作者、类别等描述书籍的基本信息统称,“关键字”则是代表其中之一,因此无需对其建模; “功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;,筛选修选类,“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义; “外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”; “购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类书籍列表,也就是执行统计的主体。,得到候选类,在使用“名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字,关联分析,建模,多重性分析,再建模,职责分析,书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时从统计的需要中,可得知“定价”也是一个关键的成员变量。 书籍列表类:书籍列表就是全部 的藏书列表,其主要的成员方法 是新增、修改、查询(按关键字 查询)、统计(按特定时限统计 册数与金额)。 借阅记录类:借阅人(朋友)、 借阅时间。 借阅记录列表类:主要职责就是 添加记录(借出)、删除记录 (归还)以及打印借阅记录,限定与修改,导航性分析:Book与BookList之间、BorrowRecord和BorrowList之间是组合关系均无需添加方向描述,而Book与BorrowRecord之间则是双方关联,也无需添加 约束:Book对象创建后就不能够 被删除只能被修改,因此在Book 类边上加上用自由文本写的约束 ; 一本书要么属于计算机类,要么 属于非计算机类,因此在ItBook 和OtherBook间加了 “Xor”约束 限定符:一本书只有一册,因此只 能够被借一次,因此对于一本Book 而言只能有一个RecordId与其对应,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,软件系统模型,领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。 分析模型和领域模型是很相近的,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析 设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;,数据库逻辑模型,从某种意义上说UML中的类图是E-R图的超集,E-R图只针对存储的数据,而类图则在些基础上,增加了行为建模的能力。在使用类图来表示E-R模型时,要注意遵循以下策略 将表示E-R模型的类,用UML的标准构造型“persistent”来表示; 展开类的结构性细节,并且加强关联和多重性分析; 尽量消除循环关联、n-元关联,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,复合结构图的组成部分,通过 “部件(Part)”和“连接器(Connector)”来表示类的内部结构 部件也称为结构化部分,它是一个代表上下文关系中的一个对象或一组对象的元素,也可以是类中的一部分。部件具有名称、类型和多重性 连接器:是一种上下文中的关联,它用来连接两个部件,复合结构图实例,该类由“命令解析”、“485通信”和“数据组装”三个部分组成,命令解析提供了getState(获取状态)和setState(设置状态)两个接口; 根据传入数据的不同, 由“485”通信来完成数据 的获取或设置的任务; 并且根据最终的执行结 果,进行“数据封装”, 调用外部的storeData接 口来实现数据的存储,Agenda,什么是类 如何阅读类图 其他高级概念 如何绘制类图 类图应用说明 复合结构图 本章小结,本章小结,首先,从一个现实生活中的例子开始引入面向对象思想的本质,并且详细地说明了UML中类的表示法 接着讲述了阅读类图的方法、技巧和相关的知识:关系、多重性、导航箭头、角色名称、导出属性、限定符、约束;接口/抽象类、关联类、模板类、主动类、嵌套类;OCL 类图的绘制方法,类图的功能与作用 复合结构图的基础知识,UML面向对象建模基础类图知识图谱Agenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结Agenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结面向对象思想面向对象思想每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。 在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求 用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想 如何用UML表示一个类名称:每个类都有一个惟一的名称,通常采用CamelCase格式表示属性:是已被命名的类的特性,它描述该类实例中包含的信息 操作:是类所提供的服务,它可以由类的任何对象请求以影响其行为属性名和操作名也通常采用CamelCase格式表示,只不过首字母通常为小写。 Agenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结示例类图先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义 读图过程读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。读图过程多重性:用来说明关联的两个类之间的数量关系 读图过程理解方法与图Order类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”标志位的先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉 使用了更多辅助建模元素的类图增强的辅助建模元素导航箭号:类的实例之间只能沿着导航箭头的方向传递 ,在Order中可以获取其相应的Consignee,而从Consignee中是无法了解与其相关的Order的 角色名称:Customer端有一个“+Owner”字符串 ,这表示Customer扮演的角色是Owner,也能对关联进行命名增强的辅助建模元素导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名称前加上一个“/”符号。限定符:在Order和OrderItem之间的组合关系中,OrderItem这端多了一个方框,里面写着“ProductId”。它在UML中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中,它的用途是说明:对于一张订单,每一种产品只能用一个订单项 约束:用来说明规则,xor职责:在类的属性栏中添加注释行表示,或增加了一个新的分栏Agenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结接口与抽象类抽象类是一种不能够被直接实例化的类,也就是说不能够创建一个属于抽象类的对象接口则是一种类似于抽象类的机制,它是一个没有具体实现的类 关联类关联类即是关联也是类,它不仅像关联那样连接两个类,而且还可以定义一组属于关系本身的特性 模板类可以根据占位符或参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型 主动类与嵌套类主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程在诸如Java的语言中,允许你将一个类的定义放在另一个类定义的内部,这就是嵌套类,在Java中也称为内层类。嵌套类是声明在它的外层类中的,因此只能够通过外层类或外层类的对象对它进行访问 常见依赖关系与Java程序实现引用对象和值对象引用对象:reference object,例如客户、产品、订单等对象都是典型的引用对象,对于这些对象而言,标识(identity)是很重要的,因为对于现实世界中的一个实体只需要一个软件对象来表示 值对象:例如日期、重量、高度等对象都是典型的值对象,表示现实世界中的同一个对象往往有多个值对象 对象约束语言环境与约束:每个OCL表达式都必须是针对某个元素的,因此在OCL表达式前必须说明它针对元素(这就称为环境) 1)“context Object inv:”,其中Object是OCL表达式针对的建模元素名称;2)“ Object ”,其中Object是OCL表达式针对的建模元素名称。当声明了环境之后,就可以用self来引用它的变量 对象约束语言子集约束:一致性:一个客户拥有零个或多个合同,发票是基于某个合同的,而一个客户将收到零张或多张发票 Invoice:self.contract.customer=self.customer对象约束语言异或关系:规定的取值范围:Rectangle:length0 and width0 Agenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结需求描述小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计 发现类小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计 筛选备选类“小王”、“人”、“家里”很明显是系统外的概念,无须对其建模;而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作为“
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。