- 1、本文档共105页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模型由四个部件模型和四个活动组成。 四个部件模型:人机接口部件模型 问题领域部件模型 任务管理部件模型 数据管理部件模型 四个活动:构建四个部件模型的活动。 OOD贯穿OOA的五个层次和五个活动,OOA结果就是OOD的问题领域部件,但在OOD中可以改动和增补。 (2) 面向对象设计(OOD)步骤 3.Coad-Yourdon的面向对象方法论 类与对 象层 属性层 服务层 结构层 主题层 问题 领域 部分 人机 交互 部分 任务 管理 部分 数据 管理 部分 主题 服务 消息 属性 实例连接 类边界 实例边界 设计模型的体系结构 4.James Rumbaugh的面向对象方法对象模型化技术OMTUML创始人 -- James Rumbaugh詹姆斯-朗博 Rumbaugh的OMT方法将开发过程分为四个阶段:. 分析 需求分析:导出问题范围的描述 系统分析:建立三大模型 . 系统设计:将分析模型划分为子系统 . 对象设计:确定属性及操作,定义算法和数据结构,结构,关系等 . 实现 ① 对象模型(object model). 描述对象的结构(对象、类、层次、关系),表示静态的、系统的数据特征。用对象图描述。对象模型最重要,动态模型和功能模型依此建立. ② 动态模型(dynamic model). 描述系统与时间和操作顺序有关的系统特征,描述系统控制特征。用状态图表示 ③ 功能模型(function model). 描述与数据值变换有关的系统特征。用数据流程图表示。 分析建立三种模型: 一个UML的应用实例 面向对象分析(OOA):在问题域内发现和描述对象。 面向对象设计(OOD):如何定义软件对象以及它们之间如何协作以实现需求。 快速开始的示例 骰子游戏:软件模拟游戏者投掷两个骰子,如果总点数是7则赢得游戏,否则为输 过程:定义用例-定义领域模型-定义交互图-定义设计类图 定义用例(用例是需求分析的一种工具,它是一些情节的描述) 骰子游戏: 1、游戏者请求骰子 2、系统展示结果:如果骰子的总点数是7,则游戏者赢;否则游戏者输 骰子游戏的领域模型(Domain Model) 定义领域模型(OOA) - 识别问题中的概念,它是对真实世界领域中的概念和想像可视化,与具体实现的软件技术无关(比如java或C#) 游戏者 骰子 骰子游戏 骰子游戏的领域模型(Domain Model) 分配对象职责并绘制交互图(动态建模) OOD关注的是:软件对象的定义 – 职责与协作 定义设计类图(静态建模) 从领域模型以及交互图中获得启示,定义软件类,包括属性、方法等等 骰子游戏的局部设计类图示例如下: 1.6 本章小结 软件的基本概念和特点 软件的发展过程及软件开发过程 软件开发的方法 面向对象技术的基本概念及开发过程 几种典型的面向对象方法 为了建立复杂的系统,开发人员必须首先抽象出系统的不同视图,并用精确的表示法来建立模型,最后在模型转换为实现的过程中逐渐添加进相关细节。如图所示,表示法、过程和工具是成功建模的三要素,三者缺一不可。如果建模人员了解表示法的含义,但不知道如何使用这些表示法(过程),那么最终有可能会失败;如果建模人员知道建模的过程,但不知道各表示法的含义,那么最终也可能会失败;如果建模人员不能借助工具记录下建模过程中所得的各制品,那么最后还是有可能会失败。 * * 让对象细节受到保护——封装 当一个对象执行自己的操作时。它对外界隐藏了操作的细节。 封装可以提高重用性, 并且让程序易于维护 封装的程度问题 还是《春晓》。刚才我们将产生**的方法写在了类ChunXiao2中,根据前面所讲,类中的方法代表的是类的操作,而产生**和春晓没有直接关系,这样的封装看起来好像不合理,怎么改进一下呢 ? StarFactory String build() ChunXiao3 【代码】StarFactory.java Chunxiao3.java public class StarFactory{ public String build(){ return **; } } public class ChunXiao3{ public static void main(String[] args){ StarFactory strFac = new StarFactory(); System.out.println(strFac.build()+ 春晓); System.out.println(strFac.build()+ 春眠不觉晓,); System.out.printl
文档评论(0)