- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 不同的分析与设计方法
* 北京大学信息学院研究生课程 面向对象的分析与设计 第2章 不同的分析与设计方法 几种典型的 建模方法 功能分解法 结构化方法 信息建模法 面向对象方法 方法的比较 对问题域的不同映射 以不同的概念构成系统模型 什么是OOA 什么是OOD OO方法的主要优点 几种典型的OO方法 从软件系统建模面临的难题 看面向对象方法的优势 Booch方法 Coad-Yourdon方法 Jacobson方法(OOSE) Rumbaugh方法(OMT) 本章内容结构 历史上几种典型的建模方法 2.1 功能分解法 (function decomposition) 以系统需要提供的功能为中心来组织系统。 首先定义各种功能,然后把功能分解为子功能对较大的子功能进一步分解,直到可给出明确的定义。 根据功能/子功能的需要设计数据结构。定义功能/子功能之间的接口。 没有明确地区分分析与设计 功能 功能 功能 系统 子功能 子功能 子功能 子功能 分解 分解 分解 …… …… …… …… 建模过程: 层层进行功能分解 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 功能 模块 得到的系统模型: 由模块及其接口构成 优点与缺点: 直接地反映用户的需求,所以工作很容易开始。 不能直接地映射问题域,很难检验结果的正确性。 对需求变化的适应能力很差。 局部的错误和修改很容易产生全局性的影响。 2.2 结构化方法 结构化分析(structured analysis,SA) 结构化设计(structured design,SD) 结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。 结构化设计与功能分解法基本相同,基于模块的概念建立设计模型,分为概要设计和详细设计。 概要设计:确定系统中包含哪些模块以及模块之间的调用关系,得到模块结构图(MSD)。 详细设计:描述每个模块内部的数据结构和操作流程。 数据流 加工 文件 起点 处理说明 ———— ———— ———— ———— ———— ———— 数据词典 ———— ———— ———— ———— ———— ———— 优点: 有严格的法则,强调研究问题域。 缺点: 仍然是间接映射问题域; 与结构化设计的概念不一致,从分析到设计的过渡比较困难; 数据流和加工的数量太多,引起分析文档的膨胀。 终点 2.3 信息建模法(information modeling) 由实体-关系法(E-R方法)发展而来。 核心概念是实体和关系。实体描述问题域中的事物,关系描述事物之间在数据方面的联系,都可以带有属性。 发展之后的方法也把实体称作对象,并使用了类型和子类型的概念,作为实体(对象)的抽象描述。 有人也称之为面向对象方法,但有以下差别: 1.强调的重点是信息建模和状态建模,而不是对象建模。 2.没有把对实体属性所进行的操作封装到实体对象中。 3.只有属性的继承,不支持操作的继承。 4.没有采用消息通讯。 实体 属性 属性 属性 属性 关系 实体 m n E-R 图 信息模型 m n 对象 属性 关系 属性 对象 属性 2.4 面向对象方法 面向对象的分析(OOA) 面向对象的设计(OOD) 运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统。 把问题域中的事物抽象为对象,作为系统的基本构成单位其属性和操作刻画了事物的静态特征和动态特征——完整地刻画了问题域中事物。 用类作为对象的抽象描述,建立它们之间的继承、聚合、关联、消息等关系——如实地表达了问题域中事物之间的各种关系。 封装、继承、聚合、关联、消息通讯等原则符合人类的日常思维——使系统的复杂性得到控制。 因此,得到的系统模型可以直接映射问题域。 不同的建模方法 体现于 从不同的概念出发来认识问题域 用不同的概念进行系统构造 系统对现实世界的不同映射 信息建模法 面向对象方法 功能/子功能 功能接口 功能分解法 数据流 加工 结构化方法 间接映射 间接映射 半直接映射 直接映射 审批 不同的方法对同一应用实例(电话安装业务系统)的不同效果 结构化分析——数据流和加工 登记 安装 开通 问题: 不是直接映射问题域,与问题域事物相关的数据和操作不是围绕这些事物来组织的,而是分散在数据流和加工中; 经常发生信息膨胀——模型中的多个数据流,实现中其实只是一项数据; 分析模型难以与设计模型及源程序对应。 用户登记表 用户登记表 用户登记表 用户登
文档评论(0)