当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《面向对象程序设计》第一章 面向对象技术概论(1.3)面向对象的分析方法

资源类别:文库,文档格式:DOC,文档页数:25,文件大小:173.5KB,团购合买
作为一个比较全面的方法,面向对象分析由五个主要步骤组成,即确定类 与对象,识别结构,识别主题,定义属性和定义方法。一旦建立了模型,就可 以由五个层次来表示,它们是: 主题层主题给出分析模型的总体概貌。 对象层对象是数据及其处理的抽象。它反映了系统保存和处理现实世界 中某些事物的信息的能力。
点击下载完整版文档(DOC)

1.3面向对象的分析方法 面向对象分析 作为一个比较全面的方法,面向对象分析由五个主要步骤组成,即确定类 与对象,识别结构,识别主题,定义属性和定义方法。一旦建立了模型,就可 以由五个层次来表示,它们是: 主题层主题给出分析模型的总体概貌 对象层对象是数据及其处理的抽象。它反映了系统保存和处理现实世界 中某些事物的信息的能力 结构层结构表示问题域的复杂性。类一成员结构反映了一般——特殊关 系,整体一一部分结构反映了整体和部分的关系 属性层属性就是数据元素,可用来描述对象或分类结构的实例,可在图 中给出并在对象的存储中定义。 方法层方法是在收到消息后必须进行的处理,在图上定义它并在对象的 存储中指定 确定类与对象 、什么是类、对象 在面向对象分析中对象是一个封装体和抽象体,即是属性和处理这些属性 的方法的封装体以及问题域的抽象体。类是对一个以上对象的共同属性和方法 集合的描述,包括如何在一个类中建立新对象的描述 属性以及处理这些属性的方法的封装体对面向对象分析模型的稳定性影响 很大。首先,封装性是可以将属性和方法看成一个不可分割的整体的基础。第 ,封装性有助于减少重复劳动 在面向对象分析中,对问题域中某件事情的抽象是很重要的。事实上,在 每次分析活动中,分析人员必须首先理解要分析的问题域。而将对象定义为现 实世界的抽象,这样有助于深刻理解问题域,从而获得系统模型。这种模型至 少可以产生一个现实的可观察且可管理的模型层集合,包括主题、对象、结构、 属性和方法 系统模型还为上下文的初始表示奠定了基础。上下文树是由系统分析人员 在分析过程中画出来用于技术决策的。系统上下文表明该系统包含有几个问题 域、要保存什么样的数据、处理的复杂程度如何等。系统上下文有着“四重约 束”,即预算、进度、性能和人员。为了使一个项目顺利进行,必须满足所有这 四个约束 2、为什么要识别对象 识别对象的主要目的是为了使一个系统的技术表示同现实世界更为接近。 这种分析的表示和策略是依据人类的3种基本分析方法的,即对象和属性, 与成员,以及整体和部分 识别对象的另一个目的是希望建立考察问题领域和了解需求的稳定框架

1. 3 面向对象的分析方法 面向对象分析 作为一个比较全面的方法,面向对象分析由五个主要步骤组成,即确定类 与对象,识别结构,识别主题,定义属性和定义方法。一旦建立了模型,就可 以由五个层次来表示,它们是: 主题层 主题给出分析模型的总体概貌。 对象层 对象是数据及其处理的抽象。它反映了系统保存和处理现实世界 中某些事物的信息的能力。 结构层 结构表示问题域的复杂性。类—成员结构反映了一般——特殊关 系,整体——部分结构反映了整体和部分的关系。 属性层 属性就是数据元素,可用来描述对象或分类结构的实例,可在图 中给出并在对象的存储中定义。 方法层 方法是在收到消息后必须进行的处理,在图上定义它并在对象的 存储中指定。 一、 确定类与对象 1、什么是类、对象 在面向对象分析中对象是一个封装体和抽象体,即是属性和处理这些属性 的方法的封装体以及问题域的抽象体。类是对一个以上对象的共同属性和方法 集合的描述,包括如何在一个类中建立新对象的描述。 属性以及处理这些属性的方法的封装体对面向对象分析模型的稳定性影响 很大。首先,封装性是可以将属性和方法看成一个不可分割的整体的基础。第 二,封装性有助于减少重复劳动。 在面向对象分析中,对问题域中某件事情的抽象是很重要的。事实上,在 每次分析活动中,分析人员必须首先理解要分析的问题域。而将对象定义为现 实世界的抽象,这样有助于深刻理解问题域,从而获得系统模型。这种模型至 少可以产生一个现实的 可观察且可管理的模型层集合,包括主题、对象、结构、 属性和方法。 系统模型还为上下文的初始表示奠定了基础。上下文树是由系统分析人员 在分析过程中画出来用于技术决策的。系统上下文表明该系统包含有几个问题 域、要保存什么样的数据、处理的复杂程度如何等。系统上下文有着“四重约 束”,即预算、进度、性能和人员。为了使一个项目顺利进行,必须满足所有这 四个约束。 2、为什么要识别对象 识别对象的主要目的是为了使一个系统的技术表示同现实世界更为接近。 这种分析的表示和策略是依据人类的 3 种基本分析方法的,即对象和属性,类 与成员,以及整体和部分。 识别对象的另一个目的是希望建立考察问题领域和了解需求的稳定框架

对象只是相对稳定的,但分析问题的框架却是稳定的。 最后一个动机是希望在从系统分析向系统设计过渡时不要改变所采用的表 示法。如多年来在分析中使用的是网络组织(数据流程图),而在设计中使用的 则是层次组织(结构图)。这一状况使开发者感到十分不便,无法跟踪开发过程。 为此可以通过在分析、设计和实现三个阶段均采用面向对象的表示法来改进这 局面 3、如何定义对象 (1)、表示法 类&-对象 (2)何处去确定对象 问题域、文字说明和图形表示都是有助于确定对象的素材 首先应该观察问题域并研究问题域本身。问题域是用户的世界,用户一般 在问题域中给出或隐含地给出某种形式的需求,这些需求可能是几句话的描述, 也可能是大段的叙述。 其次是研究文字说明材料。让用户提供一个详细的专题报告,并从专业书 籍中找到该问题域的权威描述,这种方法有助于了解某个专题的基本知识和术 语,同时这样一种调研也可尽快掌握问题域的概貌。在阅读时,重点注意名词, 但不能简单地把这些名词声明为对象 最后是要仔细地观察各种图形表示。收集所能拿到的任何图形表示,包括 方块图、接口图、系统部件图和高层次的数据/控制流程图等,并用图符和它 们之间的连线的方式画出问题域的草图。 (3)哪些可以作为对象 为了确定潜在的对象,需要首先确定问题域的结构、有关系统、装置、所 记忆的事件、所起的作用、地点和组织机构。下面按其用途的大小不依次考虑 这些问题。 结构。问题域中的结构对确定对象和表示问题域层十分重要。在面向对象 分析中,有专门的一个识别结构的步骤。在结构当中,最为重要的就是泛化 一特化结构和整体—一部分结构(后面详细叙述)。 有关系统。所考虑的系统将以何种方式同有关的系统和外部终端交互?如 无线或者是有线。 装置。所考虑的系统需要同何种装置进行交互(交换数据和控制信息) 要注意的是不要从实现上而应从功能上来考虑,以便出在具体实现变化时,无 须作太多的重复性劳动

对象只是相对稳定的,但分析问题的框架却是稳定的。 最后一个动机是希望在从系统分析向系统设计过渡时不要改变所采用的表 示法。如多年来在分析中使用的是网络组织(数据流程图),而在设计中使用的 则是层次组织(结构图)。这一状况使开发者感到十分不便,无法跟踪开发过程。 为此可以通过在分析、设计和实现三个阶段均采用面向对象的表示法来改进这 一局面。 3、如何定义对象。 (1)、表示法 类-&-对象 类 (2)何处去确定对象 问题域、文字说明和图形表示都是有助于确定对象的素材。 首先应该观察问题域并研究问题域本身。问题域是用户的世界,用户一般 在问题域中给出或隐含地给出某种形式的需求,这些需求可能是几句话的描述, 也可能是大段的叙述。 其次是研究文字说明材料。让用户提供一个详细的专题报告,并从专业书 籍中找到该问题域的权威描述,这种方法有助于了解某个专题的基本知识和术 语,同时这样一种调研也可尽快掌握问题域的概貌。在阅读时,重点注意名词, 但不能简单地把这些名词声明为对象。 最后是要仔细地观察各种图形表示。收集所能拿到的任何图形表示,包括 方块图、接口图、系统部件图和高层次的数据/控制流程图等,并用图符和它 们之间的连线的方式画出问题域的草图。 (3)哪些可以作为对象 为了确定潜在的对象,需要首先确定问题域的结构、有关系统、装置、所 记忆的事件、所起的作用、地点和组织机构。下面按其用途的大小不依次考虑 这些问题。 结构。 问题域中的结构对确定对象和表示问题域层十分重要。在面向对象 分析中,有专门的一个识别结构的步骤。在结构当中,最为重要的就是泛化— —特化结构和整体——部分结构(后面详细叙述)。 有关系统。 所考虑的系统将以何种方式同有关的系统和外部终端交互?如 无线或者是有线。 装置。 所考虑的系统需要同何种装置进行交互(交换数据和控制信息)。 要注意的是不要从实现上而应从功能上来考虑,以便出在具体实现变化时,无 须作太多的重复性劳动

应记忆的事件。系统是否有必要观测和记录时间点和历史事件 人所起的作用。在所考虑的系统中,人起什么作用?代表人的对象有两种 系统用户;并不与系统直接交互,但系统有其记录的人。他们在系统中起的作 用不同,后面的属性和方法的探讨将更详细地揭示这种区别。 地点。所考虑的系统需要什么样的地理知识? 组织结构。人属于哪个机构? (4)应考虑那些内容 假设已经找到一个候选对象,这时又发现另一个可能成为对象的东西,那 么是否应该将它作为对象放到模型中去?这时应该考虑以下问题 ①必要的记忆(属性) 是否该系统需要记忆某个对象的所有情况?能否描述该对象的实例?该 对象潜在的属性是什么?是否真实事物的知识对所考虑的系统有用?是否系统 需要记忆与该对象有关的情况?如果一切的回答是否定的,则该对象存在的合 法性和必要性就值得怀疑。记住:现实世界中存在许多对象,但仅可以讨论而 已,不能都纳入系统中去 ②必要的方法 系统是否需要该对象提供的方法?只要必要的记忆中所述的不完全是否 定的,则也必定需要方法,因此最低限度也要维持该对象的一次出现,即有 个合适的对象。 有时某个对象可能要求有方法,但不要求有记忆(属性)。如可能在问题 域中找到一个“用户”对象,但系统并不要求保存该用户的任何信息,但是系 统确实需要监视用户、响应请求和定时提供信息。因此由于需要方法,不得不 将一个相应的对象加到问题域的模型中去。 ③一个以上的属性。在分析人员考虑不周的地方,该准则能帮助他筛选潜 在的对象。如果一个对象(如“地点”)有一个名字相同的属性,就让人费解 这时“地点”最好作为属性用到其他的对象中去,而不是单独作为一个对象 关键是要详细到何种程度:对象是用属性来描述的,而属性则又可在属性 字典中描述 ④共同属性。能否识别一组每个对象都有的属性?每次当系统产生一个对 象时,它应该为所有的共同属性赋值。如果只有部分属性可用,则表明还存在 个泛化一一特化结构(后面讨论)。 ⑤共同的方法。能识别一组共同的方法吗?即可用到某个对象的所有实例 的处理操作。这些处理操作可能用来创建对象的实例,在对象之间建立联系 如果每个实例的方法都是相同的,那还好办。但是如果方法是随实例的类型而 变化的,则表明还存在一个泛化一一特化结构 ⑥基本需求。基本需求是指那些系统必须具备的要求,如在考虑“雷达” 和“传感器”对象时,不管最终采用何种计算机技术,最终的目标还是“雷达” 和“传感器”对象。至于其他的都只是设计和实现上的考虑

应记忆的事件。 系统是否有必要观测和记录时间点和历史事件。 人所起的作用。在所考虑的系统中,人起什么作用?代表人的对象有两种: 系统用户;并不与系统直接交互,但系统有其记录的人。他们在系统中起的作 用不同,后面的属性和方法的探讨将更详细地揭示这种区别。 地点。 所考虑的系统需要什么样的地理知识? 组织结构。 人属于哪个机构? (4)应考虑那些内容 假设已经找到一个候选对象,这时又发现另一个可能成为对象的东西,那 么是否应该将它作为对象放到模型中去?这时应该考虑以下问题: ①必要的记忆(属性) 是否该系统需要记忆某个对象的所有情况?能否描述该对象的实例?该 对象潜在的属性是什么?是否真实事物的知识对所考虑的系统有用?是否系统 需要记忆与该对象有关的情况?如果一切的回答是否定的,则该对象存在的合 法性和必要性就值得怀疑。记住:现实世界中存在许多对象,但仅可以讨论而 已,不能都纳入系统中去。 ②必要的方法 系统是否需要该对象提供的方法?只要必要的记忆中所述的不完全是否 定的,则也必定需要方法,因此最低限度也要维持该对象的一次出现,即有一 个合适的对象。 有时某个对象可能要求有方法,但不要求有记忆(属性)。如可能在问题 域中找到一个“用户”对象,但系统并不要求保存该用户的任何信息,但是系 统确实需要监视用户、响应请求和定时提供信息。因此由于需要方法,不得不 将一个相应的对象加到问题域的模型中去。 ③一个以上的属性。在分析人员考虑不周的地方,该准则能帮助他筛选潜 在的对象。如果一个对象(如“地点”)有一个名字相同的属性,就让人费解。 这时“地点”最好作为属性用到其他的对象中去,而不是单独作为一个对象。 关键是要详细到何种程度:对象是用属性来描述的,而属性则又可在属性 字典中描述。 ④共同属性。能否识别一组每个对象都有的属性?每次当系统产生一个对 象时,它应该为所有的共同属性赋值。如果只有部分属性可用,则表明还存在 一个泛化——特化结构(后面讨论)。 ⑤共同的方法。能识别一组共同的方法吗?即可用到某个对象的所有实例 的处理操作。这些处理操作可能用来创建对象的实例,在对象之间建立联系。 如果每个实例的方法都是相同的,那还好办。但是如果方法是随实例的类型而 变化的,则表明还存在一个泛化――特化结构。 ⑥基本需求。基本需求是指那些系统必须具备的要求,如在考虑“雷达” 和“传感器”对象时,不管最终采用何种计算机技术,最终的目标还是“雷达” 和“传感器”对象。至于其他的都只是设计和实现上的考虑

(5)对什么提出否定意见 ①并非必要的记忆 ②并非必要的方法; ③单个实例 ④冗余信息。 首先,如果系统并不需要保存某个对象的信息也不需要为它提供方法,则 去掉该对象。这种情况在同用户讨论和评价初始模型时经常发生。 其次,对只有单个实例的对象提出异议。当然如果某个(只有单个实例的 对象)确反映了问题域的真实情况,则不必管它。 最后,考虑冗余信息的模型。在基本需求模型中,冗余信息会使一切变得 十分繁杂混乱。因此尽量少地保存属于冗余信息的派生结果。 (6)如何命名对象 原则上,对象名应该能描述对象的实例的基本特征,因此,为对象命名的 主要方法可以是 ①用单个名词或者形容词加名词作为对象名 ②采用标准名称作为对象名 ③尽量采用可读性好的名字。 识别结构 本节研究泛化——特化结构和整体—一部分结构。 1、什么是结构 在面向对象分析中,结构是问题域复杂关系的表示,它与系统的任务直接 相关。结构有一般—一特殊结构和整体一一部分结构。它们是面向对象分析方 法和重要组成部分。 2、为什么要定义结构 泛化一特化结构和整体一部分结构能使分析人员和领域专家的注意力集中 在具有多个类和对象的复杂问题上。也可以考虑到问题的边缘,揭示那些尚未 发现的类和对象。此外,泛化一特化结构具有继承性,泛化类和对象的属性和 方法一旦被识别,即可在特化类和对象中使用 3、如何定义结构 (1)如何定义泛化一一特化结构 首先给出泛化一一特化结构的表示法和策略,然后给出它的层次 ①表示法 泛化一特化结构用下图表示:顶部是一个泛化类,下面是几个特化类 它们之间用线连接。一个半圆型的标记表明图形泛化一一特化结构这种表示法 是有向的,从半圆弧中心画一条线所指的是泛化类。一般来说,泛化类总是放 在上部,而特化类放在下部

(5)对什么提出否定意见 ①并非必要的记忆; ②并非必要的方法; ③单个实例; ④冗余信息。 首先,如果系统并不需要保存某个对象的信息也不需要为它提供方法,则 去掉该对象。这种情况在同用户讨论和评价初始模型时经常发生。 其次,对只有单个实例的对象提出异议。当然如果某个(只有单个实例的 对象)确反映了问题域的真实情况,则不必管它。 最后,考虑冗余信息的模型。在基本需求模型中,冗余信息会使一切变得 十分繁杂混乱。因此尽量少地保存属于冗余信息的派生结果。 (6)如何命名对象 原则上,对象名应该能描述对象的实例的基本特征,因此,为对象命名的 主要方法可以是: ①用单个名词或者形容词加名词作为对象名; ②采用标准名称作为对象名; ③尽量采用可读性好的名字。 二、识别结构 本节研究泛化——特化结构和整体——部分结构。 1、 什么是结构 在面向对象分析中,结构是问题域复杂关系的表示,它与系统的任务直接 相关。结构有一般——特殊结构和整体——部分结构。它们是面向对象分析方 法和重要组成部分。 2、为什么要定义结构 泛化—特化结构和整体—部分结构能使分析人员和领域专家的注意力集中 在具有多个类和对象的复杂问题上。也可以考虑到问题的边缘,揭示那些尚未 发现的类和对象。此外,泛化—特化结构具有继承性,泛化类和对象的属性和 方法一旦被识别,即可在特化类和对象中使用。 3、如何定义结构 (1)如何定义泛化——特化结构 首先给出泛化——特化结构的表示法和策略,然后给出它的层次 ①表示法 泛化——特化结构用下图表示:顶部是一个泛化类,下面是几个特化类, 它们之间用线连接。一个半圆型的标记表明图形泛化——特化结构这种表示法 是有向的,从半圆弧中心画一条线所指的是泛化类。一般来说,泛化类总是放 在上部,而特化类放在下部

Generalization pecializationl Specialization 泛化一—特化结构线的端点位置表明这是类(而不是对象)之间的映射。 每个特化类的名字必须能充分地反映它自己的物征。比较合适的特化类名 字可由相应的泛化类名加上能描述该特化类性质的形容词来组成。如对于名为 Sensor(传感器)的泛化类,其特化类可称为 StandardSensor(标准传感器)或 CriticalSensor(精密传感器)而不称为 Critical(标准)。 所有最底部的特化类必须使用“类一&一对象”符号,而其他地方即可用 “类一&一对象”符号也可用类符号。如下图所示的实例 ensor Model Init Sequence Conversion Address Threshold Value Initialize Moni tor CriticalSensor StandardSensor Monitor ②定义一般—一特殊结构的策略 将每个类看成一般类。针对它的潜在特殊类提出以下问题: a、它是属于该问题域吗? b、它是该系统的任务吗? 存在继承性吗 d、特殊类满足类一&一与对象的准则吗? 以类似的方式,将每个类考虑为特殊类,并对它的潜在泛化类提出同样的

泛化——特化结构线的端点位置表明这是类(而不是对象)之间的映射。 每个特化类的名字必须能充分地反映它自己的物征。比较合适的特化类名 字可由相应的泛化类名加上能描述该特化类性质的形容词来组成。如对于名为 Sensor(传感器)的泛化类,其特化类可称为 StandardSensor (标准传感器)或 CriticalSensor (精密传感器)而不称为 Critical(标准)。 所有最底部的特化类必须使用“类—&—对象”符号,而其他地方即可用 “类—&—对象”符号也可用类符号。如下图所示的实例。 ②定义一般——特殊结构的策略 将每个类看成一般类。针对它的潜在特殊类提出以下问题: a、它是属于该问题域吗? b、它是该系统的任务吗? c、存在继承性吗? d、特殊类满足类—&—与对象的准则吗? 以类似的方式,将每个类考虑为特殊类,并对它的潜在泛化类提出同样的

问题。尤其是与以前类似问题的面向对象分析结果比较来寻找可以直接重用的 泛化一一特化结构并吸取有关教训。如果存在许多特化类,则首先考虑最简单 的和最复杂的特化类,然后处理其他的。如考虑对象“飞机”,它可以按不同的 分类方式来进行特化: 军用和民用,喷气和普通,固定机翼与可变机翼,商用和私人,在航行中 的和在地面上的 在每一种情况下,查看潜在的属性和方法。检査特化对象之间的区别:同 时检验它们是否是真实的特化类。如汽车和飞机。另外还要考虑是否该特化类 属于该问题域 其次,将某个类看作特化类。那么,是否从该问题域中的其他类就能找到 个泛化类,且它能表示共同的属性、方法或两者呢?是否泛化对象反映了真 实的泛化?是否泛化对象本身仍在问题域的范围内? 采用继承来显式表达属性和方法的共同部分,可以实现在一般特殊结构中 恰当地分配 属性和方法。将共同的属性和方法放在上层,而将特有的 属性和方法放在下层 泛化一一特化结构的准则之一就是它是否反映了问题域中的泛化一一特化 关系。 ③层次与网络 每个一般特殊结构均形成层次或网络。在实践中泛化——特化结构的最普 通形式就是层次(如下图所示)。 Person LegalName Address OwmerPerson ClerkPerson ClerkOwnerPerson Critizenof DateOfBori th Citizens Useridenti fication DateOfBirth Password User identification Photo P ThumbPrint Photo ThumbPrint 在本例中, Person(人)是 Owner(所有者)、或 Clerk(工作人员)或是 一个 Clerk兼 Owner,这一层次的特化类中就存在着一些冗余信息。 借助于泛化一一特化网络还可以研究其他问题域的持化类,而且还可以显 式地表示更多属性和方法的公共部分。 下图中的例子表明在某个问题域中的 Person是一个 Owner、一个Clek或 两者。特化类 Owner Clerk Person描述了一个有着多重直接泛化类的类,它表明 一个对象继承了来自其祖先的属性和方法。而且如果这个类本身还有属性和方

问题。尤其是与以前类似问题的面向对象分析结果比较来寻找可以直接重用的 泛化——特化结构并吸取有关教训。如果存在许多特化类,则首先考虑最简单 的和最复杂的特化类,然后处理其他的。如考虑对象“飞机”,它可以按不同的 分类方式来进行特化: 军用和民用,喷气和普通,固定机翼与可变机翼,商用和私人,在航行中 的和在地面上的。 在每一种情况下,查看潜在的属性和方法。检查特化对象之间的区别;同 时检验它们是否是真实的特化类。如汽车和飞机。另外还要考虑是否该特化类 属于该问题域。 其次,将某个类看作特化类。那么,是否从该问题域中的其他类就能找到 一个泛化类,且它能表示共同的属性、方法或两者呢?是否泛化对象反映了真 实的泛化?是否泛化对象本身仍在问题域的范围内? 采用继承来显式表达属性和方法的共同部分,可以实现在一般 特殊结构中 恰当地分配 属性和方法。将共同的属性和方法放在上层,而将特有的 属性和方法放在下层。 泛化——特化结构的准则之一就是它是否反映了问题域中的泛化——特化 关系。 ③层次与网络 每个一般特殊结构均形成层次或网络。在实践中,泛化——特化结构的最普 通形式就是层次(如下图所示)。 在本例中,Person (人)是 Owner(所有者)、或 Clerk(工作人员)或是 一个 Clerk 兼 Owner,这一层次的特化类中就存在着一些冗余信息。 借助于泛化——特化网络还可以研究其他问题域的持化类,而且还可以显 式地表示更多属性和方法的公共部分。 下图中的例子表明在某个问题域中的 Person 是一个 Owner、一个 Clerk 或 两者。特化类 OwnerClerkPerson 描述了一个有着多重直接泛化类的类,它表明 一个对象继承了来自其祖先的属性和方法。而且如果这个类本身还有属性和方

法,则它们将出现在特化类 Owner ClerkPerson中 Person LegalNane Address OwnerPerson ClerkPerson Critizenof DateOfBorith Userldentification Password Photo ThumbPrint OwnerClerkPerson 因此,网络能描述复杂的特殊类;能有效地表示公共部分;对模型的复杂 程度影响较少。 随着特化类的增加,网络结构将变得非常复杂。此时可考虑将网络的某一 部分重新组合为另一个层次。同时要注意到在一个以上的直接泛化类中使用相 同的属性名会导致类一&一对象规范的严重混乱 泛化一一特化结构网络可以表示两个不同泛化一一特化结构的重叠或者组 合(如下图所示)。 Client Person OrganizationClient Indivi dualClientPerson EmployeePerson Indivi dualclientEmployeePerson (2)、如何定义整体一部分结构

法,则它们将出现在特化类 OwnerClerkPerson 中。 因此,网络能描述复杂的特殊类;能有效地表示公共部分;对模型的复杂 程度影响较少。 随着特化类的增加,网络结构将变得非常复杂。此时可考虑将网络的某一 部分重新组合为另一个层次。同时要注意到在一个以上的直接泛化类中使用相 同的属性名会导致类—&—对象规范的严重混乱。 泛化——特化结构网络可以表示两个不同泛化——特化结构的重叠或者组 合(如下图所示)。 (2)、如何定义整体—部分结构

在面向对象分析中,整体——部分关系对于在问题域和系统任务的边界区 域中识别类一&一对象是非常有用的。同时它还能将具有特殊的整体一一部分关 系的类一&一对象组织到一起 ①表示法 整体——部分结构可用下图表示:在顶部是一个整体对象(用类一&一对象 符号表示的对象),下部是部分对象(用类一&一对象符号表示的对象),它们之 间用线(结构线)连接。三角标记表明这是整体—一部分结构。这种表示法是 有向的。将整体放在上部而将部分放在下部可以使模型便于理解。根据该模型, 整体可有多个部分,也可有不同种类的部分。整体一一部分结构线的终点位置 反映了对象之间(而不是类之间)的映射。整体—一部分结构线的每一端都标 有一个量或区域,它表示该整体拥有的部分数。 Whole 0, Part1 Part 2 在下图所示的例子中, Aircraft是一个整体,它可能:没有 Engine;最多有 四台 Engine。并且 Engine是一个部分,它可能:不是 Aircraft的一部分;至多 是一架 Aircraft的一部分。 Aircraft Engine ②策略 略由两部分组成,一部分是确定什么,另一部分是考虑什么 确定什么 当确定潜在的整体—一部分结构时,考虑以下的变种情况 总成 部件 容器 内容 集合 成员 此外,还应査看从前相同和类似问题的面向对象分析结果。确定能直接重 用的整体一一部分结构,并吸取有关的教训 现在考虑整体一一部分结构的变种。如下图,一架 Aircraft是一个总成,而

在面向对象分析中,整体——部分关系对于在问题域和系统任务的边界区 域中识别类—&—对象是非常有用的。同时它还能将具有特殊的整体——部分关 系的类—&—对象组织到一起。 ①表示法 整体——部分结构可用下图表示:在顶部是一个整体对象(用类—&—对象 符号表示的对象),下部是部分对象(用类—&—对象符号表示的对象),它们之 间用线(结构线)连接。三角标记表明这是整体——部分结构。这种表示法是 有向的。将整体放在上部而将部分放在下部可以使模型便于理解。根据该模型, 整体可有多个部分,也可有不同种类的部分。整体——部分结构线的终点位置 反映了对象之间(而不是类之间)的映射。整体——部分结构线的每一端都标 有一个量或区域,它表示该整体拥有的部分数。 在下图所示的例子中,Aircraft 是一个整体,它可能:没有 Engine;最多有 四台 Engine。并且 Engine 是一个部分,它可能:不是 Aircraft 的一部分;至多 是一架 Aircraft 的一部分。 ②策略 策略由两部分组成,一部分是确定什么,另一部分是考虑什么。 a、确定什么 当确定潜在的整体——部分结构时,考虑以下的变种情况: 总成 —— 部件 容器 —— 内容 集合 —— 成员 此外,还应查看从前相同和类似问题的面向对象分析结果。确定能直接重 用的整体——部分结构,并吸取有关的教训。 现在考虑整体——部分结构的变种。如下图,一架 Aircraft 是一个总成,而

Engine则是该总成的部件。 Aircraft 0,4 Er ngine 如下图,如果将 Aircraft考虑成一个容器,则 Pilot(飞行员)就是容器中 的内容 ircraft m 如下图,如果将 FlightSegment(飞行段)看成是成员,则 FlightPlan(飞行 计划)就是它们中的“有序”集合。 FlightPlan ight Segmer 该“有序”约束可在整体的类一&一对象规范中指定 如下图领域专家运用集合—一成员关系(思维模型)来分析复杂问题(如 下图)

Engine 则是该总成的部件。 如下图,如果将 Aircraft 考虑成一个容器,则 Pilot(飞行员)就是容器中 的内容。 如下图,如果将 FlightSegment(飞行段)看成是成员,则 FlightPlan(飞行 计划)就是它们中的“有序”集合。 该“有序”约束可在整体的类—&—对象规范中指定。 如下图领域专家运用集合——成员关系(思维模型)来分析复杂问题(如 下图)

Missio 0,1 0,1 Flight Segmen b、考虑什么 在将每个对象看成整体的前提下,针对它的潜在部分,考虑下列问题: 是否属于该问题域? 是否属于该系统的任务? 所反映的是多个状态值吗? 是否提供了有价值的抽象? 同样,在将每个对象看成部分的前提下,对每个潜在的整体考虑同样的问 (3)多重结构 多重结构包括泛化一一特化结构、整体一一部分结构或两者的各种组合结 构。多重结构通常是自顶向下的,但有时也可用实例连接来依次映射。 、识别主题 、什么是主题 在面向对象分析中,主题是一种知道读者或用户研究大型复杂模型的机制 在初步面向对象分析的基础上,主题有助于分解大型项目以便建立工作小组。 主题所提供的机制可控制一个用户必须同时考虑的模型数目。同时它还可 以给出面向对象分析模型的总体概貌 主题所依据的原理是整体一部分关系的扩充。因此,识别主题的主要基础 是以泛化——特化结构和整体一—部分结构为标志的问题复杂性。在这种方式 下,主题就是用来同整个问题域和系统任务这个“总体”进行通讯的“部分” 2、为什么要识别主题 真实系统有着大量的对象和结构。任何方法及其应用是否成功的一个重要 标志就是它应该提供好的通信条件以避免分析人员和用户的信息过量。 人类的短期记忆能力限于一次记忆5-9个对象。这就是著名的7加减2原 则。面向对象分析从控制可见性和指导读者的注意力这两个方面来贯彻这一原 则 首先通过控制分析人员能见到的层次数目来控制可视性;如在分析的5个 层次中,读者可选择只看对象和结构层,并在该层操作,也可能只考虑对象、 结构和属性这三个层次。因而事实上可在任何抽象层次上进行操作。 其次可以对读者进行引导。面向对象分析增加了一个主题层,它可以从 个相当高的层次来表示总体模型。该主题曾能知道读者观察模型,总结问题域

b、考虑什么 在将每个对象看成整体的前提下,针对它的潜在部分,考虑下列问题: 是否属于该问题域? 是否属于该系统的任务? 所反映的是多个状态值吗? 是否提供了有价值的抽象? 同样,在将每个对象看成部分的前提下,对每个潜在的整体考虑同样的问 题。 (3)多重结构 多重结构包括泛化——特化结构、整体——部分结构或两者的各种组合结 构。多重结构通常是自顶向下的,但有时也可用实例连接来依次映射。 三、识别主题 1、什么是主题 在面向对象分析中,主题是一种知道读者或用户研究大型复杂模型的机制。 在初步面向对象分析的基础上,主题有助于分解大型项目以便建立工作小组。 主题所提供的机制可控制一个用户必须同时考虑的模型数目。同时它还可 以给出面向对象分析模型的总体概貌。 主题所依据的原理是整体—部分关系的扩充。因此,识别主题的主要基础 是以泛化——特化结构和整体——部分结构为标志的问题复杂性。在这种方式 下,主题就是用来同整个问题域和系统任务这个“总体”进行通讯的“部分”。 2、 为什么要识别主题 真实系统有着大量的对象和结构。任何方法及其应用是否成功的一个重要 标志就是它应该提供好的通信条件以避免分析人员和用户的信息过量。 人类的短期记忆能力限于一次记忆 5—9 个对象。这就是著名的 7 加减 2 原 则。面向对象分析从控制可见性和指导读者的注意力这两个方面来贯彻这一原 则。 首先通过控制分析人员能见到的层次数目来控制可视性;如在分析的 5 个 层次中,读者可选择只看对象和结构层,并在该层操作,也可能只考虑对象、 结构和属性这三个层次。因而事实上可在任何抽象层次上进行操作。 其次可以对读者进行引导。面向对象分析增加了一个主题层,它可以从一 个相当高的层次来表示总体模型。该主题曾能知道读者观察模型,总结问题域

点击下载完整版文档(DOC)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共25页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有