软件工程 第10章 面向对象分析.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 面向对象分析 分析工作主要包括三项内容,就是理解、表达和验证。 面向对象分析(OOA)的关键,是识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。 10.1 面向对象分析的基本过程 概述 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 强调系统分析员与用户以及领域专家交流学习的重要性。 强调调研及以前研究同类问题所得到的结果的重要性。 三个子模型与五个层次 系统的3个要素:静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型) 复杂问题(大型系统)的对象模型通常由下述5个层次组成:主题层、类——对象层、结构层、属性层、服务层。 这5个层次不是构成软件系统的层次,而是分析过程中的层次,也可以说是问题的不同侧面。每个层次的工作结果作为系统规格说明的一个组成部分。 主题是指导读者理解大型、复杂模型的一种机制。即通过划分主题,把一个大型、复杂的对象模型分解成几个不同的概念范畴。 建立对象模型的5项主要活动:找出类与对象,识别结构,识别主题,定义属性,定义服务。 10.2 需求陈述 内容:问题范围,功能需求,性能需求,应用环境及假设条件等。 书写需求陈述时,要尽力做到语法正确,慎重选用名词、动词、形容词等。 系统分析员必须把需求与实现策略区分开。 必须与用户及领域专家密切配合协同工作,共同提炼和整理用户需求。必要时建立原型系统,以便与用户交流。 图10.2 ATM系统 10.3 建立对象模型 面向对象分析首要的工作,是建立问题域的对象模型。表示了目标系统的静态数据结构,相对来说比较稳定。 需求陈述、应用领域的专业知识以及关于客观世界的常识,是建立对象模型时的主要信息来源。 建立过程是不断反复高度迭代的。 10.3.1 确定类——对象 找出候选的类——对象 可感知的物理实体 人或组织的角色 应该记忆的事件 两个或多个对象的相互作用,通常具有交易或接触的性质 需要说明的概念 在分析问题时,可以参照上列5类常见事物,找出在当前问题域中的候选类与对象。 非正式分析:用自然语言书写的需求陈述为依据,把陈述中的名词作为类——对象的候选者,用形容词作为确定属性的线索,把动词作为服务的候选者。 以ATM系统为例:银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。 筛选出正确的类——对象 筛选时主要依据下列标准,删除不正确或不必要的类与对象: 冗余:保留在问题域中最富于描述力的名称。 无关:只保留与本问题密切相关的类和对象。 笼统:把笼统的或模糊的类去掉。 属性:把描述其他对象的属性的名词去掉。 操作:慎重考虑既可作为名词,又可作为动词的词的含义。 实现:去掉仅和实现有关的候选的类和对象 10.3.2 确定关联 初步确定关联:在需求陈述中使用的描述性动词或动词词组,通常表示关联关系。 直接提取需求陈述中的动词短语得出大多数关联. 通过分析需求陈述,还能发现一些在陈述中隐含的关联。 与用户及领域专家讨论问题域实体间的相互依赖、相互作用关系,根据领域知识再进一步补充关联。 筛选:去掉不正确或不必要的关联。筛选时主要依据下列标准 已删去的类之间的关联 与问题无关的或应在实现阶段考虑的关联 瞬时事件:关联应该描述问题域的静态结构,而不应该是一个瞬时事件。 三元关联:三个或三个以上对象之间的关联,大多可以分解为二元关联或用词组描述成限定的关联。 派生关联:去掉那些可以用其他关联定义的冗余关联。 通常从下述几个方面进一步完善 正名:选择含义更明确的名字作为关联名。 分解:必要时分解以前确定的类和对象。 补充:发现了遗漏的关联应该及时补上。 标明阶数:应该初步判定各个关联的类型,并粗略地确定关联的阶数。 图10.3 ATM系统原始的类图 10.3.3 划分主题 为了降低复杂程度,在概念上把系统包含的内容分解成若干个范畴 应该按问题领域而不是用功能分解方法来确定主题。 应该按照使不同主题内的对象相互间依赖和交互最少的原则来确定主题。 以ATM系统为例,可以把它划分成“总行”、“分行”和“ATM”三个主题,编号分别是1,2,3。 10.3.4 确定属性 确定属性的过程包括分析和选择两个步骤: 分析:在需求陈述中用名词词组表示属性,用形容词表示可枚举的具体属性。 选择: 删掉不正确的或不必要的属性 误把对象当作属性 把链属性误作为属性 把限定误当成属性 误把内部状态当成了属性 过于细化 存在不一致的属性 10.3.5 识别继承关系 可以利用继承机制共享公

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档