面向对象分析资料.docx

上传人:b****2 文档编号:16892011 上传时间:2023-07-19 格式:DOCX 页数:18 大小:93.53KB
下载 相关 举报
面向对象分析资料.docx_第1页
第1页 / 共18页
面向对象分析资料.docx_第2页
第2页 / 共18页
面向对象分析资料.docx_第3页
第3页 / 共18页
面向对象分析资料.docx_第4页
第4页 / 共18页
面向对象分析资料.docx_第5页
第5页 / 共18页
面向对象分析资料.docx_第6页
第6页 / 共18页
面向对象分析资料.docx_第7页
第7页 / 共18页
面向对象分析资料.docx_第8页
第8页 / 共18页
面向对象分析资料.docx_第9页
第9页 / 共18页
面向对象分析资料.docx_第10页
第10页 / 共18页
面向对象分析资料.docx_第11页
第11页 / 共18页
面向对象分析资料.docx_第12页
第12页 / 共18页
面向对象分析资料.docx_第13页
第13页 / 共18页
面向对象分析资料.docx_第14页
第14页 / 共18页
面向对象分析资料.docx_第15页
第15页 / 共18页
面向对象分析资料.docx_第16页
第16页 / 共18页
面向对象分析资料.docx_第17页
第17页 / 共18页
面向对象分析资料.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

面向对象分析资料.docx

《面向对象分析资料.docx》由会员分享,可在线阅读,更多相关《面向对象分析资料.docx(18页珍藏版)》请在冰点文库上搜索。

面向对象分析资料.docx

面向对象分析资料

面向对象分析

软件开发的分析过程就是提取系统需求的过程,分析工作主要包括理解、表达和验证。

面向对象分析的关键是识别问题域内的对象及其关系。

本章内容主要包括:

面向对象分析的基本过程、发现对象的方法、定义属性与服务、定义结构、实例连接等。

8.1基础知识

8.1.1分析的基本过程

一般来说,需求分析过程是系统分析员与领域专家反复交流和多次修正的过程。

也就是说,理解和验证的过程通常交替进行,反复迭代,而且往往需要利用原型系

统作业辅助工具。

面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

8.1.2发现对象的方法

问题域和系统责任是面向对象分析的基本出发点。

分析员的主要工作就是:

通过

不断地研究问题域,建立一个能满足用户需求的系统模型。

1.系统责任

它包括系统

交付时间、

系统开发初期,用户对系统提出的各种要求和期望就是用户需求。

的功能、性能、可靠性、保密要求、交互方式等技术性要求和资金强度、资源使用限制等非技术要求。

分析员提高分析这些系统需求,逐渐搞清系统责任。

2•问题域研究方法

研究问题域采用的主要

而实际存在的客观系是分析与设计中一个关

要发现对象、定义对象类、主要途径就是研究问题域。

方法是:

现场跟单、获取领域知识、吸收经验、听取用户见解。

3•确定系统边界

在系统的分析与设计中,由于是将实际的系统计算机化,

统与它的周围都要发生联系。

那么我们如何确定系统边界,

键的问题。

确定系统边界就是划出被开发的系统和与该系统打交道的人或物之间的明确界限,并确定它们之间的接口。

8.1.3定义属性与服务

形成对问

面向对象的程序设计以对象为基本单位来组织系统中的数据与操作,题域中的直接映射。

面向对象方法用对象表示问题域中的事务,而事务的静态特征和动态特征分别

用对象中的一组属性和服务来表示。

1.定义属性

然后,是研究当前的从而找出每一类对象

为了发现对象的属性,就要借鉴与以往相似的问题域中是否有已开发的面向对象分析模型,就可能复用其中同类对象的属性定义。

问题域和系统责任,以系统责任为目标进行正确的抽象,应有的属性。

2.定义服务

首先要借鉴同类

发现和定义对象的服务和面向对象分析的其他活动一样,

系统的面向对象分析结果尽可能加以复用;如果没有同类对象的服务复用,

以研究问题域、系统责任以及状态转换图来发现服务。

8.1.4定义结构

通过研究系统责任、问题域,我们可以认识系统中的对象,此后,按认识论的法则对它们都显得分类,进而分析并定义它们的内部特征,构成系统的基本单位一一对象类。

由于系统是通过对象及其关系结构构成的。

所以分析任务除研究对

象及内部特征外,还要分析和定义各类对象之间的关系。

目的就是要建立面向对象

分析基本模型的关系层。

1.一般、特殊结构

一般、特殊结构是把一组有一般、特殊关系的类组织在一起而得到的结构,它是一个以类为结点,以一般、特殊关系为边的连通有向图。

要发现合乎系统的一般、特殊结构,可以从不同的角度,采用不同的策略。

首先要借鉴同类问题域以往的面向对象分析结果,发现可复用的系统成分。

还可以采用按领域知识、常识分类或分析类的属性与服务的策略来发现。

2.整体、部分结构

整体、部分结构是把一组具有整体、部分关系的类组织在一起而得到的结

构。

它是一个以类为结点,以整体、部分关系为边的连通有向图。

发现整体、部分结构可从如下方面进行:

组织机构、空间上包容关系、物

理上整体、部分关系、集合与成员关系、对象与个别抽象关系、抽象事务的

整体与部分等。

8.1.5实例连接

实例连接是用于表达对象之间的静态关系。

这种静态联系是指最终可通过对象属性来表示的一个对象对另一个对象的依赖关系。

在面向对象分析模型中,要发现并建立实例连接可采用如下的方法:

对象间的静态联系、实例连接的属性与服务、异常情况处理、命名与定位等。

填空题

面向对象分析的目的是。

概念模型描述了系统的。

功能模型指出_

,而对象模型确定。

功能模型由整体、部分结构称为结构,它们之间的关系是一种“

关系,或者是“”关系。

对象具有状态,描述对象的状态用它的一个方法有、和

 

6.—般-具体关系称为

纟吉构,也可以说是”

关系,或者是”

关系.

7.通过这种机制和构造来实现不同同中的信息共享

8.对象具有很强的能力和功能.

9.子类只继承一个父类的属性和操作,这称为.

10.聚集是一种”系.聚集最重要的性质是_

11.面向对象的牲是,.,_

12.说明一个状态可采用,,,_

13.在类层次中,子类只继承一个父类的数据结构和方法,则称为

为.

14.功能模型由多张数据流图组成.数据流图中包含有

15.对象的抽象是,类的具体化就是—

16.类通常有两种主要的结构关系,妈

仃.主要的对象类型有,,—

18.动态模型描述了系统的.

19.对象具有封装性,实现了的组合.

20.事件跟踪图用来表示,对象和对象..

用水平箭头表示箭头方向是从-对象指向对象.

21.一般化关系是”的关系,有一般化类和具体类之分,一般化类又称_

类继承了类的性质各类的一些共同性质和操作又归纳了到

22.面向对象的三种分析模型是:

模型,模型和模型.

23.类的实例化是.

24.不同同中信息共享的这种机制和构造是通过来实现的.

25.结构化方法的本质是,其,可修改的性和可重用性都比较差

26.对象还有,用于改变对象的状态.对象实现了和

27.对象具有状态,对象用来描述它的状态.

8.2.2选择题

1.面向对象分析阶段建立的三个模型中,核心的模型是()模型。

A.功能B.动态

C.对象D.分析

2.表示对象的相互行为的模型是()模型

A.对象B.动态

C功能D.表态

3.汽车有一个发动机,汽车与发动机之间的关系是()关系

A.—般与具体B.整体与部分

,也具有

—等内容描述.

.子类继承了多个父类的数据结构和方法则称

对象和

对象.

关系和

的结合.

可用一条垂直线表示,各

类,具体类又称类中.

类,各

 

C.分类关系D.isa

4.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是()关系.

A.组装B.整体与部分

C.hasaD.一般与具体

5.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫()

A.生存期B.整体与部分

C.面向对象程序设计D.面向对象分析

6.一个面向对象的系统的体系结构通过它的()的关系确定

A.类与对象B成分对象和对象

C过程与对象D.类与界面

7.在面向对象的系统设计中,以下说法错误的是()

A.系统中主要的组成部分称为子系统

B.子系统是一个对象或一个功能

C.子系统是类,关联,操作,事件和约束的集合

D.每次分解的各子系统数目不能太多,最底层子系统称谓模块

8.在软件工和学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为(),此定义包括一级

数据属性和在数据上的一组合法操作.

B.属性D.消息

以下说法错误的是()

采用面向对象方法开发软件的主要优点是通过重用提高软件的生产率在面向对象程序中,对象是属性(状态)和方法(操作)的封装体在面向对象程序中,对象彼此间通过继承和多态性启动相应操作继承和多态机制是面向对象程序中实现重用的主要手段

A.类型

C.对象

9.

A.

B.

C.

D.

9.以下说法错误的是()

A.

B.

C.

D.

面向对象分析与面向对象设计的定义没有明显区别

在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的面向对象分析和面向对象设计活动是一个多次反复迭代的过程从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程

10.面向对象开发产生的分析文档应当()考虑问题,在分析阶段识别的概念是高层的概念

A.

B.与冋题不相关

D.在更大的问题范围内

与问题直接相关

C.在更小的问题范围内

11.以下说法正确的是()

A.

B.

C.

D.

组装结构可用来描述现实世界中的一般的抽象关系分类结构可用来描述现实世界中的类的组成的抽象关系面向对象的继承性是子类自动共享父类数据结构和方法的机制面向对象的惟一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类

12.功能模型中中的()往往形成一个层次结构.在这个层次结构中一个数据流图的过程可以由下一层数据流图做进一说明.

A.数据流图B.概念模型图C.状态迁移图D.事件追踪图

13.在有多重继承的类层次结构中,类层次结构是()层次结构

A.树型B.网状型C.环型D.星型

14.在数据流图中,以下说法错误的是()

C.数据存储用一条直线表示,线段之上标存储名

D.动作对象用长方形表示,说明它是一个对象

E.处理用椭圆表示,椭圆中含有对处理的描述

F.数据流图中的数据流将对象的输出与处理,处理与对象的输入.处理与处理联系起来

G.有些数据流也是对象.在数据流图中,用空三角来表示产品对象的数据流

15.以下说法错误的是()

A.功能模型是类似编译器之类系统的主要模型

B.功能模型由多张数据流图组成

C.数据流图不表示控制信息控制信息在动态模型中表示

D.数据流图也不表示对象中值的组织.这种信息在对象模型中表示

E.有些数据流也是对象,把对象看成是单纯的数值和把对象看成是包含许多数值的数据存储这二者是相同的

16.描述类中某个对象的行为,反映了状态与事件关系的是()

A.对象图B.状态图

B.流程图D.结构图

17.与事件联系在一起的瞬时操作是()

A.处理B.动作

B.活动D.加工

18.同一类活动中有相同的数据结构,这是()级别的共享.

B.不同应用

C.同一应用

D.不同类

E.同一类

19.类库这种机制是()级别的共享

A.同一类

B.不同类

C.同一应用

D.不同应用

8.2.3简答题

1.对象设计包含哪些内容?

2.简述对象模型的特征,并举一个现实的先例,给出它的一般化关系,聚集关系的描述

3.面向对象分析模型的用途是什么?

4.简述对象建模的过程

5.在类的实现中,如何利用既存类的途径?

6.简述动态模型的特征.说明事件,事件跟踪图,状态,状态图的含义.

8.3

一,填空题

1.

2.

3.

4.

5.

7.

8.

9.

对客观世界的系统进行建模

所有计算.发生了什么.什么时候发生,发生的客体,多张数据流图组装,与,hasa

属性值

方法名6.,参数.方法体

分类,或,isa

类库

表达,描述

10.单重继承

11.整体-部分,传递性,逆对称性

12.对象惟一性,分类性,继承性,多态性

13.状态名14.,状态目的描述,产生该状态的事件序列,表示状态特征的事件,在状态中接收的条件

15.单重继承,多重继承

16.处理,数据流,动作,数据存储

17.类,对象

18.一般-具体结构,整体-部分结构

19.有形实体,作用事件,性能说明

20.动态行为

21.数据和操作

22.事件,事件的接收,发送,接收对象,发送对象,事件,发送,接收

23.一般-具体,父,子,子,父,子,父

24.对象,动态,功能

25.对象

26.类库

27.功能分解,稳定性

28.行为,数据,操作

29.数据值

二.选择题

1.

2.B3.B4.D5.D

7.B8.A9.C10.A

C

6.B

15.A

20.D

,关联的完整定义,接口的形式以及实现操作方法的算法,可以增加

11.D12.C13.A14.B

16.E17.B18.B19.D

三.简答题

1.对象设计要确定实现用到的类

实现必需的内部对象,对数据结构和算法进行优化

(1)获得操作.对象模型是组织对象设计的主要框架,来自分析阶段的对象模型可能示表示操作必

须将动态模型中的动作及活动以及功能模型中的处理转换成操作,加入对象类中.

各对象图描述了对象的生存周期,状态转换是指对象状态的变化,应把它映射成对象上的操作某对象发出的事件可能表示了另一种对象上的操作事件常常成对出现.第一事件触发一个动

作,而第二事件返回结果或者说明该动作已经完成.在这种情况下,事件映射成执行该动作的操作和返回控制,只要这两个事件位于对象之间的单个控制线上.

(2)确定操作的目标(3)对象.状态图中转换所触发的动作或活动可以扩展为功能模块的数据流

图,数据流图的处理网络表示了操作的主体,图中的数据流是该操作的中间值,必须将这种图表结构转换成算法的线性步骤序列.数据流图中的处理组成了子操作,其中一些子操作可能是原始目标(4)对象或其他对象上的操作.

(5)算法设计.对象类中确定的各个操作都必须用算法来表示算法设计按如下过程进行:

1.选择极小化开销的算法

2.选择适用于该算法的数据结构

3.定义必需的新的内部类和操作

4.将操作响应赋给合适的类.选择算法时涉及的选择算法使用的数据结构,许多实现的数据

结构都是包容类的实例,大多数面向对象语言提供了基本数据结构供用户自选组合定义.

在展开算法时,可能引入一些新对象类,用来存放中间结果,在分解高层操作时也可引入新的低层操作.必须定义这些低层操作,因为大多数这类操作是外部不可见的.

(6)优化设计.效率低但语法正确的分析模型应该进行优化,其目的是使实现更为有效.但优化后的系统有可能会产生二义性且减少了可重用的能力,必须在清晰性和效率之间寻找一种适宜的折中方案.

(7)控制的实现.作为系统设计的一部分,已为动态模型的实现选择了一种基本策略,面对象设计中必须完善这种策略.

(8)高速继承.随着对象设计的深入,常常要调整类及操作的定义以提高继承的数目.

(9)关联的设计.关联是对象模型的纽带,它提供了对象之间的访问路径.关联是用于建模和分析的概念实体,在对象设计时,要实现对象模型中的关联.

2.对象模型表示了静态的,结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系.该模型主要关心系统中对象的结构,属性和操作,使用了对象图的工具来刻画,它是分析阶段三个模型的核心,也是其他两个模型的框架.

在对象模型中,定义了两种类的层次结构:

一般化关系和聚集关系.一般化关系是在保留对象

图8-2

3.分析模型有三种用途:

用来明确问题要求,为用户和开发人员提供明确要求,为用户和开发人员提供一个协商的

基础,作为后继的设计和实现的框架.

4.首先标5.识类和关联,因为它们影响了整体结构和解决问题的方法;其次是增加属性,进一步描述类的关联的基

本网络,使用继承合并和组织类,使用继承合并和组织类,最后将操作增加到类中去作为动态模型和功能模型的副产品.

(I)确定类.构造对象模型的第一步是标

(2)出来自问题域的相关的对象类,对象包括物理实体和概念.所有

类在应用中都必须有意义.检查问题陈述中的所有名(3)词,产生暂定类,然后根据标(4)准,去掉不(5)必要的类和不⑹正确的类.

(7)准备(8)数据字典.为所有建模实体准备(9)一个数据词典.准确描述各个类的精确含义,描述当前问题

中的类的范围,包括对类的成员,用法方面假设或限制

(10)确定关联.两个或多个类之间的相互依赖就是关联.一种依赖表示一种关联,可用种种方式来实现关联,但在

分析模型中应删除实现的考虑,以便设计时更为灵活.

关联常用描述性动词或动词词组来表示,其中有物理位置的表示,传导的动作,通信,所有者关系,条件的满足等.

从问题陈述中抽取所有可能的关联表述,把它们记下来,但不要过早去细化这些表述.使用标准去掉不必要和不

正确的关联.

(II)确定属性.属性是个体对象的性质,属性通常修饰性的名(12)词词组来表示.形容词常常表示具体的可枚举的属性值,属性不(13)可能在问题陈述中完全表述出来,必须借助于应用域的知识及及对客观世界的知识才可以找出它们.

只考虑与具体应用直接相关的属性,不要考虑那些超出问题范围的属性.首先找出重要属性,避免那些只用于实现的属性,要为各个属性取有意义的名字

(5)使用继承来细化类.使用继承来共享公共结构,以此来组织类,可以用两种方式来

进行。

1

寻找具有相似的属性,关联或操作的

自底向上通过把所有的公共性质一般化成父类,

类来发现继承。

2自顶向下将现有的类细化成为更具体的子类。

⑹完成对像模型。

完善对象模型。

对象建模不可能一次就能保证模型是完全正确的,

软件开发的整个过程就是一个不断完善的过程。

模型的不同组成部分多半是在不同阶段完成

的,如果发现模型的缺陷,就必须返回到前期阶段去修改,有些细化工作是在动态模型和功

能模型完成之后才开始进行的。

5•在类的实现中,禾U用既存类的途径有三种:

⑴“原封不动”重用。

寻找“原封不动”使用的即存类,提供所需要的特性。

此时,所需要的类已经存在,建立它的一个实例,用以提供所需要的特性。

这个实例可直接为软件利用,或者它可以用来作为另一个类的实现部分。

通过重用一个既存类,可得到不如修改就

能工作的已测试的代码。

由于大多数面向对象语言的两个特性,即类的规格说明与实现的分离(信息隐蔽)和

封装,这种重用一般是成功的。

⑵进化性重用。

此时,一个能够完全符合要求特性的类可能并不存在。

但是,如果具

有类似功能的类存在,则可能通过继承,由既存的类渐进式地设计新类。

还可以将几个既存

类的特性混合起来开发出新的类。

每个既存类是某些概念的模型。

混合起来则产生了一个为

特定应用的具有多生概念的类。

一个既存的类可能是会提供某些在我们的新类中需要的特性以及某些新类不需要的特性。

因此,可以先建立一个的更抽象的类,使之成为我们要设计的

类的父类,然后,修改既存类以继承新的父类。

⑶“废弃性”开发。

不用任何重用来开发一个新类。

虽然不需要使用既存类来演变成

新类,但还是有重用的可能。

在新类实现时通过说明一些既存类的实例,可以加快一个类的

实现。

像表格,硬件接口等都可以作为一个新类的局部。

6.动态模型是与时间和级关的系统性质,该模型描述了系统的控制结构,率表示了瞬时的,行为化的系统控制性质,它关心的是系统的控制,操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的具体行为。

该模型描述的系统属性是触发事件,事件序列,状态,事件与状态的组织。

使用状态图

作为描述工具。

它没有持续时间,它是一种相对性

事件是指时刻发生的事情。

它是某事件发生的信号,

的快速事件。

“场景”(即脚本)是完成系

一个触发行为就是一个事件。

响应包括状态的改变或形成一个新的触发。

事件跟踪图侧重于表达说明发生域系统执行过程中的一个特定统某个功能的事件序列。

现实世界中各对象之间相互触发,事件的响应取决于接受该触发的对象的状态,

件可用看成是信息从一个对象到另外一个对象的单向传送,发送事件的对象可能期望对方的

答复,但这种答复也是一个受第二个对象控制下的一个独立事件,第二个对象可以发送也

可不发送这个答复事件。

事件跟踪和来表示事件,事件的接收对象和发送对象。

各种有关事件的序列关系及由此表现出来的对象之间的交互作用通过事件跟踪为表达。

对象在某个特定的阶段所处的情形就是状态,它是对象行为的属性值的一种抽象。

对象

的属性值按照影响对象显著行为的性质将其归并到一个状态中去。

状态指明了对象对输入事

件的响应。

事件和状态是孪生的,一事件分开两种状态,一个状态分开两个事件。

状态图反映了状态关系。

当接收一事件时,下一状态就于当前状态和所接收的事件,由

该事件引起的状态变化称为转换。

状态图确定了由事件序列引起的状态序列。

状态图描述了

类中某个对象的行为,由于类的所有实例有相同的行为,那么这些实例共享同一状态图,正

如它们共享相同的类性质一样。

但因为各对对象有自己的属性值,因此各对象也有自己的

状态,按自己的步调前进。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2