网站大量收购独家精品文档,联系QQ:2885784924

软件工程电子课件第9章 节 面向对象设计.ppt

软件工程电子课件第9章 节 面向对象设计.ppt

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

2)关系数据库管理系统 被存储的对象应该知道访问哪些数据库表,怎样访问所需要的行,怎样检索出旧值(如果有的话),以及怎样用现有值更新它们。 此外,还应该定义一个Object Server类,并声明它的对象。该类提供下列服务: ◇ 通知对象保存自身; ◇ 检索已存储的对象(查找,读值,创建并初始化对象),以便由其他子系统使用这些对象。 9.5.4 设计数据管理子系统 3)面向对象数据库管理系统 ◇ 扩展的关系数据库途径:与使用关系数据库管理系统时方法相同。 ◇ 扩展的面向对象程序设计语言途径:无须增加服务,这种数据库管理系统已经给每个对象提供了“存储自己”的行为。只需给需要长期保存的对象加个标记,然后由面向对象数据库管理系统负责存储和恢复这类对象。 9.5.4 设计数据管理子系统 3、例子 为具体说明数据管理子系统的设计方法,让我们再看看图9-4所示的ATM系统。从图中可以看出,唯一的永久性数据存储放在分行计算机中。因为必须保持数据的一致性和完整性,而且常常有多个并发事务同时访问这些数据,因此,采用成熟的商品化关系数据库管理系统存储数据。应该把每个事务作为一个不可分割的批操作来处理,由事务封锁账户直到该事务结束为止。 在这个例子中,需要存储的对象主要是账户类的对象。为了支持数据管理子系统的实现,账户类对象必须知道自己是怎样存储的,有两种方法可以达到这个目的。 9.5.4 设计数据管理子系统 1.每个对象自己保存自己 账户类对象在接到“存储自己”的通知后,知道怎样把自身存储起来(需要增加一个属性和一个服务来定义上述行为)。 2.由数据管理子系统负责存储对象 账户类对象在接到“存储自己”的通知后,知道应该向数据管理子系统发送什么消息,以便由数据管理子系统把它的状态保存起来,为此也需要增加属性和服务来定义上述行为。使用这种方法的优点,是无须修改问题域子系统。 9.5.4 设计数据管理子系统 9.6 设计类中的服务 9.6.1 确定类中应有的服务 需要综合考虑对象模型、动态模型和功能模型,才能正确确定类中应有的服务。对象模型是进行对象设计的基本框架。但是,面向对象分析得出的对象模型,通常只在每个类中列出很少几个最核心的服务。设计者必须把动态模型中对象的行为以及功能模型中的数据处理,转换成由适当的类所提供的服务。 一张状态图描绘了一个对象的生命周期,图中的状态转换是执行对象服务的结果。 功能模型指明了系统必须提供的服务。状态图中状态转换所触发的动作,在功能模型中有时可能扩展成一张数据流图。 目标对象的确定规则: ① 如果某个处理的功能是从输入流中抽取一个值,则该输入流就是目标对象。 ② 如果某个处理具有类型相同的输入流和输出流,而且输出流实质上是输入流的另一种形式,则该输入/输出流就是目标对象。 ③ 如果某个处理从多个输入流得出输出值,则该处理是输出类中定义的一个服务。 ④ 如果某个处理把对输入流处理的结果输出给数据存储或动作对象,则该数据存储或动作对象就是目标对象。 9.6.1 确定类中应有的服务 当一个处理涉及多个对象时,为确定把它作为哪个对象的服务,设计者必须判断哪个对象在这个处理中起主要作用。通常在起主要作用的对象类中定义这个服务。下面两条规则有助于确定处理的归属。 ①如果处理影响或修改了一个对象,则最好把该处理与处理的目标(而不是触发者)联系在一起。 ②考察处理涉及的对象类及这些类之间的关联,从中找出处于中心地位的类。如果其他类和关联围绕这个中心类构成星形,则这个中心类就是处理的目标。 9.6.1 确定类中应有的服务 9.6.2 设计实现服务的方法 1.设计实现服务的算法 (1)算法复杂度 通常选用复杂度较低(即效率较高)的算法,但也不要过分追求高效率,应以能满足用户需求为准。 (2)容易理解与容易实现 容易理解与容易实现的要求往往与高效率有矛盾,设计者应该对这两个因素适当折中。 (3)易修改 应该尽可能预测将来可能做的修改,并在设计时预先做些准备。 2.选择数据结构 在分析阶段,仅需考虑系统中需要的信息的逻辑结构,在面向对象设计过程中,则需要选择能够方便、有效地实现算法的物理数据结构。 3.定义内部类和内部操作 在面向对象设计过程中,可能需要增添一些在需求陈述中没有提到的类,这些新增加的类,主要用来存放在执行算法过程中所得出的某些中间结果。 9.6.2 设计实现服务的方法 9.7 设计关联 9.7.1.关联的遍历 在应用系统中,使用关联有两种可能的方式:单向遍历和双向遍历。在应用系统中,某些关联只需要单向遍历,这种单向关联实现起来比较简单,另外一些关联可能需要双向遍历,双向关联实现起来稍微麻烦一

文档评论(0)

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

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

1亿VIP精品文档

相关文档