面向对象信息提取的共性技术研究
- 格式:pdf
- 大小:343.55 KB
- 文档页数:4
1.面向对象的概念面向对象(Object-Oriented)=对象(Object)+类(Class)+ 继承(Inheritance)+通信(Communication)如果一个软件系统是使用这样4个概念设计和实现的,则将该软件系统称为面向对象的。
下面给出每个概念的具体定义。
1.1 对象从一般意义上讲,对象是现实世界中一个实际存在事物,它可以是有形的(比如一辆汽车),也可以是无形(比如一项计划)。
对象构成世界的一个独立单位,它具有自己的静态特征和动态特征。
静态特征即可用某种数据来描述的特征,动态特征即对象所表现的行为或对象所具有的功能。
现实世界中的任何事物都可以称作对象,它是大量的、无处不在的。
不过,人们在开发一个系统时,通常只是在一定的范围(问题域)内考虑和认识与系统目标有关的事物,并用系统中的对象抽象地表示它们。
所以面向对象方法在提到“对象”这个术语时,既可能泛指现实世界中的某些事物,也可能专指它们在系统中的抽象表示,即系统中的对象。
我们主要对后一种情况讨论对象的概念,其定义是:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
一个对象由一组属性和对这组属性进行操作的一组服务构成。
属性和服务,是构成对象的两个主要因素,其定义是:属性是用来描述对象静态特征的一个数据项。
服务是用来描述对象动态特征(行为)的一个操作序列。
一个对象可以有多项属性和多项服务。
一个对象的属性和服务被结合成一个整体,对象的属性值只能由这个对象的服务存取。
在有些文献中把对象标识(OID)列为对象的另一要素。
对象标识也就是对象的名字,有“外部标识”和“内部标识”之分。
前者供对象的定义者或使用者用,后者为系统内部惟一的识别对象。
(怎么感觉这点跟android开发里面的id是一样的,在某个文件下有编程人员定义的所有属性的id,并且是唯一的,一般不允许更改,属于系统内部分配。
) 另外需要说明以下两点:第一点是,对象只描述客观事物本质的与系统目标有关的特征,而不考虑那些非本质的与系统目标无关的特征。
科学教育2008.111、前言数据库技术从诞生到现在,得到了越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般的企业管理到计算机辅助设计与制造等领域,越来越多的应用领域采用数据库技术存储和处理信息资源。
但是,随着信息技术的不断发展,传统的数据库技术和系统具有显而易见的不适应性,数据库系统管理的对象不再局限于传统的数据库所擅长管理的结构化数据、半结构化数据,各类智能数据库、多媒体数据库、模糊数据库、数据仓库及数据挖掘技术对传统数据库和系统的研究开发提出了新的挑战。
为了应付这些挑战,数据库界必须适应发展的需要,拓宽新的思路,开辟新的研究局面。
2、新一代的数据库技术从八十年代以来,数据库技术在商业领域的巨大成功刺激了其它领域对数据库技术需求的迅速增长。
这些新的领域为数据库应用开辟了新的天地。
另一方面,在应用中提出的一些新的数据管理的需求也直接推动了数据库技术的研究与发展,尤其是面向对象数据库系统(Object Oriented Database System简称OODBs)的研究与发展。
2.1面向对象的数据库开发技术面向对象的方法和技术对数据库发展的影响最为深远,它起源于程序设计语言,把面向对象的相关概念与程序设计技术相结合,是一种认识事物和世界的方法论,他以客观世界中一种稳定的客观存在实体对象为基本元素,并以“类”和“继承”来表达事物间具有的共性和他们之间存在的内在关系。
面向对象的数据库开发技术具有以下特点:一是面向对象数据库系统能有效地表达客观世界和有效地查询信息:面向对象的方法符合一般人的思维规律,即将现实世界分解成明确的对象,这些对象具有属性和行为。
二是可维护性好:在耦合性和内聚性方面,面向对象数据库的性能尤为突出。
这使得数据库设计者可在尽可能少影响现存代码和数据的条件下修改数据库结构。
这种先进的耦合性和内聚性也简化了在异种硬件平台的网络上的分布式数据库的运行。
第七章面向对象学习方法学面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致.与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1.问题的表现1)生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2)不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化.主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.4)软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2.问题的原因1)结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。
浅谈面向对象的程序设计c面向对象程序设计软件开发过程就是使用计算机语言将人们关心的现实世界的问题映射到计算机世界进行求解的过程。
开发的软件具有良好的可扩充性,软件模块具有可重用性,才能够在激烈的竞争中得以不断发展、完善、生存。
实际上,要设计出好的软件,就要运用好的程序设计方法和程序设计语言。
面向对象技术是一种全新设计和构造软件的技术,它尽可能的模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法与过程,把数据和信息相结合,通过增加代码的可重用性、可扩充性和程序自动生成功能来提高编程效率,大大减少了软件维护的开销。
现这种技术已被越来越多的软件设计人员所青睐,成为了当今计算机应用开发领域的主流技术。
1面向过程和面向对象的技术对比 1.1面向过程在面向对象程序设计方法出现之前,开发程序时采用面向过程的方法。
面向过程的程序设计注重高质量的数据结构,注重算法的描述,回答的是“做什么、怎么做”的问题。
基本过程是:采用结构化思想,自顶而下,按功能把一个复杂的系统分解成许多内聚性强、耦合较少的功能模块,最后用代码组合模块,从而实现系统的功能。
例如要编写一个求解矩形面积和周长的程序,采用面向过程的设计方法的一般设计步骤为:①将任务分解为求解矩形面积和求解矩形周长两个子任务。
②编写求解矩形面积和矩形周长的函数。
③在主程序中调用求解矩形面积和矩形周长的函数,完成程序功能。
这种设计方法使得数据和运算相分离,程序被描述为:程序=模块+模块+…,模块=算法+数据结构。
1.2面向对象面向对象的基本思想是把程序看作是相互协作的对象集合,它是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。
侧重于描述系统结构,注重需求分析和设计反复,回答的是“用何做、为何做”的问题。
采用面向对象的设计方法求解矩形面积和周长的设计步骤为:1.2.1通过分析确定系统的核心对象为矩形。
1.2.2编写描述矩形对象的类,包括描述矩形长、宽等属性和求解矩形面积和周长的方法。
1.什么是结构化程序设计方法?这种方法有哪些优点和缺点?【解答】结构化程序设计方法是指20世纪60年代开始出现的高级语言程序设计方法,由于采用了数据结构化、语句结构化、数据抽象和过程抽象等概念,使程序设计在符合客观事物与逻辑的基础上更进了一步。
结构化程序设计的思路是:自顶向下、逐步求精。
程序结构由具有一定功能的若干独立的基本模块(单元)组成,各模块之间形成一个树状结构,模块之间的关系比较简单,其功能相对独立,模块化通过子程序的方式实现。
结构化程序设计方法使高级语言程序设计开始变得普及,并促进了计算机技术的深入应用。
虽然结构化程序设计方法采用了功能抽象、模块分解与组合,以及自顶向下、逐步求精的方法,能有效地将各种复杂的任务分解为一系列相对容易实现的子任务,有利于软件开发和维护;但与面向对象程序设计方法相比,结构化程序设计存在的主要问题是,程序的数据和对数据的操作相互分离,若数据结构改变,程序的大部分甚至所有相关的处理过程都要进行修改。
因此,对于开发大型程序具有一定的难度,软件的可重用性差,维护工作量大,不完全符合人类认识世界的客观规律。
2.面向对象程序设计有哪些重要特点?【解答】软件设计的目的是为了解决日常生活中存在的各种实际问题,面向对象程序设计与以往各种程序设计方法的根本区别是程序设计的思维方法的不同。
它主要具有如下重要特点:(1)面向对象程序设计实现了较直接地描述客观世界中存在的事物(即对象)及事物之间的相互关系,它所强调的基本原则是直接面对客观事物本身进行抽象,并在此基础上进行软件开发,将人类的思维方式与表达方式直接应用在软件设计中。
(2)面向对象的程序设计将客观事物看作具有属性和行为的对象,通过对客观事物进行抽象来寻找同一类对象的共同属性(静态特征)和行为(动态特征),并在此基础上形成类。
(3)面向对象的程序设计将数据和对数据的操作封装在一起,提高了数据的安全性和隐蔽性。
第1章面向对象程序设计概述3(4)面向对象的程序设计通过类的继承与派生机制以及多态性特性,提高了软件代码的可重用性,因而大大缩减了软件开发的相关费用及软件开发周期,并有效地提高了软件产品的质量。
第一部分面向对象方法概述、填空题I•对象的抽象是______________ ,类的实例是_______________ 。
2.动态模型描述了系统的_________________ 结构。
3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流,有 _______ 、_________ 和_________ 三种外部事件控制流。
_____________ 控制流是一个处理内部的控制,均可结构化。
4.在C++和C中有一个 ______________ 函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。
5.继承性是__________ 自动共享父类属性和________________ 的机制。
6.对象具有封装性,实现了_______________ 的组合。
7.在面向对象方法中,信息隐藏通过对象的_____________ 来实现。
类结构分离了和 _______ ,从而支持了信息隐藏。
8.抽象是指强调实体的_____________ 、________ ,忽略一些无矢紧要的属性。
类实现了对象的 _____ 和_______ 的抽象,它是对象的共性的抽象。
9.子类只继承的属性和操作,称为单重继承。
10.对象的抽象是_________________ ,类的具体化就是__________________ ,也可以说类的实例II _______________ •类具有 _______ ,它是的行动的抽象。
12.对象具有状态,对象用______________ 来描述它的状态。
13.概念模型描述了系统的。
功能模型指出,动态模型确定____________ ,而对象模型确定 ______________ 。
功能模型由________________ 组成。
14.面向对象有三个基本要素,它们是____________________ 、___________ 、_____________ 。
第四章面向对象方法【学习目标】本章集中介绍了面向对象方法的基本原理和概念,同时简述了统一建模语言(Unified Modeling Languange,UML)的主要作用和基本概念,并结合一个实例,论述了基于UML 语言的面向对象分析方法,从而使学生掌握面向对象方法的基本理论,学会使用UML语言进行面向对象的分析和建模。
【学习方法】正确理解面向对象方法和UML语言涉及的基本概念,结合具体实例运用面向对象分析技术,从而达到学习目的。
【难重点】本章的学习重点在于理解面向对象方法的原理和概念,熟练运用UML语言,掌握面向对象的分析方法,其难点是怎样在实际的软件项目中灵活运用这些思想和方法。
【课前思考】面向对象开发方法有什么优点?面向对象方法包含哪些基本概念?为什么要对软件系统建模?什么是UML?面向对象分析与面向对象设计的区别是什么?什么是软件复用?4.1 面向对象方法概述【本节知识点】什么是面向对象面向对象技术的发展历史面向对象的基本概念面向对象的软件工程方法4.1.1 什么是面向对象面向对象(Object Oriented)技术是软件工程领域中的重要技术,这种软件开发思想比较自然地模拟了人类认识客观世界的方式,成为当前计算机软件工程学中的主流方法。
应该特别强调的是,面向对象技术不仅仅是一种程序设计方法,更重要的是一种对真实世界的抽象思维方式。
面向对象方法的基本思想是从现实世界中客观存在的事物(即对象)出发,尽可能地运用人类的自然思维方式来构造软件系统。
它更加强调运用人类在日常的逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装等,使开发者以现实世界中的事物为中心来思考和认识问题,并以人们易于理解的方式表达出来。
面向对象技术的基本观点如下:(1)客观世界是由对象组成的,任何客观的事物或实体都是对象,复杂的对象可以由简单的对象组成。
(2)具有相同数据和相同操作的对象可以归并为一个类,对象是对象类的一个实例。
面向对象设计(OOD)思想(C#)面向对象分析(道法自然)面向对象的思维方式:面向对象是围绕对象和类来分析、设计软件系统的。
面向对象分析:面向对象分析的主要任务是根基用户的需求,建立一个准确的、完整的、一致的系统模型。
在面向对象的分析过程里,项目组通过分析软件的功能性需求,得到一个理想化的系统模型,该模型更多的侧重于描述我们需求解决的问题是什么---我们称这种模型为分析模型。
面向对象分析与面向对象设计的区别:1、在侧重点上,面向对象分析侧重于理解问题,描述软件做什么,而面向对象设计侧重于理解解决方案,描述软件如何做。
2、面向对象分析一般只考虑理想的设计,不关心技术和实现的细节,而面向对象设计更具体、更详细、更接近真实的代码的设计方案。
3、在设计结果的描述方式上,分析阶段侧重描述对象的行为,设计阶段侧重于描述对象的属性和方法。
4、面向对象分析只关注功能性需求,而面向对象设计既关注功能性需求,也关注非功能性需求。
5、面向对象分析的产生的系统模型通常规模较小,而面向对象的设计产生的系统模型规模较大,内容也比较完整、详尽。
用例驱动的面向对象分析:面向对象分析的过程包括:1、从用例中提取实体对象和实体类。
提取实体对象的方法,依据用例描述中出现的名词和名词短语来提取实体对象,必须对原始的名词和名词短语进行筛选。
得到实体对象后,对实体对象进行归纳、抽象出实体类。
2、提取属性3、提取关系4、添加边界类5、添加控制类6、绘制类图7、绘制顺序图8、编制术语表有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。
为了更好的理解设计思想,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。
通过下面的代码,详细地阐述面向对象设计思想。
一、传统过程化设计思想假定我们要设计一个媒体播放器(只从软件设计的角度,不涉及硬件)。
该媒体播放器目前只支持音频文件mp3和wav。
按照结构化设计思想,设计出来的播放器的代码如下:面向对象设计(OOD)思想(C#)有了思想才能飞翔,缺乏灵活就象少了轮子的汽车,难以飞奔。