1、第五 章面向对象的设计方法 面向对象的思想最初出现于挪威奥斯陆大学和挪威计算机中心共同研制的Simula 67语言中,随着的Smalltalk-76和80语言推出,面向对象的的程序设计方法得到了比较完善的实现。此后,面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统,交互式界面,分布式系统,网络管理结构和人工智能等领域。面向对象的技术已成为软件开发的一种新方法,新技术。5.1 面向对象的基本概念5.1.1 什么是面向对象的开发方法 OOSD OOSD(Object-Oriented Software Development)法是一种 把面向对象的思想应用于软件开发过程,指导开发
2、活动的系统方法。问题空间问题空间软件系统所涉及到的应用领域和业务范软件系统所涉及到的应用领域和业务范 围(现实世界)。围(现实世界)。解空间解空间 用于解决某些问题的软件系统。用于解决某些问题的软件系统。一、软件开发过程一、软件开发过程问题空间问题空间(现实世界现实世界)解空间解空间(软件系统软件系统)映射映射映射映射二、传统软件开发方法存在的问题二、传统软件开发方法存在的问题1.1.传统软件开发方法无法实现从问题空间到解空间传统软件开发方法无法实现从问题空间到解空间的直接映射。的直接映射。问题空间问题空间(现实世界现实世界)解空间解空间(软件系统软件系统)复杂映射复杂映射2.2.传统软件开发
3、方法无法实现高效的软件复用。传统软件开发方法无法实现高效的软件复用。原因是:传统软件开发方法数据与代码(操作)原因是:传统软件开发方法数据与代码(操作)分离。分离。3.3.传统软件开发方法难以实现从分析到设计的直接过传统软件开发方法难以实现从分析到设计的直接过渡。渡。复杂转换复杂转换分析文档分析文档分析文档分析文档(DFDDFD)设计文档设计文档(SC)(SC)三、面向对象技术的特点三、面向对象技术的特点 1.对软件开发过程所有阶段进行综合考虑。使问题空间与解空间具有一致性,降低复杂性。2.软件生存期各阶段所使用的方法、技术具有高 度的连续性,用符合人类认识世界的思维方式 来分析、解决问题。自
4、然、连续自然、连续自然、连续自然、连续问题空间问题空间问题空间问题空间(现实世界现实世界现实世界现实世界)解空间解空间解空间解空间(软件系统软件系统软件系统软件系统)实体实体1实体实体2实体实体n对象对象1对象对象n对象对象23.将OOA、OOD、OOP有机地集成在一起。有利于系统的稳定性.OOA(Object-Oriented Analysis)OOD(Object-Oriented Design)OOP(Object-Oriented Program)以对象为中心各种构造系统,而不是以功能为中心,能很好地适应需求变化.4.具有良好的可重用性 由于对象所具有的封装性和信息隐蔽,具有很强的独立
5、性。理解面向对象的基本概念对于学习和掌握面向对象的开发方法是十分重要的。5.1.2 面向对象的基本概念 类类(ClassClass)对象对象(Object)Object)消息消息(Information)Information)多态性多态性多态性多态性(Polymorphism)Polymorphism)继承继承(InheritanceInheritance)永久对象永久对象永久对象永久对象(Persistent Persistent object)object)1 1.对象对象(ObjectObject)对对象象(ObjectObject)是是客客观观事事物物或或概概念念的的抽抽象象表表述述
6、,即即对客观存在的事物的描述统称为对象。对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。属性属性(attributeattribute)对象本身的性质。对象本身的性质。操作(操作(operationoperation)给对象定义给对象定义一组运算。一组运算。对对象象将将它它自自身身的的属属性性及及运运算算“包包装装起起来来”,称称为为“封装封装”(encapsulationencapsulation).对象的最基本的特征是封装性和继承性。对象的最基本的特征是封装性和继承性。2 2.类(类(ClassClass)类又称对象类(Object Object
7、 ClassClass),是是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance),它们都可以使用类中提供的函数。类具有属性,用数据结构来描述类的属性,类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method),方法有方法名,方法体和参数。由于对象是类的实例,在进行分析和设计时,由于对象是类的实例,在进行分析和设计时,通常把注意力集中在类上,而不是具体的对象上。通常把注意力集中在类上,而不是具体的对象上。几何对象几何对象颜色颜色位置位置移动(移动(delta:矢量)矢量)选择(选择(P:指针型)指针型):布尔型布尔型旋转旋转(角度角度)图5
8、.1 对象类的描述人人姓姓 名名:字符串字符串年年 龄龄:整整 型型改换工作改换工作改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)张红兵张红兵28绘图员绘图员人民路人民路8号号(人人)李军李军24程序员程序员无无图5.2 对象的描述对象和类的描述对象和类的描述类类和和对对象象一一般般采采用用“名名字字”、“属属性性”和和“运运算算”来来描描述。述。类名类名属性属性运算运算 对象 类3 3.继承继承 (InheritanceInheritance)继承是使用现存的定义作为基础,建立新定义的技术。是父类和子类之间共享数据结构和方法的机制,这是类之间的一
9、种关系。继承性分:单重继承:一个子类只有一个父类。即子类只继承一个父类的数据结构和方法。多重继承:一个子类可有多个父类。继承多个父类的数据结构和方法。基类基类子类子类A子类子类B图 5.4 继承性描述现存类定义父类(基类)新类定义子类(派生类)继 承图 5.3 继承性4 4.消息消息(Message)Message)消消息息就就是是向向对对象象发发出出的的服服务务请请求求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识、消息和方法、输入信息、回答信息。在对象的操作中当一个消息发送给某个对象时,消
10、息包含接收对象去执行某种操作的消息。5 5.多态性和动态绑定多态性和动态绑定 多多态态性性(Polymorphism)Polymorphism)是是指指相相同同的的操操作作或或函函数、过程作用于不同的对象上并获得不同的结果。数、过程作用于不同的对象上并获得不同的结果。即即相相同同的的操操作作的的消消息息发发送送给给不不同同的的对对象象时时,每每个个对对象象将将根根据据自自己己所所属属类类中中定定义义的的操操作作去去执执行行,产产生生不同的结果。不同的结果。例如:“绘图”操作,作用在“椭圆”和“矩形”上,画出不同的图形。动动态态绑绑定定(dynamic dynamic binding)bindi
11、ng)是是在在运运行行时时根根据据对象接收的消息动态地确定要连接的服务代码。对象接收的消息动态地确定要连接的服务代码。使用虚函数可实现动态联编,不同联编可以选择不同的实现,这便是多态性。继承是动态联编的基础,虚函数是动态联编的关键。多态性的实现举例 实现多态性的基本步骤实现多态性的基本步骤(以以VCVC为例为例):(1)在基类中,定义成员函数为虚函数(virtual);(2)定义基类的公有(public)派生类;(3)在基类的公有派生类中“重载”该虚函数;(4)定义指向基类的指针变量,它指向基类的公有派生类的对象。注注意意:重载虚函数不是一般的重载函数,它要求函数名、返回类型、参数个数、参数类
12、型和顺序完全相同。6 6.永久对象永久对象(Persistent object)Persistent object)所谓永久对象永久对象是指生存期可以超越程序的执行时间而长期存在的对象。目前,大多数OOPL不支持永久对象,如果一个对象要长期保存,必须依靠于文件系统或数据库管理系统实现,程序员需要作对象与文件系统或数据库之间数据格式的转换,以及保存和恢复所需的操作等烦琐的工作。为了实现永久对象,使上述烦琐工作由系统自动完成,需要较强的技术支持;需要一个基于永久对象管理系统OMS(object management system),能够描述和处理永久对象的编程语言。5.3 面向对象的分析 面向对象
13、分析OOA(Object-Oriented Analysis)的目标是完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。基本概念:问题域(problem domain)被开发系统的应用领域。系统责任(system responsibilities)所开发的系统应具备的职能。5.3.1 5.3.1 面向对象分析的特点面向对象分析的特点 一、需求中存在的问题一、需求中存在的问题 1.确定问题域和系统责任困难 2.充分交流的问题解决得不好 3.很难适应需求的不断变化 4.难以满足复用要求二、二、OOAOOA的特点的特点1.1.有利于对问题及系统责任的理解;有利于对问题及系统责任的理解;2
14、.2.有利于人员之间的交流;有利于人员之间的交流;3.3.对需求变化有较强的适应性;对需求变化有较强的适应性;4.4.支持软件复用。支持软件复用。运用面向对象的方法,对问题域和系统责任进行分析和理解,建立分析模型。1.分析问题域,确定类和对象;2.定义类或对象属性和操作,确定其结构;3.建立系统中类或对象之间的静态联系和动态联系。5.3.2 5.3.2 OOAOOA的基本任务的基本任务5.3.3 OOA5.3.3 OOA的分析过程的分析过程获取用户基本需求获取用户基本需求获取用户基本需求获取用户基本需求标识类和对象标识类和对象标识类和对象标识类和对象定义类的结构和层次定义类的结构和层次定义类的
15、结构和层次定义类的结构和层次表示类表示类表示类表示类(对象对象对象对象)间的关系间的关系间的关系间的关系为对象行为建模为对象行为建模为对象行为建模为对象行为建模图5.7 OOA分析过程5.3.4 OOA5.3.4 OOA模型模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型(类图)(类图)图5.8 OOA模型与详细说明基 本 模 型 是 一 个 类 图(class diagram),是以直观的方式表达系统最重要的信息。OOA基本模型的三个层次分别描述了:系统中应设哪几类对象,每类对象的内部构成,对象与外部的关系。5.3.4 OOA5.3.4
16、OOA模型模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型(类图)(类图)主 题(subject)又 称 为 子 系 统(subsystem)是将一些联系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。5.3.4 OOA5.3.4 OOA模型模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型(类图)(类图)交互图(interaction diagram)是Use case与系统成分之间的对照图。主题图和交互图又称为补充模型。主题图和交互图又称为补充模型。5.3
17、.4 OOA5.3.4 OOA模型模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型(类图)(类图)详细说明按照分析方法所要求的格式,对分析模型进行说明和解释。主要以文字为主。面向对象的设计面向对象的设计OOD(Object-Oriented Design)是面向对象方法在软件设计阶段应是面向对象方法在软件设计阶段应用与扩展的结果。用与扩展的结果。是将是将OOAOOA所创建的分析模型转换为设计模所创建的分析模型转换为设计模型,解决如何作的问题。型,解决如何作的问题。OODOOD与与OOAOOA没有明没有明显的分界,采用相同的符号。显的分界,采
18、用相同的符号。5.4 面向对象的设计5.4.1 OOD5.4.1 OOD基本任务基本任务1 1.系统设计系统设计 将分析模型划分为若干子系统,子系统应该具有良好的接口,子系统内的类相互协作。标识问题本身的并发性,为子系统分配处理器。保险单保险单填写界面填写界面系统内部系统内部保险单保险单客户客户数据库界面数据库界面(abstract)Oracle 界面界面Sybasec界面界面子系统的分解是关键,可以有分层和分块:分层:分层:将软件系统组织为层次结构,每层是一个子系统。分层结构又分为封闭式和开放式。分块:分块:垂直分块是将系统分解为若干个相对独立的、弱耦合的子系统。每个子系统相当于一个块,每块
19、实现一类服务。常常使用分层和分块的混合结构,如图所示:应用程序包应用程序包人机对话控制人机对话控制窗口图形窗口图形仿真程序包仿真程序包屏幕图形屏幕图形点阵图形点阵图形操作系统操作系统计算机硬件计算机硬件5.4.1 OOD5.4.1 OOD基本任务基本任务2 2.对象设计对象设计 在面向对象的系统中,模块、数据结构及接口等都集中体现在对象和对象层次结构中。对象设计是为每个类的属性和操作进行详细设计,包括属性和操作,它们的数据结构和实现算法。3 3.消息设计消息设计 设计连接类与它的协作者之间的消息规约(specification of the messages)。4 4.优化及复审优化及复审 主
20、要考虑提高效率和建立良好的继承结构。5.4.2 OOD5.4.2 OOD模型模型面向对象设计准则:面向对象设计准则:1 1)模块化)模块化 2 2)抽象)抽象 3 3)信息隐藏)信息隐藏 4 4)弱耦合)弱耦合 5 5)强内聚)强内聚 6 6)可重用)可重用介绍几种典型的面向对象的开发方法介绍几种典型的面向对象的开发方法:Coda方法,Booch方法和 OMT方法 随着面向对象开发方法的发展,逐渐形成了几种主要的流派:Coda方法 Booch方法 OMT方法 OOSEOOSE方法方法 5.5 几种典型的面向对象的方法一、Coda/Yourdon方法 由OOA,OOD构成 建立问题域的分析模型。
21、该模型由5个层次组成:即主题层、对象层、结构层、属性层和服务层。要建立4个组元的设计模型:问题域组元、人机交互组元、任务管理组元和数据管理组元。该方法的特点是:简单、易学,对于对象、结构、服务的认定较系统、完整、可操作性强。5.5 几种典型的面向对象的方法1.1.CodaCoda方法的方法的方法的方法的OOAOOA 在 Coda方 法中,构造和评审OOA概念模型的顺序由五个层次组成:类与对象、属性、服务、结构和主题 这五个层次表示分析的不同侧面。类与对象层类与对象层属性层属性层服务层服务层结构层结构层主题层主题层类的边界类的边界实例的边界实例的边界属性属性实例连接实例连接服务服务消息连接消息连
22、接泛化与特化结构泛化与特化结构整体与部分结构整体与部分结构主题主题图5.10 分析过程的五个层次2.2.CodaCoda方法的方法的方法的方法的OODOOD CoadCoad方方法法的的OODOOD模模型型是是在在OOAOOA模模型型5 5个个层层次次基基础础上上,建立系统的建立系统的4 4类组元,类组元,PDCPDC问题域问题域 组元组元 HICHIC人机界面人机界面 组元组元 TMCTMC任务管理任务管理 组元组元 DMCDMC数据管理数据管理 组元组元主题层主题层对象层对象层结构层结构层属性层属性层服务层服务层图图5.12 5.12 CodaCoda OODOOD模型模型1 1)设计问题
23、域组元)设计问题域组元(problem domain component)problem domain component)2 2)设计人机界面组元)设计人机界面组元(human interaction component)human interaction component)3 3)设计任务管理组元)设计任务管理组元(task management component)task management component)4 4)设计数据管理组元)设计数据管理组元(data management component)data management component)Booch方法的开发模型
24、包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。二、Booch方法 1.1.BoochBooch方法的基本模型方法的基本模型 类图类名类名类名类名父类父类子类子类(a)关联(b)继承整体类整体类成员类成员类请求服务类请求服务类提供服务类提供服务类(c)包含(d)使用图5.13 类图表示控制环境控制环境冷气冷气管理计划管理计划暖气暖气灯光灯光温度温度执行机构执行机构1 11 11 1N N图5.14 温室管理系
25、统的类图 对象图由对象和消息组成对象图对象图对象对象1 1对象对象2 2编号:消息名编号:消息名:计划分析计划分析计划度量计划度量1:收获时间:收获时间(C)C:C:谷物谷物:计划管理计划管理3:成熟时间:成熟时间()6:成本成本()5:作物作物:产量产量4:产量产量()2:状态状态()图5.16 温室管理系统的对象图图5.15 对象图的表示 状态图状态图状态状态状态状态1 1状态状态状态状态2 2事件名事件名事件名事件名/操作操作操作操作空闲空闲空闲空闲白天白天白天白天定义气候定义气候定义气候定义气候夜晚夜晚夜晚夜晚日落日落日落日落日出日出日出日出终止气候终止气候终止气候终止气候温度上升温度
26、上升温度上升温度上升/调温调温调温调温()温度下降温度下降温度下降温度下降/调温调温调温调温()图5.18 环境控制器类的状态图图5.17 状态图的表示时序图时序图用户用户用户用户对象对象对象对象1 1对象对象对象对象2 2 用户服务请求用户服务请求用户服务请求用户服务请求 内部服务请求内部服务请求内部服务请求内部服务请求 服务返回服务返回服务返回服务返回 服务返回服务返回服务返回服务返回图5.19 温室管理系统的时序图 模块图模块图进程图进程图 气候气候气候气候气候气候 暖气暖气暖气暖气暖气暖气 计划计划计划计划计划计划 作物作物作物作物作物作物 定义定义定义定义定义定义 冷气冷气冷气冷气冷
27、气冷气 气候气候气候气候气候气候 定义定义定义定义定义定义图5.20 温室管理系统的模块图温室工作站温室工作站温室工作站温室工作站温室温室温室温室A A温室温室温室温室B B温室温室温室温室C C图5.21 温室管理系统的进程图 面向对象的方法学又称为对对象象模模型型技技术术,OMTOMT(Object Model Technology)是一种软件工程方法学,支持整个软件生存周期,它覆盖了问题构成、分析、设计和实现等阶段。OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型。从3个不同而又相关的角度建立了三类模型:对象模型、动态模型和函数模型,OMT为每一个模型提供了图形表示。三、面向对
28、象的建模技术(OMT)1.1.对象模型技术的基本概念对象模型技术的基本概念 OMTOMT 方法讨论的核心就是建立三类模型:对对象象模模型型描述了由对象和相应实体构成的系统静态结构,描述了系统中对象的标识,属性、操作及对象的相互关系。对象的相互关系。动动态态模模型型根据事件和状态描述了系统的控制结构,系统中与时间和操作顺序有关的内容。函函数数模模型型着重描述系统中与值的转换有关的问题,如函数、映射、约束和函数作用等。三类模型描述的角度不同,却又相互联系。2.2.建立对象模型建立对象模型对象模型对象模型描述了系统的静态结构。构成对象模型的基本元素有:对象构成对象模型的基本元素有:对象(类类)、它们
29、之间的关、它们之间的关系。系。类名类名属性属性操作操作 类类 名名属性名属性名(1),数据类型数据类型1缺省值缺省值1属性名属性名(2),数据类型数据类型2缺省值缺省值2 操作名操作名1(变量名变量名1):结果类型:结果类型1操作名操作名2(变量名变量名2):结果类型:结果类型2 (类名)(类名)对象名对象名属性属性操作操作对象名类名类之间、对象之间的关系类之间、对象之间的关系关联与链 二元关联、三元关联人员人员公司公司雇用雇用二元关联的例(人员)(人员)张涛张涛(公司)(公司)通大通大雇用雇用链的例子项目项目语言语言人人(项目项目)CAD系统系统(语言语言)C 语言语言(人人)林珩林珩三元关
30、联的例链的例子受限关联用重数、链属性和角色进一步描述。直线直线名称名称点点名称名称相交相交2+人人公司公司公司公司名字名字个人个人名字名字工作工作职务职务工资工资关联关联雇雇主主雇雇员员继承性继承性(InheritanceInheritance)继承性通常又称为概括,表示基类与子类的关系。运输工具运输工具陆上运输工具陆上运输工具水上运输工具水上运输工具汽车汽车水陆两用车水陆两用车船船聚集聚集表整体与部分的关系。段落段落句子句子微机系统微机系统监视器监视器主机箱主机箱鼠标鼠标键盘键盘底架底架CPURAM风扇风扇银行网络系统ATM(Auto Trade Machine)银行网络系统包括人工出纳和分
31、行共享的自动出纳机。自动出纳机自动出纳机自动出纳机自动出纳机自动出纳机自动出纳机出纳站出纳站分理处分理处计算机计算机分理处分理处计算机计算机出纳站出纳站帐户帐户帐户帐户图1 银行网络系统的示意图用户用户分行计算机分行计算机对象模型对象模型银行码银行码录入站录入站远程事务远程事务现金卡现金卡银行名、卡片码银行名、卡片码安全号安全号出纳员事务出纳员事务出纳员出纳员名字名字出纳站出纳站分行分行站代码站代码帐户帐户余额、类型余额、类型贷款限定贷款限定顾客顾客名字名字地址地址事务事务种类、日期、时间、数量种类、日期、时间、数量卡片权限卡片权限密码、限制密码、限制更新更新数量、类型数量、类型自动出纳机自动
32、出纳机分发现金分发现金雇雇员员号号站站代代码码分理处分理处名字名字帐户号帐户号卡片码卡片码录入录入组成组成拥拥有有拥拥有有雇雇用用访问访问标识标识发行发行被被录录入入开开始始涉涉及及维持维持有有有有3.3.建立动态模型建立动态模型 动态模型着重于系统的逻辑结构;描述某时刻对象及其联系的改变。包括状态图和事件追综图。一、事件和状态一、事件和状态状态状态 对象所具有的属性值,具有时间性和持续性。事事件件 对于对象的触发行为,指从一个对象到另一个对象的信息的单向传递。脚本脚本在系统的某一执行期间内的一系列事件。在系统中具有属性值、链路的对象,可能相互激发,引起状态的一系列变化。有的事件传递的是简单信
33、号,有的事件则传递的是数据值。由事件传送的数据值称为“属性”。状态图状态图状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为,状态的迁移。状态A活动状态B状态A/操作事件B条件起始状态终结状态状态图动态模型由多个状态图组成,每个有重要行为的类都有一个状态图。各状态图可并发地执行及独立改变状态。图例状态状态迁移状态打电话状态图打电话状态图空闲空闲拨号拨号连接连接铃响铃响连接连接断连断连忙音忙音快速忙音快速忙音拨号音拨号音超出时间超出时间记录的信息记录的信息放下话筒放下话筒提起话筒超时超时无效号码有效号码对方应答通路一位号码中断线忙号码忙对方电话挂断信息送完图5.39打电话状态图事件追踪
34、图事件追踪图事件追踪图侧重描述系统执行过程中的一个特定的“场景(Scenarios)”。场景有时也叫“脚本”,是完成系统某个功能的一个事件序列。即是描述多个对象的集体行为。脚本脚本系统某一次特定运行时期内发生的事件系统某一次特定运行时期内发生的事件序列。例如:打电话的场景:1、拿起电话受话器12、打电话者听见振铃声2、电话忙音开始13、对方接电话3、拨电话号码数512、接话方停止振铃4、电话忙音结束14、打电话方停止振铃声5、拨电话号码数515、通电话6、拨电话号码数516、对方挂电话7、拨电话号码数117、电话切断8、拨电话号码数2 18、打电话者挂电话.11、对方电话开始振铃 打打电电话话
35、的的事事件件追追踪踪图图打电话者 电话线 接电话者拿起接收器拨号音开始拨号(5)忙音结束拨号(5)拨号(5)拨号(1)拨号(2)拨号(3)拨号(4)拨号(8)铃声铃声停止电话连通电话断开打电话者挂机铃声受话方回答铃声停止电话连通受话方挂机电话断开打电话者打电话的事件追综图 功功能能模模型型着着重重于于系系统统内内部部数数据据的的传传递递与与处处理理。定定义义“做做什什么么?”的的问问题题,表表明明值值之之间间的的依依赖赖关关系及其相关的功能。系及其相关的功能。描描述述手手段段为为分分层层数数据据流流图图,DFDDFD图图有有助助于于表表示示功功能能的的依依赖赖关关系系,其其中中的的处处理理对对
36、应应于于状状态态图图的的活活动动和和动动作作,数数据据流流对对应应于于对对象象图图中中的的对对象象或或属属性性。建立功能模型的步骤为:建立功能模型的步骤为:建立功能模型四、四、面向对象的软件工程(面向对象的软件工程(OOSEOOSE)OOSEOOSE将将面面向向对对象象的的思思想想应应用用于于软软件件工工程程中中,建立五类模型:建立五类模型:需求模型(RM)分析模型(AM)设计模型(DM)实现模型(IM)测试模型(TM)OOSEOOSE的开发活动主要分为三类:分析、构造和测试。的开发活动主要分为三类:分析、构造和测试。分析分析分析分析构造构造构造构造测试测试测试测试OOSEOOSE的核心的核心
37、最大贡献,是建立了最大贡献,是建立了Use Case Use Case 模型。模型。用例用例(Use case)Use case)是是OOSEOOSE中的重要概念中的重要概念,在开发各种模型时,用例贯穿了OOSE活动的核心,描述了系统的需求及功能。分析模型分析模型 use case模型通过分析来构造。设计模型设计模型 use case模型通过设计来具体化。实现模型实现模型 该模型依据具体化的设计来实现use case模型。测试模型测试模型 用来测试具体化的use case模型。更新帐目更新帐目评价评价用例图记帐系统记帐系统销售人员销售人员超越边界超越边界贸易经理贸易经理营销人员营销人员设置边界设置边界风险分析风险分析交易估价交易估价进行交易进行交易 Coda-Yourdon方法,Booch方法、OMT方法及OOSE法代表了面向对象方法的主要流派。它们都是采用建模技术建立了各种视图来描述软件系统。模型是对系统的抽象表示,建模是在不同层次上对系统的描述。面向对象建模鉴于软件鉴于软件,尤其是大型软件所具有的复杂性,以及尤其是大型软件所具有的复杂性,以及人们对复杂问题理解的局限性,建立一种共同的建模人们对复杂问题理解的局限性,建立一种共同的建模语言语言,推动推动OOOO方法的发展是十分必要的。方法的发展是十分必要的。UML统一建模型语言应运而生!