面向对象建模课件.ppt
面向对象建模第1页,此课件共70页哦第第1 1 1 1节节 面向对象分析面向对象分析复杂总是简单部分的组合 简单部分又是更简单部分的组合简单部分又是更简单部分的组合 简单组成复杂的过程存在层次性简单组成复杂的过程存在层次性 每个最小简单部分独立负责完成一系列相关任务每个最小简单部分独立负责完成一系列相关任务 相比较而言,每个组合内部各部分的关系比其内部与外相比较而言,每个组合内部各部分的关系比其内部与外部的关系都更紧密部的关系都更紧密 各个部分通过一致的接口进行组合,即一个部分对其它各个部分通过一致的接口进行组合,即一个部分对其它部分的所知仅仅是接口部分的所知仅仅是接口(1 1 1 1)现实世界的复杂模型)现实世界的复杂模型)现实世界的复杂模型)现实世界的复杂模型第2页,此课件共70页哦(2 2)映射现实模型的面向对象思想)映射现实模型的面向对象思想 任何系统都是能够完成一系列相关目标和任务的对象任何系统都是能够完成一系列相关目标和任务的对象任何系统都是能够完成一系列相关目标和任务的对象任何系统都是能够完成一系列相关目标和任务的对象 对象完成一个任务时会请求一系列其他对象帮助其完成对象完成一个任务时会请求一系列其他对象帮助其完成对象完成一个任务时会请求一系列其他对象帮助其完成对象完成一个任务时会请求一系列其他对象帮助其完成一些子目标一些子目标一些子目标一些子目标 其他对象为了完成其任务又会请求将子目标更细分为子其他对象为了完成其任务又会请求将子目标更细分为子其他对象为了完成其任务又会请求将子目标更细分为子其他对象为了完成其任务又会请求将子目标更细分为子子目标,并请求其他对象帮助完成子目标,并请求其他对象帮助完成子目标,并请求其他对象帮助完成子目标,并请求其他对象帮助完成 子目标的分解和责任分担一直进行直到最后产生的子部子目标的分解和责任分担一直进行直到最后产生的子部子目标的分解和责任分担一直进行直到最后产生的子部子目标的分解和责任分担一直进行直到最后产生的子部分可以映射到计算实体分可以映射到计算实体分可以映射到计算实体分可以映射到计算实体 计算实体:对象计算实体:对象计算实体:对象计算实体:对象 层次关系:聚合(组合)、继承、关联层次关系:聚合(组合)、继承、关联层次关系:聚合(组合)、继承、关联层次关系:聚合(组合)、继承、关联 组合接口:一个对象暴露的接口组合接口:一个对象暴露的接口组合接口:一个对象暴露的接口组合接口:一个对象暴露的接口第3页,此课件共70页哦(3 3)面向对象建模)面向对象建模面向对象建模:一种用于辨识系统环境中的对象及这些对象之间关系的技术OMT(James Rumbaugh)Booch方法(Grady Booch)UMLOOSE(Ivar Jacobson)Coad-YourdonShlaer-MellorFusion第4页,此课件共70页哦JacobsonJacobsonBoochBoochJacobsonJacobsonRumbaughRumbaugh(4 4)UMLUML第5页,此课件共70页哦UML对象模型Object Model(Domain Model)用例模型Use Case Model行为模型Behavior Model 状态机模型状态机模型对象约束语言OCL第6页,此课件共70页哦2.1 2.1 2.1 2.1 对象模型组成元素对象模型组成元素对象模型组成元素对象模型组成元素(1 1)对象)对象)对象)对象 对象对象对象对象对象是指在一个应用当中具有明确角色的独立可确认的实体对象是指在一个应用当中具有明确角色的独立可确认的实体对象是指在一个应用当中具有明确角色的独立可确认的实体对象是指在一个应用当中具有明确角色的独立可确认的实体 每个对象都要包含每个对象都要包含每个对象都要包含每个对象都要包含标识标识标识标识 唯一的标识自己,引用唯一的标识自己,引用唯一的标识自己,引用唯一的标识自己,引用 状态状态状态状态 对象的特征描述,包括对象的属性和属性的取值对象的特征描述,包括对象的属性和属性的取值对象的特征描述,包括对象的属性和属性的取值对象的特征描述,包括对象的属性和属性的取值 行为行为行为行为 对象在其状态发生改变或者接收到外界消息时所采取的行对象在其状态发生改变或者接收到外界消息时所采取的行对象在其状态发生改变或者接收到外界消息时所采取的行对象在其状态发生改变或者接收到外界消息时所采取的行动动动动 第第2 2节节 对象模型对象模型第7页,此课件共70页哦 常见的事物都可以是对象常见的事物都可以是对象常见的事物都可以是对象常见的事物都可以是对象 和系统存在交互的和系统存在交互的和系统存在交互的和系统存在交互的外部实体外部实体外部实体外部实体,例如人、设备、其他的软件系统等;,例如人、设备、其他的软件系统等;,例如人、设备、其他的软件系统等;,例如人、设备、其他的软件系统等;问题域中存在的问题域中存在的问题域中存在的问题域中存在的事物事物事物事物,例如报表、信息展示、信号等;,例如报表、信息展示、信号等;,例如报表、信息展示、信号等;,例如报表、信息展示、信号等;在系统的上下文环境中发生的在系统的上下文环境中发生的在系统的上下文环境中发生的在系统的上下文环境中发生的事件事件事件事件,例如一次外部控制行为、,例如一次外部控制行为、,例如一次外部控制行为、,例如一次外部控制行为、一次资源变化等;一次资源变化等;一次资源变化等;一次资源变化等;人们在与系统的交互之中所扮演的人们在与系统的交互之中所扮演的人们在与系统的交互之中所扮演的人们在与系统的交互之中所扮演的角色角色角色角色,例如系统管理人员、用,例如系统管理人员、用,例如系统管理人员、用,例如系统管理人员、用户管理人员、普通用户等;户管理人员、普通用户等;户管理人员、普通用户等;户管理人员、普通用户等;和应用相关的和应用相关的和应用相关的和应用相关的组织单位组织单位组织单位组织单位,例如分公司、部门、团队、小组等;,例如分公司、部门、团队、小组等;,例如分公司、部门、团队、小组等;,例如分公司、部门、团队、小组等;问题域中问题发生的问题域中问题发生的问题域中问题发生的问题域中问题发生的地点地点地点地点,例如车间、办公室等;,例如车间、办公室等;,例如车间、办公室等;,例如车间、办公室等;事物组合的事物组合的事物组合的事物组合的结构结构结构结构关系,例如部分与整体的关系等。关系,例如部分与整体的关系等。关系,例如部分与整体的关系等。关系,例如部分与整体的关系等。第8页,此课件共70页哦但是也有事物不是对象无法界定的事物纯粹的值纯粹的行为第9页,此课件共70页哦 一个对象一个对象维护其自身的状态维护其自身的状态需要对外公开一些方法,需要对外公开一些方法,行行使其职能使其职能也要对外公开一些方法,这些方法组合起来定义也要对外公开一些方法,这些方法组合起来定义了该对象了该对象允许外界访问的方法允许外界访问的方法,或者说限定了外界可以期望,或者说限定了外界可以期望的表现,它们是对象需要对外界履行的的表现,它们是对象需要对外界履行的协议(协议(ProtocolProtocol)一个对象的整体协议可能会分为多个一个对象的整体协议可能会分为多个内聚的逻辑行为组内聚的逻辑行为组,划分后的每一个逻辑行为组就描述了对象的一个独立划分后的每一个逻辑行为组就描述了对象的一个独立职责职责,体现了对象的一个独立体现了对象的一个独立角色角色 对象职责对象职责 职责是指对象持有、维护特定知识并基于知识行使固定职职责是指对象持有、维护特定知识并基于知识行使固定职能的能力能的能力 如果一个对象拥有多个行为组,就意味着该对象拥有多如果一个对象拥有多个行为组,就意味着该对象拥有多个不同的职责,需要扮演多个不同的角色。个不同的职责,需要扮演多个不同的角色。理想的单一职责对象应该仅仅扮演一个角色理想的单一职责对象应该仅仅扮演一个角色 第10页,此课件共70页哦(2 2)链接)链接链接链接链接链接对象之间的物理或业务联系对象之间的物理或业务联系 链接通常是单向的,当然也有双向的链接存在链接通常是单向的,当然也有双向的链接存在 如果一个对象如果一个对象如果一个对象如果一个对象a a存在指向存在指向b b的链接,那就意味着的链接,那就意味着a a a a拥有拥有拥有拥有对对对对b b的假设,关于的假设,关于的假设,关于的假设,关于b b的行为和行为效果的假设。也就是的行为和行为效果的假设。也就是的行为和行为效果的假设。也就是的行为和行为效果的假设。也就是说,说,说,说,b b需要满足需要满足需要满足需要满足a a a a的某些行为期望的某些行为期望 第11页,此课件共70页哦 导航和可见性导航和可见性 由由a a指向指向b b的链接除了包含假设和期望因素之外,还意味着的链接除了包含假设和期望因素之外,还意味着a a能够能够在链接的指引下,正确的找到并将消息发送给在链接的指引下,正确的找到并将消息发送给b b,即,即a a可以导航到可以导航到b b 由由a a指向指向b b的链接使得的链接使得b b对对a a可见,或者说可见,或者说a a拥有拥有b b的可见性的可见性(VisibilityVisibility)a a获取获取b的可见性的途径有以下几种:的可见性的途径有以下几种:b b是全局对象,它对系统内的所有其他对象都是可见的;是全局对象,它对系统内的所有其他对象都是可见的;b b是是a a的一部分;的一部分;b b是被是被a a创建的;创建的;b b的引用被作为消息的一部分传递给了的引用被作为消息的一部分传递给了a a 第12页,此课件共70页哦(3 3)类)类类类 类是共享相同属性和行为的对象的集合,它为属于该类的所类是共享相同属性和行为的对象的集合,它为属于该类的所有对象提供统一的抽象描述和生成模板有对象提供统一的抽象描述和生成模板 抽象描述称为接口(抽象描述称为接口(InterfaceInterface),定义了类所含对象对外的(其他类和对象),定义了类所含对象对外的(其他类和对象)的统一协议的统一协议 生成模板称为实现(生成模板称为实现(ImplementationImplementation),说明了类所含对象的生成机制和行),说明了类所含对象的生成机制和行为模式为模式 类的分类类的分类 类产生的关键是进行正确的分类类产生的关键是进行正确的分类 人们认识和处理具体事物时总会有意识或无意识的对它们人们认识和处理具体事物时总会有意识或无意识的对它们进行归类进行归类第13页,此课件共70页哦 数据驱动(数据驱动(Data-DrivenData-Driven)将具有相同属性的对象归为一类将具有相同属性的对象归为一类 产生自哲学上传统的经典分类理论(产生自哲学上传统的经典分类理论(Classical Classical Categorization TheoryCategorization Theory)所有具有一个给定特性或共同特性集的实体组成一个类所有具有一个给定特性或共同特性集的实体组成一个类 职责驱动(职责驱动(Responsibility-DrivenResponsibility-Driven)会依据事物的相似性而不是完全的相同性来进行事物的分类会依据事物的相似性而不是完全的相同性来进行事物的分类 产生自哲学上的产生自哲学上的概念聚类概念聚类(Conceptual ClusteringConceptual Clustering)使用概念描述而不是指定的特征来描述类别和事物,在进行使用概念描述而不是指定的特征来描述类别和事物,在进行事物分类时它会考虑概念之间的相似性,并将事物归入和其事物分类时它会考虑概念之间的相似性,并将事物归入和其概念最为相似的类别概念最为相似的类别 第14页,此课件共70页哦 抽象抽象抽象抽象抽象是指在事物的众多特征当中只注意那些和目标密切相关的抽象是指在事物的众多特征当中只注意那些和目标密切相关的抽象是指在事物的众多特征当中只注意那些和目标密切相关的抽象是指在事物的众多特征当中只注意那些和目标密切相关的特征,同时忽略那些不相关的特征,进而找出事物的本质和共特征,同时忽略那些不相关的特征,进而找出事物的本质和共特征,同时忽略那些不相关的特征,进而找出事物的本质和共特征,同时忽略那些不相关的特征,进而找出事物的本质和共性性性性 抽象是人们在理解事物时常用的手段抽象是人们在理解事物时常用的手段抽象是人们在理解事物时常用的手段抽象是人们在理解事物时常用的手段 对象对象对象对象就是对现实世界就是对现实世界就是对现实世界就是对现实世界事物的抽象结果事物的抽象结果事物的抽象结果事物的抽象结果,它表达了系统所需要的,它表达了系统所需要的,它表达了系统所需要的,它表达了系统所需要的现实世界事物特征,抛弃了那些系统不需要的特征。现实世界事物特征,抛弃了那些系统不需要的特征。现实世界事物特征,抛弃了那些系统不需要的特征。现实世界事物特征,抛弃了那些系统不需要的特征。类类类类则是则是则是则是对象集的抽象结果对象集的抽象结果对象集的抽象结果对象集的抽象结果,它忽略了具体某个对象在特定时间,它忽略了具体某个对象在特定时间,它忽略了具体某个对象在特定时间,它忽略了具体某个对象在特定时间和空间的细节状态,从对象集的全局出发,在一个更高的逻辑层和空间的细节状态,从对象集的全局出发,在一个更高的逻辑层和空间的细节状态,从对象集的全局出发,在一个更高的逻辑层和空间的细节状态,从对象集的全局出发,在一个更高的逻辑层次上,描述了对象集的共性次上,描述了对象集的共性次上,描述了对象集的共性次上,描述了对象集的共性 封装封装封装封装封装是指尽可能隐藏构造单位内部的实现细节,只通过有封装是指尽可能隐藏构造单位内部的实现细节,只通过有封装是指尽可能隐藏构造单位内部的实现细节,只通过有封装是指尽可能隐藏构造单位内部的实现细节,只通过有限的对外接口保持对外联系的一种软件构造策略限的对外接口保持对外联系的一种软件构造策略限的对外接口保持对外联系的一种软件构造策略限的对外接口保持对外联系的一种软件构造策略 绝不是简单的将属性和行为放置在一起绝不是简单的将属性和行为放置在一起绝不是简单的将属性和行为放置在一起绝不是简单的将属性和行为放置在一起第15页,此课件共70页哦(4 4)关联)关联 关联关联 指出了类之间的某种语义联系指出了类之间的某种语义联系 关联是类对其对象实例之间的无数潜在关系的描述关联是类对其对象实例之间的无数潜在关系的描述第16页,此课件共70页哦第17页,此课件共70页哦2.2 2.2 对象模型重要概念对象模型重要概念(1 1)继承)继承如果一个类A继承了对象B,那么A就自然具有B的全部属性和服务,同时A也会拥有一些自己特有的属性和服务,这些特有部分是B所不具备的 结构继承和语义继承第18页,此课件共70页哦第19页,此课件共70页哦(2 2)多态)多态广义多态广义多态 一个对象在相似情景下表现出多个不同形态,或者一个对象在相似情景下表现出多个不同形态,或者多个对象在同一情景中表现出相同形态的现象多个对象在同一情景中表现出相同形态的现象 一个对象在相似情景下表现出不同的形态一个对象在相似情景下表现出不同的形态一个对象在相似情景下表现出不同的形态一个对象在相似情景下表现出不同的形态 重载(重载(重载(重载(OverloadingOverloadingOverloadingOverloading)依据参数或返回值的不同为协议定义不同的版本,每一个版本都可依据参数或返回值的不同为协议定义不同的版本,每一个版本都可依据参数或返回值的不同为协议定义不同的版本,每一个版本都可依据参数或返回值的不同为协议定义不同的版本,每一个版本都可以表现出自己独特的行为以表现出自己独特的行为以表现出自己独特的行为以表现出自己独特的行为 泛型(泛型(泛型(泛型(GeneralityGeneralityGeneralityGenerality)使用同一个通用的实现处理不同的数据类型,然后根据数据类型的使用同一个通用的实现处理不同的数据类型,然后根据数据类型的使用同一个通用的实现处理不同的数据类型,然后根据数据类型的使用同一个通用的实现处理不同的数据类型,然后根据数据类型的不同表现出不同的行为不同表现出不同的行为不同表现出不同的行为不同表现出不同的行为狭义多态狭义多态 多个对象在同一情景中表现出相同形态的现象多个对象在同一情景中表现出相同形态的现象多个对象在同一情景中表现出相同形态的现象多个对象在同一情景中表现出相同形态的现象 第20页,此课件共70页哦2.3 2.3 领域模型领域模型 类大多是概念类(类大多是概念类(类大多是概念类(类大多是概念类(Concept ClassConcept ClassConcept ClassConcept Class),是一个能够代表),是一个能够代表现实世界事物的概念现实世界事物的概念 概念类之间存在指明语义联系的关联,这些关联通常不概念类之间存在指明语义联系的关联,这些关联通常不概念类之间存在指明语义联系的关联,这些关联通常不概念类之间存在指明语义联系的关联,这些关联通常不标记方向,也不标记关联端的可见性标记方向,也不标记关联端的可见性标记方向,也不标记关联端的可见性标记方向,也不标记关联端的可见性 概念类会显式的描述自己的一些重要属性,但不是全概念类会显式的描述自己的一些重要属性,但不是全概念类会显式的描述自己的一些重要属性,但不是全概念类会显式的描述自己的一些重要属性,但不是全部的详细属性,而且概念类的属性通常没有类型的约部的详细属性,而且概念类的属性通常没有类型的约部的详细属性,而且概念类的属性通常没有类型的约部的详细属性,而且概念类的属性通常没有类型的约束束束束 概念类不显式的标记类的行为,即概念类不包含明概念类不显式的标记类的行为,即概念类不包含明确的方法确的方法 第21页,此课件共70页哦SalesLineItemSalesLineItemquantityquantitySaleSaledatedatetimetimeStoreStoreaddressaddressnamenameItemItemPaymentPaymentamountamountRegisterRegisterContained-inContained-inStocked-inStocked-inRecords-sale-ofRecords-sale-ofPaid-byPaid-byHosuesHosuesCaptured-onCaptured-on1.*1.*1 10.10.11 11 11 1*1 11 11 1concept or concept or domain objectdomain objectassociationassociationattributesattributes1 11 1第22页,此课件共70页哦第第3 3节节 用例模型用例模型 用例模型就是以用例为基本单位建立的一个系统功能展示模用例模型就是以用例为基本单位建立的一个系统功能展示模用例模型就是以用例为基本单位建立的一个系统功能展示模用例模型就是以用例为基本单位建立的一个系统功能展示模型,它是系统所有用例的集合,以统一、图形化方式展示系型,它是系统所有用例的集合,以统一、图形化方式展示系型,它是系统所有用例的集合,以统一、图形化方式展示系型,它是系统所有用例的集合,以统一、图形化方式展示系统的功能和行为特性统的功能和行为特性统的功能和行为特性统的功能和行为特性 用例是获取和组织用户需求的手段用例是获取和组织用户需求的手段用例是获取和组织用户需求的手段用例是获取和组织用户需求的手段基本元素基本元素用例(用例(Use CaseUse Case)参与者(参与者(ActorActor)关系(关系(RelationshipRelationship)系统边界(系统边界(System BoundarySystem Boundary)第23页,此课件共70页哦SpecialSpecialActorActorSpecialSpecialActorActorActorActorBase Use CaseBase Use CaseExtending UseExtending UseCaseCaseSpecializedSpecialized Use Case Use CaseGeneral UseGeneral UseCaseCaseBase Use CaseBase Use CaseIncluded UseIncluded UseCaseCaseCommunicationCommunication第24页,此课件共70页哦第25页,此课件共70页哦用例图的作用用例图的作用第26页,此课件共70页哦第第4 4节节 行为模型行为模型 行为模型行为模型 交互图(交互图(Interaction DiagramInteraction Diagram)顺序图(顺序图(Sequence DiagramSequence Diagram)通信图(通信图(Communication DiagramCommunication Diagram)交互概述图(交互概述图(Interaction Overview DiagramInteraction Overview Diagram)时间图(时间图(Timing DiagramTiming Diagram)活动图(活动图(Activity DiagramActivity Diagram)状态图(状态图(State DiagramState Diagram)第27页,此课件共70页哦(1 1)交互图)交互图交互图以一组对象为中心的交互描述技术 描述在特定上下文环境中一组对象的交互行为 通常描述的是单个用例的典型场景交互图中的每一个交互都描述了环境中的对象为了实现某个目标而执行的一系列消息交换 顺序图和通信图是最常用的 交互图交互图中出现的对象应该在领域模型中有相应的对象存在 第28页,此课件共70页哦顺序图第29页,此课件共70页哦 通信图通信图通信图通信图消息消息消息消息sequence-expression:message sequence-expression:message sequence-expression:message sequence-expression:message messagemessagemessagemessageattribute=name(argument):return-value attribute=name(argument):return-value attribute=name(argument):return-value attribute=name(argument):return-value sequence-expression sequence-expression sequence-expression sequence-expression label iteration-expression label iteration-expression label iteration-expression label iteration-expression iteration-expression iteration-expression iteration-expression iteration-expression*iteration-clause|condition-clause*iteration-clause|condition-clause*iteration-clause|condition-clause*iteration-clause|condition-clause redisplay()redisplay()messagemessage1:displayPositions(window)1:displayPositions(window)1.1*i:=1.n:drawSegment(i)1.1*i:=1.n:drawSegment(i):Controller:Controller:Window:Windowwire:Wirewire:Wirenewnew:Line:Lineleft:Beadleft:Beadright:Beadright:Bead1.1.1a:r0:=position()1.1.1a:r0:=position()1.1.1b:r1:=position()1.1.1b:r1:=position()wirewirelocal linelocal linecontents newcontents newwindowwindowselfselfwindow parameterwindow parameter1.1.2:create(r0,r1)1.1.2:create(r0,r1)1.1.3:display(window)1.1.3:display(window)1.1.3.1 add(self)1.1.3.1 add(self)object symbolobject symbollink symbollink symbolstandard standard stereotypestereotypestandard standard stereotypestereotypestandard standard stereotypestereotypestandard standard constraintconstraintstandard standard constraintconstraint第30页,此课件共70页哦系统顺序图将整个系统看作一个黑箱的对象,强调外部参与者和系统的交互行为,重点展示系统级事件 第31页,此课件共70页哦(2 2)状态图)状态图状态图以状态机理论为基础建立的对系统行为的描述手段 状态机是以状态机是以“状态状态”概念为基础解释系统概念为基础解释系统行为行为的一种技的一种技术术 有限状态机有限状态机FSMFSM(Finite State MachineFinite State Machine)是用于建模的)是用于建模的最简单的状态机最简单的状态机 在在FSMFSM技术基础之上,发展出了多种分支技术技术基础之上,发展出了多种分支技术(FSM,STD,Yourdon,SDL,STM,SCFSM,STD,Yourdon,SDL,STM,SC),UMLUML的状态图的状态图SDSD(State DiagramState Diagram)也是其中之一。也是其中之一。主要用于描述重要而且复杂的对象的所有行为 这个对象的行为通常要涉及很多(甚至大部分)的用例这个对象的行为通常要涉及很多(甚至大部分)的用例第32页,此课件共70页哦 状态机理论状态机理论状态机理论状态机理论状态机理论认为,系统总是处于一定的状态之中。而且,在状态机理论认为,系统总是处于一定的状态之中。而且,在状态机理论认为,系统总是处于一定的状态之中。而且,在状态机理论认为,系统总是处于一定的状态之中。而且,在某一时刻,某一时刻,某一时刻,某一时刻,系统只能处于一种状态之中系统只能处于一种状态之中系统只能处于一种状态之中系统只能处于一种状态之中。系统在任何一个状态中都是稳定的,如果没有外部事件触发,系系统在任何一个状态中都是稳定的,如果没有外部事件触发,系系统在任何一个状态中都是稳定的,如果没有外部事件触发,系系统在任何一个状态中都是稳定的,如果没有外部事件触发,系统会一直持续维持该状态。统会一直持续维持该状态。统会一直持续维持该状态。统会一直持续维持该状态。如果发生有效的触发事件,系统将会响应事件,从一种状态转移如果发生有效的触发事件,系统将会响应事件,从一种状态转移如果发生有效的触发事件,系统将会响应事件,从一种状态转移如果发生有效的触发事件,系统将会响应事件,从一种状态转移到到到到唯一唯一唯一唯一的另一种状态。的另一种状态。的另一种状态。的另一种状态。如果能够罗列出系统所有可能的状态,并发现所有有效的外部事件,如果能够罗列出系统所有可能的状态,并发现所有有效的外部事件,如果能够罗列出系统所有可能的状态,并发现所有有效的外部事件,如果能够罗列出系统所有可能的状态,并发现所有有效的外部事件,那么就能够从状态转移的角度完整的表达系统的所有行为那么就能够从状态转移的角度完整的表达系统的所有行为那么就能够从状态转移的角度完整的表达系统的所有行为那么就能够从状态转移的角度完整的表达系统的所有行为 DefinitionDefinitionDefinitionDefinitionA A A A finite automatafinite automatafinite automatafinite automata is a 5-tuple(is a 5-tuple(is a 5-tuple(is a 5-tuple(Q Q Q Q,q q q q0 0 0 0,F F F F),where),where),where),where1.1.1.1.Q is a finite set called the Q is a finite set called the Q is a finite set called the Q is a finite set called the states,states,states,states,2.2.2.2.is a finite set called the is a finite set called the is a finite set called the is a finite set called the alphabet(inputs),alphabet(inputs),alphabet(inputs),alphabet(inputs),3.3.3.3.:Q Q Q Q Q Q Q Q is the transition function,is the transition function,is the transition function,is the transition function,4.4.4.4.q q q q0 0 0 0 Q Q Q Q is theis theis theis the start state,and start state,and start state,and start state,and 5.5.5.5.F F F F Q Q Q Q is theis theis theis the set of accept states(final states).set of accept states(final states).set of accept states(final states).set of accept states(final states).第33页,此课件共70页哦简单示例ReadyReadystopstop/ctr:=0/ctr:=0Stop Stop normalnormal 状态状态状态状态触发触发触发触发行为行为行为行为开始状态开始状态开始状态开始状态转换转换转换转换结束状态结束状态结束状态结束状态DoneDone监护条件监护条件监护条件监护条件事件事件事件事件第34页,此课件共70页哦Example:UML State chart Diagrams第35页,此课件共70页哦状态图层次结构状态图层次结构Hierarchy and Hierarchy and 历史历史HistoryHistorysuspend/suspend/DiagnosingDiagnosingDiagnostic1Diagnostic1Step11Step11Step12Step12Diagnostic2Diagnostic2Step21Step21Step22Step22resume/resume/H*H*第36页,此课件共70页哦状态图状态图 并发并发ConcurrencyConcurrencyStaffStaffMemberMemberemployeeemployeeChildChildAdultAdultRetireeRetireeageageManagerManager状态图状态图 UML SDUML SD详细的见:表142、UML的状态图表示法第37页,此课件共70页哦(3 3)活动图)活动图 活动图活动图 借鉴了多种借鉴了多种BPMBPM后建立的行为图后建立的行为图 以以“流流”(控制流和数据流)处理为侧重点描述系统的行为(控制流和数据流)处理为侧重点描述系统的行为 通常以组织的整体业务流程为描述对象的通常以组织的整体业务流程为描述对象的第38页,此课件共70页哦示例第39页,此课件共70页哦第第5 5节节 对象约束语言对象约束语言OCLOCLOCLOCL并不是并不是UMLUML中单独的一个模型,而是被应用在其中单独的一个模型,而是被应用在其他的模型当中,丰富其他模型的语义他的模型当中,丰富其他模型的语义 OCLOCL是一种无副作用的规约语言是一种无副作用的规约语言 以表达式的方式定义对其他模型元素的约束以表达式的方式定义对其他模型元素的约束 约束和限制其他模型元素的行为和状态变化约束和限制其他模型元素的行为和状态变化 不会修改任何其他模型元素的表述不会修改任何其他模型元素的表述 OCLOCL不是一种编程语言。不是一种编程语言。OCLOCL的首要定位是建模语言,因此它在保证一定表达能力的首要定位是建模语言,因此它在保证一定表达能力的前提下,注重于语言的简洁性和抽象性的前提下,注重于语言的简洁性和抽象性 它无法被用来描述程序的控制逻辑和工作流程,它的表达它无法被用来描述程序的控制逻辑和工作流程,它的表达式定义也无法在程序中得到直接的执行式定义也无法在程序中得到直接的执行 第40页,此课件共70页哦4141示例FlightFlightAirplaneAirplaneCargoFlightCargoFlightPassengerFlightPassengerFlightPassengerPlanePassengerPlaneCargoPlaneCargoPlane1 10.*0.*1 10.*0.*0.*0.*1 1flightsflights第41页,此课件共70页哦4242示例context Flightcontext Flightinv:type=#cargo implies airplane.type=#cargoinv:type=#cargo implies airplane.type=#cargoinv:type=#passenger implies airplane.type=#passengerinv:type=#passenger implies airplane.type=#passenger1 10.*0.*FlightFlightAirplaneAirplanetype:type:enum of cargo,passengerenum of cargo,passengertype:type:enum of cargo,passengerenum of cargo,passengerflightsflights第42页,此课件共70页哦(1 1)OCL examplesOCL examplesA customer gets a gift of$10 if the number of A customer gets a gift of$10 if the number of transactions s/he started is more than 30transactions s/he started is more than 30第43页,此课件共70页哦Solution 2context Customer:getGift():