电力系统面向对象技术基本概念(自学)_第1页
电力系统面向对象技术基本概念(自学)_第2页
电力系统面向对象技术基本概念(自学)_第3页
电力系统面向对象技术基本概念(自学)_第4页
电力系统面向对象技术基本概念(自学)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电力系统面向对象建模技术面向对象技术概述10/25/20231张沛超,上海交通大学电气工程系传统软件工程学简单回顾面向对象技术的基本思想面向对象技术的基本概念面向对象技术概述10/25/20232张沛超,上海交通大学电气工程系在20世纪80年代人们曾经预言,面向对象(OO)将称为90年代计算机领域的主流技术,现在这个预言已经成为毋庸置疑的事实。在学术界,面向对象的方法和技术已成为最受关注的研究热点,越来越多的学术会议和学术期刊把面向对象技术列为主要议题之一。在产业界,越来越多的公司从传统的软件开发技术转向对象技术,并以此作为提高公司形象和产品信誉的标志。特别在一些发达国家,几乎所有的新软件开发,都全面或部分地采用面向对象技术。在教育方面,面向对象方法和技术被越来越多的大学列为学生的必修课。10/25/20233张沛超,上海交通大学电气工程系结构化方法主要还是一种编程方法和思想。而面向对象方法则远远突破了编程的范围,而成为一种囊括系统分析设计编程测试维护的完整的思想体系。另外,面向对象的数据库、面向对象的用户界面、面向对象的知识库、面向对象的专家系统、面向对象的硬件系统设计、面向对象的操作系统,等等,各种基于面向对象方法的新技术、新理论、新方法、新产品是层出不穷。10/25/20234张沛超,上海交通大学电气工程系这一切都向人们表明,90年代的面向对象方法,正像当年的结构化方法一样,在计算机科学技术领域占据了无可争议的主流地位。10/25/20235张沛超,上海交通大学电气工程系传统的软件工程学回顾传统软件工程学的基本途径是生命周期方法学。生命周期方法学将整个软件开发过程划分为问题定义、可行性论证、需求分析、总体设计、详细设计、编码和单元测试、综合测试、系统维护等阶段。并强调每个阶段要进行严格的技术评审。10/25/20236张沛超,上海交通大学电气工程系传统的软件工程学回顾在需求分析阶段生成的文档主要是数据流图、数据字典、实体关系图等。可以概括地说,需求分析是面向数据流;10/25/20237张沛超,上海交通大学电气工程系传统的软件工程学回顾在总体设计阶段生成的文档主要是层次图、结构图等。在系统总体设计时,强调自动向下,层层分解。最终将系统划分为许多子功能模块。因此,可以概括地说,系统总体设计是面向功能。10/25/20238张沛超,上海交通大学电气工程系传统的软件工程学回顾在详细设计阶段生成的文档主要是程序框图(或流程图)、伪码等。结构化编程中只使用三种结构:顺序结构、选择结构、循环结构。总体设计阶段中被分解的子功能被一系列流程图加以实现。因此,可以概括的说,系统详细设计是面向过程。10/25/20239张沛超,上海交通大学电气工程系传统的软件工程学回顾在编码阶段,采用一种基于函数的高级语言,如C、PASCAL等加以实现。根据程序框图,子功能被映射为一系列的函数。因此,编码是面向函数的。10/25/202310张沛超,上海交通大学电气工程系结构化编程技术发挥了巨大作用自70年代起,人们开始重视对软件工程学的研究,并在软件开发中逐渐采用软件工程学方法。特别是结构化编程思想的广泛使用,对软件的发展产生了很大的推动作用。有几个著名的例子,1972年完成的《纽约时报》的信息管理系统,该系统共有83000行高级语言代码,只花了11人年,在22个月内完成。使用过程表明,该系统是高度可靠的,在第一年的使用中,只发生过一次使系统失效的软件故障。再如,美国宇航局空间实验室的太空模拟操作系统含40万行源代码,只用了两年时间就完成,且运行一直稳定可靠。10/25/202311张沛超,上海交通大学电气工程系问题凸现当时的这些一系列成功的例子让人们兴奋不已,认为已经彻底找到了克服软件危机的方法。但随着计算机硬件的迅速发展,计算机应用领域在广度上和深度上的不断扩大,软件变得越来越复杂。一系列问题又暴露出来。这促使人们继续寻找更为有效的软件工程学方法。面向对象方法就是最为重要的研究成果。10/25/202312张沛超,上海交通大学电气工程系传统方法学的主要问题1生产率提高的幅度远不能满足需要例如,1955年到1985年,30年间,硬件的性能翻了20翻,提升了100万倍,而软件生产率则仅仅翻了2翻。虽然自70年代起,人们在软件开发中逐渐采用软件工程学的方法,并获得了一些成功,但是,由此带来的生产率的提高的幅度仍远远不能满足需要。10/25/202313张沛超,上海交通大学电气工程系传统方法学的主要问题2软件重用程度很低第一节课我们将讲过,硬件行业的飞速发展,很大程度上归功与存在大量的标准的可重用的组件、构件。软件行业要提高生产率,也必须从提高软件重用程度上狠下功夫。但实际的重用程度确让人们大为失望。最初,人们以为只要多建立一些标准的函数库,就可以实现重用。但事实上,除了一些接口十分简单、功能非常明确定标准数学函数等被大量重用外,人们每次在开发新的软件项目中,基本上都是从头开始。10/25/202314张沛超,上海交通大学电气工程系传统方法学的主要问题3软件仍然很难维护虽然在生命周期方法学中十分注意各个阶段文档的重要性,并清醒地认识到必须采取严格的措施来提高软件的可维护性,但实际的结果却很不如意。例如,据统计数据,软件维护的费用占总开发费用的55%~70%,软件维护的生产率比软件开发的生产率低几十倍。10/25/202315张沛超,上海交通大学电气工程系传统方法学的主要问题4软件往往不能真正满足需要很多软件工程师在回顾往事时,最大的感慨就是他所参与的许多“遗憾工程”。所谓“遗憾工程”,是指开发出的软件产品不能满足用户的真正需要,或者很多项目根本就是中途夭折。10/25/202316张沛超,上海交通大学电气工程系出现问题的原因1、从问题空间到解空间的鸿沟10/25/202317张沛超,上海交通大学电气工程系面向对象方法的基本思想从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类自然思维方式。在软件世界中直截了当地再现现实世界,使得软件系统能直接映射问题空间,保持问题空间中事物及其关系的本来面貌。10/25/202318张沛超,上海交通大学电气工程系面向对象方法的主要特点:1、从问题空间中客观存在的事物出发来构造软件系统。用对象(object)作为对这些事物的抽象表示,并以此作为系统的基本构成单位。

例如,在我们这个班级中,每个学生都可称为一个对象。10/25/202319张沛超,上海交通大学电气工程系面向对象方法的主要特点:2、事物的静态特性(即可以用数据表示的特征)用对象的属性(attribute)表示;事物的动态特征(即事物的行为)用对象的服务(service)表示。服务有时也成为方法(method)。10/25/202320张沛超,上海交通大学电气工程系面向对象方法的主要特点:3、对象的属性和行为结合为一体,成为一个独立的实体,对外屏蔽其内部细节,称为封装(encapsulation)。对象=属性+服务。10/25/202321张沛超,上海交通大学电气工程系面向对象方法的主要特点:4、把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。把具有共同特征的事物的集合,被称作类。例如,“树具有树根、树干、树枝和树叶,它能进行光合作用”,这个描述适合所有的树,从而不必对每棵具体的树都进行一次这样的描述。

对事物进行分类。把具有相同属性和服务的对象归为一类,类(class)是这些对象的抽象描述,每个对象是它的一个实例(instance)。10/25/202322张沛超,上海交通大学电气工程系面向对象方法的主要特点:5、通过在不同程度上运用抽象的原则(较多或较少的忽略事物之间的差异),可以得到较一般的类和较特殊的类。特殊类继承(inheritance)一般类的属性和服务。面向对象方法支持对这种继承关系的描述和实现,从而简化系统的构造过程及其文档。

特殊类和一般类虽然具有同名的服务,但其具体含义在特殊类中可能有所不同,这种现象成为多态(polymorphism)。10/25/202323张沛超,上海交通大学电气工程系面向对象方法的主要特点:6、复杂的对象可以用简单的对象作为其构成部分,称为聚合(aggregation)。10/25/202324张沛超,上海交通大学电气工程系面向对象方法的主要特点:7、对象之间通过消息(message)进行通信,以实现对象之间的动态联系。10/25/202325张沛超,上海交通大学电气工程系面向对象方法的主要特点:8、通过关联(association)表达对象之间的静态关系。10/25/202326张沛超,上海交通大学电气工程系什么是面向对象若根据面向对象方法的特征来加以定义,可给出如下定义:面向对象方法学是一种运用对象、类、继承、封装、聚合、消息发送、多态等概念来构造系统的软件开发方法。Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。10/25/202327张沛超,上海交通大学电气工程系面向对象是软件方法学的反朴归真面向对象方法的出现,可以说是人类认识事物的一个返朴归真的过程。自计算机问世以来,软件科学的发展历程中出现过许多“面向”。如面向机器、面向代数、面向过程、面向数据、面向文件、面向信息、面向应用、面向功能、面向数据流,令人眼花缭乱。这反映了我们的先驱者付出来许多令人尊敬的劳动。尝试从不同的角度、不同的思路来认识软件的本质,寻找软件的出路。每一种“面向”都不乏创新的见解和独到的优点,许多“面向”还为今天的面向对象提供了可贵的借鉴。10/25/202328张沛超,上海交通大学电气工程系面向对象是软件方法学的反朴归真但这些“面向”没有直接而全面地反映问题的本质。后来人们终于认识到:软件开发从本质上就是对软件所要处理的问题域进行正确认识,并把这种认识正确地描述出来。既然如此,那就应该直接面对问题域中客观存在的事物来进行软件开发,这就是面向对象。10/25/202329张沛超,上海交通大学电气工程系面向对象是软件方法学的反朴归真另一方面,人类在认识世界的历史长河中形成的普遍有效的思维方法,在软件开发中也应该是适应的。人们在日常生活中习惯的思维方式和表达方式,也应在软件开发中尽量采用,这就是面向对象方法所强调动基本原则。软件开发从过分专业化的方法、规则和技巧回答了客观世界,回到了人们的日常思维,所以说面向对象方法是软件开发理论的返朴归真。10/25/202330张沛超,上海交通大学电气工程系面向对象是软件方法学的反朴归真从不同的方法学出发来认识事物都可得到一些言之有理的结论,但却存在着难易之分、繁简之分、深浅之分和优劣之分。例如中国道家的阴阳五行学说曾被用来解释物质的构成和转化,但现代化学的解释就更为透彻,更为明了。又如日心说诞生之前,欧洲的天文学家以地球为中心计算行星的运行轨道,于是大圈套小圈,公式十分复杂。日心说的创立一下使问题变得简单了-只不过是围绕太阳的一个椭圆。10/25/202331张沛超,上海交通大学电气工程系面向对象是软件方法学的反朴归真这两个例子,说明认识论对于实践的影响,从哲学上,面向对象方法与唯物主义认识论中的物质第一性、意识第二性以及存在决定意识到观点是十分符合的。当软件专家们面向自己专业领域中的这个概念、那个概念而苦苦探索的时候,面向对象方法呼吁他们转过身来,面向客观世界,面向客观世界中的对象!这就是面向对象。10/25/202332张沛超,上海交通大学电气工程系面向对象方法学的基本概念对象-属性、服务类-抽象、一般类、特殊类封装-信息隐蔽、可见性继承消息结构与连接-一般/特殊结构、整体/部分结构、实例连接、消息连接多态10/25/202333张沛超,上海交通大学电气工程系对象(object)关键字:对象(object)、属性(attribute)、服务(service)定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这些属性进行操作的一组服务构成。定义:属性是用来描述对象静态特征的一个数据项。定义:服务是用来描述对象动态特征的一个操作序列。10/25/202334张沛超,上海交通大学电气工程系对象(object)举例:一名职工,一家公司,一个窗口,一座图书馆,一本图书,贷款、借款注意:

抽象性-对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些和系统目标无关的特征

完备性-对象是属性和服务的结合体,两者是不可分的。对象是自包含的。这是和面向功能所不同。

封装性-对象好像是一个黑盒子。外界不能直接访问对象的私有属性,一切操作只能通过对象的服务实现。10/25/202335张沛超,上海交通大学电气工程系类(class)关键字:类(class),一般类(generalclass),特殊类(specialclass),抽象(abstraction)定义:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。10/25/202336张沛超,上海交通大学电气工程系类(class)注意:类的作用是定义对象。程序中给出一个类的说明,就可以由类生成它的对象实例。类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。在程序中,每个对象需要有自己的存储空间,以保存它们自己的属性值。我们说同类对象具有相同的属性与服务,是指它们的定义形式相同,而不是说每个对象的属性值都相同。10/25/202337张沛超,上海交通大学电气工程系类(class)另外,我们常说,事物之间就有共性、也有特性,概念既有一般概念,也有特殊概念,面向对象技术要能做到在软件中再现现实世界,就必须能够表达这种关系。确实可以。这通过一般类和特殊类来实现。一般类和特殊类是相对而言的,它们之间是一种真包含的关系(即:特殊类是一般类的一个真子集)。如果两个类之间没有这种关系,就谈不上一般和特殊。特殊类具有它的一般类的全部特征,同时又具有一些只适应于本类对象的独特特征。10/25/202338张沛超,上海交通大学电气工程系类(class)定义:如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫做B的特殊类,B叫做A的一般类。举例:考虑轮船和客轮这两个类。轮船具有吨位、时速、吃水线等属性并具有行驶、停泊等服务;客轮具有轮船的全部属性与服务,又有自己的特殊属性(如载客量)和服务(如供餐)。所以客轮是轮船的特殊类,轮船是客轮的一般类。与一般类/特殊类等价的其它术语有超类/子类、基类/派生类、父类/子类等。10/25/202339张沛超,上海交通大学电气工程系封装(encapsulation)关键词:封装(encapsulation),信息隐蔽(informationhiding),可见性(visibility)。封装是面向对象方法的一个重要原则。它有两个涵义:第一个涵义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。这主要是指对象的外部不能直接地存取对象的属性,只能通过几个允许外部使用的服务与对象发生联系。10/25/202340张沛超,上海交通大学电气工程系封装(encapsulation)定义:封装就是把对象的属性和服务结合成一个独立的承统单位,并尽可能隐藏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论