《面向对象设计方法》由会员分享,可在线阅读,更多相关《面向对象设计方法(30页珍藏版)》请在金锄头文库上搜索。
1、4.34.3 面向对象设计方法面向对象设计方法OOD可分为两个阶段可分为两个阶段系统设计阶段系统设计阶段 目标:目标:设计系统的整体结构,设计系统的整体结构, 选择构造系统的策略,包括:选择构造系统的策略,包括:分解系统为子系统分解系统为子系统 子系统到硬件的映射子系统到硬件的映射数据管理策略数据管理策略问控制策略问控制策略全局控制流机制的策略全局控制流机制的策略对象设计阶段对象设计阶段4.3.1 4.3.1 4.3.1 4.3.1 将将将将OOOOOOOO分析模型转换到分析模型转换到分析模型转换到分析模型转换到OOOOOOOO设计模型设计模型设计模型设计模型用例用例对象对象对象对象- - -
2、 -关关关关 系模型系模型系模型系模型类类类类/ / / /对象对象对象对象模型模型模型模型属性、属性、属性、属性、子子 系系 统统 设设 计计类及对象设计类及对象设计消息设计消息设计责任设计责任设计分析模型设计模型(Pressman)操作、操作、操作、操作、协作者协作者协作者协作者对象对象对象对象- - - -行为模型行为模型行为模型行为模型将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计数据数据字典字典数据数据流图流图E-RE-R图图状态变迁图状态变迁图加加加加工工工工规规规规约约约约控制规约控制规约控制规约控制规约数数据据对对描描 述述象象
3、数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计分析模型分析模型设计模型设计模型结构化设计结构化设计的四个层次的四个层次数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计子子 系系 统统 设设 计计类及对象设计类及对象设计消息设计消息设计责任设计责任设计面向对象设计面向对象设计面向对象设计面向对象设计的四个层次的四个层次的四个层次的四个层次 OOD的四个层次:的四个层次:子系统层:子系统层: 包含每个子系统的表示包含每个子系统的表示类和对象层类和对象层:包含类层次和每个对象包含类层次和每个对象 的设计表示的设计表示消息层消息层: 包含使
4、得每个对象能够和其包含使得每个对象能够和其 协作者通信的细节,建立系协作者通信的细节,建立系 统的外部和内部接口统的外部和内部接口责任层责任层: 包含针对每个对象的所有属性包含针对每个对象的所有属性 和操作的数据结构和算法的设计和操作的数据结构和算法的设计OOA与OOD的本质: OOA是一个分类活动,即分析问题力图是一个分类活动,即分析问题力图确定在开发解决方案时可应用的对象确定在开发解决方案时可应用的对象类,类,同时确定对象关系和行为。同时确定对象关系和行为。 OOD使得软件工程师能够确定从类中导使得软件工程师能够确定从类中导出的出的对象,以及这些对象的相互关联,对象,以及这些对象的相互关联
5、,此外,此外,OOD描述了描述了: :对象间的关系如何达到对象间的关系如何达到; ; 行为如何实现;行为如何实现; 对象间通信如何实现。对象间通信如何实现。从从OOA到到OOD 逐渐扩充模型的过程逐渐扩充模型的过程 OOD分为两个阶段分为两个阶段: : 高层设计(系统设计)高层设计(系统设计) 低层设计(对象设计)低层设计(对象设计)OOD过程流 对象对象设计设计OOA系统系统设计设计OOD过程流 OOA 对象设计对象设计系统设计系统设计人机界面设计人机界面设计数据管理设计数据管理设计任务管理设计任务管理设计OMT的的系统设计系统设计过程:过程:将分析模型划分为子系统将分析模型划分为子系统确定
6、需要并发处理的子系统并为它们分配确定需要并发处理的子系统并为它们分配 处理器处理器描述子系统之间的通信描述子系统之间的通信选择实现数据管理和任务管理的基本策略选择实现数据管理和任务管理的基本策略确定人机交互构件确定人机交互构件确定系统资源的管理和控制确定系统资源的管理和控制 子系统设计子系统设计划分划分子系统子系统处理并发操作处理并发操作描述子系统间通信描述子系统间通信资源管理构件资源管理构件 系统分解:系统分解: 子系统既不是一个对象也不是一个功子系统既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的能,而是类、关联、操作、事件和约束的内聚集合。内聚集合。定义子系统遵循的标准:定
7、义子系统遵循的标准:子系统应有良好的接口子系统应有良好的接口除少数除少数“通信类通信类”,子系统中的类应只,子系统中的类应只和和 该子系统中的其它类协作该子系统中的其它类协作子系统数目不应太多子系统数目不应太多可在子系统内划分以降低复杂性可在子系统内划分以降低复杂性划分分析模型子系统客户端客户端子系统子系统端子系统端子系统服务器端服务器端子系统子系统端子系统端子系统请求请求请求请求请求请求合约合约合约合约子系统间通信子系统间通信子系统间协作的模型子系统间协作的模型合约合约一个合约提供了对一个子系统和另一个子系统交互方式的标注一个合约提供了对一个子系统和另一个子系统交互方式的标注一个合约提供了对
8、一个子系统和另一个子系统交互方式的标注一个合约提供了对一个子系统和另一个子系统交互方式的标注由由由由OOOOOOOO分析模型转换到分析模型转换到分析模型转换到分析模型转换到OOOOOOOO设计模型设计模型设计模型设计模型用例图用例图类类 图图交互图交互图状态图状态图包图包图包图包图方法描述:方法描述:方法描述:方法描述:if A thenif A then Calculate Sales Tax Calculate Sales Tax Calculate Total Amount Calculate Total Amount End if End if设计带方法的类图设计带方法的类图设计带方法
9、的类图设计带方法的类图客户支持系统客户支持系统客户维护子系统客户维护子系统包图示例包图示例库存管理子系统库存管理子系统订单输入子系统订单输入子系统目录维护子系统目录维护子系统订单执行子系统订单执行子系统客户支持系统客户支持系统包括设计类的包图示例包括设计类的包图示例客户维护子系统客户维护子系统订单输入子系统订单输入子系统目录维护子系统目录维护子系统订单执行子系统订单执行子系统客户客户目录目录包包订单条目订单条目订单交易订单交易订单订单退货条目退货条目发运人发运人运输运输系统内部系统内部保险单保险单包图示例包图示例客户客户保险单保险单填写界面填写界面数据库界面数据库界面(abstract)Ora
10、cle界面界面Sybase界面界面OOD导出的系统结构导出的系统结构数据管理数据管理其它系统其它系统文件文件RDBMSOODBMS设备设备系统交互系统交互界面界面问题论域问题论域人机交互人机交互界面界面 . . . . . . . .窗口窗口报告报告 第三层第三层数据库服务器数据库服务器第二层第二层后台库服务器后台库服务器第一层第一层前台客户机前台客户机 对象设计对象设计 对象设计着重于对象及其相互交互的描述。对象设计着重于对象及其相互交互的描述。 在对象设计期间:在对象设计期间:属性数据结构和所有操作的过程的详细规属性数据结构和所有操作的过程的详细规约被创建。约被创建。所有属性的可见性(公共
11、的、私有的或保所有属性的可见性(公共的、私有的或保护的)被定义,对象间的接口被精化以定护的)被定义,对象间的接口被精化以定义完整的消息模型的细节。义完整的消息模型的细节。在对象设计过程中在对象设计过程中将分析模型转换为设计模型将分析模型转换为设计模型 分析模型分析模型 类类 属性属性 方法方法 关系关系 行为行为 设计模型设计模型 对象对象 数据结构数据结构 算法算法 消息传递消息传递 控制控制FichmanFichman和和KemererKemerer提出的提出的1010种种设计建模成分设计建模成分模块层次的表示模块层次的表示数据定义规约数据定义规约过程逻辑的规约过程逻辑的规约端到端处理序列
12、的指明端到端处理序列的指明对象状态和变迁的表示对象状态和变迁的表示类及层次的定义类及层次的定义操作到类的赋予操作到类的赋予详细的操作定义详细的操作定义消息连接的规约消息连接的规约排它服务的标识排它服务的标识结构化方法结构化方法所不支持的所不支持的目前流行的目前流行的OOD方法方法Booch方法方法 Booch认为:认为:“设计的目的是为了渐进设计的目的是为了渐进的实现创建一个系统结构,并制定系统的的实现创建一个系统结构,并制定系统的不同元素都必须采用的共同策略不同元素都必须采用的共同策略”。 设计设计阶段的活动包括:阶段的活动包括:系统结构计划系统结构计划策略设计策略设计发布计划发布计划 Bo
13、och方法使用方法使用的图形文档的图形文档( (表示法表示法) )包括六种图:包括六种图:类图类图对象图对象图状态转换图状态转换图交互图交互图模块图模块图进程图进程图 动态模型动态模型动态模型动态模型静态模型静态模型静态模型静态模型逻辑模型逻辑模型逻辑模型逻辑模型物理模型物理模型物理模型物理模型从两个侧面组织系统模型从两个侧面组织系统模型从两个侧面组织系统模型从两个侧面组织系统模型目前流行的目前流行的OOD方法方法Coad-Yourdon方法方法 Coad-Yourdon方法特别强调方法特别强调OOA 与与OOD采用完全一致的概念和表示法,采用完全一致的概念和表示法, 使分析和设计之间不需要表
14、示法的转换。使分析和设计之间不需要表示法的转换。 主体层主体层类及对象层类及对象层结构层结构层属性层属性层服务层服务层问题域问题域 部分部分( (PDC) )人机交人机交互部分互部分( (HIC) )任务管任务管理部分理部分( (TMC) )数据管数据管理部分理部分( (DMC) )OOD阶段建立阶段建立OOA 阶段模型阶段模型OOD由四个活动组成:由四个活动组成:OOD模型及设计过程模型及设计过程目前流行的目前流行的OOD方法方法Rumbaugh方法方法(OMT)Rumbaugh方法方法(OMT)的的OOD过程概述:过程概述:进行系统设计进行系统设计进行对象设计进行对象设计实现在系统设计中定
15、义的控制机制实现在系统设计中定义的控制机制调整类结构以加强继承性调整类结构以加强继承性设计消息序列以实现对象关系(关联)设计消息序列以实现对象关系(关联)包装类和对象为模块包装类和对象为模块目前流行的目前流行的OOD方法方法Jacobson方法方法(OOSE) Jacobson方法方法(OOSE)是一种是一种use case驱驱动的方法。动的方法。OOSEOOSE方法的过程与模型方法的过程与模型方法的过程与模型方法的过程与模型分析分析构造构造测试测试需求模型需求模型需求模型需求模型分析模型分析模型分析模型分析模型设计模型设计模型设计模型设计模型实现模型实现模型实现模型实现模型测试模型测试模型测
16、试模型测试模型 OOSE OOSE的设计根据实现环境对分析模的设计根据实现环境对分析模的设计根据实现环境对分析模的设计根据实现环境对分析模型进行细化,精确地定义对象的接口和操型进行细化,精确地定义对象的接口和操型进行细化,精确地定义对象的接口和操型进行细化,精确地定义对象的接口和操作的语义,其输出是设计模型。作的语义,其输出是设计模型。作的语义,其输出是设计模型。作的语义,其输出是设计模型。OOSE的设计的设计 OOSE的设计根据实现环境对分析模的设计根据实现环境对分析模型进行细化,精确地定义对象的接口和操型进行细化,精确地定义对象的接口和操作的语义,其输出是设计模型。作的语义,其输出是设计模型。 统一的统一的OOD方法方法UML被组织进两个主要的设计活动:被组织进两个主要的设计活动:系统设计系统设计 系统设计的主要目标是表示软件体系结构系统设计的主要目标是表示软件体系结构对象设计对象设计 对象设计着重于对象及其相互交互的描述对象设计着重于对象及其相互交互的描述