•第一节面向对象的基本概念•第二节面向对象系统开发的原理•第三节面向对象系统开发工具—UML第九章面向对象的系统开发方法本节内容:一、对象的基本概念二、类的基本概念三、消息及消息传递四、继承的基本概念五、面向对象的含义第一节面向对象的基本概念一、对象的基本概念-1•在面向对象的系统中,问题对象是基本的运行实体,是由一组数据和施加于这些数据上的一组操作封闭而成的。•构成对象的基本要素:–标识:即是对象的名称,用来在问题域中区分其它对象;–数据:描述对象属性的存贮或数据结构,表明对象的一个状态;–操作:即对象的行为。分为对象自身承受的操作和施加于其它对象的操作;–接口:主要指对外接口,是指对象受理外部消息所指定的操作名称集合。•对象的状态机表示一、对象的基本概念-2消息回送消息状态转换接口操作集合状态集合对象的状态机表示•对象是构成和支撑整个软件系统的基石。对象的三个主要特征为:–模块独立性–动态连接性–易维护性•对象的识别–系统的目的不同,对象的划分也就不一样–对象划分的基本原则是:寻求大系统中事物的共性,将所有共同的系统成分确定为一个对象。一、对象的基本概念-3•在现实世界中有许多内部状态和外部行为相似的对象,由这些对象构成的集合就是类。•构成类的基本元素:–标识:类的名称,用以区分其它类;–继承描述:指子类承袭的父类的名称,以及继承得到的结构与功能;–数据结构:是对该类数据的组织结构的描述;–操作:指该类通用功能的具体实现方法;–接口:指面向其它类的统一的外部通讯协议。•类与对象–对象与类的关系相当于一般程序设计语言中变量和变量所具有的类型的关系。二、类的基本概念-1•面向对象的世界是通过对象与对象间彼此的相互合作来推动的,消息是对象之间的通信载体。•消息就是用来请求对象执行某个处理或回答某些信息的要求,是连接对象的纽带。在面向对象系统中有两类消息,即公有消息和私有消息。•消息具有如下几个性质:–同一对象可以接收不同形式的多个消息,产生不同响应。–一条消息可以发送给不同的对象,消息的解释完全由接收对象完成,不同对象对相同形式的消息可以有不同解释。–与传统程序调用不同,对于传来的消息,对象可以返回相应的回答信息,也可以不返回,即消息响应不是必须的。三、消息和消息传递-1三、消息和消息传递-2•消息传递机制–当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息,接收到消息的对象经过解释予以响应,对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息传递”。•消息模式与方法–消息的形式用消息模式(messagepattern)刻画。一个消息模式定义一类消息。–消息模式不仅定义了对象接口所能受理的消息,还定义了对象固有处理能力,是对象接口的唯一信息,使用对象只需要了解它的消息模式。–对象的消息模式的处理能力即所谓的“方法”(Method),方法是实现消息具体功能的手段。三、消息和消息传递-3传送对象接收对象消息操作名,参数接口消息传递模型四、继承的基本概念-1•继承是指一个类(即称子类)因承袭而具有另一个类(或称父类)的能力和特征的机制或关系。•概括来说,有继承关系的类之间应具有如下特性:–类间具有共享特征(包括数据和程序代码的共享);–类间具有细微的差别或新增部分(包括非共享程序代码和数据);–类问具有层次结构。•继承避免了由于系统内类和对象封闭而造成数据和操作冗余的现象。其最重要的优点在于支持重用。五、面向对象的含义-1•面向对象=数据抽象+数据抽象类型+继承机制•面向对象是一种认识客观世界的认知方法学–这种认识方法将客观世界看成是由许许多多不同对象构成的,每一个对象都有自己的运动规律和内部状态,不同对象间的相互作用和通讯构成了完整的客观世界。•面向对象亦是一种解决问题的思维方法–从组织结构模型化客观世界,将对象作为需求分析和系统设计的核心或主体,把整个问题域抽象成为相互通讯的一组对象集合,并引用科学方法论中的分类思想,将相似或相近的一组对象聚合成类,采用各种手段将相似的类组织起来,实现问题空间到解空间的映射。第二节面向对象系统开发的原理本节内容:一、面向对象系统开发的方法论二、面向对象系统的分析三、面向对象系统的设计四、面向对象系统的实施一、面向对象系统开发的方法论-1•从宏观层面看,面向对象的系统开发方法包括分析、设计、实现以及运行与维护等四大阶段,遵循反复累增的生命周期,如图8-4所示。•从微观层面上看,面向对象的系统开发方法是指每一宏观阶段中标识对象,确定对象的属性,定义对象的服务,以及确定对象间关系等几个步骤。•较为成熟并具代表性的方法–Shlaer&Mellor方法;–Booch‘sOOA&OOD方法;–OMT方法;–Wifs-Brock方法;–Coad&Yourdon‘sOOA&OOD方法。一、面向对象系统开发的方法论-2目标系统类库t时间分析设计分析设计设计实现t时间运行维护分析设计反复累增的生命周期•面向对象分析的基本任务:–找出并规定一组根据系统的各项要求而行动和相互作用的问题领域的对象,–依据这些对象及其关系建立问题域模型。•面向对象分析的基本步骤:–问题域陈述–识别对象/类识别对象的准则:搜寻准则判别准则检验准则–确定对象的属性–确定对象的服务–确定对象/类的关系二、面向对象的系统分析-1•面向对象设计阶段1.配置分析阶段确定出来的对象和类;2.实现系统功能;3.建立系统体系结构,具体任务是:•增、并、改实体对象,并识别接口对象和控制对象。•确定实体对象、接口对象和控制对象之间的各种关系。•完善对象类结构图,组织系统的体系结构。•面向对象设计的基本步骤:1.识别接口对象和控制对象•确认接口对象/类的准则•控制对象的识别•三类对象间的关系2.系统结构设计3.结构框架内各个子系统的详细设计三、面向对象的系统设计-1三、面向对象的系统设计-2•结构框架内各个子系统的详细设计–问题领域子系统的设计(主要任务是完善对象属性和操作的形式规定,包括限定属性值、确定复杂服务的算法等等,进一步规范对象形式说明以便对象在物理上实现)。–人机交互子系统的设计(接口对象在设计初期就已经规定了,此时主要确定图形用户接口的总体策略。–外部接口子系统的设计–数据管理子系统的设计–任务管理子系统的设计–基础对象子系统的设计三、面向对象的系统实施-1•系统实施阶段主要进行–编码语言的选择;–面向对象应用程序框架的构建;–面向对象应用程序编写;–构建出信息系统的应用软件平台。本节内容:一、类图及用例图二、状态图及顺序图三、活动图及协作图四、配置图及组件图第三节面向对象系统开发工具—UML一、类图及用例图-1•类图–类图描述类之间的静态关系,如关联;聚类/组成;继承。–类图的作用类名称[路径]类属性类操作类的表示图例一、类图及用例图-2•用例(usecase)图–用例是第二代面向对象技术的标志,–从用户的观点描述系统行为或系统使用场景。洗衣机用户洗衣服用例图图示二、状态图及顺序图-1•状态图–在任何给定的时刻,一个对象总处于某一特定的状态;–一个状态图包括一系列的状态以及状态之间的转移。–状态图图例如右图所示。浸泡洗涤漂洗脱水二、状态图及顺序图-2•顺序图–顺序图所表达的是系统运行中,对象之间的基于时间的动态交互关系,着重体现对象间消息传递的时间顺序。–顺序图的水平轴表示不同对象,垂直轴表示时间,图例见右。注水管洗涤缸排水管注入净水保持静止停止旋转洗涤排污水注入净水旋转洗涤排污水停止旋转甩干停止三、活动图及协作图-1•活动图–既可用来描述操作(类的方法)的行为;–也可以描述用例和对象内部的工作过程.洗涤缸旋转洗涤15分钟排污水重新注入净水活动图图例三、活动图及协作图-2•协作图–协作图表达为完成系统的工作目标,系统中相互合作的对象间的交互关系和链接关系。–与顺序图不同,协作图着重体现交互对象间的静态链接关系。协作图图例内部计时器注水管洗涤缸1停止2旋转洗涤四、配置图及组件图-1•组件图与配置图–组件图与配置图与整个计算机系统密切相关。–组件图表示信息系统的软件结构,配置图显示信息系统的物理体系结构。第九章面向对象的系统分析与设计小结面向对象的基本概念面向对象系统开发原理面向对象系统开发工具——UML面分向析对和象设的计系统对象、类、消息和继承的概念。面向对象是一种认识客观世界的认知方法学亦是一种解决问题的思维方法面向对象系统开发的方法论。面向对象系统的分析、设计和实施。类图、用例图、状态图、顺序图、活动图、协作图、配置图和组件图