第10章面向对象讲解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程导论(第五版) PAGE 软件工程导论(第五版) PAGE # PAGE # PAGE # 软件工程导论(第五版) 第10章面向对象分析 10.1面向对象分析的基本过程 不论采用哪种软件工程方法开发软件, 需求分析的主要 工作都是:理解需求、表达需求和验证需求,下面的图概括 地表示了 参照当前系统建立目标系统的过程。 模型化当前系统怎么做4 模型化 当前系统 怎么做 4物理模型 做什么 抽象化 逻辑模型 理辭需求 导出具体化实例化 导出 具体化 实例化 目标系统物理模型漫辑模型 目标系统 物理模型 漫辑模型 表达需求 图:参照当前系统建立目标系统 面向对象分析(Object-Oriented Analysis,简称 00A)的 关键就是识别出对象与类,并分析它们之间的关系,最终建 立对象模型、动态模型和功能模型。 10.1.1 概述 系统分析员要善于学习、勇于实践,更重要的是一切从实际出发。 〔注〕“00A就是抽取和整理用户需求并建立问题域 精确模型 的过程。”(P231) ——这在一开始能做到吗? 一一扯蛋 10.1.2 3个子模型与5个层次 面向对象建模需建立包含系统的三个要素: 1)静态结 构(对象模型)、2)交互次序(动态模型)、3)数据交换(功能模 型)。 建立系统模型的过程是一个迭代(iterations )式的自顶向下 的求精过程。对于一个大型复杂系统来说对象模型一般由下述5个 层次组成: 主题层 类与对象层 结构层 属性层 服务层 图10.2复杂问题的对象模型的5个层次 其中主题层是指从一个更高(高于“类”)的抽象层次 来描述对象模型(即从一个相当高的层次上描述总体模型) 通过划分“主题”把一个复杂系统的对象模型分解成几个不同的概念 范畴。 其实上述5个层次就是00A中建立对象模型的5项主要工作: 找出类和对象,识别结构(类或对象之间的矣系),识别主题、定义 属性、定义服务。我们知道动态模型和功能模型中都包含了对象模型 中的操作, 因此人们在定义每个类 中的服务前,往往先建立起动态模型和功能模型,这样说来00A大体 上可按下列顺序进行: 确定类和对象 确定关联 划分主题 定义属性 确定继承关系 建立动态模型 PAGE # PAGE # 软件工程导论(第五版) PAGE # PAGE # 软件工程导论(第五版) 建立功能模型 定义服务 需要注意地是在这里我们根本不强调顺序, 更不是谈什 么步骤。 10.2需求陈述 需求陈述的主要任务是准确地回答“系统必须做什 么? ”,而不是“系统应该怎么做? ” 10.2.1书写要点 1022例子 我们用 “ ATM 系统(ATM 是 Automatic Teller Machine 的缩 写,意即自动柜员机)的开发作为 00A00D的实例 软件工程导论(第五版) PAGE 软件工程导论(第五版) PAGE # 软件工程导论(第五版) PAGE 软件工程导论(第五版) PAGE # 10.3建立对象模型 10.3.1确定类与对象 找出候选的类与对象(例:P236 ATM系统) 一般来说,大千世界中的客观事物可分为 5类: 1) 可感知的物理实体,如:飞机,汽车,房屋 2) 人或组织的角色,如:教师,医生,计算机系,学生处 3) 应该记忆的事件,如:飞行,演出,访问,交通事故 4) 对象的相互作用,如:购买,结婚,纳税 5) 概念,如:政策,刑法,泛化,集合 筛选出正确的类与对象 我们需要确定的类与对象是: (1)应该记录的对象 (2)需要它提供服务的对象 软件工程导论(第五版) 软件工程导论(第五版) PAGE # PAGE # PAGE # 软件工程导论(第五版) 同时要关注下述6个方面: 1) 冗余:去掉冗余的类(如“用户”) 2) 无关:去掉无关的类(如“储蓄所”) 3) 笼统:去掉笼统的类(如“银行”) 4) 属性:区分属性和类(某个性质若具有很强的独立性 应当作为“类”) 5) 操作:区分操作和类(本身具有属性且需独立存在的 “操作”应当作为“类”) 6) 实现:忽略实现内容(应当去掉仅和实现有关的 “类”,如“事务日志”) 10.3.2确定关联 对象之间的相互依赖、相互作用的矣系就是关联。在分 析的起始阶段,我们不必花过多的精力去区分关联和聚集, 聚集不过是一种特殊的关联,是关联的一个特例。 初步确定关联 通过分析动词词组我们可以得出大多数关联(例: P238 A/系统) 筛选 筛选时要矣注下述5个方面: 1)已删去的类之间的关联也要删除 2)无关的或在实现阶段考虑的关联要删除 3)描述瞬时事件的关系不应作为关联(矣联应该描述问 题域的静态结构) 4 )三个或三个以上对象的关联

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

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

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档