文档库 最新最全的文档下载
当前位置:文档库 › 面向对象方法 第三章(3.6-)

面向对象方法 第三章(3.6-)

面向对象方法 第三章(3.6-)
面向对象方法 第三章(3.6-)

3.6交互图

交互图主要是用来描述对象之间的动态协作关系以及协作过程中的行为次序。它常常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况。交互图有两种形式,即顺序图和协作图,它们分别从不同的侧面来描述对象间的交互关系。

本节将以下面一个简单的例子来进行阐述。有一份订单并着手对他施行一个计算价格的命令。为此,订单需要查看其上的所有订单项,并决定这些订单项的价格,这是以各个订单项的产品定价规则为基础的,对所有的订单项都这样做好后,订单需要计算一个基于顾客规则的总折扣。

3.6.1 消息

在面向对象技术中,对象间的交互是通过对象间消息的传递来完成的。在UML的四个动态模型中均用到消息这个概念。通常,当一个对象调用另一个对象中的操作时,即完成了一次消息传递。当操作执行后,控制便返回到调用者。对象通过相互间的通信(消息传递)进行合作,并在其生命周期中根据通信的结果不断改变自身的状态。

在UML中,消息的图形表示是用带有箭头的线段将消息的发送者和接收者联系起来,箭头的类型表示消息的类型,如图所示。

UML定义的消息类型有三种:简单消息

同步消息

异步消息

同步且立即返回

图3-32 消息类型

●简单消息(Simple Message) 表示简单的控制流。用于描述控制如何在对象间进行

传递,而不考虑通信的细节。

●同步消息(Synchronous Message) 表示嵌套的控制流。操作的调用是一种典型的同

步消息。调用者发出消息后必须等待消息返回,只有当处理消息的操作执行完毕后,

调用者才可继续执行自己的操作。

●异步消息(Asynchronous Message) 表示异步控制流。当调用者发出消息后不用等

待消息的返回即可继续执行自己的操作。异步消息主要用于描述实时系统中的并

发行为。

可以将一个简单消息和一个同步消息合并称一个消息,原同步消息的箭头和简单消息的箭头分别放在合并后的消息两端。这样的消息意味着操作调用一旦完成就立即返回。

3.6.2顺序图

顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间。在顺序图(参见图8.1)中,对象用一个带有垂直虚线的矩形框表示,在举行框内标有对象名和类名。垂直虚线称为对象的生命线,它代表在对象之间的交互作用中该对象的生命期。在生命线上的窄巨形条被称作激活(activation),表示该对象正在执行某个操作。激活矩形的长度表示计划的持续时间,既可以直接执行,也可以通过下级过程执行。巨型条的顶部表示动作的开始,底部表示动作的结束。还可以通过将另一个激活放在它的父激活的右边显示。这种表示方法首先由Jacobson 推广使用。两根对象的生命线之间的箭头表示消息。消息的箭头形状指明消息的类型时发送还是返回(如图8.1,从仓库货物类至订单项的箭头表示该消息是一个返回)。消息按发生的时间顺序从上倒下排列。每个消息旁标注消息名:也可加上参数并标注一些控制信息。返回自身生命线的消息箭头叫回授(selfcall),表示对象发送消息给自己。

控制信息由两种。第一种是条件控制信息,它说明在什么情况下才会发送信息(例如,在[needsToReorder()=true]的条件下),消息仅当条件为真时才会被发送。第二种是重复控制信息,它表示消息多次发送给多个作为接收者的对象。这种控制信息通常在当一个对象向某个对象集合中的每一个对象逐个地发送消息时使用(例如*prepare())。

图3-33 顺序图

图8.1是顺序图的示例,由此可见交互图是一种非常简单的扼要的可视化图解,这也正是交互图的优势。同时我们也可看到,顺序图比较适合交互规模较小的可视化图解,如对象很多,交互又很频繁,则将使顺序图变得复杂起来,这是顺序图的一个弱点。

在图8.1种还可以看出,在顺序途中可以使用返回(returen )消息,表示从消息处理中返回,而不是一个新消息。为了画图清晰,经常将返回消息省略掉。

从图8.1还可以看出,一般的对象放在图的顶部,还有一种特殊的消息new 是创建一个对象消息,因此由于该消息而创建的对象放在图中中间位置合适的地方。

在面向对象程序设计中,总体的控制流程往往是最以理解的。很一个好的设计应当将很多小方法放入不同的类中,并且随时能巧妙的指出总体的行为顺序。这样可以十分有效地帮助你加速了解代码。对于首次接触面向对象程序设计的人来说尤其是如此,顺序图可以帮助你看清行为的次序。 并发过程和激活

对于并发过程,顺序图也是很有用的。图8.2显示了一些检查银行交易的对象。在交易出现的同时,它创建了一个交易协调人负责协调交易的审查。协调人创建了一定数量(本例中是2个)的交易审查员对象,每个审查员对象负责一项特定的审查。在这种并发的工作模式下,很容易增加新的审查过程,因为每个审查员无须同时开始工作(异步方式),而整

订单提交窗口 订单 订单项

仓库货物

进货货物

Prepare()

消息

迭代

*prepare()

hasStock:=check()条件

needsReorder:=needsToReorder()

回授

[needsToReorder] new

[hasStock]new

创建

[hasStock]remove()

对象 交付货物

个过程却是平行展开的。

图3-34 并发过程和激活

一个交易审查员对象在完成它的工作后,将通知交易协调人。协调人检查是否所有审查都执行完毕:如果所有审查均以完成并且通过,则协调人通知交易对象审查获得通过;否则协调人不作其他任何工作,而仅仅在等待他所激活但尚未完成审查的交易原来向他汇报工作。

在图8.2所描述的顺序图中引入了一些新的元素,其中一个称为激活。当一个对象的某个方法正在执行中或者正在等待一个子过程的返回时,则称该状态处于激活状态;当一个对象接收到一条消息后启动了某个活动,则称为激活,即这个对象被激活。激活用生命线上一个细长的矩形框表示。许多设计者喜欢使用过多的激活,实际上激活的概念在串行执行过程

交易

交易协调人

第一个交易审查员

第二个交易审查员

激活

异步消息

都完成了吗?

其他处理过 程被省略

对象自行

删除

都完成了吗?

回授

belnvalid new

new new

ok

ok

中并不是很必要的,通常只在并行过程中使用激活。

一个调用程序不会因其发出的异步消息而停止不动,它可以继续执行自己的过程。一个异步消息可以用于以下三种目的:

(1) 产生新线程。这种情况下,箭头指向激活符号的顶端。 (2) 产生一个新对象。 (3) 与正在运行线程通信。

对象的删除用一个大X 表示。如图8.2所示,当大X 没有其他消息触发时,表示对象自行删除。如图8.3所时,当最后一个对象的大X 由其他消息触发时,表示该对象被其他对象发出的消息删除。

图3-36顺序图:审查失败

引入激活机制有助于更清楚地显示回授的各种作用。没有这种激活机制,或者没有这里使用的关于激活的栈式表示法,将很难说清楚回授之后进一步的调用将发生在哪里,应该在调用方法中还是在被调用的方法中。这种栈激活机制为此提供了清晰的表达方式。正因为这种特点,有时在过程型的交互处理中也会利用这种激活机制。

交易 交易协调人

第一个交

易审查员

第二个交易审查员

激活

异步消息

都完成 了吗?

其他处理过 程被省略

对象

都完成了吗?

回授

自行删除

belnvalid

图8.2和图8.3显示了关于交易审查用例的两个情节。尽管UML 中提供了一种方法,是我们可以把这种条件逻辑合并在一张图中,即在一张图中同时表现多个情节,但是这里还是分别用了两张图来描述这种情节。采用合并的做法未必清晰,有时甚至会使图变得过于复杂。在图8.3中,我们还是用了一种非常有用的技术,即在顺序图的左边加注一些文字说明,用来描述所发生的事件。将这些文字与图中的消息联系起来,有助于理解该图。这些内容应当成为正式文档的内容,而不仅仅是在黑板上随意涂抹的草图。

3.6.3协作图

交互图的第二种形式是协作图。协作图也是用来描述对象与对象之间的消息连结关系的,但是它更侧重于说明哪些对象之间有消息传递,而不像顺序图那样侧重于在某种特定的情形下对象之间传递消息的时序性。在协作图中,对象同样是用一个对象图符号来表示,箭头表示消息发送的方向,而消息的执行顺序则由消息的编号来标明。

图3-37 简单编号方案的协作图

与顺序图中从上而下的生命线相比,通过编号来看消息执行的时间顺序显然要困难的多。但是,协作图中对象间灵活的空间布局使我们可以更方便的展示另外一些有用信息,例如,更易于显示对象之间的动态连结关系。

协作图中消息执行顺序的编号方案有很多,可以自行挑选,但最常用的是以下两种方案:

订单提交窗

订 单

电视库存:仓库货物

1:prepare()

2*: prepare() 3: check() 回授 4: [check==true]remove()

:交付货物

:进货货物 [check==true]new

6:new

对象

消息

时序号

电视栏目:订单项

图8.4使用的是最简单的一种编号方案,从1开始,由小到达顺序排列;而图8.5使用的则是一种小数点制编号方案,其中整数位常常用来表示模块号。

不少人喜欢使用简单的编号方案。但是,为了使操作之间相互调用关系更加清楚,UML 使用了小数点方案。虽然消息执行的全局顺序已经不是协作图所要说明的重点,但是,不管使用什么编号方案,顺序图中展示的各种控制信息还是应当加到协作图上。

3.6.4顺序图和协作图的比较

不同的软件工程师可能偏好不同形式的交互图。例如:有些人喜欢使用顺序图,因为顺序图突出使用执行的时序,能更方便地看出事情发生的次序。也有些人更喜欢协作图,因为协作图的布局方法能更清楚的表示出对象之间静态的连结关系。那么如何选择呢?一个最基本的原则是用哪种图更简明清楚则选用哪种图。

3.6.5 何时使用交互图

总的来讲,交互图能清楚的显示消息机制。然而,当消息中有太多的条件或循环时,交互图就失去其简明性。交互图仅适用于条件判断和循环不太多的时序过程,一旦条件判断或循环太多,交互图就不太实用了。

当带有很多条件行为时,应当采用什么方法来表示呢?由两个不同的思路,一个是对每个判断都单独绘一个图,另一个是用带条件判断的消息表示。一般来讲,前者更加简明。

:订单提交窗

:订单

电视栏目:订单项

:交付货物

电视库存:仓库货物

:进货货物 时序号

1:prepare()

1.1.1:check()

Needs torecorder()

1.1.2:[check==true]remove()

1.1*:prepare

1.1.3:[check==true]new

1.1.

2.2:new

图3-38 带层次编号的协作图

当行为比较简单时,交互图是最好的图。但是当行为变得比较复杂时,交互图就迅速失去其清晰度。如果想在一张图中表示复杂的行为,则应当使用活动图。

如果要描述在一个用例中的几个对象协同工作的行为,交互图是一种有力的工具。交互图擅长显示对象之间的合作关系,尽管它并不对这些对象的行为进行精确定义。

如果想描述跨越多个用例的单个对象的行为,应当使用状态图。如果想描述跨越多个用例或多个线程的复杂行为,则需要考虑使用活动图。

3.7 状态图

状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件。大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为。一个状态图包括一系列的状态以及状态之间的转移。

所有对象都具有状态,状态是对象执行了一系列活动的结果。当某些事情发生后,对象的状态将发生变化,我们称改变对象状态的事情为“事件”,状态图用来显示对象对事件的反应以及对象状态的改变。状态图中定义的状态有:初态、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只能有一个初态,而终态则可以有多个。初态用一个黑圆点表示,终点用黑圆点外加一个圆表示(很像一只牛眼)。状态图中的状态用一个圆角四边形表示。状态之间为状态转换,用一条带箭头的线表示。引起状态转换的事件可以状态转换线旁边的标签表示。当事件发生时,状态转换开始。

一个状态一般包含三个部分,如下图所示,第一部分为状态的名称,第二部分为可选的状态变量的变量名和变量值。变量(属性)至状态图中类的属性。第三部分为可选的活动表,列出有关事件和活动。在活动表中,常常使用下面三种标准事件:进入、退出、做(do)。进入事件用来指定进入一个状态时的活动,退出事件用来指定退出一个状态的活动,做事件用来指定在该状态下的活动。活动部分的语法如下:

事件参数表/ 活动表达式。

事件可以是任何事件,包括上述三种标准事件。活动表达式用来指定应该进行何种活动。有时还需要为事件指定一些参数。

名字

状态变量

活动

图3-39 状态的三个组成部分:名字、状态变量、活

状态图中状态之间带箭头的连线被称为转移。状态的变迁通常是由事件触发的,此时应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。转移的语法表示如下:

事件[守卫条件]/动作表达式

其中事件的表达如下:

事件名{参数}

其中守卫条件是状态转移的一个布尔表达式。如果将守卫条件和事件说明放在一起使用时,则当且仅当事件发生且布尔表达式成立时状态才发生转移。如果状态转移只有守卫条件这一个条件,则只要守卫条件为真,状态就发生转移。动作表达式是一个过程表达式,当状态转移开始时执行。

转移中使用的术语是“动作”,而在状态中使用的术语是“活动”。尽管它们都是一种过程,都是有对象中的方法实现,但是处理它们的方式有所不同。动作与转移关联,能被极快处理且不会被中断。活动和状态关联,持续时间长且可以被一些事件中断。

转移中的事件表示输入,当状态中的活动完成后,并且当相应的输入事件发生时,转移才会发生。有的转移上没有标明引发转移的条件的事件,则表示状态中的活动一旦完成,转移不需要等待任何输入,便立即发生转移。

下图是定单处理系统中的一个订单对象的状态图。该图显示了订单具有的各种状态及转移情况。

在本例中从检查状态出来的三个转移,其中只有回授表有“get next item ”的事件,其它两个没有表明引发转移的事件。这就意味着当完成“do/check item ”这个活动的同时,只要条件具备转移立即发生。

对于一个给定状态,最终只能产生一个转移。因此从相同状态出来的、事件相同的几个转移之间的条件应该是互斥的。从上例中也能看出。

我们看一下等待状态。该状态没有活动,因此这个状态只是等待一个事件。从等待状态引出的两个转移都标有“item received ”事件,因此这个状态表示订单对象要一直等待直到“item receive ”这个事件发生为止。在这个事件发生后,它计算转移的条件并做出相应的转移,即转移到“发货状态”或回到“等待状态”。

在发货状态中,有一个“do/initiate delivery ”(启动发货)的活动。同时还有一个由发货事件触发的、未附加任何检查条件的简单转移。这表明该事件一旦发生,该转移必将发生。但是需要注意的是,当活动完成时,该转移并不会立即发生,还必须等待发货事件的发生,否则订单仍将保持发货状态。

检查状态 do/check

item

/get first item

[no all items checked] / Get next item

发货状态 do/initiate delivery

[all items checked &&all items available] 等待状态

[all items checked &&some items not in stock]

Item received[some

item not in stock]

Item received[all items available]

已发货状态

Deliver item

图3-40 状态图

如果考虑到该对象还有一个撤销状态,希望交付以前在任何状态都可以撤销订单。通过从检查、发货、等待每一种状态都能转移到撤销状态。

从图3-41看到,三个状态都可以转移到撤销状态。这个图的转移的箭头交叉得太多,不易阅读,因此进入超态(superstate )的概念。

三个状态(检查、发货和等待)共同构成超态,叫做Active 。从超态只需要一个转移到撤销状态。但是从发货状态到已发货状态的转移必须从超态内部的状态转移到外部的已交付状态。

图3-41 无超态状态图

检查状态 do/check

item

/get first item

[no all items checked] / Get net item 发货状态 do/initiate delivery

[all items checked &&all items available] 等待状态

[all

items checked &&some items not in stock] Item received[some item not in stock]

Item received[all items available]

已发货状态

Deliver item

撤销状态

Cancel

Cancel

状态图适合于描述跨越多个用例的单个对象的行为,而不适合于描述多个对象之间的行为协作。为此常常将状态图与其它技术组合使用。

状态图确实有用,但不要对系统中的每个类都画它的状态图。在理论上讲,如果能刻画每个类的状态图,就可以准确描述每个类的动态行为。但是这样要花费大量精力,而且也没有必要。事实上,我们关心的是某些关键类的行为,为此为这些类建立状态图可以帮助我们理解所研究的问题,在这种情况下才有必要绘制状态图。

检查状态 do/check

item

/get first item [no all items checked] / Get net item 发货状态 do/initiate delivery

[all items checked &&all items available] 等待状态

[all items checked &&some items not in stock] Item received[some item not in stock]

Item received[all items available]

已发货状态

Deliver item

图3-42 有超态的状态图

已发货状态

Cancel

Active

3.8 活动图

3.8.1 概述

活动图是显示从活动到活动的流。一个活动是一个状态机中进行的非原子的执行单元。活动最终导致一些动作。这些动作由可执行的原子计算组成,这些计算会导致系统状态的改变或一个值得返回。动作包括调用另一个操作,发送一个信号,创建或撤销一个对象,或者某些纯计算,例如对一个表达式求值。在图形上活动图是顶点和弧的集合。

活动图是状态图的一个变种,与状态图的目的有一些小的差别。活动图的主要目的是描述动作(执行的工作或活动)以及对象状态改变的结果。当状态中的动作被执行时(不象正常的状态图,它不需指定任何事件),活动图中的状态(称作动作状态)直接转移到下一阶段。活动图和状态图的另一个区别是活动途中的动作可以放到划分(泳道)中去。划分聚合一组活动,并指定负责人和所属组织。活动图是另一种描述交互的方式,描述采取何种动作,做什么(对象状态改变),何时发生(动作序列),以及在何处发生(泳道)。

活动图可以用作下列目的:

(1)描述成操作执行过程中(操作实现的实例化)所完成的工作(动作)。这是活动图最常用的用途。

(2)描述对象内部工作。

(3)显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。

(4)显示用例的实例是如何执行动作以及如何改变对象状态的。

3.8.2 转移

当一个状态的动作或活动结束时,控制流会马上传递下一个动作或活动状态。可以用转移来说明这个流,显示从一个动作或活动状态到下一个动作或活动状态的路径。从语义上讲,这些转移被称作无触发转移,或完全转移,这是因为一旦原状态的工作被完成,控制会立即传送。一旦一个给定的源状态的动作完成,就执行该状态的退出动作(如果有)。接着控制就不加延迟地转移到下一个动作或活动状态。

动作之间的转移用箭头表示,通常箭头上不带任何东西,表示只要动作状态的所有活动一完成转移就开始。从语义上讲这些转移被称作无触发转移或完全转移。

3.8.3 分支

用守卫条件来约束转移,只有守卫条件为真时转移才开始。守卫条件的语法规则与状态图中的守卫条件的语法规则一致。用守卫条件来决策,就是分支。分支描述了基于某个布尔表达式的可选择的途径。如图3-42所示,用一个钻石形来表示分支。一个分支可以有一个进入转换和两个或多个离去转移。在每个离去转移上放置一个布尔表达式,它只在进入这个分支时被判断一次。在所有这些离去转移中,其守卫条件不应该重叠(否则,控制流将是模糊的),但是他们应该覆盖所有的可能性(否则,控制流可能会冻结)。

为了方便,可以使用关键字else 来标记一个离去转移,它表示如果其他的守卫条件表达式都不为真时所执行的路径。

为了获得迭代的效果,可以用一个动作状态设置迭代器的值,用另一个动作状态增加该迭代器的值,并用一个分支来判断该迭代是否结束。

Select site

Commission architect

图3-41 无触发转移

Release work order

Reschedule

Assign tasks [materials not ready]

监护表达式

分支

守卫表达式 [materials ready] 图3-42分支

3.8.4分叉和汇合

简单的和具有分支的顺序转换是活动图中最常见的路径。然而,尤其当你对业务过程的工作流建模时,可能会遇到并发流。在UML中,用一个同步棒来说明这些并发控制流的分叉和汇合。一个同步棒是一条粗的水平或垂直的线(每个并发控制流存在于一个独立的主动对象的语境中,通常被建模为一个进程或线程)。

例如,在模拟人讲话和作手势时的听觉模拟装置中,考虑它的并发控制流。如图3-43所示,一个分叉表示把一个单独的控制流分成两个或更多的控制流。一个分叉可以有一个进入转移和两个或更多的离去转移,每一个转移表示一个独立的控制流。在这个分叉之下,每一个路径相关的活动将并行地继续。从概念上说,这些流中的每一个流的活动都是真实的并发,尽管在一个运行的系统中,这些流即可以是真实的并发(在系统被装配在多个节点上的情况下),也可以是顺序但又交替的(在系统只装配在一个节点上的情况下),因此只给出真实并发的图示。

像图中还显示的那样,一个汇合表示两个或更多的并发控制流的同步发生。一个汇合可以有两个或多个进入转移和一个离去转移。在该汇合的上面,与每一个路径相关联的的活动并行地执行。在汇合处,并发的流取得同步,这意味着每个流都等待着,直到所有进入流都到达这个汇合处,然后,在这个汇合的下面,只有一个控制流从这一点继续执行。

Prepare for speech

Decompress

Gesture ()

Synch mouth () Stream audio ()

Cleanup 分叉

汇合

图3-43 分叉与汇合

3.8.5划分(partition)

划分将一个活动图中的活动状态分组,每一组表示负责那些活动的业务组织;尤其当你对业务过程的工作流建模时,划分是很有用的。划分的一个简单一种简单划分是一维划分,这种方式往往称为泳道。在UML 1中,每个组被称为一个泳道,因为从视觉上,每组用一条垂直实线吧它与邻居分开,如图3-44所示。一个泳道说明一个活动轨迹。

在UML2 中,可以用二维的格,所以适用泳道概念就不合适了。

Customer Sales Warehouse

Request product

泳道

Process order

Pull materials

Ship order

Receive order Bill customer

Pay bill

Close order

图3-44 泳道

每个泳道在图中都有一个唯一的名称。泳道出了可能代表现实世界的某些实体之外,实

际上没有很深的语义。每个泳道代表一个活动图的全部活动中部分活动的高层职责,并且每

个泳道最终可能由一个或多个类实施。在一个被划分为泳道的活动图中,每个活动都明确的

属于一个泳道,而转移可以跨越泳道。

3.8.6对象流

对象可以被包含在与一个活动图相关的控制流中。例如,在上图处理定购的工作流中,问题空间的词汇中也将包含像Order(定购)和Bill(付账)这样的类。这两个类的实例将由一定的活动生成(例如:Process order将创建一个Order对象);其他的活动可能修改这些对象(例如Ship order将把order对象的状态变为filled)。

Customer Sales Warehouse

Request product

Process order

Pull materials

O:Order

[in progress]

Ship order

Receive order Bill customer O:Order [filled]

Pay bill B:Bill 对象流

对象状态

活动图能表示对象的值流和控制流。对象流状态表示活动中输入或输出的对象。对输出值而言,虚线箭头从活动指向对象流状态。对输入值而言,虚线箭头从对象流状态指向活动。如果活动有多个输出值或后继控制流,那么箭头背向分叉符号。同样,多输入箭头指向结合符号。

如图3-45所示,描述一个活动图中所涉及的事物,可以通过把这些对象放置在活动图中,并用一个依赖将它们连接到对它们进行创建、撤销或修改的活动转换上。这种对依赖关系和对象的应用被称作是一个对象流,因为它描述了一个对象在一个控制流中的参与情况。活动图除了可以显示一个对象的流,也可以用来现实对象的角色、状态和属性值是如何改变的。就像图3-45中所示,在该对象名下面的方括号中命名它的状态。类似地,还可以在该对象名的下面加一个分隔栏表示对象的属性值。

3.8.7 何时实用活动图

活动图用于对系统的动态方面建模。这些动态方面可涉及一个系统体系结构的任意视图中任何类型抽象的活动,包括类(含主动类)、接口、构件和节点。

当你使用活动图对系统的某些动态方面建模时,事实上你可以在任意建模元素的语境中这样做。你可以在整个系统、一个子系统、一个操作或一个类的语境中使用活动图。还可以把活动图附在用况(对脚本建模)和协作(对对象群体的动态方面建模)上。

当你对一个系统的动态方面建模时,通常有两种使用活动图的方式。

1)对工作流建模

此时,你关注于与系统进行协作的参与者所观察到的活动。工作流常常位于软件系统的边缘,用于可视化、详述、构造和文档化开发系统所涉及的业务过程。在活动图的这种用法中,对对象流的建模是特别重要的。

2)对操作建模

此时,你把活动图作为流程图使用,对一个计算的细节部分建模。在活动图的这种用法中,对分支、分叉和汇合状态的建模是特别重要的。用于这种方式的活动图语境包括该操作的参数和它的局部对象。

3.9包图

3.9.1 包图的基本要素

随着系统的逐渐变大,理解和修改这个系统也就变得更加困难,为此总是希望能将复杂问题进行分解。一个最古老的软件方法就是大系统拆分成小系统。但是如何将大系统拆分成小系统并不是一个简单的问题。人们不断地询问这个问题,不断地寻求较好的答案来解决这个问题。

结构化方法使用功能分解来解决这个问题。它将一个系统映射成一个功能。并将这个功能分解成一些子功能,进一步还可以将每个子功能分解成子子功能,直至没有必要在进一步分解为止。功能与面向对象系统中的用例类似,因为功能就代表系统所做的事。

但是,再采用传统的结构化方法时过程与数据是分离的。所以除了要进行功能分解,还要设计数据类型。尽管采用某些信息工程技术可以将数据记录与相关功能结合在一起,并构造一些关联表来显示功能和数据记录之间的交互,但是这些技术仍具有相当的局限性,通常只适合于某些类型的应用。

随着面向对象技术的成熟,彻底改变了这种过程与数据分离的设计方法,单纯的功能分解方法也随着被取代。但是这个古老的问题依据存在。解决这个问题的基本思路是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。这个思路被松散地应用到许多对象技术中。UML把这种分组机制称作包。

不仅仅是类可以运行包的机制,任何模形元素都可以运行包的机制。如果没有任何启发性原则来指导类的分组,分组方法就会是任意的。在UML中,最有用的和强调最多的原则就是依赖性。通常,包图所显示的是类的包以及这些包之间的依赖关系。严格地讲,这里所讲的饱和依赖关系都是类图中的元素,因此包图仅仅是另一种形式的类图。

我们首先讨论什么是依赖性。设有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。这种修改可能是语法格式上的,也可能是语义方面的。在类的关系中,导致依赖性的原因有多种。譬如,一个类是另一个类的数据成员;一个类用另一个类作为它的某个操作的参数等。总之,如果一个类的界面发生了改变,那么,它发出的任何消息就又可能不再合法。

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

面向对象软件开发教程

软件是在代码之外发生的一切事情。 如何继续学习过程 你将从本章学到什么? 两千年后(P2K)的软件环境是什么样的? P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位? 如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K 环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在 Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增 量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本 书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境, 必需考虑下面几项内容:

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

信息的概括和提炼方法

信息的概括和提炼方法

信息的概括和提炼方法 【篇一:信息的概括和提炼方法】 《语文课程标准》:“国内外的重要事件,学生的家庭生活,以及日常生活的话题等都可以成为语文课程的资源”,“学生要初步具备搜集和处理信息的能力”。`因此,新闻信息的筛选与提炼题应运而生。近几年来,这类试题频繁出现于全国各地中考试卷中。 考查方式:处理新闻、概括内容、提炼观点、图表表述、给事物下定义……涉及记叙性语段信息提取、说明性语段信息提取、议论性语段信息提取、图表信息提取。 例题解析 记叙性语段信息提取:人(物)+地点+时间+事件 中考试卷中信息提取类试题主要有以下几种题型: 题型二:新闻内容的概括 【例1】请用一句话提取下面这段文字的主要内容。(限15字以内) 今年是建国60周年,也是《湖北日报》创刊60周年。在2月6日至3月15日《湖北日报》开展的形象人物评选活动中,聂海胜当选《湖北日报》形象人物。这次旨在以人物彰显媒体品质的评选活动,得到广大读者的积极支持。经热心读者手机短信、网络投票等方式推荐,襄樊籍航天英雄聂海胜以其责任、理性、坚毅的品质以及巨大影响力最终脱颖而出。 参考答案:聂胜海当选《湖北日报》形象人物 【例2】请自己组织语言,概括下面这段文字的主要内容。(限15字以内)

欧盟健康风险科学委员会发表报告指出,如果5年内每周使用随身听5天,且每天以高音量收听音乐平均超过一个小时的话,那么5%至10%的使用者将面临永久性失聪的危险。最近几年,欧盟的随身听特别是mp3的销售数量猛增,约有5000万到1亿人特别是年轻人在使用随身听,因此有必要对人体的危害进行调查并采取措施,以保护青少年不受随身听和其他类似装置的损害。 参考答案:随身听会造成永久性听力损伤(或:常用随身听可能导致永久性失聪。) 题型三:给新闻拟标题 【例1】给下列这则新闻加上恰当的标题。(不超过12个字) 据介绍,世界数字图书馆包罗万象,从图书到各种档案都有,资料质量非常高。它按时间、地点、主题和捐助机构等内容提供搜索和浏览服务。使用者可以用阿拉伯文、中文、英文、法文、葡萄牙文、俄文与西班牙文7种语言查询。 参考答案:世界数字图书馆正式启用 【例2】给下列新闻拟一个标题。 再现传统盛景的2009年温州“拦街福”开街已经十天,市民热情高涨,深深感受到了温州传统文化的魅力。 “拦街福”是温州是传统习俗,始于宋,盛于清,流传至今。今年突出“传承文明、文化兴市”的主题,主要活动有拦街祈福、民俗文化展示、民间艺术展演等。到昨天为止,光顾“拦街福”的市民已达到35万人次,现场每天都洋溢着欢乐祥和的气氛。 参考答案:“拦街福”开街市民热情高涨(或:市民热情高涨感受文化魅力) 解析:给新闻拟标题与概括新闻一样,都是考察概括能力。但它们之间也有明显的区别。首先,拟标题要求语言更简洁,概括性更强。标

常用的开发方法:结构化方法、原型法、面向对象方法

常用的开发方法:结构化方法、原型法、面向对象方法 常用的开发方法有:结构化方法、原型法、面向对象方法。 结构化方法:结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步她依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。每个阶段和主要步骤都有明确详尽的文档编制要求,各个阶段和各个步骤的向下转移都是通过建立各自的软件文档和对关键阶段、步骤进行审核和控制实现的。它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。 以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。 结构化方法方法具有如下特点。 (l)遵循用户至上原则。 (2)严格区分工作阶段,每个阶段有明确的任务和取

得的成果。 (3)强调系统开发过程的整体性和全局性。 (4)系统开发过程工程化,文档资料标准化。 该方法的优点是:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。 该方法的缺点是:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的信息需求,充分预料各种可能发生的变化,但这并不十分现实;若用户参与系统开发的积极性没有充分调动,造成系统交接过程不平稳,系统运行与维护管理难度加大。 原型法:原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。 是在投入大量的人力,物力之前,在限定的时间内,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,对原型进行修改,统一使用,评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止。 适用范围:处理过程明确、简单系统;涉及面窄的小型系统

面向对象的建模方法

面向对象的建模方法 [摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。 [关键词]软件工程建模面向对象 一、引言 面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。 面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板 二、面向对象建模方法 建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。在市场上已有一些公司,如Rationa1,Cayenne,Platinum等开始提供商品化的建模工具,即通常所谓的CASE工具,使得建模过程实现了一定的自动化的标准化,并逐步走向实用,而这些工具的后面,便是具有不同特色的建模方法。 下面分析比较Booch,OMT,OOSE,UML等几种主要的面向对象的建模方法: (一)Booch方法 Booch方法是由Grady Booch提出的,是一种主要面向设计的方法,它通过二维图形来建立面向对象的分析和设计模型,强调设计过程的不断反复知道满足要求为止。Booch 方法特别注重对系统内对象之间相互行为的描述,注重可交流性和图示表达。但在方法学上并不注重严格的过程,既不推荐软件设计人员该做什么,只是指出了其可做的工作。Booch 方法把几类不同的图表有机地结合起来,以反映系统的各个方面是如何可相互联系而又相互影响的。这些图贯穿于逻辑设计到物理实现的开发过程中,包括类图、状态图、对象图、交互图、模块图和进程图。 (二)OMT方法 OMT(Object Modeling Technology对象建模技术)是由JamesRumbaugh 等人提出的。OMT方法包含了一整套的面向对象的概念和独立于语言的图示符号。它可用于分析问题需求,设计问题的解法以及用程序设计语言或数据库来实现这个解法。OMT方法用一致的概念和图示贯穿于软件开发的全过程,这样软件开发人员不必在每一开发阶段便换新的表示方法。 OMT方法从对象模型、动态模型、功能模型3个不同但又相关的角度来进行系统建模。这3个角度各自用不同的观点抓住了系统的实质,全面地反映了系统的需求。其中,对象模型表示了静态的、结构化的系统数据性质,动态模型表示了瞬时的、行为化的系统的控制性质,功能模型则表示了变化的系统的功能性质。在软件开发的周期中,这3种模型都在逐渐发展:在分析阶段,构造出不考虑最终设计的应用域模型;在设计阶段,求解域的结构被

信息提取方法 (1)

专项训练 信息提取方法 材料信息各提取,共同话题相联系, 每则材料都概括,深入本质解问题。 (1、这几则材料为什么可以放在一起? 2、然后推断:一定是材料之间存在某种关系。再通过比较、分析,一定会有所发现。 3、答题时,材料间是因果关系的,要先写主要原因,再写其他原因;材料间是同类事物的,要先写共性的,再写不同点的) 1、阅读下面三则材料,写出你的探究结果 材料一对某区一所中学初三(3)班49名学生进行调查后发现:自己求过或家长帮助求过护身符的占96%;经常到网上占卜的占34%;相信命由天定的占1l%;相信自己的幸运花、幸运石、幸运数字一定能给自己带来好运的占78%…… 材料二在某搜索网站输入“占卜”二字,可检索到34.4万个网页;输入“星座”二字,可检索到267万个网页。从搜索结果看,占星奇缘、北斗星易学书、周公解梦等内容充斥网页。 材料三联合国教科文组织把每年的4月23日确定为“世界读书日”。专家呼吁全社会都要关心青少年的健康成长,多为青少年出版一些好书,多提供一些有益的活动场所,为加强社会主义精神文明建设、构建社会主义和谐社会作出贡献。 答:①当今社会青少年非常迷信; ②某些网络媒体里充斥着很多迷信邪说; ③全社会都要关心青少年的健康成长,并为之创设良好的环境,从而抵制迷信思想的侵蚀 2、读下列材料,写出你的探究结果。 材料一撒哈拉沙漠以南非洲地区的城市人口中,71.9%的人居住在贫民窟,而且贫民窟人数在急剧增加。贫民窟已给城市带来危机。 材料二在贫困的非洲国度安哥拉,孩子们没有受教育的机会,许多孩子被赶出家门,遭受辱骂、毒打,甚至被烧死或活埋,就因为他们的父母认为他们掌握邪恶的巫术。 材料三多年来,世界粮食计划署一直没有停止对非洲贫困地区的粮食援助。今年,又给予非洲20亿美元资金的粮食援助,相当于2002年对全球援助的总额。 答:1.非洲地区的贫困和愚昧带来了巨大的社会问题(人口增长、教育落后)且给世界增加了沉重的负担。2.贫困和愚昧严重困扰着非洲的发展,并给世界造成了沉重的负担 3、阅读下面的三则材料,联系本文,写出你探究的结果。 材料一母虎抚养幼虎有三个过程。开始,它出去捕食回来,把最嫩的肉用爪子撕成碎片,喂给幼虎。后来,它捕食回来,自己把肉吃掉,剩下的骨头扔给幼虎啃。再后来,它捕食回来,自己把肉吃掉,把骨头扔掉,幼虎要吃,它就大吼一声,不让它吃。过几天,幼虎饿得实在受不了,就离开母亲,自己找食吃,且不再回来。 材料二孟子曰:”故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身……”(《生于忧患,死于安乐》) 材料三曾有这样的一幅漫画:父亲送儿子上大学,衣着时髦的儿子空着手,与别人谈笑风生,而父亲却肩扛手提,佝偻着身子帮儿子排队报名。漫画题为“如此爱心”。 答案:1.人才多是在艰苦环境中造就的。2.恶劣环境的磨炼有利于人才的成长。3.全社会应该加强挫折

比较四种典型面向对象方法的异同

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 0123992 专业软件工程届别 125 指导教师廖汉成 二O一四年九月二十七日

一、引言 随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA’67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。 自80年代后期以来,相继出现了多种面向对象开发方法,现将其中四种典型的方法作一个简介和比较。面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。 一.Booch方法 Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。OOD[3](Object Oriented Design)方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象; (2)识别这些对象和类的语义; (3)识别这些类和对象之间的关系; (4)实现类和对象;

冰川信息提取方法综述 20151101002

基于遥感的冰川信息提取方法综述 全球气候环境变化及其影响已成为当今世界各国政府、科学家和政策决策者所共同关注的重大焦点问题。政府间气候变化委员会(IPCC第四次评估报告指出[1],过去 100 a)(1906~2005 年)全球地表平均气温上升了0.74℃,而最近 50 a的升温速率几乎是接近过去 100 a 升温速率的两倍。冰川对气候变化十分敏感,被视为气候变化的指示器,升温已导致全球大多数冰川在过去 100 多年里处于退缩状态,尤其是最近的几十年呈加速退缩态势[1,2]。尽管大量的冰储存于两极冰盖中,但山地冰川和冰帽的储量损失在过去几十年和未来一个世纪对海平面上升、区域水循环和水资源可获取性均有重要影响[3-5]。 青藏高原及其毗邻地区蕴藏着世界上两极之外最大的冰雪储量,被称为“第三极”,该区气候变化引发的冰川变化不仅影响到周边地区十个国家的15亿人口的农业、发电等生产活动的水资源供应[3, 6, 7],而且会引发区域乃至北半球的大气环流格局的变化[8],从而使其成为国际冰川变化研究的热点地区。此外,青藏高原很多内陆湖泊近期水位上涨、湖泊面积增大导致草场淹没以及冰湖溃决和泥石流滑坡等山地灾害,对周边地区的生态与环境及农牧民的生活造成了严重影响[9]。 因此,监测青藏高原冰川变化时空分异特征,对于更加清楚地认识该地区对全球气候变化的响应具有重要的科学意义,对于及时提供湖泊水量变化信息,制定当地农牧民的应对措施具有重要的现实意义。本文系统梳理和总结了国内冰川监测相关研究进展,并探讨了当前该领域研究的不足以及未来的研究方向,旨在为我国冰川变化监测提供有益借鉴。 一、传统野外监测 传统的冰川观测主要基于野外实地考察,开展较早。世界上很多地区在一个多世纪以前就开始系统地观测冰川与冰盖的变化[10]。1930s 之前一直依靠实测冰川末端的变化或对比小冰期冰碛物的位置获得冰川变化的信息,1940s 后期开始了冰川物质平衡研究,截止到 2008 年全球已获取了 1803 条冰川自19 世纪后期的冰川长度变化和 226 条冰川过去 60 年内的物质平衡观测结果[10],分别占 1970s 估计的全球冰川总数 160000条[11]的 1.1%和 0.1%,观测数量很有限。我国冰川研究事业开创于1958年祁连山冰川考察[11],截止到 2007 年,基于野外考察共有 27 条冰川的长度变化和 5 条冰川的物质平衡的较长时间观测记录[12],分别为我国冰川总数46377[13]条的 0.06%和 0.01%,远低于前述全球尺度的相应观测比例,且没有一条位于我国冰川分布中心之一的喀喇昆仑地区。实地观测通常在容易到达、安全且不是太大的冰川进行,不能代表所有冰川的规模、海拔分布、坡度和朝向。所以,仅靠少数野外考察资料很难反映全球或区域尺度冰川变化的空间特征,所获得的冰川变化趋势及其对气候变化的响应的结论也难免存在局限性。 二、冰川面积变化遥感监测 遥感观测可以在瞬时获取较大范围的地面综合信息,适合对不同地理环境下的冰川变化进行长期而持续的监测,早期主要进行面积变化遥感研究。1940s 以后,人们可以借助于航空摄影技术测绘冰川末端位置[14]。1970s 之后,随着卫星遥感技术的发展和观测精度的提高,陆地资源系列卫星(Landsat MSS、TM 和

面向对象的逻辑思维方法

面向对象的逻辑思维方法 什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心得,不怕贻笑大方,写出已供广大同行批评指正。 “对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计 (Object-Oriented Design)等。应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,它也只需要做“自己”的事情,

面向对象软件工程—课后作业

面向对象软件工程 第八章 8.1.什么是面向对象方法学,它有哪些优点? 答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。 8.2.什么是对象,它与传统的数据有何异同? 答:对象是对问题域中某个实体的抽象。相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。 8.3.什么是类? 答:类是对具有相同数据和相同操作的一组相似对象的定义。

8.4.什么是继承? 答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。 8.5.什么是模型,开发软件为何要建模? 答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。 8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么? 答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。 8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么? 答:动态模型时描述系统控制结构,即行为化的一种模型。在UML

三种面向对象方法

三个著名的面向对象开发方法

摘要 主要介绍了3种典型的面向对象开发方法,并对它们进行了比较。面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。 关键字:面向对象;开发方法;OMT;BOOCH;JACOBSON; 1.引言 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。 面向对象程序设计方法起源于六十年代末期的simnia语言.Smalltalk语言的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象与开发方法开始结合,出现 了面向对象的开发方法.自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一比较分析. 2.三种典型的面向对象开发方法 2.1 OMT/Rumbaugh OMT(Object Modeling Technique)方法提出于1987年,曾扩展应用于关系数据库设计.1991年Jim Rumbaugh正式把OMT应用于面向对象的分析和设计.这种方法是在 实体关系模型上扩展了类、继承和行为而得到的.OMT覆盖了分析、设计和实现3个阶段,包括一组相互关联的类(class )、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等概念. OMT方法把分析时收集的信息构造在3种模型中,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充.对象模型用ER图描述问题域中的列象及其相互关系,用类和关系来刻画系统的静态结构,包括系统中的对象、对象之间的关系、类的属性和操作等特征.动态模型用事件和对象状态来刻画系统的动态特性,包括系统对象的事件序列、状态和操作.功能模型按照对象的操作来描述如何从输入给出输出的结果,描述动态模型的动作所定义对象操作的意义。 OMT方法包含分析、系统设计、对象设计和实现4个步骤,它定义了3种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这3种模型是:对象模型,用类和关系来刻画系统的静态结构;动态膜型,用事件和对象状态来刻画系统的动态特性;功能模型,按照对象的操作来描述如何从输人给出输出结果。分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。实现对象则在良好的面向对象编程风格的编码原则指导下进行。 开发的四个阶段如下: (1)分析。基于问题和用户需求的描述,建立现实世界的模型。分析阶段的产物有: ●问题描述 ●对象模型=对象图+数据词典 ●动态模型=状态图+全局事件流图 ●功能模型=数据流图+约束 (2)系统设计。结合问题域的知识和目标系统的系统结构(求解域),将目标系统

信息提炼方法

新闻信息提取方法略谈 【考点指津】 标题是新闻的“眼睛”,是新闻的精华,是新闻的灵魂,它用最简洁的语言概括了新闻最主要的内容。因此概括方法是:人物(事物)+事件。 概括新闻的主要内容一定要找出文段中的时间、地点、人物,还要把发生的事情用简单的语言表达出来,概括方法是:时间+人物(事物)+地点+事件。具体方法是:1.抓关键词语;2.关注重要句子;3.如果有导语就要抓住导语进行归纳,因为导语是新闻内容的高度概括。 【示例解析】 例1:给下面的报道写一个标题。(不超过10个字) “白帝碧波山水欢,千帆竞渡履平川。”6月10日,奉节县100名诗人齐聚老县城依斗门,朗诵着自己的诗作,送别有着一千多年历史的古城门,这座古城门即将在三峡水库蓄水达135米水位时,永沉江底。84岁的老诗人余敬之也参加了此次活动。有“活杜甫”之称的他,至今创作出了3000多首诗歌。看着不断上涨的江水,老诗人朗诵着自己的诗作,眼泪直往下掉。他说,千百年来,依斗门跟瞿塘峡、白帝城一样,是诗人取之不尽的创作源泉。 下午5点,依斗门被水淹没,标志着诗城遗址初步没入库底。此时,诗人们才依依不舍离去。 【解析】第一步,找出“人物”:百名诗人。第二步,找出“事件”:事件记叙比较零散,因此需要提取关键词语——朗诵,送别,古城门。84岁的老诗人参加活动只是送别古城门中的一个例子,因此不是短文的要点。答案:百名诗人“诵”别古城门。 例2:根据下面一则消息所给出的信息要点,拟一条“一句话新闻”。 【本报讯】记者近日从联通南京分公司获悉,130手机将在包括南京在内的12个城市推出“一机多网”服务,用户可以直接用手机拨打国际、国内IP长途电话,将来还能上因特网。 据介绍,“一机多网”是中国联通在预存话费的基础上推出的数字手机与IP电话因特网综合集成的一项新业务,用户在130手机上拨打IP电话时,无需输入卡号和密码,直接拨“17911”和被叫号码即可,在本地打国内长途时,不分远近均为每分钟0.7元,国际长途每分钟5.2元。据悉,到今年上半年,国内将有超过130个城市开通此项业务。 【解析】“事物”:联通。“事件”:消息的第一段是对全文内容的高度该括,因此可以从其中提炼出事件。时间:本消息表示时间的词语有四个——近日,将,将来,到今年上半年。可以从这几个词语看出时间是从最近开始,不超过今年上半年。因此我们可以把时间定为:近期。答案:联通近期将推出“一机多网”,手机也能打IP电话。 【演练提高】 1.为下面的报道拟一条标题。(不超过12字) 近日,新会市博物馆展出了一件特殊的文物“木美人”。这是画在一幅木制门板上的油画,画的是两个与真人一般大小、身着中国古代腰饰的西洋美女。研究者初步认为,这幅“木美人”是我国最早的油画作品。其艺术性不逊于意大利油画家达·芬奇的《蒙娜丽莎》。据传,这幅“木美人”门板,是明朝一位新会籍人士从福建带回来的。木门所属的屋子因为失火而被烧毁。门板是屋子里唯一没有被烧毁的东西,距今至少有五千多年的历史。这幅画究竟是何人何时所作?为何画中女子身着汉人服装,面部却有明显的西洋人特征?这些问题至今还不清楚。

面向对象方法学概述资料

9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。 9.1 面向对象方法学概述 9.1.1 面向对象方法学的要点 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该使这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。也就是说,面向对象方法是一种新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。

概括地说,面向对象方法具有下述4个要点: (1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 由此可见,面向对象方法用对象分解取代了传统方法的功能分解。 (2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。 (3) 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。 (4) 对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 重点:如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(class-based)方法,但仍然不是面向对象的方法。只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。 9.1.2 面向对象方法学的优点 1. 与人类习惯的思维方法一致 2. 稳定性好 3. 可重用性好(重点) 用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑一幢结构和外形都不同于从前的新大楼。重用是提高生产率的最主要的方法。

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

面向对象方法与结构化方法的比较

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。 面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。(高内聚低耦合)四、层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂

相关文档
相关文档 最新文档