首页 百科知识 对象的发现和标志

对象的发现和标志

时间:2022-10-09 百科知识 版权反馈
【摘要】:但是,对于发现和标志对象的问题,都仅是普通地讲从系统所涉及的组织、边界、责任等一些原则。因此必须找到切实实用发现对象的技术。目前几乎所有的关于面向对象技术的书,都没有超出已有的技术范围,都不具有自己特有的模型结构和表示方法。应用这个方案的目的是在实际应用中降低对象标志的主观性。上下文图所标志的外部实体表示数据流的源头和目的地。而响应成分则有助于标志一系列发生事件的对象。

9.3 对象的发现和标志

在过去的数据库系统应用软件的开发应用过程中,往往花很大的精力为一个单位开发一个系统。开始使用时无论各方都认为具有一定的水平。但是使用不久发现用面向对象的分析方法失败的迹象显露出来。这倒不是面向对象的分析本身的问题。有经验的系统开发人员会清楚地解释。大多数系统变量的变更都涉及单位里为了适应形势的发展而制定的策略的变更。事实上,一个系统中根本就不存在策略变更问题的对象。但是策略变更问题是遍布在整个系统之中的。这就是应用系统软件在使用过程中常常出现一旦某个地方的策略变更时,整个系统通常都要进行大量的改变的原因。

按照一般的道理,面向对象技术应能够提高软件的开发的质量和生产率,但是面向对象的这种优势只要在正确地标志了对象集合的基础上才能体现出来。

对于一个给定的问题域,一个合适的对象集合能够保证可复用性、提高可扩充性,并能借助面向对象的开发模式,提高软件产品的质量和生产率。没有一个规范的建立对象的方法,软件开发人员只能承受因为胡乱建立对象的风险。不少书里面都介绍了面向对象的技术。但是,对于发现和标志对象的问题,都仅是普通地讲从系统所涉及的组织、边界、责任等一些原则。作为一个软件开发人员,对于这些原则理解很容易。但是对于一个具体的系统而言,如何发现对象,却缺少一个形式化的东西。

为此,在这里介绍一些有助于发现对象的实用技术。

9.3.1 动机

作为软件开发人员,所关心的是使事物正常运作。因此必须找到切实实用发现对象的技术。目前几乎所有的关于面向对象技术的书,都没有超出已有的技术范围,都不具有自己特有的模型结构和表示方法。在分析过程的开始阶段建立初始对象集合时,就会发现这些书上所讲的一般方法是很肤浅的。而错误地选择对象则会对工程的圆满完成造成巨大的影响。

要解决这样的问题时,首先要知道事物的属性和服务(功能)。另外,所有传统的系统分析工具的主要功能是定义数据和说明操作,那么,从某种意义上说,传统的分析工具对于发现对象具有非常重要的作用。

可以用传统的三种系统分析工具:数据流图、实体一关系图和状态一变迁图。这些工具都涉及了系统的三个不同的独立方面。将这些工具应用于软件的分析过程中,称其为三视图(3VM)。

第二个观点是对象的基本特性。对象与应用问题域的概念是紧紧结合在一起的。为了能够真正找到合适的对象,必须清楚地标明和定义问题域中的概念。对于问题域的理解一直是软件系统分析的难点,这是一个非形式化的主观过程。

在软件的系统分析过程中,我们对概念的处理主要是基于书面或口语的自然语言。到目前为止,将一些自然语言规则应用于系统分析方面已有一些成果。把这种将语言规则应用到软件系统分析的处理称为基于语言的信息分析(Linguistic_based Information Analysis,简称LIA)。

9.3.2 方法

将面向对象分析中发现对象的方法过程用图9-5表示。

img158

图9-5 发现对象概要

上图说明了如何用3VM和LIA应用于发现对象的过程。后面,将对这两项技术进行详细介绍。这里要指出,3VM和LIA是有别于且独立于面向对象分析的活动。另外,从图中可以看出,这些技术的应用是一个不断反复的过程。应用这个方案的目的是在实际应用中降低对象标志的主观性。

9.3.3 三视图模型(3VM)

关于数据流图、实体.关系图和状态一变迁图在软件分析中的使用已非常普遍。由于一个系统的不同三视图模型的构造对于发现对象是非常有用的。

1.实体—关系模型

众所周知,数据流图是OOA的一个有力前哨。实体很有可能成为对象,而那些实体的属性则表示成最终要由对象存储的数据。实体间的关系有可能将建立关联对象。而所谓关系的基数和条件则有可能成为维持这些关系的服务。

尽管实体。关系图是发现对象的有力工具,但是也发现在应用时存在一些问题。首先,标志的实体可能与应用的问题域无关,特别是系统分析员企图用第三范式来建立实体时。而且,实体—关系图对于那些不需要存储的数据对象显得非常无力。例如,那些识别事件发生的对象或执行一个控制功能的对象,就是属于这样一类。

2.数据流模型

数据流模型有两种模型,都是发现对象的有力工具。

首先是上下文图。用它以确定系统的边界,系统边界从系统分析的角度讲是非常重要的。

上下文图所标志的外部实体表示数据流的源头和目的地。因此,外部实体就是候选对象。上下文图的数据流代表了该系统的输入输出。任何一种对象集合都必须说明这些上下文图中的数据流是如何被接受和处理以及生产的。

在系统具有一定规模的情况下,还会产生分层数据流图集合。这个模型表明,将待开发的系统功能分解为一些基本单元。这些基本单元又可以视为是一些详细说明或基本处理说明。而这些基本处理说明最后必须对应于对象的方法和服务。

3.状态—变迁模型

状态一变迁模型有两种形式,它都是发现对象的有力工具。

第一种是事件响应模型。对于发现对象是非常有用的。这个模型标志出了系统必须进行识别所发生的每一件事,以及系统必须做出的预期的响应的事件。这个模型的事件成分有助于标志一系列的识别事件的对象。而响应成分则有助于标志一系列发生事件的对象。

在一些特别情况下,为系统建立一个或若干个状态一变迁图是很有用的。除了能够标志识别事件的对象和发生事件的对象外。这种状态一变迁图还有助于标志保存状态信息属性。

必须说明,并不是所有的三视图模型对每一个系统都有用。例如一个系统分析员对一个柜员机控制系统建立模型时所用的工具就不同于仓库监控系统。

9.3.4 基于语言的信息分析系统

前面我们介绍的三视图模型尽管是非常有用的。但是,它不能专门用于指导正确的标志新系统的对象集合。判断、直观感觉和洞察力仍然支配着发现对象的过程。

基于语言的信息分析则在发现对象的方面起着重要的作用。而且,基于语言的信息分析也同样有助于标志对象的成分。因此,三视图模型有一定的重叠。

基于语言的信息分析的目的是标志出问题域的概念空间及其这些概念的关系。主要介绍短语频率分析(Phrase Frequency Analysis—FA)和矩阵分析(Matrix Analysis即MA)。

这两种技术都需要建立资源仓库。资源仓库包括相关的档案、模型、软件、人员以及问题域和系统知识的其他资源。如果问题域具有参考材料,那么这些参考材料必须包含在资源库中。

资源库中可能还包含一些信息:

(1)访问记录。

(2)形式或非形式的规格说明书。

(3)已有的或相关系统的用户手册。

(4)打印格式。

(5)日志。

所有这些资源都包含文本库,而语言的信息分析技术可应用于该文本库。

语言的信息分析技术通常只是应用于资源库的某个子集。这取决于系统分析员希望将什么样的视图用于问题域。通常,与应用有关的资源所产生的结果同与开发系统的规格说明有关的资源所产生的特定结果会有所不同。

短语频率分析搜索选定的资源文本,以标识可以表示问题域概念的术语。用一个二维表列出对某个问题域进行描述的短语频率分析时,得出描述问题的所有短语结果清单。这种清单的建立基本上是一个客观的过程。但是在审查清单时会发现,许多概念是无关的。认为短语频率分析的一个很大优点是能够广泛地标志问题域的概念集合。并对其进行评估,得出哪些是有关的哪些是无关的。

表面上看,短语频率分析类似于建立数据模型的技术,实际上,短语频率分析与它们大不相同。因为名词/动词的标志是非常主观的,它们基于什么是名词/动词以及分析员的理解,才能确定那些名词/动词是要找到的。另一方面,短语频率分析是标志概念而不是标志语法单元。所建立的短语频率分析清单并不受建立清单的人的很大影响。

任何一个有用的问题域的资源,它的短语频率分析可能会产生一个长长的清单。其中有许多是无关的。此外,都成为OOA模型的成分。

将短语频率分析清单转换OOA/OOD的工作表是非常有用的。如图9-6所示显示了这类工作表。

img159

图9-6 应用LIA技术的工作表

(0)不合适,可能无关。

(1)可能的对象……类。

(2)可能是子/超类。

(3)可能描述对象一类的属性/关系。

(4)可能描述对象的服务。

(5)与实现无关。

(6)可能属于人机交互

(7)可能属于任务管理。

(8)可能属于数据管理。

OOA/OOD工作表提供了一种系统的方法,它可以用于评审相当长的短语频率分析清单并标出其OOA的成分初始集合。

矩阵分析方法是一种比短语频率分析方法更复杂、实现起来更困难的技术。而且通常是在初始对象标志出来后再使用矩阵分析技术。

矩阵分析方法也是一个二维表。这个矩阵的行和列是问题域的概念,这些概念通常可以盘生所标志对象的初始集合。例如,杂志订阅系统可以构造如图9-7所示的矩阵。

img160

图9-7 杂志订阅系统构造的矩阵

矩阵中的元素表示了相对应的行与列上的概念之间的关联关系。虽然初始矩阵可以从资源中机械地产生出来,但是发现矩阵分析方法作为一种使用的工具是非常有用的。分析员可以逐个元素地评价这个矩阵,标志问题域的关系。而且分析还可以新发现在初期的短语频率分析中没有产生的对象。

就问题域而论,这样的矩阵一般会有N维。但是在实际上只需要一个二维矩阵就可以了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈