问题域部分的设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题域部分的设计

第六章 问题域部分的设计 什么是面向对象设计 OOA与OOD的关系: 1 )面向对象的设计就是在OOA的基础上运用面向对象方法,主要解决与现实有滚得问题,目标是产生一个符合现实条件的OOD模型。与现实条件有关的因素有:图形用户系统、硬件、操作系统、网络、数据管理系统和编辑语言等。 2 )由于OOD以OOA模型为基础且OOA与OOD采用一致的表示方法,这使得从OOA到OOD不存在转换,只需做必要的修改和调整,或补充某些细节,并增加几个与现实关联的相独立部分即可。因此OOA与OOD之间不存在分析与设计的鸿沟,二者能紧密衔接,大大降低了从OOA与OOD的难度、工作量和出错频率。 3 )OOA主要针对问题域,识别有关的对象以及它们之间的关系,产生一个映射问题域,满足用户需求,独立于实现的OOA模型。OOD主要解决与实现有关的问题,基于OOA模型,针对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个可实现的OOD模型。 2、OOD模型和过程 在OOA阶段只考虑问题域和系统操作责任,在OOD阶段要考虑与具体实现的问题。 图6-1 OOD模型 从一个侧面观察 OOD模型包括五个主要部分——一个核心部分加四个外围部分 问题域部分、人机交换部分、控制驱动部分、数据管理部分、构建及部署部分 从另一侧面观察 OOD模型每个部分仍采用OOA的概念和表示方法,只是在辅助模型中要增加分别于描述构件模型和部署的构件图和部署图。 OOD过程: 设计OOD模型的五个部分 问题域部分的设计、人机交互部分的设计、控制流管理部分的设计、数据管理部分的设计、构件部署设计。 前4项不强调次序,每个部分均采用与OOA一致的概念、表示法及活动,但具有自己独特的策略。进行构件部署设计要在其前面四个部分完成后进行。 问题域部分的设计 对OOA结果按实现条件进行补充与调整就是问题域部分。进行问题域部分设计,要继续运用OOA的方法,包括概念、表示法及一部分策略。不但 要根据实现条件进行OOD设计,而且由于需求变化或新发现了错误,也要对OOA的结果进行修改。本章的重点是对OOA结果进行补充与调整,要强调的是这部分工作主要不是细化,但OOA未完成的细节定义要在OOD完成。 1、为复用类而增加结构 2、提高性能 3、增加一般类以建立共同协议 4、按编程语言调整继承 5、转化复杂关联决定关系的实现方式 6、调整与完善属性 7、构造及优化算法 8、决定对象间的可访问性 9、定义对象实例 10、其他 如下针对一些主要的情况讲述如何进行问题域的设计 1、为复用类而增加结构 如果在 OOA识别和定义的类是本次开发中新定义的,而且没有可复用的资源,则需要进一步设计和编程。如果已存在一些可复用的类,而且这些类既有分析、设计时的定义,又有源程序,那么,复用这些类即可提高开发效率与质量。 可复用的类可能只是与OOA模型中的类相似,而不是完全相同对二者进行修改。 如果完全相同,就把可复用的类直接加到问题域,并用{复用}标记所复用的类。 如果大于,就把可复用的类直接加到问题域,并用{复用}标记所复用的类,所需要的累再继承它。 如果大于,就把可复用的类直接加到问题域,删除可复用类中的多余信息,并用{复用}标记所复用的类。 如果相似,按如下方法处理; ·把要复用的类加到问题域,标以 “复用”。 ·划掉(或标出)不用的属性与服务。 ·建立从复用类到问题域原有的类之间的泛化关系。 ·由于问题域的类继承了“复用”类的特征,所以有些属性和服务不需要了应 该把它们划掉。 ·考虑修改问题域原有类的结构和连接,必要时移到“复用”类。 图6-2问题域中例题 2、提高性能 调整对象的分布 把需要频繁交换信息的对象,尽量地放在一台处理机上。 2)增加保存中间结果的属性或类 避免以后重复计算。 3)提高或降低系统的并发度,可能要人为地增加或减少主动对象。 4)合并通讯频繁的类 5)用聚合关系描述复杂类 如果一个所描述事物过于复杂,其操作也可能比较复杂,因为其中间可能要包多项工作内容。对这种情况的处理,可考虑用聚合关系描述复杂类。 细化对象的分类 如果一个类的概念范畴过于大,那么它所描述的对象的实际情况可能就有若干差异。解决的一个方法就是把类划分的更细一些,在原先较为一般的类之下定义一些针对不同具体情况的类。在每个特殊类中分别定义适合各自对象的操作。 3、增加一般类以建立共同协议 1)增加一个类,将所有具有相同操作和属性的类组织在一起,提供通用的协议。 2)

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档