- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在多个加工之间定义多个数据流。这使得分析模型中数据流的数量往往比实际需要的数据 结构多许多倍,分析文档的膨胀令人望而生畏。其后果是,许多系统的设计人员不能全面、 认真地阅读分析文档,而是从自己的角度来重新理解系统,并按照自己的理解去进行系统设 计。结果是使工作量大为增加,并因分析与设计人员理解的不一致而隐藏大量的错误。
2.3.3信息建模法
信息建模法=实体(对象)
+属性 +关系
+父类型/子类型 +关联对象
倍息建模法(information modeling)是从P. P. S. Chen在i976年提出的实体-关系法 (entity-relationship design,简称 E-R 方法)发展而来的? 1981 年 M. Flavin 对该方法进 行了改进,并称之为信息建模法[u]. 1988年由S. Shlaer和S. Mellor发展为语义数据建 模方法,并引入了许多面向对象的特点[M].
信息建模法的发展与数据库技术有很深的渊源,但它本质上是一种系统分析方法。信 息建模法的核心概念是实体和关系。实体播述问题域中一个事物,它包含一组描述事物数 据信息的属性;关系描述问题域中各事物之间在数据方面的联系,它也可以带有自己的属 性。发展之后的方法也把实体称为对象,把实体之间关系的属性信息组织到关联对象中? 该方法还使用了类型和子类型的概念,作为对实体(对象)的抽象推述。
早期的方法处理策咯是:列出认识到的属性,把属性放到实体(对象)中,增添关系,用父 类型/子类型提炼属性的共性,用关联对象对关系做详细的描述。
改进之后的方法处理策略是:发现现实世界中的对象,用属性描述对象,以后的过程同 旧策略。两种处理策略的差别虽然很小,但是反映了指导思想及出发点的不同——是从数 据出发先认识属性,然后用对象把它们包起来?还是从现实世界出发先认识对象,然后去发 现它们的厲性?新策略反映了后一种思想,
可以看到,20世纪80年代后期的信息建模方法无论从概念上还是从策略上,都向OO 方法靠拢了。有些文献(包括1994年出版的《软件工程百科全书》[?]〉把Shlaer/Mellor的 方法也列为面向对象的分析与设计方法之一W.
按改进后的信息建模法,认识问題域的出发点是问题域中的具体事物,用模型中的实体 与之对应。它建立的系统模型对问题域的映射比功能分解法和数据流法都好。但这种映射 还不够全面,因为它只是在数据方面对问题域中的事物建立了直接映射,事物的行为特征则 没有在实体中加以反映——实体中只有属性,没有把操作封装进来。所以该方法是对问题 域的半直接映射,如图么4所示。
与典型的OOA方法相比,信息建模法有以下儿点差别,
?强调的重点是倌息建模和状态建模,而不是对象建模。
?没有把作用于实体厲性的操作封装到实体对象中,所以对象只有属性,没有搡作。
?父类型与子类型之间只能体现属性的继承,不体现操作的继承,
? ?有粜用消氬通信?
3.5 OOA与OOD的关系
OOA和OOD采用一致的,概念、原则和表示法,二者之间不存在鸿沟,不需要从分析 档到设计文档的转换。二者之间也不强调严格的阶段划分。
图3.s哦泉樓a
OOA与OOD可适应多种软件生命周期模型。既可以按瀑布模型,先进行OOA,后 行OOD,也可以按螺旋模型或增量模型,交替地进行OOA和 00D。然而更能体现二者之间关系特点的是20世纪90年代提 出的喷泉模型(见图3.5。其中分析与设计这两个“水泡”表明 OOA与OOD没有严格的边界,它们是连续的、无缝的,允许有一 定的相交(一些工作既可看成是OOA的,也可看成OOD的),也 允许从OOD回到OOA,
但是OOA与OOD有不同的侧重点和不同的分工,并因此 而具有不同的开发过程及具体策略。关于OOA与OOD的分 工,目前有两种不同的观点。 ^ ^
火们多年来在软件工程领域中形成的共 识于系统“做fT么”,$管f怎么做”,不涉及细节;
沒迁‘决“怎Hr的问题,描述有节厂接蘸这种现_点,有 关$^^1与操作的细节都不应^^)0八中考虑,而是放到 OOD阶段进行细化,例如Rumbaugh方法:M〕就是采用这种分工 的。t种观益是分析只针对问题域和系统责_仟,不考^实现 @的因素,建立一个独立于实现的OOA模型。模
问题域和€统责任的完整表达,其中也包括对属性与操作的 表、达。设计则考虑与实现有关的问题(如选用的编程语言、操作 系统、数if及图形用户界面等),认识与此有关的对象,建立一个针对具体实现的OOD 型,例如Coad/Yourdon方法[??[1]就是采用逐种分丄的。这两种观点的区别姐庙3. 6所; 文中纵向的区域划分表示按第^-种观点的分工,横向区域划分表示按第二种观点的分工,
本书的OOA与OOD方法采用第二
文档评论(0)