欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第7章类和对象的设计精选PPT.ppt

    • 资源ID:88350771       资源大小:1.80MB        全文页数:42页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第7章类和对象的设计精选PPT.ppt

    第7章 类和对象的设计第1页,本讲稿共42页l 用面向对象的方法对软件系统进行分用面向对象的方法对软件系统进行分析设计,首先要做的就是找出系统中的类析设计,首先要做的就是找出系统中的类和对象,对它们各自的属性和操作进行分和对象,对它们各自的属性和操作进行分析和设计。析和设计。第2页,本讲稿共42页7.1 建立类和对象的模型7.2 寻找系统中的类7.3 确定类或对象之间7.4 设计类的属性7.5 设计类的职责7.6 小结第3页,本讲稿共42页7.1 建立类和对象的模型建立类和对象的模型7.1.1 什么是模型l 模型就是为了理解事务而对事务作模型就是为了理解事务而对事务作出的一种抽象,通常是用一组图示符号出的一种抽象,通常是用一组图示符号和组织这些符号的规则来定义和描述问和组织这些符号的规则来定义和描述问题域中的术语和概念。题域中的术语和概念。第4页,本讲稿共42页l 信息系统的模型常见的有形式化和图示化两种。信息系统的模型常见的有形式化和图示化两种。形式化描述方法非常精确、严谨,易于系统以后的实形式化描述方法非常精确、严谨,易于系统以后的实现,但难以掌握和理解,模型可读性差,往往只有专现,但难以掌握和理解,模型可读性差,往往只有专业人员才会使用,因而难于推广。图形化方法用一组业人员才会使用,因而难于推广。图形化方法用一组图示符号和组织这些符号的规则来定义和描述问题域图示符号和组织这些符号的规则来定义和描述问题域中的术语和概念,模型直观、自然,易于描述系统的中的术语和概念,模型直观、自然,易于描述系统的层次结构、功能组成,且简单易学,通常还有工具软层次结构、功能组成,且简单易学,通常还有工具软件支持,因而成为信息系统的主要描述工具,尽管这件支持,因而成为信息系统的主要描述工具,尽管这种方法的精确性和严谨性较差,但实际应用很广泛。种方法的精确性和严谨性较差,但实际应用很广泛。第5页,本讲稿共42页l7.1.2 建模的目的l构造模型通常的目的是:构造模型通常的目的是:l(1)在着手解决一个复杂问题之前,建立在着手解决一个复杂问题之前,建立与检测解决方案。与检测解决方案。l(2)对复杂问题进行适度简化。对复杂问题进行适度简化。l(3)加强视觉效果。加强视觉效果。l(4)客户和其他相关人员进行交流。客户和其他相关人员进行交流。第6页,本讲稿共42页l7.1.3 面向对象分析设计模型的一般形式l 一个系统的特征包括两个方面,即静态特征和一个系统的特征包括两个方面,即静态特征和动态特征。静态模型描述系统的数据结构,主要表动态特征。静态模型描述系统的数据结构,主要表现为类或对象包含的属性、行为,以及类或对象相现为类或对象包含的属性、行为,以及类或对象相互之间的继承和关联关系;动态模型描述系统的控互之间的继承和关联关系;动态模型描述系统的控制结构,主要表现为对象为完成某一功能而相互合制结构,主要表现为对象为完成某一功能而相互合作以及它们动作执行的先后顺序。作以及它们动作执行的先后顺序。第7页,本讲稿共42页l7.1.3.1 7.1.3.1 表示类和对象的图形符号表示类和对象的图形符号 图图7.1是类和对象的表示符号,类和对是类和对象的表示符号,类和对象都用矩形框表示,类或对象名、每个属性、象都用矩形框表示,类或对象名、每个属性、每个操作每个操作(行为行为)都各占一格。都各占一格。第8页,本讲稿共42页的符号的符号l7.1.3.2 表示类之间关系表示类之间关系l 继承、聚集继承、聚集(组成组成)、关联等关系表示、关联等关系表示符号分别如图符号分别如图7.3、图、图7.4、图、图7.5所示。所示。l 图7.3 继承关系的表示符号 第9页,本讲稿共42页图7.4 聚集关系的表示符号第10页,本讲稿共42页图7.5 关联关系的表示符号第11页,本讲稿共42页l 两类对象之间的二元关联关系分为三两类对象之间的二元关联关系分为三种基本类型,即一对一种基本类型,即一对一(1:1),一对多,一对多(1:M)和多对多和多对多(M:N)分别用数字分别用数字1:1、1:0.*和和0.*:0.*标识在表示关联关系的标识在表示关联关系的横线下。横线下。第12页,本讲稿共42页l7.1.3.3 表示对象的行为以及相互合作的表示对象的行为以及相互合作的符号符号 所有的对象都具有自己的生命周期所有的对象都具有自己的生命周期(或称为运行周期或称为运行周期)。生命周期中的阶段也。生命周期中的阶段也就是对象的状态。系统运行过程中各对象就是对象的状态。系统运行过程中各对象之间总是在相互作用,某一对象受到其它之间总是在相互作用,某一对象受到其它对象的触发对象的触发(如发送消息要求服务如发送消息要求服务),就会,就会发生状态的改变。发生状态的改变。第13页,本讲稿共42页图7.7 对象状态变化的表示符号第14页,本讲稿共42页l 状态图总是针对某个特定的对象而言状态图总是针对某个特定的对象而言的,描述该对象响应一系列事件触发发生的,描述该对象响应一系列事件触发发生的状态转变。状态图中定义的状态有初始的状态转变。状态图中定义的状态有初始状态、最终状态、中间状态、复合状态。状态、最终状态、中间状态、复合状态。第15页,本讲稿共42页l 我们常用时序图来描述几个对象的交我们常用时序图来描述几个对象的交互作用。表示符号如图互作用。表示符号如图7.9所示。所示。图7.9 三个对象交互的时序图第16页,本讲稿共42页l 设计一个优秀的面向对象软件系统至设计一个优秀的面向对象软件系统至少要遵循以下原则:少要遵循以下原则:l(1)模块化与系统分解模块化与系统分解l(2)抽象抽象l(3)信息隐蔽信息隐蔽l(4)模块间弱耦合和模块内强内聚模块间弱耦合和模块内强内聚l(5)可重用可重用7.1.4 面向对象分析设计的一般原则第17页,本讲稿共42页7.2 寻找系统中的类寻找系统中的类7.2.1 列出需求说明中的名词l 软件系统中的很多类或对象都是待解决问题中软件系统中的很多类或对象都是待解决问题中有意义的事物的抽象,关键是抓住需求说明中的名有意义的事物的抽象,关键是抓住需求说明中的名词,重点考虑如下四个方面:词,重点考虑如下四个方面:l(1)自然物理对象自然物理对象 l(2)概念实体概念实体 l(3)人或组织的角色人或组织的角色 l(4)发生的事件发生的事件 第18页,本讲稿共42页l 提取名词作为初选出的类时,应注意提取名词作为初选出的类时,应注意以下原则:以下原则:l(1)选择一个最有意义的词。选择一个最有意义的词。l(2)修饰语也常常是发现类属性的线索。修饰语也常常是发现类属性的线索。l(3)被动语态写成的句子,通常有隐含的被动语态写成的句子,通常有隐含的主语。主语。l(4)对类的种类进行建模。对类的种类进行建模。l(5)从属性值抽象出类。从属性值抽象出类。第19页,本讲稿共42页l7.2.2 筛选出候选类l对列出的名词作个初步筛选。方法如下:对列出的名词作个初步筛选。方法如下:l(1)去除重复的概念,保留一个最确切的名称。去除重复的概念,保留一个最确切的名称。l(2)去除无关的概念,只保留与问题密切相关的概去除无关的概念,只保留与问题密切相关的概念。念。l(3)去除笼统的概念,用明确具体的名称代替它们。去除笼统的概念,用明确具体的名称代替它们。第20页,本讲稿共42页l(4)去除属性。去除属性。l(5)去除操作。去除操作。l(6)去除实现细节性的名词。去除实现细节性的名词。第21页,本讲稿共42页7.3 确定类或对象之间的关系确定类或对象之间的关系7.3.1 找出关联关系l 分析关联关系能促使分析员考虑问题分析关联关系能促使分析员考虑问题的边缘情况,有助于发现那些尚未被发现的边缘情况,有助于发现那些尚未被发现的类。的类。l(1)从动词短语初步找出关联从动词短语初步找出关联l(2)筛选出必要的关联筛选出必要的关联l(3)划分主题划分主题第22页,本讲稿共42页l7.3.2 组成关系l 组成关系是一种特殊的关联关系。组组成关系是一种特殊的关联关系。组成关系实际上描述的是所谓成关系实际上描述的是所谓“的一部的一部分分”、“组成组成”或者或者“包含包含”这这样一类关系,即部分与整体之间的关系。样一类关系,即部分与整体之间的关系。第23页,本讲稿共42页l7.3.3 继承关系l有两种方式可以发现和建立继承关系:有两种方式可以发现和建立继承关系:l(1)自底向上。自底向上。l 当子类具有和父类相同的属性和行为当子类具有和父类相同的属性和行为时,它们存在着继承关系。时,它们存在着继承关系。第24页,本讲稿共42页l(2)自顶向下。自顶向下。l 把现有的类细化成更具体的子类,留把现有的类细化成更具体的子类,留意那些带有修饰词的名词和名词词组,它意那些带有修饰词的名词和名词词组,它们往往暗示了一些具体类。过深的子类嵌们往往暗示了一些具体类。过深的子类嵌套会难于理解,通常经过仔细考虑和少量套会难于理解,通常经过仔细考虑和少量的重构造,就能减少过多的继承层次。的重构造,就能减少过多的继承层次。第25页,本讲稿共42页7.4 设计类的属性设计类的属性l 类的属性就是类的性质,对象取不同类的属性就是类的性质,对象取不同的属性值就有不同的状态。的属性值就有不同的状态。l 一般来说,确定属性的过程包括分析一般来说,确定属性的过程包括分析和筛选两个步骤。和筛选两个步骤。l(1)分析分析l 属性的确定既与问题域有关,也和目标属性的确定既与问题域有关,也和目标系统的任务有关。应该仅考虑与具体应用直系统的任务有关。应该仅考虑与具体应用直接相关的属性,不要考虑那些超出所要解决接相关的属性,不要考虑那些超出所要解决的问题范围的属性。的问题范围的属性。第26页,本讲稿共42页l(2)筛选筛选l 仔细认真地考虑那些经初步分析而确定下来地属性,仔细认真地考虑那些经初步分析而确定下来地属性,从中删掉不正确的或不必要的属性。从中删掉不正确的或不必要的属性。l 判别是属性还是对象判别是属性还是对象l 识别冗余属性识别冗余属性l 去除链属性去除链属性l 区分属性和内部状态区分属性和内部状态l 不应过于细化不应过于细化l 去除无关属性去除无关属性第27页,本讲稿共42页7.5 设计类的职责设计类的职责l 类必须有其独立存在的意义,就是说,类必须有其独立存在的意义,就是说,既具备一定的属性,又负有一定的职责,既具备一定的属性,又负有一定的职责,即对外提供服务。即对外提供服务。l 先弄清系统的职责,再将这些职责分先弄清系统的职责,再将这些职责分配到每个类。在分析开始前,我们已经拥配到每个类。在分析开始前,我们已经拥有了两个重要的资源:需求说明和初步确有了两个重要的资源:需求说明和初步确定的类。定的类。第28页,本讲稿共42页l7.5.1 分析系统的交互行为l 我们通过编写典型交互行为的脚本的我们通过编写典型交互行为的脚本的方式来明确系统的行为。方式来明确系统的行为。l 脚本是指系统在某一执行期间内出现脚本是指系统在某一执行期间内出现的一系列事件。的一系列事件。第29页,本讲稿共42页l 脚本描写的范围并不是固定的,既可脚本描写的范围并不是固定的,既可以包括系统中发生的全部事件,也可以只以包括系统中发生的全部事件,也可以只包括由某些特定对象触发的事件。脚本描包括由某些特定对象触发的事件。脚本描写的范围主要由编写脚本的具体目的决定。写的范围主要由编写脚本的具体目的决定。l 首先编写正常情况的脚本。然后,考首先编写正常情况的脚本。然后,考虑特殊情况虑特殊情况。第30页,本讲稿共42页l7.5.2 将交互行为分配到类或对象l 首先,我们要根据脚本确定系统中发首先,我们要根据脚本确定系统中发生了哪些事件。这些事件包括:生了哪些事件。这些事件包括:l(1)系统与用户或外部设备交互的所有信系统与用户或外部设备交互的所有信号、输入输出、中断、动作等等。正常情号、输入输出、中断、动作等等。正常情况和异常情况下发生的事件都必须考虑在况和异常情况下发生的事件都必须考虑在内。内。第31页,本讲稿共42页l(2)发送信息的对象的动作。大多数对象发送信息的对象的动作。大多数对象到对象的交互行为都对应着事件。如前台到对象的交互行为都对应着事件。如前台终端请求中央计算机验证用户的身份,就终端请求中央计算机验证用户的身份,就对应了一个事件。对应了一个事件。第32页,本讲稿共42页l 接着,我们要明确事件的发送对象和接着,我们要明确事件的发送对象和接受对象。某事件对于它的发送对象来说接受对象。某事件对于它的发送对象来说是输出事件,但是对于它的接受对象来说是输出事件,但是对于它的接受对象来说则是输入对象。当一个事件的发送和接受则是输入对象。当一个事件的发送和接受对象相同时,这个事件就既是输出事件又对象相同时,这个事件就既是输出事件又是输入事件,比如,自发消息。是输入事件,比如,自发消息。第33页,本讲稿共42页l 然后,我们要理清事件发生的先后顺然后,我们要理清事件发生的先后顺序,这在脚本中也应有大致的表现,不清序,这在脚本中也应有大致的表现,不清楚的情况要与领域专家咨询和讨论。楚的情况要与领域专家咨询和讨论。第34页,本讲稿共42页l 最后,分正常情况和异常情况分别画最后,分正常情况和异常情况分别画出对象交互的时序图。时序图描述了各个出对象交互的时序图。时序图描述了各个对象的协作执行顺序,上面的事件先执行,对象的协作执行顺序,上面的事件先执行,下面的事件后执行。下面的事件后执行。第35页,本讲稿共42页图7.24 正常情况下售货时序图第36页,本讲稿共42页图7.25 异常情况下退货时序图第37页,本讲稿共42页l 有的系统中会有某个类与其它类的交有的系统中会有某个类与其它类的交互行为相当复杂,这时仅仅时序图对这个互行为相当复杂,这时仅仅时序图对这个类的描述可能还不够清楚,这时我们就需类的描述可能还不够清楚,这时我们就需要把这个类单独提出来,用状态图加以分要把这个类单独提出来,用状态图加以分析。如果围绕一个对象发生的事件较少,析。如果围绕一个对象发生的事件较少,问题较简单,就不必画出它的状态图来分问题较简单,就不必画出它的状态图来分析。析。第38页,本讲稿共42页图7.26 收款对象的状态图第39页,本讲稿共42页7.6 小结小结l 面向对象的分析设计方法,首先要做面向对象的分析设计方法,首先要做的是找出系统中的类和对象,对它们各自的是找出系统中的类和对象,对它们各自的属性和操作进行分析和设计。的属性和操作进行分析和设计。第40页,本讲稿共42页l 首先找出系统中的类,然后确定类或首先找出系统中的类,然后确定类或对象之间的关系,接着再设计类的属性,对象之间的关系,接着再设计类的属性,最后确定类的职责。初学者应该严格按照最后确定类的职责。初学者应该严格按照这些方法、步骤先分析设计一些简单的系这些方法、步骤先分析设计一些简单的系统,主要是在学习中建立起以对象为中心统,主要是在学习中建立起以对象为中心来分析系统设计问题的思维方式。来分析系统设计问题的思维方式。第41页,本讲稿共42页l 但是,对象的设计不是个严格的流水线操作但是,对象的设计不是个严格的流水线操作过程,很多问题的发现和解决是相互启发和补充过程,很多问题的发现和解决是相互启发和补充的,比如,几个类的公共属性导致了继承关系的的,比如,几个类的公共属性导致了继承关系的发现,新加入的操作需要给类补充新的属性。所发现,新加入的操作需要给类补充新的属性。所以,面向对象的分析设计方法是相当灵活的,由以,面向对象的分析设计方法是相当灵活的,由于对象模型在整个开发阶段都是有用的,整个分于对象模型在整个开发阶段都是有用的,整个分析设计过程就是一个反复修改完善的过程。在系析设计过程就是一个反复修改完善的过程。在系统实现前,分析阶段的设计结果可能还会有必需统实现前,分析阶段的设计结果可能还会有必需的改动,这和系统的实现语言和开发环境有较大的改动,这和系统的实现语言和开发环境有较大关系。关系。第42页,本讲稿共42页

    注意事项

    本文(第7章类和对象的设计精选PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开