第2章 面向对象技术和建模基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.6 面向对象方法的内涵
面向对象方法当前的研究领域 (1) 智能计算机的研究。 (2) 新一代操作系统的研究。 (3) 多学科的综合研究。 (4) 新一代面向对象的硬件系统的研究。
系 统 分 析 与 建 模
课堂实践 1
操作要求
(1)应用面向对象方法中的概念对DVD和播放DVD的情景进行描述。 (2)结合软件开发实践,举例说明OOA、OOD和OOP的具体任务及 相关之间的联系。 (3)举例说明面向对象编程和结构化编程的优缺点。
行为范畴 行为范畴是针对被分析对象而言的,它们主要包括: 基于直接原因的行为 时变性行为 功能查询性行为
系 统 分 析 与 建 模
2.3.2 OOA方法的基本步骤
5个基本步骤 (1)确定对象和类 这里所说的对象是对数据及其处理方式的抽象,它反映了系统保 存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属 性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。 (2)确定结构 结构是指问题域的复杂性和连接关系。类成员结构反映了泛化特化关系,整体-部分结构反映整体和局部之间的关系。 (3)确定主题 主题是指事物的总体概貌和总体分析模型。 (4)确定属性 属性就是数据元素,可用来描述对象或分类结构的实例,可在图 中给出,并在对象的存储中指定。 (5)确定方法 方法是在收到消息后必须进行的一些处理操作。对于每个对象和 结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含 的,而有些则是显示的。
系 统 分 析 与 建 模
Hale Waihona Puke Baidu
2.3.1 处理复杂问题的原则
抽象 抽象是指为了某一分析目的而集中精力研究对象的某一性质,它 可以忽略其它与此目的无关的部分。抽象机制被用在数据分析方面, 称之为数据抽象。数据抽象是OOA的核心。抽象机制有时也被用在对 过程的分解方面,被称之为过程抽象。
封装
封装即信息隐蔽。是指在确定系统的某一部分内容时,应考虑到 其它部分的信息及联系都在这一部分的内部进行,外部各部分之间的 信息联系应尽可能的少。
第2章 面向对象技术和建模基础
王卫红 wangwhs@163.com 2013.9
本章学习导航
本章学习导航
系 统 分 析 与 建 模
本章学习要点
面向对象方法
面向对象的基本概念与特征
面向对象分析 面向对象设计 面向对象实现 面向对象方法的内涵
软件建模概述
系 统 分 析 与 建 模
面向对象技术 一般指的是解决信息领域内所遇到问题的方法,特别是应用软件 技术来解决问题的方法。 面向对象的分析(Object-Oriented Analysis) 面向对象的设计(Object-Oriented Design) 面向对象的编程(Object-Oriented Programming)
系 统 分 析 与 建 模
2.2.2 面向对象主要特征
封装性 封装是一种信息隐蔽技术,它体现于类的说明。封装使数据和加工该 数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使 得用户只能见到对象的外特性,而对象的内特性对用户是隐蔽的。
继承性 继承性是子类自动共享父类数据和方法的机制,它由类的派生功能体 现。一个类直接继承其它类的全部描述,同时可修改和扩充。 继承具有传递性,继承分为单继承(一个子类只有一父类)和多重继 承(一个类有多个父类)。
系 统 分 析 与 建 模
2.6 面向对象方法的内涵
面向对象程序设计范型
程序设计范型(以下简称程设范型)具体指的是程序设计的体裁。 过程式程设范型是流行最广泛的程序设计范型(人们平常所使用 的程序设计语言大多属于此类型),这一程设范型的中心点是设计过 程,所以程序设计时首先要决定的是问题解所需要的过程,然后设计
80年代后期形成的并发工程,其概念要点是在产品开发初期(即
方案设计阶段)就把结构、工艺、加工、装配、测试、使用、市场等 问题同期并行地启动运行,其实现必须有两个基本条件:一是专家群
体,二是共享并管理产品信息(将CAD、CAE、CIN紧密结合在一
起)。显然,这需要面向对象技术的支持。
系 统 分 析 与 建 模
消息通信
消息通信是指在对象之间互相传递信息的通信方式 。
系 统 分 析 与 建 模
2.3.1 处理复杂问题的原则
组织方法 在分析和认识世界时,可综合采用如下三种组织方法: 特定对象与其属性之间的区别 整体对象与相应组成部分对象之间的区别 不同对象类的构成及其区别 比例 比例是一种运用整体与部分原则,辅助处理复杂问题的方法 。
过程的算法。
面向对象程设范型是在以上范型之上发展起来的,它的关键在于 加入了类及其继承性,用类表示通用特性,子类继承父类的特性,并
可加入新的特性。
系 统 分 析 与 建 模
2.6 面向对象方法的内涵
面向对象方法学
面向对象方法学要点之一:认为客观世界是由各种“对象”所组 成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状 态,每一个对象都属于某个对象“类”,都是该对象类的一个元素。 面向对象方法学要点之二:是通过类比,发现对象间的相似性,
系 统 分 析 与 建 模
2.7.1 软件建模的概念
建模的必要性
模型是软件开发之根本,无论软件之大小、涉及的范围,还是建 模的本身都是系统化认识所开发软件的一个初步的途径。 现在软件开发的过程必须经历的几个过程是需求分析、系统设计、 初步实现、系统实现、系统运行、系统维护。在这几个阶段,迭代式
的开发模式让我们每个阶段都经历一次系统建模的洗礼。
到面向对象的库结构模型中 。 (3)优化设计
从另一个角度对分析结果和处理业务过程的整理归纳,优化包括
对象和结构的优化、抽象、集成。
系 统 分 析 与 建 模
2.5 面向对象实现
面向对象编程的基本步骤 (1) 分析确定在问题空间和解空间出现的全部对象及其属性。 (2) 确定应施加于每个对象的操作,即对象固有的处理能力。 (3) 分析对象间的联系,确定对象彼此间传递的消息。 (4) 设计对象的消息模式,消息模式和处理能力共同构成对象的 外部特性。 (5) 分析各个对象的外部特性,将具有相同外部特性的对象归为 一类,从而确定所需要的类。 (6) 确定类间的继承关系,将各对象的公共性质放在较上层的类 中描述,通过继承来共享对公共性质的描述。 (7) 设计每个类关于对象外部特性的描述。 (8) 设计每个类的内部实现(数据结构和方法)。 (9) 创建所需的对象(类的实例),实现对象间应有的联系(发 消息)。
教学方法
分组教学法
资料查询法 类比学习法
系 统 分 析 与 建 模
2.7.1 软件建模的概念
什么是模型
模型是对现实存在的实体的抽象和简化,模型提供了系统的蓝图。 模型过虑非本质的细节信息,抽象出的问题本质,使问题更容易理解。 模型是用某种工具对同类或其他工具的表达方式。
为什么要建模
需要为软件系统建立模型是因为开发一个具有一定规模和复杂性 的软件系统和编写一个简单的程序大不一样。其间的差别,借用G. Booch的比喻,如同建造一座大厦和搭一个狗窝的差别。大型的、复 杂的软件系统的开发是一项工程,必须按工程学的方法组织软件的生 产与管理,必须经过分析、设计、实现、测试、维护等一系列的软件 生命周期阶段。
系 统 分 析 与 建 模
2.3.1 处理复杂问题的原则
继承 继承是指能直接获得已有的性质和特征而不必重复定义它们。OOA可 以一次性地指定对象的公共属性和方法,然后再特化和扩展这些属性 及方法为特殊情况,继承者也可以定义自己独有的特性。 相关 相关是指把某一时刻或相同环境下发生的事物联系在一起 。
系 统 分 析 与 建 模
2.2.2 面向对象主要特征
多态性 对象根据所接收的消息会产生行动,同一消息为不同的对象接受时可 产生完全不同的行动,这种现象称为多态性。 面向对象方法的优越性 (1) 强调从现实世界中客观存在的事物(对象)出发来认识问题域 和构造系统。 (2) 运用人类日常的思维方法和原则进行系统开发。 (3) 对象的概念贯穿于开发过程的始终。 (4) 对象概念的一致性。 (5) 对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。 (6) 对象类之间的继承关系和对象的相对独立性,对软件复用提供 了强有力的支持。
系 统 分 析 与 建 模
2.1.1 面向对象方法基本思想
面向对象方法 是一种把面向对象的思想应用于软件开发过程中,指导开发活动 的系统方法,简称OO(Object-Oriented)方法。 面向对象方法是建立在“对象”概念基础上的方法学。 对象是由数据和允许在数据上执行的操作组成的封装体,与客观实 体有直接对应关系,一个类定义了具有相似性质的一组对象。 而继承性是对具有层次关系的类的属性和操作进行共享的一种方式。 所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构
任务1
任务目标
了解面向对象软件工程的基本思想和OOA、
OOD和OOP的基本内容。
教学方法
分组教学法
资料查询法
系 统 分 析 与 建 模
2.1.1 面向对象方法基本思想
对象的含义 胡塞尔认为对象是世界中的物体在人脑中的映象,是人的意识之 所以为意识的反映,是作为一种概念而存在的先念的东西,它还包括 了人的意愿。
操作提示
(1)以学习小组为单位分组讨论进行讨论,每小组推荐一名成员 进行汇报。 (2)通过上网查阅面向对象方法相关资料进行更为详细的了解。 (3)结合自己的编程实践,进一步理解面向对象的基本思想。
系 统 分 析 与 建 模
任务2
任务目标 了解软件模型在开发一个软件系统时的重要作用, 理解软件建模的优点。
即对象间的共同属性,这就是构成对象类的依据。
面向对象方法学要点之三:认为对已分成类的各个对象,可以通 过定义一组“方法”来说明该对象的功能,即允许作用于该对象上的
各种操作。
系 统 分 析 与 建 模
2.6 面向对象方法的内涵
面向对象技术 技术“泛指根据生产实践经验和自然科学原理而发展起来的各种 工艺操作方法与技能”;“广义地讲,还包括相应的生产工具和其它 物质设备,以及生产的工艺过程或作业程序、方法”。 近十多年来,除了面向对象的程序设计以外,面向对象方法已发 展应用到整个信息系统领域和一些新兴的工业领域 。
系 统 分 析 与 建 模
2.4 面向对象设计
OOD阶段主要工作 (1)对象定义规格的求精 在软件系统内设设计各个对象、对象间的关系(如层次关系、继 承关系等)、对象间的通信方式(如消息模式)等 。 (2)数据模型和数据库设计 数据模型的设计需要确定类和对象属性的内容、消息连接的方式、
系统访问、数据模型的方法等。最后每个对象实例的数据都必须落实
造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
系 统 分 析 与 建 模
2.1.2 面向对象方法的发展
面向对象方法的发展 (1)50年代后期,ALGOL语言中首次提供封装(保护)的尝试。 (2)60年代中后期,Simula语言提出了对象的概念,并使用了类, 也支持类继承。 (3)70年代,Smalltalk语言诞生,它取Simula的类为核心概念。 (4)1980年,Xerox公司推出商品化的Smalltalk 80,它在系统设计 中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术 语,采用动态联编和单继承机制。 (5)80年代以来,人们将面向对象的基本概念和运行机制运用到其 它领域,获得了一系列相应领域的面向对象的技术。 (6)1986年在美国举行了首届“面向对象编程、系统、语言和应用 (OOPSLA'86)”国际会议,使面向对象受到世人瞩目
系 统 分 析 与 建 模
2.2.1 面向对象方法的基本概念
对象 对象是要研究的任何事物。从一本书、一个人、一件商品、一家 图书馆、一家极其复杂的自动化工厂、一架航天飞机都可看作对象, 它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或 事件。 类 类是对象的模板。即类是 对一组有相同数据和相同操作 的对象的定义,一个类所包含 的方法和数据描述一组对象的 共同属性和行为。 消息 消息是对象之间进行通信 的一种规格说明。一般它由三 部分组成:接收消息的对象、 消息名及实际变元。