面向对象系统开发模型OOSDM
- 格式:pdf
- 大小:19.94 KB
- 文档页数:5
面向对象数据库管理系统的实现与评估随着信息技术的迅猛发展,传统的关系型数据库管理系统(RDBMS)已经无法满足某些特定的需求。
为了更好地处理海量和复杂的数据,面向对象数据库管理系统(OODBMS)应运而生。
本文将深入探讨面向对象数据库管理系统的实现原理和评估方式。
一、面向对象数据库管理系统的实现原理面向对象数据库管理系统(OODBMS)是一种能够存储、处理和管理面向对象数据模型的数据库系统。
相比传统的关系型数据库系统,OODBMS采用了更为灵活的数据结构和存储方式,可以更好地适应对象的属性和关系。
1. 对象模型面向对象数据库管理系统的核心是对象模型。
对象模型描述了数据的组织方式和相互关系。
它由类、对象和关联组成。
类定义了一组具有相似属性和方法的对象,对象是类的一个实例,关联描述了对象之间的相互关系。
面向对象数据库管理系统通过对象模型将数据以对象的形式进行存储,实现了更加自然和直观的数据表示方式。
2. 持久化机制持久化机制是指将对象保存在数据库中,并能够在需要时从数据库中还原出对象。
面向对象数据库管理系统通过持久化机制实现了对象的永久存储,保证了对象的可靠性和持久性。
常用的持久化方式有对象-关系映射(Object-Relational Mapping,ORM)和对象序列化等。
3. 查询语言面向对象数据库管理系统提供了特定的查询语言,用于从数据库中检索和操作对象。
常见的查询语言有Object Query Language (OQL)和SQL3。
OQL是一种专门为对象数据库设计的查询语言,它与SQL有着类似的结构和表达能力,但更加适应面向对象的数据结构。
二、面向对象数据库管理系统的评估方式对于面向对象数据库管理系统的评估,主要从性能、功能、可伸缩性和安全性等方面进行考量。
1. 性能评估性能是评估面向对象数据库管理系统的关键指标之一。
性能评估主要从响应时间、吞吐量、并发处理能力等方面进行评估。
对于关键操作如数据的插入、更新和删除等,面向对象数据库管理系统应具备较高的性能表现,以满足系统的实时性和高并发访问需求。
面向对象的系统分析与设计第一章:简介面向对象的系统分析与设计(Object-oriented System Analysis and Design,简称OOSAD)是指采用面向对象的方法来进行系统的需求分析、设计和实现的过程。
在OOSAD中,系统被视为由一些相互作用的对象组成的,这些对象都有自己的状态、行为和相互关系。
本文将介绍OOSAD的基本原理、模型和流程。
第二章:OOSAD的基本原理OOSAD的基本原理包括封装、继承和多态三个方面。
封装是指将对象的状态和行为封装在一起,形成一个相对独立的模块,从而避免了对象之间的直接干扰。
继承是指一个类可以从另一个类中继承特定的属性和方法,并在此基础上进行扩展。
多态是指同一种操作可以针对不同的对象产生不同的行为,提高了程序的灵活性和扩展性。
第三章:OOSAD的分析阶段OOSAD的分析阶段是确定系统需求的过程,其重点是对需求进行分析和概括,并形成系统需求规格说明书。
该阶段包括以下步骤:1.收集需求:收集和整理所有与系统相关的信息和数据,包括业务需求、技术需求、用户需求等。
2.分析需求:根据收集到的需求信息进行分析、理解、提炼、归纳和总结,并形成可被理解的、可被使用的需求文档。
3.建立相关模型:根据需求文档建立领域模型、用例模型和行为模型,分析怎样才能最好的满足需求。
领域模型是指针对用户需求所建立的模型,主要包括实体、关系和任务;用例模型是指从用户需求中提炼出的各种用户案例,包括使用场景、使用方法和使用结果;行为模型是指用户操作与系统反馈之间的交互,包括对事件的响应和执行规则。
第四章:OOSAD的设计阶段OOSAD的设计阶段是按照需求规格说明书所描述的要求进行设计的过程,其重点是建立系统的结构和实现模型。
该阶段包括以下步骤:1.确定结构:根据用例模型建立系统的总体结构,确定系统的实体、控制和边界等部分。
2.建立类图:建立类图,将领域模型和行为模型中的各种对象、任务、实体和关系转换为类和类之间的关系,确定各个类之间的依赖和关系。
面向对象方法面向对象方法是当前的主流开发方法,拥有大量不同的方法,主要包括OMT(Object Model Technology,对象建模技术)方法、Coad/Yourdon方法、OOSE(Object-Oriented Software Engineering,面向对象的软件工程)及Booch方法等,而OMT、OOSE及Booch最后统一成为UML(United Model Language,统一建模语言)。
1.Coad/Yourdon方法Coad/Yourdon方法主要由面向对象的分析(Object-Oriented Analysis, OOA)和面向对象的设计(Object-Oriented Design, OOD)构成,特别强调OOA和OOD采用完全一致的概念和表示法,使分析和设计之间不需要表示法的转换。
该方法的特点是表示简练、易学,对于对象、结构、服务的认定较系统、完整,可操作性强。
在Coda/Yourdon方法中,OOA的任务主要是建立问题域的分析模型。
分析过程和构造OOA概念模型的顺序由5个层次组成,分别是类与对象层、属性层、服务层、结构层和主题层,它们表示分析的不同侧面。
OOA需要经过5个步骤来完成整个分析工作,即标识对象类、标识结构与关联(包括继承、聚合、组合及实例化等)、划分主题、定义属性和定义服务。
OOD中将继续贯穿OOA中的5个层次和5个活动,它由4个部分组成,分别是人机交互部件、问题域部件、任务管理部件和数据管理部件,其主要的活动就是这4个部件的设计工作。
2.Booch方法Booch认为软件开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。
Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。
动态模型包括状态图和顺序图。
关于面向对象的系统概念面向对象的系统概念是指在软件开发中,通过将现实世界中的事物抽象为对象,以及对象之间的相互关系,来构建一个具有良好结构的系统。
面向对象的系统概念主要包括以下几个方面:面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)和面向对象测试(OOT)。
一、面向对象分析(OOA)面向对象分析是软件开发的第一步,旨在理解和定义系统中的需求。
在OOA中,开发者通过识别系统中的实体、职责和关系,将其抽象为对象模型。
在这个过程中,重点是确定系统的功能以及这些功能之间的关系。
1.1 识别实体和职责在进行OOA时,我们首先需要识别系统中的实体。
实体可以是真实世界中的事物,也可以是系统本身。
这些实体具有各自的职责和行为。
通过识别实体和职责,我们可以形成一个基本的类图。
这个类图揭示了系统的基本结构和功能。
1.2 定义关系在OOA中,我们还需要定义实体之间的关系。
关系可以是继承、聚合、关联等。
这些关系描述了实体之间的依赖和交互。
在定义关系时,我们需要考虑实体之间的联系,以及它们之间的依赖性和关联性。
二、面向对象设计(OOD)面向对象设计是在OOA的基础上进行的,旨在实现OOA中定义的对象模型。
在OOD中,我们将抽象的对象模型转换为实际的软件设计。
2.1 确定类的关系和行为在OOD中,我们需要确定类之间的关系和行为。
通过定义类之间的关系,我们可以构建一个类图,展示出系统的结构和功能。
我们还需要定义类的属性和方法,以确定类的行为和功能。
通过这些定义,我们可以确保系统的设计符合需求,并且具有良好的可扩展性和可维护性。
2.2 设计类的接口和实现在OOD中,我们还需要设计类的接口和实现。
类的接口描述了类的功能和使用方式,而实现则描述了如何实现这些功能。
通过设计类的接口和实现,我们可以确保代码的复用性和可读性,并方便进行后续的开发和维护。
三、面向对象编程(OOP)面向对象编程是将OOD中的设计转化为实际的代码实现。
【OOA、OOD、OOP、MVC概述】⾯向对象体系结构概述OOA、OOD、OOP、MVC概述OOA⾯向对象分析 Object Oriented Analysis是确定需求或者业务的⾓度,按照⾯向对象的思想来分析业务。
例如,OOA只是对需求中描述的问题进⾏模块化的处理,描述问题的本质,区别每个问题的不同点、相同点,确定问题中的对象。
OOA与结构化分析有较⼤的区别。
OOA所强调的是在系统调查资料的基础上,针对OO⽅法所需素材进⾏的归类分析和整理,⽽不是对管理业务现状和⽅法的分析。
OOA的基本步骤:第⼀步,确定对象和类。
第⼆步,确定结构(structure)。
第三步,确定主题(subject)。
第四步,确定属性(attribute)。
第五步,确定⽅法(method)。
OOD⾯向对象设计(Object Oriented Design)主要作⽤是对OOA分析的结果做进⼀步的规范化整理,以便能够被OOP直接接受。
OOD的⽬标是管理程序内部各部分的相互依赖。
为了达到这个⽬标,OOD要求将程序分成块,每个块的规模应该⼩到可以管理的程度,然后分别将各个块隐藏在接⼝(interface)的后⾯,让它们只通过接⼝相互交流。
⽐如说,如果⽤OOD的⽅法来设计⼀个服务器-客户端(client-server)应⽤,那么服务器和客户端之间不应该有直接的依赖,⽽是应该让服务器的接⼝和客户端的接⼝相互依赖。
这种依赖关系的转换使得系统的各部分具有了可复⽤性。
还是拿上⾯那个例⼦来说,客户端就不必依赖于特定的服务器,所以就可以复⽤到其他的环境下。
如果要复⽤某⼀个程序块,只要实现必需的接⼝就⾏了。
OOD是⼀种解决软件问题的设计范式(paradigm)。
使⽤OOD这种设计范式,可以⽤对象(object)来表现问题领域(problem domain)的实体,每个对象都有相应的状态和⾏为。
OOD是⼀种抽象的范式。
抽象可以分为很多层次,从⾮常概括的到⾮常特殊的都有,⽽对象可能处于任何⼀个抽象层次上。
中山大学学报论丛SUPP LEM EN T TO T HE JOU RN AL 1996年 第6期OF SUN YATSEN UNIV ERSI TY No.6 1996 面向对象系统开发模型OOSDM乔 琳(中山大学计算机科学系,广州510275)摘 要 提出了一种面向对象软件开发模型kOOSDM ,并介绍了它的基本概念及开发流程.关键词 面向对象,对象模型,动态模型,功能模型分类号 TP 311目前,面向对象软件开发方法虽然已经显示了其优势,受到越来越多的重视和应用,但总的来说,面向对象软件开发方法还没有形成一致的认识、表示技术、通用的开发过程和可实用的规范.OO SDM [1]方法是作者在OMT [2]方法的基础上提出的一种软件开发方法,该方法统一的概念和图形表示符号和一套指导性较强的开发流程.其基本思想是:①将现实世界作为系统开发过程的主题;②支持不同开发阶段之间的平滑过渡;面向对象的概念、符号、方法和技术贯穿于软件系统开发的整个生命周期中,避免了系统开发过程中的不同阶段进行概念和表示的转换;③独立于具体程序设计语言;④系统开发的重点放在前期阶段.OO SDM 方法采用对象模型、动态模型和功能模型三种抽象模型来描述软件系统.其中,对象模型描述系统中对象的静态结构以及对象之间的关系,对象的静态结构包括对象的标识、对象的属性及对象的操作.对象模型为动态模型和功能模型的建立提供了框架.对象模型采用对象图表示.动态模型描述系统中与时间和操作次序有关的因素,如触发事件、事件序列、事件状态等.动态模型采用状态图和对象通信图表示.功能模型描述系统中与数值的变化有关的因素,如功能、映射、约束以及功能依赖条件等.功能模型采用数据流图表示.该方法的使用实例可参考[2].1 OOSDM 的基本概念 本节给出OOSDM 中所用到的一些基本概念.限于篇幅,此处省略了基本的面向对象概念及功能模型的概念.1.1 对象模型的主要概念对象模型可以看成是扩展的E-R 图.对象类是图中的实体,对象类之间的关系分为关联、聚集和一般化. 链和关联 链是对象之间的物理或概念联系关联是两个或多个类的实例间的关收稿日期61.1.1.:199-08-08系,描述了一组具有共同结构和共同语义的链.链是关联的实例化.1.1.2 聚集 是关联的一种特殊表示,表示“部分—整体”关系,在这种关系中对象有组元和组合之分,聚集关系具有传递性.1.1.3 对象图、类图、实例图 对象图是一种模型化对象、类及其关系的图形表示.对象图包括类图和实例图.其中类图描述系统中的对象类及其关系;实例图描述具体的各对象集是如何关联的.对于给定的一张类图通常对应于实例图的一个无限集.1.2 动态模型的主要概念动态模型用状态转换图和对象通信图来描述.状态转换图描述对象本身的状态变换,对象通信图描述系统中对象之间的通信.OOSDM 所使用的是Moore 模型的状态图,即动作和状态联系在一起.1.2.1 事件和事件属性 事件是指在某时刻即时发生的事情,是信息从一个对象到另一对象的单向传送.事件属性是由事件在对象之间传输的数据值.1.2.2 脚本和事件跟踪图 脚本是指在特定系统的某一执行期间内出现的一系列事件.事件跟踪图是用来表示事件的发出者、接收者以及事件序列的图表.1.2.3 交互链和交互[3] 交互链是系统中两个对象之间的动态关系,其中一对象在其某一活动的执行过程中向另一对象发送事件.交互是一个或两个类的实例之间的动态关系,描述了一组具有共同结构和共同语义的交互链.交互与事件的关系是:在对象内观察,事件引起对象状态的转换,在对象间观察,事件引起对象间的交互发生.1.2.4 对象通信图 对象图是描述系统中对象之间交互的图形,其中结点表示对象类,其直接的联线表示交互,上面标记事件的名字、属性及事件类型等信息.2 OOSDM 的开发流程 OO SDM 的开发过程分为系统分析、系统设计、对象设计以及系统实现等阶段.这里主要介绍系统分析的步骤.2.1 系统分析系统分析的任务是提出初始问题陈述,分析并构造包含现实世界主要性质的抽象模型.OO SDM 的分析可以分为以下步骤.2.1.1 初始问题陈述 陈述问题时应该强调“做什么”而不是“如何做”,即陈述的是用户的需求而不是解决问题的方法.2.1.2 建立对象模型 (1)确定对象并抽象为对象类.第一步,利用启发式方法帮助发现候选对象类,形成候选对象类清单.启发式方法包括:①问题陈述中的名词常常对应于对象类;②与系统交互作用的其它系统可作为候选对象类;③与系统交互作用的必要设备可作为候选对象类;④系统必须观测、记忆的与时间有关的事件可作为候选对象类;⑤与系统交互或必须保留其信息的人员可作为候选对象类;⑥人员所属的组织单位可作为候选对象类;⑦系统需要了解的物理位置可作为候选对象类;⑧根据一般—特殊、整体—部分等结构概念发现候选对象类第二步,根据以下建议形成对象类清单①如果两个类表述同样信息则保留最富有描述力的类;②删除边界定义模糊或者范围太广的类;③如果某属性独立性很强,应将它124 中山大学学报论丛 1996年..作为类而不是属性;④具有自身性质的操作应该描述成类;⑤删除与现实世界无关的、属于设计与实现领域的类.(2)准备数据字典.(3)确定对象类之间的关联.第一步,可利用启发式方法帮助发现候选关联,形成候选关联清单.启发式方法包括①问题陈述中的描述性动词或动词词组常常对应于关联;②对象类之间的依赖性和引用通常是关联.第二步,根据如下规则删除不正确的和不必要的关联,形成关联清单.规则包括(a)某个类删除后,与它有关的所有关联也必须删除;(b)删除所有系统边界之外的关联;(c)删除所有作为实现构件的关联;(d)关联不是瞬时事件,删除有动作语义的关联;(e )将多元关联分解为二元关联或用词组描述成受限关联;(f )省略可以由其它关联定义的冗余关联.第三步,根据如下规则对关联清单中的关联进行优化.规则包括(a)关联名称不合理重新命名;(b)在有需要的地方为关联增加角色名;(c)对于有需要的关联增加限定词作为受限关联;(d)有必要则指明关联的阶.(4)确定对象类属性和关联属性.第一步,可利用以下启发式方法帮助发现候选属性,形成候选属性清单.启发式方法包括①问题陈述中的修饰性名词词组常常对应于属性;②问题陈述中的形容词常常对应于属性;③标识派生属性.第二步,根据如下规则保留正确属性,形成属性清单.规则包括①如果实体独立性很强,则应该作为对象类而不是属性;②如果属性值取决于上下文,则可考虑将属性表述为限定词;③名称常常模型化为限定词而非对象类属性;④如果某属性依赖于某链的存在,则该属性是一个链属性;⑤删除描述对外透明的对象内部状态的属性;⑥忽略不可能对大多数操作有影响的属性;⑦如果部分属性独立于其它属性,则该对象类应一分为二.(5)使用继承机制组织对象类.通常有两种方式引入继承:一是由底向上方式,在现有对象类中寻找有相似属性、关联或操作的类来发现继承,把现有类的共同性质一般化成父类;二是自顶向下方式,寻找带有形容词、修饰性名词的词组来发现继承,将现有对象类细化成更具体的子类.(6)绘制初步对象模型图.(7)验证对象模型.第一步,通过对象模型图中的访问路径进行追踪,观察能否产生切合实际的结果,以发现是否有丢失信息.第二步,通过设置检查原则验证对象模型的正确性,如果不正确则进行修正,甚至重新返回到以前步骤.这种回溯过程可能是多次的.主要检查内容包括:检查是否有丢失类、是否有多余的类、是否有丢失关联、是否有多余的关联、关联是否正确等(8)分解对象模型图.步骤为将对象模型图划分为一个或者多个模块;定义模块之间的关系;对各个模块,描述其中各个对象类在该模块中的作用域.2.1.3 建立动态模型 包括①确定交互接口格式;②准备典型交互行为的脚本;③确定对象之间的事件;④准备事件跟踪图和对象通信图;⑤构造各个对象类的初步状态图.从影响模型中主要对象类的事件跟踪图入手,选择一条描述典型交互情形的路径.考虑那些只影响单个对象类的事件,把这些事件放入一条路径,为这个对象类构造状态图.其中,两个事件之间的间隔就是一个状态然后,将其它脚本合并到该对象类的状态图中当状态图覆盖了所有脚本,并且涉及所有影响其各状态中各个对象类的事件时,则该对象类的状态图构造完毕⑥优化状态图考虑边界情况和例外情况,加入到状态图中;从图中寻找125第6期 乔 琳:面向对象系统开发模型OOSDM ....循环,尽可能使用有限事件序列取代循环;如果存在具有多个独立输入的复杂交互行为,则采用嵌套状态图组织动态模型,否则可采用平面状态图.⑦细化对象通信图.第一步,检查各个类的状态图,将状态中所发送的事件表示在对象通信图中,如有必要,应标注交互角色、阶、及约束等信息;第二步,跟踪各个接收事件的对象类,检查它的各个活动的执行过程中是否有以下行为:要求另一对象提供相应的服务;向另一对象提供数据;通知另一对象某事件已发生.如果有,那么在这两个对象之间便存在交互.第三步,跟踪并细化各个事件脚本、检查是否有遗失或省略的交互:具有静态关联的类之间一般会有交互发生;考虑各个类的边界定义,若某类的实例不能独立完成另一对象所要求的服务,那么它必定会和第三个对象交互.第四步,按照活动对象、代理对象、服务对象的顺序由上至下组织对象通信图,如系统中交互太多,可准备各个模块的对象通信图.⑧验证动态模型.包括(a)每一事件应有一个发送者和接收者;(b)无后继的状态要么是事件序列的起点,要么是终点;(c)从输入事件开始,跟踪对象系统中各个对象的效果以保证它们都匹配于各个脚本;(d )检查并发对象在不适当时候出现输入事件时是否有同步错误;(e )检查不同状态图中的各相应事件的一致性;(f)检查各脚本、状态图和对象通信图中事件的一致性.2.1.4 建立功能模型 ①明确系统的输入、输出值;②建立数据流图;③描述处理;④明确约束条件;⑤确定优化标准;⑥验证功能模型.包括(a )从顶层数据流图开始,跟踪从系统输入值到输出值的一条路径,如果某处理被扩展,那么应跟踪进下一级数据流图,在其输出端再返回,检查系统是否产生相应的输出,这种检查覆盖系统的所有输入、输出.(b)数据流图中的动作对象、数据存储一般对应于对象模型中的对象类.(c)每个数据流应有一个源(外部世界、处理、动作对象或数据存贮)和一个目标(外部世界、处理、动作对象或数据存贮).对于在本层中没有发现源或目标的数据流,应返回到其上一级数据流图中进行查找.2.2 系统设计系统设计确定软件系统构造的全局性决策.包括以下步骤:①将系统分解为子系统;②确定问题所固有的并发性;③将子系统分配给处理器和任务;④选择数据存储管理方式;⑤处理对全局资源的访问;⑥选择实现控制方式;⑦处理边界条件;⑧选择优化原则.2.3 对象设计分析阶段确定所实现的内容,系统设计阶段确定系统实现策略.而对象设计阶段则确定对象类、关联的完整定义、接口的形式以及实现操作的算法等.包括以下步骤:①结合三种模型整理对象类上的操作;②选择实现的算法;③优化数据访问路径;④实现外部接口的控制;⑤调整对象类结构以优化继承层次;⑥设计关联;⑦设计关联属性;⑧完成对象类表示;⑨将对象类与关联封装为模块.2.4 系统实现系统实现的任务是选择目标程序设计语言或数据库实现对象设计.为保证系统的灵活性与可扩充性,系统实现必须制订和遵循一套良好的系统实现准则.3 结 语 本文基于OM T 方法提出了面向对象软件开发模型OOSDM 并介绍了其开发流程OO SDM 具有以下特点126 中山大学学报论丛 1996年.:(1)从数据、动态、功能三个方面描述系统;(2)强调分析阶段.除了制定设计策略、构造系统结构之外,OO SDM 中设计阶段的主要任务是将现实的观点映射到计算机的观点中;(3)开发的反复性.OO SDM 的整个开发过程具有增加性、反复性的特点;此外,我们还为OOSDM 开发模型构造了相应的支撑环境[1],该开发环境辅助开发人员使用OO SDM 进行软件开发,并管理其中所建立的各种文档,以提高开发进度.参 考 文 献1 乔 琳.面向对象软件开发模型及其支撑环境的环境.[学位论文],中山大学.19952 Rumdaugh J ,Blaha M ,Pr emerlani W ,et al .Object -Oriented Modelling a nd D esign .Pr enticeHall,Englewood Cliffs,N J,19913 David W Embley,Bar ry D krutz,Scott N Woodfeild.Objec t —Oriented System s Analysis-A Mod-el -Driven Approach .Yor don Pr ess ,1992Object -Oriented Sys tem Developping Model -OO SDMQiao LinAbstr act This paper described an object -oriented software developping method—Object -Oriented System Developping Model (OOSDM).This method aims to produce extensible,reusable,and robust software.Keywor ds object -oriented a nalysis ,object -oriented design ,object -model ,dynamic mod-el ,functional model127第6期 乔 琳:面向对象系统开发模型OOSDM D f S ,Z U y ,G z 55epar tment o Computer cience hongsha n niver sit uang hou 1027。