文档详情

面向对象分析的方法.docx

发布:2024-08-18约3.51千字共8页下载文档
文本预览下载声明

面向对象分析的方法

面向对象分析可以按以下5个步骤来进行:

1、标识对象

一个面向对象系统的核心是对象。识别对象首先要分析清楚信息系统的需求,即系统要解决的问题涉及哪些事物,然后进行对象和类的识别和定义。

(1)按事物的存在分类

我们将现实世界存在的事物分成5大类:

①有形物

指那些看得见也摸得着的东西,例如人、书、汽车等。

②人或组织机构所扮演的角色

例如医生、病人、顾客、售货员等。这类角色之间是紧密相关的,只要找出一个角色对象,就很容易找出一组相关的角色对象。

③事件

事件对象用来表示所发生的事件,例如出诊、进货等。

④交互

交互对象常常具有相互联系的性质,能够把多个对象联系起来。例如“购买”将售货员、顾客和商品联系在一起;“上课”将老师、课程和学生联系起来。

⑤规范

规范对象具有标准或定义的性质。例如产品的技术指标和学校的专业培养目标都是规范对象。

(2)按面向对象的观点分类

以上分类是按事物的存在进行的,按照面向对象观点,把上述存在的对象再分为以下3类:

①客观存在物

这一类对象包括有形对象和角色对象,在面向对象系统中,它体现问题的结构性。

②行为

这一类对象包括事件对象和交互对象,在面向对象系统中,它体现问题的行为特性。

③概念(指规范对象)

概念就是人们交流各领域知识的工具。

(3)对象的识别

在识别对象时,要发现各种可能有用的候选对象。主要策略是从问题域、系统边界和系统责任三个方面,考虑各种能启发自己发现对象的因素,找出可能有用的候选对象。

①考虑问题域

启发分析员发现对象的因素包括人员、组织、物品、设备、事件、表格、结构等。

②考虑系统边界

启发分析员发现一些与系统边界以外的活动者进行交互、并处理系统对外接口的对象,考虑的因素包括人员、设备和外系统。

③考虑系统责任

对照系统责任所要求的每一项功能,查看是否可以由现有的对象完成这些功能,如果发现不能,则可启发分析员发现问题域中某些遗漏的对象。

找到许多候选对象之后,要对它们逐个进行审查,看它们是不是OOA模型真正需要的。首先要丢弃那些无用的对象,然后要合并一些对象,并区分哪些对象是应该推迟到系统设计阶段才考虑的。

2、标识结构

结构是指多个对象的组织方式,用于反映问题域空间中的复杂事物和复杂关系。前面已经介绍过,面向对象分析中定义了2类结构:分类结构和组装结构。

(1)分类结构

分类结构的识别原则是:先从一般性到特殊,再从特殊到一般。使用分类结构,可以按事物的类别对问题域进行层次化的划分,体现现实世界中事物的一般性与特殊性。分类结构是表示系统中所有类关系的轮廓,利用这种形式可以很容易地跟踪类与超类和类与子类之间的关系。例如,在一个学校中有学生、老师、教室、办公室和课程。设计一个类层次,用object作为所有类的公共超类,它有3个子类:person(人员)、room(房间)和subject(课程);person类有2个子类:student(学生)和teacher(教师);room类有2个子类:classroom(教室)和office(办公室)。图1表示了这些类之间的关系。

图1.分类结构图举例

(2)组装结构

组装结构的识别原则是先从整体向部件分析,再由部件向整体综合。组装结构体现的是对象之间的聚合关系,指一个对象由若干个其他对象组成。当这个对象被创建后,组成它的各个对象将自动被创建。

3、标识主题

对于一个实际的系统,尽管通过对对象和结构的认定,对问题域中的事物已经进行了抽象和概括,但所认定的对象和结构的数目仍然是可观的,常常达到几百种。如果不对这么多的对象和结构进行进一步的抽象,将造成对分析结果理解上的混乱,难以搞清对象与结构之间的关联关系。主题认定可以对对象和结构进行进一步的抽象。

主题就是一个名词或名词短语,与对象名类似,只是抽象程度不同。认定主题的一般方法是:为每一个结构追加一个主题;为每一个对象追加一个主题。如果当前主题的数目超过7个,就对已有的主题进行归并。归并原则是:当两个主题对应的属性和服务有密切的关联时,就将它们归并为一个主题。主题在分析结果中是一个单独的层次,在这个层次中,每个主题有一个编号,主题之间的联系是消息,代表了两个主题对应的那两组对象和结构之间所有的关联。

4、定义属性

属性是实体所具有的某个特性的抽象,而实体本身被抽象成对象。属性可以用数据元素表示,用以描述对象或分类结构的实例。建立属性及实例关联的步骤如下:

(1)识别属性

识别属性的3个基本原则是:要确认它对相应对象或分类结构的每一个实例都是适用的;一个属性即使对某种对象的实例都是适用的,也还要考察在现实世界中它与这种事物的关系是否最为密切;认定的属性应当是一种原子概念,即它不依赖于并列的其他属性就可以被理解。

(2)确定属性的位置

这是指确定属

显示全部
相似文档