《5面向对象的分析和设计课件》由会员分享,可在线阅读,更多相关《5面向对象的分析和设计课件(64页珍藏版)》请在金锄头文库上搜索。
1、传统方法学的缺点传统方法学的缺点(补充)(补充)问题的表现问题的表现1)生产效率低)生产效率低2)不能满足用户需求)不能满足用户需求3)软件复用程度低)软件复用程度低4)软件仍然很难维护)软件仍然很难维护(SA:1几个阶段描述工具不一致几个阶段描述工具不一致2数据与操作分离数据与操作分离)15面向面向对象的分析和象的分析和设计导致传统方法学缺陷的原因导致传统方法学缺陷的原因(补充)(补充)1结构化技术本身缺陷结构化技术本身缺陷2预先定义的需求可能会过时预先定义的需求可能会过时3系统需求的模糊性系统需求的模糊性4语言鸿沟语言鸿沟25面向面向对象的分析和象的分析和设计面向对象方法的发展面向对象方法
2、的发展出发点和原则:出发点和原则:模拟人类习惯的思维方式,使得软件开模拟人类习惯的思维方式,使得软件开发过程接近人类解决问题的方法和过程发过程接近人类解决问题的方法和过程基本思想基本思想: : 使用对象、类、继承、封装、消息等基使用对象、类、继承、封装、消息等基本概念来进行程序设计本概念来进行程序设计35面向面向对象的分析和象的分析和设计面向对象方法概述面向对象方法概述(补充)(补充)客观世界的实体客观世界的实体对象对象对象的内部特性对象的内部特性实体静态属性实体静态属性对象属性对象属性实体动态行为实体动态行为对象操作(方法)对象操作(方法)对象的外在特性:对象的外在特性:客观世界的实体之间的
3、关系客观世界的实体之间的关系对象间的关系对象间的关系面向对象分析任务:面向对象分析任务:标志类和对象,规定类的属性和操作标志类和对象,规定类的属性和操作45面向面向对象的分析和象的分析和设计面向对象基本概念(补充)面向对象基本概念(补充)对象对象类和对象类和对象对象间的关系(继承,组成,动态,静态)对象间的关系(继承,组成,动态,静态)面向对象程序设计风格面向对象程序设计风格封装性封装性继承性继承性多态性多态性几何形状几何形状55面向面向对象的分析和象的分析和设计5.1.1 面向对象方法概述1、主要特点(对象及对象间相互关系)、主要特点(对象及对象间相互关系) 用对象表示事务用对象表示事务 对
4、象的属性和服务对象的属性和服务 封装(属性和服务结合为一个独立实体)封装(属性和服务结合为一个独立实体) 类和对象类和对象( (类似非面向对象语言的类型和变量类似非面向对象语言的类型和变量) ) 一般类和特殊类一般类和特殊类 聚合(学生类与学号(字符串类)聚合(学生类与学号(字符串类) 用消息通信实现对象之间的动态联系。用消息通信实现对象之间的动态联系。 通过关联表达对象之间的静态关系。通过关联表达对象之间的静态关系。65面向面向对象的分析和象的分析和设计传统软件工程与面向对象软件工程传统软件工程与面向对象软件工程传统软件工程传统软件工程OOSE面向对象软件工程面向对象软件工程75面向面向对象
5、的分析和象的分析和设计5.1.2面向对象的软件工程方法面向对象的软件工程方法面向对象的软件工程方法OOSE(Object Oriented Software EngineeringObject Oriented Software Engineering)定义:是面向对象方法在软件工程领域的全面运用定义:是面向对象方法在软件工程领域的全面运用过程:过程:面向对象分析面向对象分析 OOA(Object Oriented Analysis)OOA(Object Oriented Analysis)面向对象设计面向对象设计 OOD(Object Oriented Design)OOD(Object O
6、riented Design)面向对象编程面向对象编程 OOP(Object Oriented Programming)OOP(Object Oriented Programming)面向对象测试和软件维护面向对象测试和软件维护 OOP(Object Oriented OOP(Object Oriented Test)Test)85面向面向对象的分析和象的分析和设计5.1.2面向对象的软件工程方法OOAOOA强强调调针针对对问问题题域域中中客客观观存存在在的的各各种种事事物物建建立立OOAOOA模模型型中中的的对对象象。并并保保留留了了问问题题域域中中事物之间关系事物之间关系2面向对象的设计面
7、向对象的设计OOD则则是是针针对对系系统统的的一一个个具具体体的的实实现现运运用用OO方法。方法。1面向对象的分析面向对象的分析(OOA)OOA)95面向面向对象的分析和象的分析和设计5.1.2面向对象的软件工程方法3面向对象的编程面向对象的编程用用一一种种面面向向对对象象的的编编程程语语言言把把OOD模模型型中中的的每每个成分书写出来。个成分书写出来。用用具具体体的的数数据据结结构构来来定定义义对对象象的的属属性性,用用具具体体的语句来实现服务流程图所表示的算法。的语句来实现服务流程图所表示的算法。4面向对象的测试面向对象的测试定定义义: :对对于于用用OO技技术术开开发发的的软软件件,在在
8、测测试试过过程程中中继继续续运运用用OO技技术术,进进行行以以对对象象概概念念为为中中心心的软件测试。的软件测试。5面向对象的软件维护面向对象的软件维护105面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征1 1 对象对象定义:对象是问题域或实现域中某些事物的一个抽定义:对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发象,它反映该事物在系统中需要保存的信息和发挥的作用;挥的作用;对对象象 对象就是一个包含数据以及与这些数据有关对象就是一个包含数据以及与这些数据有关的操作的集合。每个实体都是对象。的操作的集合。每个实体都是对象。对象对象数数
9、据据操作代码操作代码115面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征2、消息和方法、消息和方法消息:就是面向对象发出的服务请求,消息:就是面向对象发出的服务请求,应含有提供服务的对象标识、服务标识、应含有提供服务的对象标识、服务标识、输入信息和回答信息。输入信息和回答信息。消息接收者是提供服务的对象消息接收者是提供服务的对象消息发送者是要求提供服务的对象或其消息发送者是要求提供服务的对象或其他系统成分。他系统成分。消息中只包含发送者的要求,并不告诉消息中只包含发送者的要求,并不告诉接收者应该如何处理接收者应该如何处理(隐蔽)返回消息可选返回消息可选125面向
10、面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征方法方法方法实际上是类对象上的各种操作方法实际上是类对象上的各种操作。面向对象设计方法放弃了传统语言控制面向对象设计方法放弃了传统语言控制结构的概念,而是通过对象及消息传递结构的概念,而是通过对象及消息传递来实现。来实现。135面向面向对象的分析和象的分析和设计特征特征3、类和类层次、类和类层次类的定义类的定义5.1.3 面向对象的基本概念和特征类类 是一组具有是一组具有相同数据结构相同数据结构和和相同操作相同操作的对象的对象集合。类的定义包括一组数据属性和在数据上的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义
11、可视为一个具有类似特性一组合法操作。类定义可视为一个具有类似特性与共同行为的对象摸板,可用来产生对象。与共同行为的对象摸板,可用来产生对象。 可以说,类是对象的抽象,而对象是类的具可以说,类是对象的抽象,而对象是类的具体实例。体实例。 类名类名属性属性服务服务对象名对象名服务服务属性属性145面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征3、类和类层次、类和类层次类层次结构类层次结构类、超类与子类:一个类继承其超类的类、超类与子类:一个类继承其超类的全部描述。这种继承具有传递性。全部描述。这种继承具有传递性。在类的层次结构中,一个类可以有多个在类的层次结构中,一
12、个类可以有多个子类,也可以有多个超类。子类,也可以有多个超类。多重继承多重继承 网状结构网状结构单重或简单继承单重或简单继承 树结构树结构一般类和特殊类一般类和特殊类 155面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征4继承性继承性继承继承 是在一个已存有的类的基础上建立一个新是在一个已存有的类的基础上建立一个新的类。并将已存在的类称为的类。并将已存在的类称为-基类或父类;基类或父类;新建立的类称为新建立的类称为派生类或子类。派生类或子类。继继承承基基 类类派派 生生 类类165面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征5封
13、装性封装性封装是一种信息隐蔽技术,用户只能见到封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用对象封装界面上的信息,对象内部对用户来说是隐蔽的。户来说是隐蔽的。两个含义:两个含义:1)1)形成对象形成对象 2) 2)信息隐蔽信息隐蔽。目的目的: :将对象的使用者和设计者分开将对象的使用者和设计者分开封装的定义封装的定义:一个清楚的边界;一个清楚的边界;一个接口;一个接口;受保护的内部实现。受保护的内部实现。175面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征6结构与连接结构与连接对象之间的以下几种关系:对象之间的以下几种关系:l l对象的分
14、类关系;对象的分类关系;l l对象之间的组成关系;对象之间的组成关系;l l对象属性之间的静态联系;对象属性之间的静态联系;l l对象行为之间的动态联系。对象行为之间的动态联系。oooo方法利用一般特殊结构、整体部分结构、方法利用一般特殊结构、整体部分结构、实例连接和消息连接描述对象之间的以上四实例连接和消息连接描述对象之间的以上四种关系。种关系。185面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征一般特殊结构一般特殊结构一般特殊结构又称作分类结构,是一组有一般一般特殊结构又称作分类结构,是一组有一般特殊关系的类所组成的结构。它是一个以类特殊关系的类所组成的结构。它是一
15、个以类为结点、以继承关系为边的连通有向图。为结点、以继承关系为边的连通有向图。195面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征整体部分整体部分结构构整体部分结构又称为组装结构,它描述对象之整体部分结构又称为组装结构,它描述对象之间的组成关系,即一个对象是另一个对象的组间的组成关系,即一个对象是另一个对象的组成部分。成部分。205面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征实例连接实例连接实例连接反映了对象与对象间的实例连接反映了对象与对象间的静态静态关系关系例如指导教师与学生间的关系。可以通过对象的例如指导教师与学生间的关系。可以通过对象的
16、属性表达出来,因此被称为实例连接。属性表达出来,因此被称为实例连接。消息连接消息连接消息连接描述对象之间的消息连接描述对象之间的动态动态联系联系即若一个对象在执行服务时,需要通过消息请求即若一个对象在执行服务时,需要通过消息请求另一个对象为它完成某个服务,则说它们存在另一个对象为它完成某个服务,则说它们存在着消息连接。着消息连接。举例:公司的对象模型举例:公司的对象模型215面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征7多态性多态性定义定义: :指在一般类中定义的属性或服务被特殊指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现类继承之
17、后,可以具有不同的数据类型或表现出不同的行为。出不同的行为。举例:几何图形支持多态性的实现的语言应具有的功能:支持多态性的实现的语言应具有的功能:重载:在特殊类中对继承来的属性或服务进行重载:在特殊类中对继承来的属性或服务进行重新定义。重新定义。动态绑定:在运行时根据对象接收的消息动态动态绑定:在运行时根据对象接收的消息动态地确定要连接哪一段服务代码。地确定要连接哪一段服务代码。类属:服务参量的类型可以是参数化的。类属:服务参量的类型可以是参数化的。225面向面向对象的分析和象的分析和设计5.1.3 面向对象的基本概念和特征特征特征8主动对象主动对象无法用被动对象描述的事物有无法用被动对象描述
18、的事物有:现实世界(问题域)中具有主动行为的事物现实世界(问题域)中具有主动行为的事物系统设计阶段因实现的要求而增加一些任务系统设计阶段因实现的要求而增加一些任务(一些主动的、彼此并发的执行单位)(一些主动的、彼此并发的执行单位)定义:一组属性和一组服务的封装体,其中定义:一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息至少有一个服务不需要接收消息就能主动执就能主动执行。行。235面向面向对象的分析和象的分析和设计5.1.4面向对象的开发方法面向对象的开发方法1Booch方法方法BoochBooch认为软件开发是一个螺旋上升的过程,上升的每认为软件开发是一个螺旋上升的过程,上升的每
19、个周期有固定的步骤,个周期有固定的步骤,首先发现应用领域的对象和类,然后确定其含义,找首先发现应用领域的对象和类,然后确定其含义,找出类之间的关系,说明界面和实现。出类之间的关系,说明界面和实现。这些步骤完成之后,又开始发现新的对象和类等。这些步骤完成之后,又开始发现新的对象和类等。步骤:步骤:在给定的抽象层次上识别类和对象在给定的抽象层次上识别类和对象识别这些对象和类的语义识别这些对象和类的语义识别这些类和对象之间的关系识别这些类和对象之间的关系实现类和对象实现类和对象245面向面向对象的分析和象的分析和设计5.1.4面向对象的开发方法面向对象的开发方法2Coad方法方法利利用用五五个个层层
20、次次和和活活动动定定义义和和记记录录系系统统行行为为,输输入入和输出。这五个层次的活动包括:和输出。这五个层次的活动包括:l l发现类及对象。发现类及对象。l l识别结构。识别结构。1 1 识别一般识别一般/特殊结构特殊结构 2 2 识别整体识别整体/部分结构部分结构l l定义主题。定义主题。l l定义属性。定义属性。l l定义服务。定义服务。255面向面向对象的分析和象的分析和设计5.1.4面向对象的开发方法面向对象的开发方法2Coad方法方法结结果果:一一个个分分成成五五个个层层次次的的问问题题域域模模型型,包包括括主主题题、类类及及对对象象、结结构构、属属性性和和服服务务五五个个层层次次
21、,由类及对象图表示由类及对象图表示需要进一步区分以下四个部分:需要进一步区分以下四个部分:l l问题域部分(问题域部分(PDC)l l人机交互部分(人机交互部分(HIC)l l任务管理部分(任务管理部分(TMC)l l数据管理部分(数据管理部分(DMC)。)。265面向面向对象的分析和象的分析和设计5.1.4面向对象的开发方法面向对象的开发方法3OMT方法方法OMT方法从三个视角描述系统,相应地提供了三种模型,方法从三个视角描述系统,相应地提供了三种模型,对象模型,动态模型和功能模型。对象模型,动态模型和功能模型。对象模型描述对象的静态结构和它们之间的关系。主对象模型描述对象的静态结构和它们之
22、间的关系。主要的概念包括:要的概念包括:类,属性,类,属性,操作,操作,继承继承,关联(即关系),关联(即关系),聚集聚集动态模型描述系统那些随时间变化的方面,其主要概动态模型描述系统那些随时间变化的方面,其主要概念有:念有:状态,子状态和超状态,事件,行为,活动状态,子状态和超状态,事件,行为,活动功能模型描述系统内部数据值的转换,其主要概念有:功能模型描述系统内部数据值的转换,其主要概念有:加工加工,数据存储数据存储,数据流数据流,控制流控制流,275面向面向对象的分析和象的分析和设计5.1.4面向对象的开发方法面向对象的开发方法角色该方法将开发过程分为四个阶段:角色该方法将开发过程分为四
23、个阶段:分析分析基于问题和用户需求的描述,建立现实世界的基于问题和用户需求的描述,建立现实世界的模型。模型。系统设计系统设计对象设计对象设计实现实现285面向面向对象的分析和象的分析和设计Coad方法CoadCoad方方法法严严格格区区分分了了面面向向对对象象分分析析OOA和和面面向向对对象象设设计计OOD。该该方方法法利利用用五五个个层层次次和和活活动动定定义义和记录系统行为,输入和输出。和记录系统行为,输入和输出。l l发现类及对象。发现类及对象。l l识别结构。识别结构。l l定义主题。定义主题。l l定义属性。定义属性。l l定义服务。定义服务。295面向面向对象的分析和象的分析和设计
24、Coad方法四个部分:四个部分:l l问题域部分(问题域部分(PDC)。)。l l人机交互部分(人机交互部分(HIC)。)。l l任务管理部分(任务管理部分(TMC)。l l数据管理部分(数据管理部分(DMC)。)。305面向面向对象的分析和象的分析和设计OOA方法概述方法概述分析的过程是提取系统需求的过程,主要包括分析的过程是提取系统需求的过程,主要包括理解、表达和验证。理解、表达和验证。在面向对象分析中,主要由对象模型、动态模在面向对象分析中,主要由对象模型、动态模型和功能模型组成。型和功能模型组成。两个任务。两个任务。1 1 形式地说明所面对的应用问题,最终成为软件形式地说明所面对的应用
25、问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的、系统基本构成的对象,还有系统所必须遵从的、由应用环境所决定的规则和约束。由应用环境所决定的规则和约束。2 2 明确地规定构成系统的对象如何协同合作,完明确地规定构成系统的对象如何协同合作,完成指定的功能成指定的功能315面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述1 分析模型面向对象建模得到的模型包含对象的三面向对象建模得到的模型包含对象的三个要素,即静态结构(对象模型),交个要素,即静态结构(对象模型),交互次序(动态模型)和数据变换(功能互次序(动态模型)和数据变换(功能模型)。模型)。在面向对象的分析中,有在面向
26、对象的分析中,有5 5种活动,对应种活动,对应着以下着以下5 5个层次:个层次:识识别别对对象象、识识别别类类的的结结构构、确确定定主主题题、定义属性、定义服务定义属性、定义服务325面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述1 分析模型按上述活动建立信息需求分析模型,按下列按上述活动建立信息需求分析模型,按下列5 5个个层次整理提交文档。层次整理提交文档。l l主主题题层层:控控制制一一次次分分析析所所考考虑虑的的范范围围,即即对对相相关的类进行归并。关的类进行归并。l l对象层:在分析范围内找出全部的对象。对象层:在分析范围内找出全部的对象。l l结构层:分析对象的分类结
27、构和组装结构。结构层:分析对象的分类结构和组装结构。l l属性层:描述每个对象的状态特征。属性层:描述每个对象的状态特征。l l服务层:描述每个对象所具有的操作。服务层:描述每个对象所具有的操作。335面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述2 OOA主要概念及表示法类类-&-&-对象对象对象对象类类类类-&-&-对象的图形表示对象的图形表示单纯的类图形表示单纯的类图形表示345面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述2、OOA主要概念及表示法(2)结构(左:分类结构)结构(左:分类结构右:组装结右:组装结构)构)355面向面向对象的分析和象的分析和设计
28、5.2.1 OOA方法概述2 OOA主要概念及表示法主题主题: :一种指导读者或用户研究大型复杂模型的机制。一种指导读者或用户研究大型复杂模型的机制。365面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述2 OOA主要概念及表示法属性及实例连接属性及实例连接属性是类的状态信息。属性是类的状态信息。实例连接的符号表示实例连接的符号表示375面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述2 OOA主要概念及表示法服务及消息连接服务及消息连接服务表示类的动态特征。服务表示类的动态特征。消息连接用来表示对象间的通信。消息连接用来表示对象间的通信。消息连接的符号表示消息连接的符
29、号表示385面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则抽象抽象系统中的对象是对现实世界中事物的抽系统中的对象是对现实世界中事物的抽象;象;类是对象的抽象;类是对象的抽象;一般类是对特殊类的进一步抽象;一般类是对特殊类的进一步抽象;属性是事物静态特征的抽象;属性是事物静态特征的抽象;服务是事物动态特征的抽象。服务是事物动态特征的抽象。395面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则分类分类分类就是把具有相同属性和服务的对象划分为分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。一类,用类作为这些对象的
30、抽象描述。在在OOAOOA中所有的对象都是通过类来描述的。中所有的对象都是通过类来描述的。对属于同一个类的多个对象并不进行重复的描对属于同一个类的多个对象并不进行重复的描述,而是以类为核心来描述它所代表的全部对述,而是以类为核心来描述它所代表的全部对象。象。运用分类原则也意味着通过不同程度的抽象而运用分类原则也意味着通过不同程度的抽象而形成一般特殊结构(又称分类结构),一般形成一般特殊结构(又称分类结构),一般类比特殊类的抽象程度更高。类比特殊类的抽象程度更高。405面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则聚合聚合是把一个复杂的事物看成若干比较简单是把一个
31、复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的事物的组装体,从而简化对复杂事物的描述。的描述。目目的的:区区分分事事物物的的整整体体和和它它的的组组成成部部分分,分别用整体对象和部分对象来进行描述分别用整体对象和部分对象来进行描述形形成成一一个个整整体体部部分分结结构构表表达达它它们们的的组组成关系。成关系。415面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则消息通信消息通信要求对象之间只能通过消息进行通信要求对象之间只能通过消息进行通信不不允允许许在在对对象象之之外外直直接接地地存存取取对对象象内内部部的属性。的属性。通通过过消消息息进进行行通
32、通信信是是由由于于封封装装原原则则而而引引起的。起的。在在OOA中中要要求求用用消消息息连连接接表表示示出出对对象象之之间的动态联系。间的动态联系。425面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则粒度控制粒度控制在在OOAOOA中中运运用用粒粒度度控控制制原原则则就就是是引引入入主主题题( (可理解为子系统可理解为子系统) )的概念的概念把把OOAOOA模模型型中中的的类类按按一一定定的的规规则则进进行行组组合合,形形成成一一些些主主题题,如如果果主主题题数数量量仍仍较较多多,则进一步组合为更大的主题。则进一步组合为更大的主题。使使OOAOOA模模型型具具有
33、有大大小小不不同同的的粒粒度度层层次次,从从而有利于分析员和读者对复杂性的控制。而有利于分析员和读者对复杂性的控制。435面向面向对象的分析和象的分析和设计5.2.1 OOA方法概述3OOA的主要原则行为分析行为分析控制行为复杂性的几点原则:控制行为复杂性的几点原则:l l确定行为的归属和作用范围确定行为的归属和作用范围l l认识事物之间行为的依赖关系认识事物之间行为的依赖关系l l认识行为起因,区分主动行为和被动行为认识行为起因,区分主动行为和被动行为l l认识系统的并发行为认识系统的并发行为l l认识对象状态对行为的影响认识对象状态对行为的影响445面向面向对象的分析和象的分析和设计5.2
34、.1 OOA方法概述4OOA过程OOAOOA过程包括以下主要活动。过程包括以下主要活动。 发现对象、定义它们的类。发现对象、定义它们的类。 识别对象的内部特征。识别对象的内部特征。定义属性;定义服务。定义属性;定义服务。 识别对象的外部关系(四种)。识别对象的外部关系(四种)。 划分主题,建立主题图。划分主题,建立主题图。 建立详细说明。建立详细说明。 原型开发。原型开发。455面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析5.2.2 确定对象确定对象1、简单的确定方法、简单的确定方法基于词法分析的方法:从目标系统的描述开始,基于词法分析的方法:从目标系统的描述开始,找出其中
35、的名词作为候选对象。另外找出其中找出其中的名词作为候选对象。另外找出其中的动词作为候选的方法(即服务),然后产生的动词作为候选的方法(即服务),然后产生一个由对象(名词)和方法(动词)构成的表,一个由对象(名词)和方法(动词)构成的表,作为分析的初步结果,最后从中筛选出确定的作为分析的初步结果,最后从中筛选出确定的对象。对象。465面向面向对象的分析和象的分析和设计如:如:房主可以在安装该系统时配置安房主可以在安装该系统时配置安全监控设备全监控设备( (如传感器、显示器、报如传感器、显示器、报警器等警器等) ),也可以在系统运行时修改,也可以在系统运行时修改配置,通过录像机和电视机监控与系配置
36、,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。板上的键盘与系统进行信息交互。名词:房主,安全监控设备,控制面名词:房主,安全监控设备,控制面板,键盘,系统板,键盘,系统动词:配置,修改配置动词:配置,修改配置 信息交互信息交互475面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析2复杂系统对象的确定复杂系统对象的确定问题一:寻找对象的范围问题一:寻找对象的范围问题二:对象是什么问题二:对象是什么问题三:如何考察对象问题三:如何考察对象问题四:进一步质疑问题四:进一步质疑问题五:怎样为对象命名问题五:怎样
37、为对象命名485面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析问题一:寻找对象的范围问题一:寻找对象的范围问题二:对象是什么问题二:对象是什么l l结构:是最可能被认定是对象的实体。结构:是最可能被认定是对象的实体。l l其他系统:与目标系统交互的外部系统。其他系统:与目标系统交互的外部系统。l l设备:需要与系统进行交互的设备。设备:需要与系统进行交互的设备。l l事件:由系统及时观察和记录的事件。事件:由系统及时观察和记录的事件。l l参与者:各种人员在系统中的角色。参与者:各种人员在系统中的角色。l l位置:系统安装和运行的物理位置。位置:系统安装和运行的物理位置。l
38、l组织和单位:系统涉及的人员所在的单位。组织和单位:系统涉及的人员所在的单位。495面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析问题三:如何考察对象问题三:如何考察对象系统是否有必要记忆对象的某些或全部成分?系统是否有必要记忆对象的某些或全部成分?系系统统是是否否有有必必要要对对该该对对象象的的行行为为提提供供服服务务? ?对象是否有多于一个属性?对象是否有多于一个属性?对对于于一一种种对对象象的的所所有有实实例例,能能否否认认定定一一组组为为这这些实例所共有的属性?些实例所共有的属性?对对于于一一种种对对象象的的所所有有实实例例,能能否否认认定定一一组组为为这这些实例都要
39、进行的加工?些实例都要进行的加工?505面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析问题四:进一步质疑问题四:进一步质疑是否需要被确立为对象是否需要被确立为对象。是否需要是否需要合并对象。合并对象。问题五:怎样为对象命名问题五:怎样为对象命名用用单单数数名名词词或或者者形形容容词词加加名名词词来来命命名名对象。对象。命命名名所所使使用用的的词词汇汇应应当当符符合合系系统统的的主主题。题。名字可读性好,要基于确切的意义。名字可读性好,要基于确切的意义。515面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析5.2.3 确立结构确立结构结构描述的是多种对象的组织方
40、式,它结构描述的是多种对象的组织方式,它反映了问题空间的复杂事物和复杂关系。反映了问题空间的复杂事物和复杂关系。结构包括分类结构和组装结构两种。结构包括分类结构和组装结构两种。1 1确定分类结构确定分类结构从一般到特殊从一般到特殊从特殊到一般从特殊到一般2 2确定组装结构确定组装结构从整体到成员从整体到成员 从成员到整体从成员到整体525面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析5.2.4 确立主题确立主题一种关于模型的抽象机制,起一种控制作用。一种关于模型的抽象机制,起一种控制作用。主题的必要性主题的必要性主题名与对象名类似,但是抽象程度不同。主题名与对象名类似,但是抽
41、象程度不同。确定主题的方法为:确定主题的方法为:l l为每一个结构追加一个主题。为每一个结构追加一个主题。l l为每一个对象追加一个主题。为每一个对象追加一个主题。l l归并主题。归并主题。主题是一个单独的层次,每个主题有一个序号,主题是一个单独的层次,每个主题有一个序号,主题之间的联系是消息连接。主题之间的联系是消息连接。535面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析5.2.5 确定属性确定属性1 1确定属性确定属性确定一个属性的确定一个属性的3 3个基本准则个基本准则2 2确定属性的位置确定属性的位置3 3确定实例连接确定实例连接4 4重新修改确定的对象重新修改确定
42、的对象5 5对属性和实例连接进行说明对属性和实例连接进行说明545面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析5.2.6 确定服务和消息确定服务和消息服务是在接收到一条消息后所要进行的加工,定服务是在接收到一条消息后所要进行的加工,定义服务时,首先定义行为,然后定义实例之间义服务时,首先定义行为,然后定义实例之间的通信。的通信。1 1确定确定3 3种基础服务种基础服务存在服务:指最一般的服务,即创建、变动、删存在服务:指最一般的服务,即创建、变动、删除及选择。除及选择。计算服务:一个实例需要另一个实例加工的结果计算服务:一个实例需要另一个实例加工的结果时,所需要的服务。时,
43、所需要的服务。监控服务:模型中某些部件需要快速实时处理时监控服务:模型中某些部件需要快速实时处理时所需要的服务。所需要的服务。555面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析2 2确定辅助服务确定辅助服务在在面面向向对对象象分分析析模模型型中中,每每种种对对象象及及分分类类结结构构要要考考虑虑对对象象生生命命史史和和状状态态-事事件件-响响应应两两种种辅辅助助服服务。务。对象生命史对象生命史对象生命史定义基础服务的顺序,检查其中每步对象生命史定义基础服务的顺序,检查其中每步需要的服务的变种,增加相应的服务变种,以需要的服务的变种,增加相应的服务变种,以及增加其他的服务。及
44、增加其他的服务。状态状态- -事件事件- -响应响应状态状态- -事件事件- -响应要定义主要的系统状态,列出外响应要定义主要的系统状态,列出外部事件及其需要的响应,以及扩充服务和消息部事件及其需要的响应,以及扩充服务和消息连接。连接。565面向面向对象的分析和象的分析和设计5.2面向对象分析面向对象分析3 3确定消息连接确定消息连接消消息息连连接接是是事事件件-响响应应和和数数据据流流的的一一种种结结合合,即即每每条条消消息息连连接接都都表表示示着着一一种种要要发发出出的的消消息息和和消消息息收收到到后后要要做做出出的的一一个个响响应。应。4 4对服务进行说明对服务进行说明主要对外部可观察到
45、的行为进行说明。主要对外部可观察到的行为进行说明。目的是强调可测试的部分,作为对系统目的是强调可测试的部分,作为对系统需求进行验证、对系统实现进行验收的需求进行验证、对系统实现进行验收的测试的基准。测试的基准。575面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计分析是提取和整理用户需求,并建立问题域分析是提取和整理用户需求,并建立问题域精确模型的过程。精确模型的过程。设计则是把分析阶段得到的需求转变成符合设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的成本和质量要求的、抽象的系统实现方案的过程。过程。从面向对象分析到面向对象设计(通常缩写从面向对象
46、分析到面向对象设计(通常缩写为为OODOOD),是一个逐渐扩充模型的过程。),是一个逐渐扩充模型的过程。尽管分析和设计的定义有明显区别,在实际尽管分析和设计的定义有明显区别,在实际的软件开发过程中两者的界限是模糊的。的软件开发过程中两者的界限是模糊的。因此,分析和设计是一个多次反复迭代的过因此,分析和设计是一个多次反复迭代的过程。程。585面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计5.3.2 人机交互子系统的设计人机交互子系统的设计1内容内容2方法方法分类用户分类用户 描述用户及其任务脚本描述用户及其任务脚本设计命令层次设计命令层次 设计详细交互设计详细交互设计原则:设计
47、原则:l l一致性。一致性。l l减少步骤。减少步骤。l l尽量显示提示信息尽量显示提示信息l l提供取消操作提供取消操作l l帮助帮助设计人机交互子系统的类设计人机交互子系统的类595面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计5.3.3问题域子系统的设计问题域子系统的设计主要目标就是保持问题域组织框架的完整性,主要目标就是保持问题域组织框架的完整性,1内容内容2策略策略3方法方法利用重用设计加入现有类利用重用设计加入现有类将专门的问题域类组合在一起将专门的问题域类组合在一起调整继承的支持层次调整继承的支持层次4提高效率提高效率5支持数据管理系统支持数据管理系统605面向
48、面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计5.3.4任务管理部分的设计任务管理部分的设计1内容内容内容:确定各种类型的任务,并把任务分配到适内容:确定各种类型的任务,并把任务分配到适当的硬件或软件上去执行。当的硬件或软件上去执行。2设计设计确定事件驱动型任务确定事件驱动型任务确定时钟驱动型任务确定时钟驱动型任务确定优先任务及临界任务确定优先任务及临界任务确定协调任务确定协调任务 分析各个任务分析各个任务定义各个任务定义各个任务615面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计5.3.5数据管理部分的设计数据管理部分的设计数据管理部分提供数据管理系统中对象数
49、据管理部分提供数据管理系统中对象的存储及检索的基础结构。的存储及检索的基础结构。1 1选择数据存储管理模式选择数据存储管理模式2 2设计数据管理组元设计数据管理组元625面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计5.3.6 OOD的基本准则的基本准则模块化模块化 抽象抽象信息隐藏信息隐藏 弱耦合弱耦合强内聚强内聚 可扩充性可扩充性可集成性可集成性 支持复用支持复用类的设计准则类的设计准则635面向面向对象的分析和象的分析和设计5.3面向对象设计面向对象设计类的设计准则:类的设计准则:l l类的公共接口的单独成员应该是类的操作符;类的公共接口的单独成员应该是类的操作符;l l类类A A的实例不应该直接发送消息给类的实例不应该直接发送消息给类B B的成分;的成分;l l操作符是公共的,当且仅当类实例的用户操作符是公共的,当且仅当类实例的用户可用;可用;l l属于类的每个操作符要么访问,要么修改属于类的每个操作符要么访问,要么修改类的某个数据;类的某个数据;l l类必须尽可能少地依赖其他类;类必须尽可能少地依赖其他类;l l两个类之间的互相作用应该是显式的;两个类之间的互相作用应该是显式的;l l采用子类继承超类的公共接口,开发子类采用子类继承超类的公共接口,开发子类成为超类的特殊类。成为超类的特殊类。645面向面向对象的分析和象的分析和设计