技术研发 TECHNOLOGY AND MARKET Vdl.18No.5,2011 面向对象分析与设计综述 冯德虎 (西南交通大学信息科学与技术学院,四川成都610031) 摘要:介绍了面向对象分析与设计的基本概念,阐述了面向对象分析中识别对象的方法,对面向对象的分析与设计方法的 发展趋势做出了相应的预测。 关键词:面向对象分析:面向对象设计:对象识别 doi:10.39695.issn.1006-8554.2011.05.087 1 OOA和OOD 3面向对象分析与设计的发展趋势 OOA(Object--Oriented Analysis,面向对象分析方法)和OOD 3.1面向对象分析与设计的方法将被越来越多的人接受 (Object.-Oriented Design,面向对象设计)是面向对象软件开发生 迄今为止,“面向对象”本身还没有一个统一的让所有人都 命周期中两个重要的阶段,OOA活动涉及的是语义对象,而OOD 能接受的概念。然而,面向对象中的一些最基本的概念已经和正 活动涉及的是语义对象,接口对象,应用对象和实用/库对象,这 在被人们所接受,比如类、对象、继承、封装等:一些最有效的表 种区分OOA和OOD对象的方法在大多数情况下是正确的。但是, 示方法也正在被人们所共同采用,比如图形表示、基本输入要求 在分析阶段,一个好的规格说明也应涉及到用户接口,控制机制 和输出结果等。并且这种趋势在越是较晚出现的方法和工具中 等各方面的内容,因此,在OOA阶段,不仅该得到语义对象,也应 越是明显,面向对象的方法学研究在计算机领域正在朝着普及 该得到接口对象和应用对象。这些对象通过OOA中的对象识别 化的方向发展。 和精化过程得到。在OOA阶段的主要任务是识别和精化对象, 3.2新的分析与设计的方法和工具将不断涌现 OOD阶段的主要任务是构造类和建立系统结构。 随着SDL92和ObiectTime的问世,新的分析方法和工具将朝着 2面向对象分析中的对象识别 动态化、标准化、可执行性、可测试性的方向发展。同时,新的面向 在使用计算机解决问题时,对象是作为计算机模拟真实世 对象的设计方法也以越来越成熟的面孔出现。新方法和工具的相 界的一个抽象,一个对象就是一个物理实体或逻辑实体,它反映 继出现,将会大大缩短软件开发周期,节省软件开发成本。 了系统为之保存信息和(或)与它交互的能力。对象不仅能表示 3.3集成面向对象分析和设计将成为趋势 具体的实体,如桌子、椅子:也能表示抽象的事件,如演出、会议。 由于设计过程本身也涵盖有部分的分析,分析过程中也有 那么,在面向对象分析中,如何尽可能精确的识别对象呢? 设计的成分。基于这种关系,集成了分析和设计两方面的方法和 为了识别出系统所需要的对象,在系统分析的过程中应采用 工具的研究也将成为面向对象分析与设计领域的一个趋势。它 “先松后紧”的原则。系统分析员应首先找出各种可能有用的候选 的主要特点就是有机地集成比较著名的分析方法和设计方法来 对象,即标识潜在对象。识别对象起步于对用户需求的正文描述进 共同完成从分析到设计甚至到实现的全部任务。集成分析与设 行语法分析。找出所有的名词或名词短语,合并同义名词。 计方法最重要的环节是要能够把分析方法的输出结果变换成为 对象在用户需求的正文描述中以多种形式呈现,系统分析 一个设计方法的工具的输人,即需要一个“翻译程序”。然而,它 员应该运用抽象原则,首先要舍弃与系统责任无关的事物,保留 与普通的翻译程序是不同的,比普通的“翻译程序”更智能化。集 与系统责任有关的事物。其次,还要舍弃与系统责任有关的事物 成分析和设计方法虽然还处于尝试阶段,但这个方向对于软件 中与系统责任无关的特征。判断事物及其特征是否与系统责任 开发界是很有吸引力的。 相关的准则是:该事物是否为系统提供了一些有用的信息或需 4结语 要系统为其保存和管理某些信息:该事物是否向系统提供了某 目前,面向对象的分析与设计方法正处于发展阶段,实际上 些服务或需要系统描述它的某些行为。 都还没有真正解决从应用领域知识到需求模型的演变问题。要 在找到许多可能有用的候选对象之后,接下来的工作是对 解决这个问题,毋庸置疑,还有很长的路要走。因为这不仅是 它们进行逐个审查,分析它们是否是OOA模型所真正需要的,从 OOA与OOD的任务,还包括分析设计人员的实践和经验的积累, 而筛选掉一些对象。筛选对象时应遵循的规则有: 同时还依赖于人工智能等相关学科的发展水平。随着使用面向 ()别除无关类、冗余类和与之对应的对象。 对象程序设计方法的人越来越多,同时参与研究面向对象分析 (2)对象的属性应是目标系统所关心的,或者是目标系统正 与设计的方法学的队伍越来越壮大,OOAD的前景在软件的世界 常运转所必需的,对象利用其操作能够为目标系统中的其他对 里将大放异彩 像提供服务。 参考文献: (3)如果某个对象仅有一个属性,则最好将此对象表示为其 [山汪成为等面向对象分析、设计及应用国防工业出版社, 他对象的属性。 1992. (4)为对象定义的有关属性应适合于对象的所有实例。如果 2文登敏,张丽梅.面向对象理论与实践M四川:西南交通大 对象的一个实例不具备某属性,那往往意味着问题域中存在尚 学出版社M.2005. 未发现的类继承关系。因此,应该利用继承关系将原有对象和该 [3]周之英.现代软件工程(第二册)北京:科学出版社,2003. 特殊实例区分为两类对象。 [4)况和平,黄玲芳.浅析面向对象分析中对象的识别南昌高 (⑤)有些对象还可以看成是某个对象的操作,应根据它是适 专学报,2001.2(16. 合作为对象还是适合作为对象的操作,从而决定应不应该删除 [5) 费翔林.面向对象分析方法综述U小型微型计算机系统, 这个对象。 1995,16(9 (⑥去掉仅与系统实现有关的候选类和对象,对象应是软件 [旧马亚玲浅谈面向对象的分析和设计方法的发展趋势川.信 需求模型的必要成分,与设计和实现方法无关。 息系统工程,1995.(2) 122 C1994-201I China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
TECHNOLOGY AND MARKET Vol.18,No.5,2011 1 OOA和OOD OOA(Object- Oriented Analysis, 面向对象分析方法)和OOD (Object- Oriented Design, 面向对象设计) 是面向对象软件开发生 命周期中两个重要的阶段,OOA活动涉及的是语义对象,而OOD 活动涉及的是语义对象,接口对象,应用对象和实用/库对象,这 种区分OOA和OOD对象的方法在大多数情况下是正确的。但是, 在分析阶段,一个好的规格说明也应涉及到用户接口,控制机制 等各方面的内容,因此,在OOA阶段,不仅该得到语义对象,也应 该得到接口对象和应用对象。这些对象通过OOA中的对象识别 和精化过程得到。在OOA阶段的主要任务是识别和精化对象, OOD阶段的主要任务是构造类和建立系统结构。 2 面向对象分析中的对象识别 在使用计算机解决问题时,对象是作为计算机模拟真实世 界的一个抽象,一个对象就是一个物理实体或逻辑实体,它反映 了系统为之保存信息和(或)与它交互的能力。对象不仅能表示 具体的实体,如桌子、椅子;也能表示抽象的事件,如演出、会议。 那么,在面向对象分析中,如何尽可能精确的识别对象呢? 为了识别出系统所需要的对象,在系统分析的过程中应采用 “先松后紧”的原则。系统分析员应首先找出各种可能有用的候选 对象,即标识潜在对象。识别对象起步于对用户需求的正文描述进 行语法分析。找出所有的名词或名词短语,合并同义名词。 对象在用户需求的正文描述中以多种形式呈现,系统分析 员应该运用抽象原则,首先要舍弃与系统责任无关的事物,保留 与系统责任有关的事物。其次,还要舍弃与系统责任有关的事物 中与系统责任无关的特征。判断事物及其特征是否与系统责任 相关的准则是:该事物是否为系统提供了一些有用的信息或需 要系统为其保存和管理某些信息;该事物是否向系统提供了某 些服务或需要系统描述它的某些行为。 在找到许多可能有用的候选对象之后,接下来的工作是对 它们进行逐个审查,分析它们是否是OOA模型所真正需要的,从 而筛选掉一些对象。筛选对象时应遵循的规则有: (1)删除无关类、冗余类和与之对应的对象。 (2)对象的属性应是目标系统所关心的,或者是目标系统正 常运转所必需的,对象利用其操作能够为目标系统中的其他对 象提供服务。 (3)如果某个对象仅有一个属性,则最好将此对象表示为其 他对象的属性。 (4)为对象定义的有关属性应适合于对象的所有实例。如果 对象的一个实例不具备某属性,那往往意味着问题域中存在尚 未发现的类继承关系。因此,应该利用继承关系将原有对象和该 特殊实例区分为两类对象。 (5)有些对象还可以看成是某个对象的操作,应根据它是适 合作为对象还是适合作为对象的操作,从而决定应不应该删除 这个对象。 (6)去掉仅与系统实现有关的候选类和对象,对象应是软件 需求模型的必要成分,与设计和实现方法无关。 3 面向对象分析与设计的发展趋势 3.1 面向对象分析与设计的方法将被越来越多的人接受 迄今为止,“面向对象”本身还没有一个统一的让所有人都 能接受的概念。然而,面向对象中的一些最基本的概念已经和正 在被人们所接受,比如类、对象、继承、封装等;一些最有效的表 示方法也正在被人们所共同采用,比如图形表示、基本输入要求 和输出结果等。并且这种趋势在越是较晚出现的方法和工具中 越是明显,面向对象的方法学研究在计算机领域正在朝着普及 化的方向发展。 3.2 新的分析与设计的方法和工具将不断涌现 随着SDL92和ObjectTime的问世,新的分析方法和工具将朝着 动态化、标准化、可执行性、可测试性的方向发展。同时,新的面向 对象的设计方法也以越来越成熟的面孔出现。新方法和工具的相 继出现,将会大大缩短软件开发周期,节省软件开发成本。 3.3 集成面向对象分析和设计将成为趋势 由于设计过程本身也涵盖有部分的分析,分析过程中也有 设计的成分。基于这种关系,集成了分析和设计两方面的方法和 工具的研究也将成为面向对象分析与设计领域的一个趋势。它 的主要特点就是有机地集成比较著名的分析方法和设计方法来 共同完成从分析到设计甚至到实现的全部任务。集成分析与设 计方法最重要的环节是要能够把分析方法的输出结果变换成为 一个设计方法的工具的输人,即需要一个“翻译程序”。然而,它 与普通的翻译程序是不同的,比普通的“翻译程序”更智能化。集 成分析和设计方法虽然还处于尝试阶段,但这个方向对于软件 开发界是很有吸引力的。 4 结语 目前,面向对象的分析与设计方法正处于发展阶段,实际上 都还没有真正解决从应用领域知识到需求模型的演变问题。要 解决这个问题,毋庸置疑,还有很长的路要走。因为这不仅是 OOA与OOD的任务,还包括分析设计人员的实践和经验的积累, 同时还依赖于人工智能等相关学科的发展水平。随着使用面向 对象程序设计方法的人越来越多,同时参与研究面向对象分析 与设计的方法学的队伍越来越壮大,OOAD的前景在软件的世界 里将大放异彩。 参考文献: [1] 汪成为等.面向对象分析、设计及应用[M].国防工业出版社, 1992. [2] 文登敏,张丽梅.面向对象理论与实践[M].四川:西南交通大 学出版社[M].2005. [3] 周之英.现代软件工程(第二册)[M].北京:科学出版社,2003. [4] 况和平,黄玲芳.浅析面向对象分析中对象的识别[J]. 南昌高 专学报,2001,2(16). [5] 费翔林.面向对象分析 方 法 综 述[J]. 小型微型计算机系统, 1995,16(9). [6] 马亚玲.浅谈面向对象的分析和设计方法的发展趋势[J].信 息系统工程,1995,(2). 面向对象分析与设计综述 冯德虎 (西南交通大学 信息科学与技术学院,四川 成都 610031) 摘 要:介绍了面向对象分析与设计的基本概念,阐述了面向对象分析中识别对象的方法,对面向对象的分析与设计方法的 发展趋势做出了相应的预测。 关键词:面向对象分析;面向对象设计;对象识别 doi:10.3969/j.issn.1006- 8554.2011.05.087 技 术 研 发 122