您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程—第6章-面向对象设计—OMT介绍
第六章面向对象设计面向对象的主要方法•Coad/Yourdon的方法•Rumbaugh等的OMT方法•Booch的方法•Wirtf-Brock等的RDD方法•此外,还有ESA的HOOD方法、Shlear和Mellor的OOSA方法、Wasserman的OOSD方法、Reenksang的OORASS方法、Embley的OSA方法、Gibon的OBA方法、Page-Jones和Weiss及Buhr的SYNTHESIS方法等Coad与Yourdon的方法•Coad与Yourdon的方法是在信息模型化技术、面向对象程序设计语言及知识库系统的基础上发展起来的,这个方法分为OOA和OOD两部分。面向对象的分析(OOA)•Coad与Yourdon和其它描写面向对象方法的作者一样,认为OOA主要考虑与一个特定应用有关的对象及对象与对象之间在结构与相互作用上的关系。1.OOA的任务1)形式地说明所面对的应用问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束。2)明确地规定构成系统的对象如何协同合作,完成指定的功能。Coad与Yourdon的方法•在OOA中,要建立分析模型来描述系统的功能–第一个层次主要是识别类和对象,这是整个分析模型的基础。–第二层和第三层是属性层和服务层,用以说明前面已识别的类和对象。–第四层是结构层,OOA允许两种类型的基本结构:一是整体与部分结构,也叫组装结构,组装结构表示聚合,即由属于不同类的成员聚合而成新的类;二是泛化与特化结构,也叫分类结构。其中,特化类是泛化类的子类,泛化类是特化类的父类。分类结构具有继承性,泛化类和对象的属性与服务一旦被识别,即可在特化类和对象中使用。–第五层是主题层,是一些类和对象的特定组合表示,用来帮助和指导模型的读者。Coad与Yourdon的方法人男人女人分类结构人头身体胳膊腿组装结构Coad与Yourdon的方法2.OOA的步骤1)找到类和对象首先确定问题空间中包含哪些对象,有哪些操作,这些对象之间有什么关系,它们与操作又有什么关系。对象应该是实际问题域中有意义的个体或概念实体,具有目标软件系统所关心的属性,还应该以某种方式与系统发生关联,即对象必须与系统中其他有意义的对象进行消息传递,并提供外部服务。有关对象命名的重要原则:a.使用单个名词或名词短语;b.对象名称必须简洁、精确、易于理解;c.尽量使用用户熟悉的标准词汇。Coad与Yourdon的方法2)确定结构第一种结构是分类结构,代表了确定的类中的继承等级。另一种结构是组装结构,即由属于不同类的成员聚合而成新的类。3)定义主题确定主题通过将类和对象划分成更大的单元来完成。主题是类和对象的组合。每个主题的规模按有助于读者通过模型理解系统来选择。Coad与Yourdon的方法4)定义属性对每个对象,确定划给该对象所需的属性。关键是识别与当前所处理的问题相关的属性。被确定的属性放到继承等级的正确层次。注意应避免冗余的或不正确的属性5)定义服务对象怎样进行消息通信是用消息的联系来确定的。这些都用来指定某一个操作。综上所述,OOA大体上可以按照这个顺序进行。但是,分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构造多遍才能建成。Coad与Yourdon的方法面向对象的设计(OOD)–OOA到OOD实际上是一个逐渐扩充模型的过程。面向对象分析主要模拟问题空间和系统任务;而面向对象设计则是对其进行扩充,主要是增加各种组成部分。–OOA识别和定义的类/对象,是一些直接反映问题空间和系统任务的;而OOD识别和定义的类/对象则是附加的,反映需求的一种实现。–Coad与Yourdon在设计阶段中继续采用分析阶段中提到的五个层次,他们认为这有助于从分析到设计的过渡。不同的是,在设计阶段中,这五个层次是用于建立系统的四个组成成分上。这四个组成成分是:问题论域,用户界面,任务管理和数据管理。Coad与Yourdon的方法人机交互问题域数据管理任务管理主题层类与对象层结构层属性层服务层问题论域部分包括与所面对的应用问题直接有关的所有类和对象。在其它的三个部分中,识别和定义新的类和对象。Coad与Yourdon的方法1.问题域部分(PDC)的设计–OOA阶段得到的有关应用的概念模型描述了所要解决的问题。在OOD阶段,主要是对OOA产生模型中的某些类与对象、结构、属性、操作进行组合与分解,或者增加必要的类、属性和联系。Coad与Yourdon的方法1)复用设计–根据问题解决的需要,把从现有的类库或其它来源得到的现存类增加到问题解决方案中去。2)把问题论域的专用类关联起来3)为建立公共操作集合建立一般类4)调整继承级别Coad与Yourdon的方法某OOA中含车辆车牌颜色式样生产日期产地车牌确认类库中已有车辆OTS车牌车牌确认车辆车牌颜色式样生产日期产地车牌确认设计结果:车辆OTS车牌车牌确认2.用户界面部分(HIC)的设计•通常在OOA阶段给出了所需的属性和操作,在设计阶段必须根据需求把交互的细节加入到用户界面的设计中,包括有效的人机交互所必需的实际显示和输入。Coad与Yourdon的方法1)用户分类–通常可将其分为外行型、初学型、熟练型和专家型四类2)描述人及其任务的场景–什么人、特点、期望软件用途、主要要求与喜好以及任务场景等。3)设计命令层–尽量遵循用户界面的一般原则和规范,根据用户分析结果确定初步的命令系统,然后再优化。4)设计详细的交互5)设计HIC(人机交互)类Coad与Yourdon的方法3.任务管理部分(TMC)的设计•任务是进程的别称,是执行一系列活动的一段程序,或者说,任务是由目标软件系统中一段代码决定的处理行为。•任务管理主要包括任务的选择和调整。Coad与Yourdon的方法1)识别事件驱动任务–一些负责与硬件设备通信的任务是事件驱动的,也就是说这些任务可由事件来激发,而事件常常是当数据到来时发出的一个信号。2)识别时钟驱动任务–以固定的时间间隔激发这种事件,以执行某些处理。3)识别优先任务和关键任务–根据处理的优先级别来安排各种任务。在系统中,有些操作具有高优先级,因此必须在很强的时间限制内完成;有些操作具有较低的优先级,可进行时间要求较低的处理。–关键任务是对系统的成败起关键作用的处理,这些处理要求有较高的可靠性。Coad与Yourdon的方法4)识别协调者–当有三个或更多的任务时,应当增加一个附加任务,专门负责任务之间的调度、协同和仲裁。5)评审各个任务6)定义各个任务–定义任务的工作主要包括它是什么任务、如何协调工作及如何通信。–任务的定义如下:•name(任务名)•description(描述)•priority(优先级)•servicesincluded(包含的操作)•communicationvia(经由谁通信)Coad与Yourdon的方法4.数据管理部分(DMC)的设计–数据管理部分提供了在数据管理系统中存储和检索对象的基本结构–设计数据管理部分的目的是,将目标软件系统中依赖开发平台的数据存取部分与其他功能分离,数据存取通过一般的数据管理系统实现,但实现细节集中在DMC中。这样既有利于软件的扩充、移植和维护,又简化了软件设计、编码和测试的过程。Coad与Yourdon的方法1)数据管理方法–数据管理方法主要有三种•文件管理•关系数据库管理•面向对象的数据库管理2)数据管理部分的设计–数据存储管理部分的设计包括数据存放方法的设计和相应操作的设计Coad与Yourdon的方法OMT(objectmodelingtechnique)–OMT是美国通用电气公司在总结其内部多年来采用OO技术开发实践的基础上提出的一套系统开发方法学。–OMT最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系DB设计。–J.Rumbaugh在1991年正式把OMT应用于OO的分析和设计。–它以面向对象思想为基础,通过构造一组相关模型(对象模型、动态模型和功能模型)来获得关于问题的全面认识(即问题领域模型),是在实体关系模型上扩展了类、继承和行为而得到的。–对象模型(objectmodel)代表了系统的静态的、结构方面的特性。–动态模型(dynamicmodel)代表了系统对象之间的时间的、行为的、控制方面的特性。–功能模型(functionalmodel)主要描述值与值之间的函数关系。•这三个模型从不同角度对系统进行描述,分别抓住了系统的一个重要方面,组合起来构成了对系统的完整描述。•OMT认为一个典型的软件过程是三个方面的合作:它的数据结构(对象模型)、它按时间顺序的操作(动态模型)和它所改变的值(功能模型)。OMT方法•在分析阶段,应用领域的一个模型被建立,不考虑最后的实现。•在设计阶段,解决领域的结构加入模型中,明确系统中各个类的定义和相互关系以及各个类中的操作,并考虑到重用效率,重新设计一些类和关系。•在实现阶段,应用领域和解决领域的结构都被编码。OMT方法模型有两层含义:–从系统的观点看•对象模型•动态模型•功能模型–从开发阶段看•分析模型•设计模型•实现模型OMT方法三种模型介绍1.对象模型–对象模型描述了系统中对象的结构,即它们的标识、它们与其它对象之间的关系、它们的属性以及它们的操作。–对象模型为动态模型和功能模型提供了重要的框架,因为只有当事物变化时,动态模型和功能模型才有存在的意义。–对象模型用包含对象及对象的关系图表示。OMT方法类名属性操作对象名属性操作类对象类名属性操作一个类及属于该类的对象OMT方法•类之间的联系称为关系。类之间的关系在OMT符号中用一条线表示。对象图在关系线的端点用特定的符号表示多元性。(0或1)(0或多)(1)(1)(1或多)(2,4或18)(3到5)(一对一关系)(多对多关系)11+2,4,183-5OMT方法对象模型中类之间的三种基本关系以OMT符号来表示1)相关关系公司公司名地址工作关系工资职务人员姓名地址(a)OMT方法2)包容关系文档段落语句OMT方法3)继承关系工人车工钳工纺织工……•OMT建立一个对象模型的步骤大致如下:–确定对象类–定义一个DD,包括类、属性和关系的描述–增加类之间的关系–增加对象和联系的属性–用继承组织和简化对象类–用场景测试访问路径–如有需要重复以上各步–基于相近的关系和相关的功能将成组的对象形成模块OMT方法2.动态模型–动态模型描述系统中与时间有关的方面以及操作执行的顺序,包括引起变化的事件、事件的序列、定义事件序列上下文的状态、以及事件和状态的主次。–动态建模中的主要概念是事件和状态。一个对象的状态是指对象所拥有的属性值和连接关系。–从一个对象到另一个对象的单个消息叫作一个事件。–在系统的一个特定的执行中发生的一系列事件叫一个场景。OMT方法打电话者提起话机开始拨号音打电话者拨数字(6)拨号音停止打电话者拨数字(8)打电话者拨数字(2)打电话者拨数字(2)打电话者拨数字(6)打电话者拨数字(6)打电话者拨数字(8)打电话者拨数字(8)受话方电话机开始响铃打电话者的电话中出现铃声受话方回应受话方电话机停止铃声打电话者的电话中铃声消失双方电话连通受话方挂机双方电话断开打电话者挂机打电话者电话线受话方打电话者提起话机拨号音开始拨号(6)拨号音停止拨号(8)拨号(2)拨号(2)拨号(6)拨号(6)拨号(8)拨号(8)电话中铃声电话铃声响回应电话铃声停电话中铃声停电话连通电话连通受话方挂机连结断开连结断开打电话者挂机打电话的场景电话的事件跟踪图OMT方法•动态模型由多个状态图组成,每个用来描述一个类的重要动态行为,并表明整个系统的活动方式,不同类的状态图通过共享的事件组成一个动态模型。•状态图的结点是状态,标有事件的线是转移。•转移的箭头指向接收事件后的目标状态。OMT方法提机空闲挂机拨号音正在拨号数字(n)超时超时挂机非法电话号码记录异常连接合法电话号码数字(n)受话话机忙忙音短促忙音线路忙响铃路由连通受话话机回应断开受话话机挂起消息已记录在案超时电话线的状态图OMT
本文标题:软件工程—第6章-面向对象设计—OMT介绍
链接地址:https://www.777doc.com/doc-5244703 .html