第14章.面向对象建模

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第14章.面向对象建模主要内容1.面向对象分析2.对象模型3.用例模型4.行为模型5.对象约束语言OCL6.面向对象建模1.面向对象分析——现实世界的复杂模型复杂总是简单部分的组合简单部分又是更简单部分的组合简单组成复杂的过程存在层次性每个最小简单部分独立负责完成一系列相关任务相比较而言,每个组合内部各部分的关系比其内部与外部的关系都更紧密各个部分通过一致的接口进行组合,即一个部分对其它部分的所知仅仅是接口1.面向对象分析——映射现实模型的面向对象思想任何系统都是能够完成一系列相关目标和任务的对象对象完成一个任务时会请求一系列其他对象帮助其完成一些子目标其他对象为了完成其任务又会请求将子目标更细分为子子目标,并请求其他对象帮助完成子目标的分解和责任分担一直进行直到最后产生的子部分可以映射到计算实体计算实体:对象层次关系:聚合(组合)、继承、关联组合接口:一个对象暴露的接口1.面向对象分析——面向对象建模面向对象建模:一种用于辨识系统环境中的对象及这些对象之间关系的技术OMT(JamesRumbaugh)Booch方法(GradyBooch)UMLOOSE(IvarJacobson)Coad-YourdonShlaer-MellorFusionJacobsonBoochJacobsonRumbaugh1.面向对象分析——UML1.面向对象分析——UMLUML对象模型ObjectModel(DomainModel)用例模型UseCaseModel行为模型BehaviorModel状态机模型对象约束语言OCL主要内容1.面向对象分析2.对象模型1.组成元素2.重要概念3.领域模型3.用例模型4.行为模型5.对象约束语言OCL6.面向对象建模2.1对象模型组成元素——对象对象对象是指在一个应用当中具有明确角色的独立可确认的实体每个对象都要包含标识唯一的标识自己,引用状态对象的特征描述,包括对象的属性和属性的取值行为对象在其状态发生改变或者接收到外界消息时所采取的行动2.1对象模型组成元素——对象常见的事物都可以是对象和系统存在交互的外部实体,例如人、设备、其他的软件系统等;问题域中存在的事物,例如报表、信息展示、信号等;在系统的上下文环境中发生的事件,例如一次外部控制行为、一次资源变化等;人们在与系统的交互之中所扮演的角色,例如系统管理人员、用户管理人员、普通用户等;和应用相关的组织单位,例如分公司、部门、团队、小组等;问题域中问题发生的地点,例如车间、办公室等;事物组合的结构关系,例如部分与整体的关系等。2.1对象模型组成元素——对象但是也有事物不是对象无法界定的事物纯粹的值纯粹的行为2.1对象模型组成元素——对象一个对象维护其自身的状态需要对外公开一些方法,行使其职能也要对外公开一些方法,这些方法组合起来定义了该对象允许外界访问的方法,或者说限定了外界可以期望的表现,它们是对象需要对外界履行的协议(Protocol)一个对象的整体协议可能会分为多个内聚的逻辑行为组,划分后的每一个逻辑行为组就描述了对象的一个独立职责,体现了对象的一个独立角色对象职责职责是指对象持有、维护特定知识并基于知识行使固定职能的能力如果一个对象拥有多个行为组,就意味着该对象拥有多个不同的职责,需要扮演多个不同的角色。理想的单一职责对象应该仅仅扮演一个角色2.1对象模型组成元素——链接链接对象之间的物理或业务联系链接通常是单向的,当然也有双向的链接存在如果一个对象a存在指向b的链接,那就意味着a拥有对b的假设,关于b的行为和行为效果的假设。也就是说,b需要满足a的某些行为期望2.1对象模型组成元素——链接导航和可见性由a指向b的链接除了包含假设和期望因素之外,还意味着a能够在链接的指引下,正确的找到并将消息发送给b,即a可以导航到b由a指向b的链接使得b对a可见,或者说a拥有b的可见性(Visibility)a获取b的可见性的途径有以下几种:b是全局对象,它对系统内的所有其他对象都是可见的;b是a的一部分;b是被a创建的;b的引用被作为消息的一部分传递给了a2.1对象模型组成元素——类类类是共享相同属性和行为的对象的集合,它为属于该类的所有对象提供统一的抽象描述和生成模板抽象描述称为接口(Interface),定义了类所含对象对外的(其他类和对象)的统一协议生成模板称为实现(Implementation),说明了类所含对象的生成机制和行为模式2.1对象模型组成元素——类类的分类类产生的关键是进行正确的分类人们认识和处理具体事物时总会有意识或无意识的对它们进行归类数据驱动(Data-Driven)将具有相同属性的对象归为一类产生自哲学上传统的经典分类理论(ClassicalCategorizationTheory)所有具有一个给定特性或共同特性集的实体组成一个类职责驱动(Responsibility-Driven)会依据事物的相似性而不是完全的相同性来进行事物的分类产生自哲学上的概念聚类(ConceptualClustering)使用概念描述而不是指定的特征来描述类别和事物,在进行事物分类时它会考虑概念之间的相似性,并将事物归入和其概念最为相似的类别2.1对象模型组成元素——类抽象抽象是指在事物的众多特征当中只注意那些和目标密切相关的特征,同时忽略那些不相关的特征,进而找出事物的本质和共性抽象是人们在理解事物时常用的手段对象就是对现实世界事物的抽象结果,它表达了系统所需要的现实世界事物特征,抛弃了那些系统不需要的特征。类则是对象集的抽象结果,它忽略了具体某个对象在特定时间和空间的细节状态,从对象集的全局出发,在一个更高的逻辑层次上,描述了对象集的共性2.1对象模型组成元素——类封装封装是指尽可能隐藏构造单位内部的实现细节,只通过有限的对外接口保持对外联系的一种软件构造策略绝不是简单的将属性和行为放置在一起2.1对象模型组成元素——关联关联指出了类之间的某种语义联系关联是类对其对象实例之间的无数潜在关系的描述员工组织贡献级别参与类关联类二元关联基数关联名参与**2.1对象模型组成元素——关联PersonAddressTransactionEntryaddress-history角色方向可见性ProductCatalogProductSpecificationContains1*ProductCatalogProductSpecificationContains11ItemID限定符属性限定关联限定后的多重性限定前的多重性LinePointContains12..*HandFingerContains10..6聚合组合2.2对象模型重要概念——继承如果一个类A继承了对象B,那么A就自然具有B的全部属性和服务,同时A也会拥有一些自己特有的属性和服务,这些特有部分是B所不具备的结构继承和语义继承2.2对象模型重要概念——继承ClassAClassAAttributeintIAttributeintI;;VoidPrintVoidPrint()(){{PrintfPrintf((““%%dd””,,II));;}}ClassBClassB::AAVoidPrintVoidPrint()(){{II+=+=11;;}}ClassAClassAAttributeintIAttributeintI;;VoidPrintVoidPrint()(){{PrintfPrintf((““%%dd””,,II));;}}ClassBClassBVoidPrintVoidPrint()(){{PrintfPrintf((““%%cc””,,II));;}}AttributecharIAttributecharI;;ClassAAttributeintI;VoidPrint(){Printf(“%d”,I);}ClassB:AAttributecharJ;VoidPrint(){Super::Print(“%d”,I)Printf(“%c”,J);}a)b)c)2.2对象模型重要概念——多态广义多态一个对象在相似情景下表现出多个不同形态,或者多个对象在同一情景中表现出相同形态的现象一个对象在相似情景下表现出不同的形态重载(Overloading)依据参数或返回值的不同为协议定义不同的版本,每一个版本都可以表现出自己独特的行为泛型(Generality)使用同一个通用的实现处理不同的数据类型,然后根据数据类型的不同表现出不同的行为狭义多态多个对象在同一情景中表现出相同形态的现象2.3领域模型类大多是概念类(ConceptClass),是一个能够代表现实世界事物的概念概念类之间存在指明语义联系的关联,这些关联通常不标记方向,也不标记关联端的可见性概念类会显式的描述自己的一些重要属性,但不是全部的详细属性,而且概念类的属性通常没有类型的约束概念类不显式的标记类的行为,即概念类不包含明确的方法2.3领域模型SalesLineItemquantitySaledatetimeStoreaddressnameItemPaymentamountRegisterContained-inStocked-inRecords-sale-ofPaid-byHosuesCaptured-on1..*10..1111*111conceptordomainobjectassociationattributes11主要内容1.面向对象分析2.对象模型3.用例模型4.行为模型5.对象约束语言OCL6.面向对象建模3.用例模型用例模型就是以用例为基本单位建立的一个系统功能展示模型,它是系统所有用例的集合,以统一、图形化方式展示系统的功能和行为特性用例是获取和组织用户需求的手段基本元素用例(UseCase)参与者(Actor)关系(Relationship)系统边界(SystemBoundary)3.用例模型SpecialActorSpecialActorActorBaseUseCaseExtendingUseCaseextendSpecializedUseCaseGeneralUseCaseBaseUseCaseIncludedUseCaseincludeCommunication3.用例模型客户使用信用卡功能处理客户单据账户管理信用卡系统零售机构金融机构主要内容1.面向对象分析2.对象模型3.用例模型4.行为模型5.对象约束语言OCL6.面向对象建模4.行为模型行为模型交互图(InteractionDiagram)顺序图(SequenceDiagram)通信图(CommunicationDiagram)交互概述图(InteractionOverviewDiagram)时间图(TimingDiagram)活动图(ActivityDiagram)状态图(StateDiagram)对象模型用例模型从用户那里获取的出发点分析和设计的目标?4.行为模型——交互图交互图以一组对象为中心的交互描述技术描述在特定上下文环境中一组对象的交互行为互图通常描述的是单个用例的典型场景交互图中的每一个交互都描述了环境中的对象为了实现某个目标而执行的一系列消息交换顺序图和通信图是最常用的交互图交互图中出现的对象应该在领域模型中有相应的对象存在4.行为模型——交互图顺序图name:Class对象标识生命线激活态other消息name(…)消息返回返回:Class创建create(…)创建create(…)撤销撤销同步消息异步消息返回消息4.行为模型——交互图通信图消息[sequence-expression:]messagemessage=[attribute=]name[(argument)][:return-value]sequence-expression

1 / 75
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功