




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章面向对象技术和建模基础 王卫红wangwhs 2013 9 本章学习导航 本章学习导航 本章学习要点 面向对象方法面向对象的基本概念与特征面向对象分析面向对象设计面向对象实现面向对象方法的内涵软件建模概述 任务1 了解面向对象软件工程的基本思想和OOA OOD和OOP的基本内容 任务目标 分组教学法资料查询法 教学方法 2 1 1面向对象方法基本思想 一般指的是解决信息领域内所遇到问题的方法 特别是应用软件技术来解决问题的方法 面向对象的分析 Object OrientedAnalysis 面向对象的设计 Object OrientedDesign 面向对象的编程 Object OrientedProgramming 面向对象技术 胡塞尔认为对象是世界中的物体在人脑中的映象 是人的意识之所以为意识的反映 是作为一种概念而存在的先念的东西 它还包括了人的意愿 对象的含义 2 1 1面向对象方法基本思想 是一种把面向对象的思想应用于软件开发过程中 指导开发活动的系统方法 简称OO Object Oriented 方法 面向对象方法是建立在 对象 概念基础上的方法学 对象是由数据和允许在数据上执行的操作组成的封装体 与客观实体有直接对应关系 一个类定义了具有相似性质的一组对象 而继承性是对具有层次关系的类的属性和操作进行共享的一种方式 所谓面向对象就是基于对象概念 以对象为中心 以类和继承为构造机制 来认识 理解 刻画客观世界和设计 构建相应的软件系统 面向对象方法 2 1 2面向对象方法的发展 1 50年代后期 ALGOL语言中首次提供封装 保护 的尝试 2 60年代中后期 Simula语言提出了对象的概念 并使用了类 也支持类继承 3 70年代 Smalltalk语言诞生 它取Simula的类为核心概念 4 1980年 Xerox公司推出商品化的Smalltalk80 它在系统设计中强调对象概念的统一 引入对象 对象类 方法 实例等概念和术语 采用动态联编和单继承机制 5 80年代以来 人们将面向对象的基本概念和运行机制运用到其它领域 获得了一系列相应领域的面向对象的技术 6 1986年在美国举行了首届 面向对象编程 系统 语言和应用 OOPSLA 86 国际会议 使面向对象受到世人瞩目 面向对象方法的发展 2 2 1面向对象方法的基本概念 类是对象的模板 即类是对一组有相同数据和相同操作的对象的定义 一个类所包含的方法和数据描述一组对象的共同属性和行为 类 对象是要研究的任何事物 从一本书 一个人 一件商品 一家图书馆 一家极其复杂的自动化工厂 一架航天飞机都可看作对象 它不仅能表示有形的实体 也能表示无形的 抽象的 规则 计划或事件 对象 消息是对象之间进行通信的一种规格说明 一般它由三部分组成 接收消息的对象 消息名及实际变元 消息 2 2 2面向对象主要特征 继承性是子类自动共享父类数据和方法的机制 它由类的派生功能体现 一个类直接继承其它类的全部描述 同时可修改和扩充 继承具有传递性 继承分为单继承 一个子类只有一父类 和多重继承 一个类有多个父类 继承性 封装是一种信息隐蔽技术 它体现于类的说明 封装使数据和加工该数据的方法 函数 封装为一个整体 以实现独立性很强的模块 使得用户只能见到对象的外特性 而对象的内特性对用户是隐蔽的 封装性 2 2 2面向对象主要特征 1 强调从现实世界中客观存在的事物 对象 出发来认识问题域和构造系统 2 运用人类日常的思维方法和原则进行系统开发 3 对象的概念贯穿于开发过程的始终 4 对象概念的一致性 5 对象的相对稳定性和对易变因素隔离 增强了系统的应变能力 6 对象类之间的继承关系和对象的相对独立性 对软件复用提供了强有力的支持 面向对象方法的优越性 对象根据所接收的消息会产生行动 同一消息为不同的对象接受时可产生完全不同的行动 这种现象称为多态性 多态性 2 3 1处理复杂问题的原则 封装即信息隐蔽 是指在确定系统的某一部分内容时 应考虑到其它部分的信息及联系都在这一部分的内部进行 外部各部分之间的信息联系应尽可能的少 封装 抽象是指为了某一分析目的而集中精力研究对象的某一性质 它可以忽略其它与此目的无关的部分 抽象机制被用在数据分析方面 称之为数据抽象 数据抽象是OOA的核心 抽象机制有时也被用在对过程的分解方面 被称之为过程抽象 抽象 2 3 1处理复杂问题的原则 相关是指把某一时刻或相同环境下发生的事物联系在一起 相关 继承是指能直接获得已有的性质和特征而不必重复定义它们 OOA可以一次性地指定对象的公共属性和方法 然后再特化和扩展这些属性及方法为特殊情况 继承者也可以定义自己独有的特性 继承 消息通信是指在对象之间互相传递信息的通信方式 消息通信 2 3 1处理复杂问题的原则 行为范畴是针对被分析对象而言的 它们主要包括 基于直接原因的行为时变性行为功能查询性行为 行为范畴 在分析和认识世界时 可综合采用如下三种组织方法 特定对象与其属性之间的区别整体对象与相应组成部分对象之间的区别不同对象类的构成及其区别 组织方法 比例是一种运用整体与部分原则 辅助处理复杂问题的方法 比例 2 3 2OOA方法的基本步骤 1 确定对象和类这里所说的对象是对数据及其处理方式的抽象 它反映了系统保存和处理现实世界中某些事物的信息的能力 类是多个对象的共同属性和方法集合的描述 它包括如何在一个类中建立一个新对象的描述 2 确定结构结构是指问题域的复杂性和连接关系 类成员结构反映了泛化 特化关系 整体 部分结构反映整体和局部之间的关系 3 确定主题主题是指事物的总体概貌和总体分析模型 4 确定属性属性就是数据元素 可用来描述对象或分类结构的实例 可在图中给出 并在对象的存储中指定 5 确定方法方法是在收到消息后必须进行的一些处理操作 对于每个对象和结构来说 那些用来增加 修改 删除和选择一个方法本身都是隐含的 而有些则是显示的 5个基本步骤 2 4面向对象设计 1 对象定义规格的求精在软件系统内设设计各个对象 对象间的关系 如层次关系 继承关系等 对象间的通信方式 如消息模式 等 2 数据模型和数据库设计数据模型的设计需要确定类和对象属性的内容 消息连接的方式 系统访问 数据模型的方法等 最后每个对象实例的数据都必须落实到面向对象的库结构模型中 3 优化设计从另一个角度对分析结果和处理业务过程的整理归纳 优化包括对象和结构的优化 抽象 集成 OOD阶段主要工作 2 5面向对象实现 1 分析确定在问题空间和解空间出现的全部对象及其属性 2 确定应施加于每个对象的操作 即对象固有的处理能力 3 分析对象间的联系 确定对象彼此间传递的消息 4 设计对象的消息模式 消息模式和处理能力共同构成对象的外部特性 5 分析各个对象的外部特性 将具有相同外部特性的对象归为一类 从而确定所需要的类 6 确定类间的继承关系 将各对象的公共性质放在较上层的类中描述 通过继承来共享对公共性质的描述 7 设计每个类关于对象外部特性的描述 8 设计每个类的内部实现 数据结构和方法 9 创建所需的对象 类的实例 实现对象间应有的联系 发消息 面向对象编程的基本步骤 2 6面向对象方法的内涵 程序设计范型 以下简称程设范型 具体指的是程序设计的体裁 过程式程设范型是流行最广泛的程序设计范型 人们平常所使用的程序设计语言大多属于此类型 这一程设范型的中心点是设计过程 所以程序设计时首先要决定的是问题解所需要的过程 然后设计过程的算法 面向对象程设范型是在以上范型之上发展起来的 它的关键在于加入了类及其继承性 用类表示通用特性 子类继承父类的特性 并可加入新的特性 面向对象程序设计范型 2 6面向对象方法的内涵 面向对象方法学要点之一 认为客观世界是由各种 对象 所组成的 任何事物都是对象 每一个对象都有自己的运动规律和内部状态 每一个对象都属于某个对象 类 都是该对象类的一个元素 面向对象方法学要点之二 是通过类比 发现对象间的相似性 即对象间的共同属性 这就是构成对象类的依据 面向对象方法学要点之三 认为对已分成类的各个对象 可以通过定义一组 方法 来说明该对象的功能 即允许作用于该对象上的各种操作 面向对象方法学 2 6面向对象方法的内涵 技术 泛指根据生产实践经验和自然科学原理而发展起来的各种工艺操作方法与技能 广义地讲 还包括相应的生产工具和其它物质设备 以及生产的工艺过程或作业程序 方法 近十多年来 除了面向对象的程序设计以外 面向对象方法已发展应用到整个信息系统领域和一些新兴的工业领域 80年代后期形成的并发工程 其概念要点是在产品开发初期 即方案设计阶段 就把结构 工艺 加工 装配 测试 使用 市场等问题同期并行地启动运行 其实现必须有两个基本条件 一是专家群体 二是共享并管理产品信息 将CAD CAE CIN紧密结合在一起 显然 这需要面向对象技术的支持 面向对象技术 2 6面向对象方法的内涵 1 智能计算机的研究 2 新一代操作系统的研究 3 多学科的综合研究 4 新一代面向对象的硬件系统的研究 面向对象方法当前的研究领域 课堂实践1 1 以学习小组为单位分组讨论进行讨论 每小组推荐一名成员进行汇报 2 通过上网查阅面向对象方法相关资料进行更为详细的了解 3 结合自己的编程实践 进一步理解面向对象的基本思想 操作提示 1 应用面向对象方法中的概念对DVD和播放DVD的情景进行描述 2 结合软件开发实践 举例说明OOA OOD和OOP的具体任务及相关之间的联系 3 举例说明面向对象编程和结构化编程的优缺点 操作要求 任务2 了解软件模型在开发一个软件系统时的重要作用 理解软件建模的优点 任务目标 分组教学法资料查询法类比学习法 教学方法 2 7 1软件建模的概念 需要为软件系统建立模型是因为开发一个具有一定规模和复杂性的软件系统和编写一个简单的程序大不一样 其间的差别 借用G Booch的比喻 如同建造一座大厦和搭一个狗窝的差别 大型的 复杂的软件系统的开发是一项工程 必须按工程学的方法组织软件的生产与管理 必须经过分析 设计 实现 测试 维护等一系列的软件生命周期阶段 为什么要建模 模型是对现实存在的实体的抽象和简化 模型提供了系统的蓝图 模型过虑非本质的细节信息 抽象出的问题本质 使问题更容易理解 模型是用某种工具对同类或其他工具的表达方式 什么是模型 2 7 1软件建模的概念 模型是软件开发之根本 无论软件之大小 涉及的范围 还是建模的本身都是系统化认识所开发软件的一个初步的途径 现在软件开发的过程必须经历的几个过程是需求分析 系统设计 初步实现 系统实现 系统运行 系统维护 在这几个阶段 迭代式的开发模式让我们每个阶段都经历一次系统建模的洗礼 建模的必要性 2 7 2软件建模的用途 1 捕获精确和表达项目的需求和应用领域中的知识 以使各方面的利益相关者能够理解并达成一致 2 进行系统设计 3 使具体的设计细节与需求分开 4 生成有用的实际产品 5 组织 查找 过滤 重获 检查以及编辑大型系统的有关信息 6 经济地研究多种设计过程中的解决方案 7 利用模型可以全面把握复杂的系统 建模的用途 2 7 3软件建模的优点 误区一 建模 写文档 误区二 建模是在浪费时间 误区三 从开始阶段就形成一个很完美的模型 建模的误区 使用模型便于从整体上 宏观上把握问题 可以更好的解决问题 可以加强人员之间的沟通 可以更早的发现问题或疏漏的地方 模型为代码生成提供依据 模型帮助我们按照实际情况对系统进行可视化 模型允许我们详细说明系统的结构或行为 模型给出了一个指导我们构造系统的模板 模型对我们做出的决策进行文档化 模型的好处 课堂实践2 1 以学习小组为单位分组讨论进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一舞蹈选拔活动方案
- 药师理论考试试题及答案
- 兰州文旅杯征文活动方案
- 兰陵县法院执行活动方案
- 关于党建共建活动方案
- 关于厨具销售活动方案
- 关于学风活动方案
- 乡村可持续发展的动力机制与治理模式
- 义务教育均衡发展的学校跃迁与制度推进策略
- 数字化技术在口腔临床实习培训中的应用研究
- 移动通信行业典型安全隐患图解
- 混凝土结构下册第章钢筋混凝土框架结构设计
- 生态系统对全球变化的响应
- 2023版中国近现代史纲要课件:09第九专题 新民主主义革命伟大胜利
- 小区燃气壁挂炉采购及安装合同
- 危货运输危险源识别清单
- 国际结算(中文)
- GB/T 3098.1-2010紧固件机械性能螺栓、螺钉和螺柱
- GB/T 16631-2008高效液相色谱法通则
- 性能验证医学宣教课件
- 中国现代文学三十年(第二编-第二个十年1928-1937-年-6-月)
评论
0/150
提交评论