下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
«妾:软件开发技采的发黒经历了结构化穆序设计到面向对象枝术发展的过稔面向对象技术作为一种新的技木逐渐取代结构化穆序设计方法具有其必魁生,其之所叹能够得到极大的发展与其深层的哲朵义瘤着天然的联系;一个程序的好坏,它的容错能力的强弱,叹及蘇的可实现性也不郦度地依赖于穆序员的哲学观。本文将介绍面向对象技术并探讨其哲学意义。“—、面向对象技术3向对象技术的广泛应用,反映了计算机科学发展的趋势和需要。的发展是相互促进的,计算机科学技术的发展推动了社会的现代泛,也艮±莉寸计算机科学提出了新的要求;人们越来越希望自殖关键字:面向对象软件开发哲学自然辩证法方法论3—、面向对象技术3向对象技术的广泛应用,反映了计算机科学发展的趋势和需要。的发展是相互促进的,计算机科学技术的发展推动了社会的现代泛,也艮±莉寸计算机科学提出了新的要求;人们越来越希望自殖■1.1结构化程序与面向对象技术卩在软件开发过程中,计算机科学的发展与社化,计算机应用的不断接与计算机进行交互,而不再受专门训练后才使它。对于这一要求的满足,够计算领域自身的技术发展提岀了更高的要求,于是当人们开始寻求一种萸能反映人类解决问题的自然方法时「面向对象技村便产生了。“■1.1结构化程序与面向对象技术卩结构化程序设计(StructurePrograming)方法的诞生,使得程序开发者能够编写出比较复杂的程序,但是即使结构化编程方法、一旦某个应用系统达^一定的大小,也对它无法控制程序员就陷入源程序的汪洋大海之中。调试、修改是非常令人头痛的韵鬲这是因为这种程序设计方法把f程序看成函数和过程的集卷、其设计思路地自顶向下层次化,逐步求精棒田化:其程序结构是按功能划分基本模块为树型结构:使用局咅陵量程序,使模块间的关系尽可自鋼单.独立,从而可单独验证模块的正确性,即所谓的模块化。函数和进呈是程序的活动单元,数据用于传输。其特点是:按层次纟膨模块」每一模块只有一个入口一个出口,程序代码和被处理数据分离,程序被动处理数据,而不是由数据来主动地驱动程序的执行,这就题典的“程序=数据结构+算法”理倾点。a■1.2面向对象技术的作用卩面向歹嫌的程序设计(Object—OrierctedProgranoningt是一不惭的编程方法,它汲取了结构化程序设计中的优点和长处同时将一些强有力的;念“新椿性融舍在包括对象、类、方法s消息、多态、继承、动态连接等。实际上,,现实世界就是由对象和动作纟賊的,在00中几乎每一个名词就表示一类对象,它具有属性或持征。而语法的动词就是动作,也可粹行为。从程序员的角度看,数据是对象的特征,而过程或函数是它的行为,所以,对象是数据和程序的组台体。a■1.2面向对象技术的作用卩传统设计方法以功能为主进行设计,结构性强,便于设计,便于理解,•但软件后期的修改、维护I#别是在大型软件显得萸为困难,而采用对象式设计有利于复甩肴利于扩充,有利于提高软件质量,有利于加速软件开发过程。a使用00方法,渡计人员可以依照自己的意图©薩自己的对象,并将问题映M至该对象头使设计人员把主宴精为放在系统它上,而对^节问题可以较面向对象设计方法追求的是现实问题空间与软件系统解穿间的近似或直接模拟。可以这样看7现实世界包含两大咅盼:物质和意识,映K使用00方法,渡计人员可以依照自己的意图©薩自己的对象,并将问题映M至该对象头使设计人员把主宴精为放在系统它上,而对^节问题可以较面向歹嫌设计方法之所以受^当今各个方面的重视,是因为它具有许多良好的特点2模块性:对象是一t自动机入互相之间能通过歹嫌认可的途径进行通信废送消息),相互没有预料不到的影响,可以较肖自由地为各个不同的软件系统所用;“封装功为信息隐蔽提供具栋的菊贝手段,用户不必清楚对象的内部细节,只要了解其功台騎述就可以使麻a代码共辜:继承申携供了一种扌鸿共辜的手段,可以避免重复的代码设计,使得面向对象的方法确实有效;a灵活性:对象的功I缈行是在讣虑传送时确定的,支持对象的主体将征,使得对象可以根据自身的特点进行功^痢b提鬲了程序设计的灵活性;a易维护性:对象实现了抽象和装装,使其中可能岀现的错误限第恠自身,不会向州专播,易检错和修改;斗増量型设计:面向对象系统可以迪过继承机制不断扩充功而不影响原有软件的运行昇对象是具有封装功能的独立体購环境之间具有清晰的接口,它可以用干测试和存档而脱离具体的应用,从而形成软件单元加库存,通过使用这种单元软件的生产效率可以得到较大的提高。a \,而且据济方面也优于传统的分析可以说,面向对象程序从结福和功上都胜过千传统程序,从传统程序设i慨程未看,在了解其程序设计语言的语法之后嵌可以把问题求解技巧从自然语言翻译到该不榷序语言,而使用面向对象语言系统,所做的工祚则不同了,它是基于系纟谕程序员共辜f共同的环境,并且所有程序者礎对该环境的 因此,面向对象可以装旨斷有的程序,并建立,而且据济方面也优于传统的分析程序单元之间的通讯。a麻设计费用宴比传统的分析方■13面向对象程序设计语言(OOP)u面向歹嫌的分析方法不仅可以改善软件系统方法,它的开发周期短、省工、省时、高质、麻设计费用宴比传统的分析方■13面向对象程序设计语言(OOP)u面向歹嫌的程序设计语言主要有:SmalltalkSOsEiffelsC++、Obje\tive-C等,它们除了具有计算机语言的F特征外,还具有其它语言所没有的特征。这些椿征主要是数据封装s继承和多态性。a个能动的实体,数据封装将一个数据和与这个数据有关的操作集舍封装在一起。形成一个能动的实体,程师也可赠称为歹嫌。用户不必失瞳对象行为的实现细节,只需根据对象提供的外咅胯卜畢口访问对象。正由刊匕,数据封装带有类似硬件集成电路(瓦)的特征。硬件工程师在搭硬恥电路时,不必知道集成电路芯片的功^是^何实现的,只需了解管脚功台泻电I#性。软件似地在软件中力认封斯的对象,提高软件生产率和増强软件的重用性。a程师也可赠继承是面向对象语言的另一重要概念。在客观世界中,普遍存在着一般和特殊的关系,继承将其模型化。在面向对象的语言中,类功台枝持了一般与楙的层次机制J除了根节点外,每个类者陪自己的父类。除了叶节点外,每个类都有自己的手类。一个子类可以从它的父尖那里继承所有的特性和行为,即对应十语言中的数站和操作'这就扩充了它的特性和行为吃类抽象出共同特征>子类表达其差别>类的实例化就得到对象。有了类的层次结构和継承性;毎个娄的共同性质只需定义一次,用戶就可以充分利用已有的类J符合软件重用的目标。所谓多态性,就是符号多种语义,或相同界面多种实现。让我们考虑多态性问题的一个类比实倒:当汽车司班猫避免撞车时刹车,他关心的是快速刹车,即效果,而不关心刹车是鼓式刹车还是盘式刹车”即实现方法的细节。这里,刹车的使用与刹车的结构是分离的慨念J可能有多种结构的刹卡•它们的使用方法是相同的>相同的使用方法对应于不同种类的刹车结构。这形象地反映*多态性的思想,即相同界面对应于多种实现。面向对象语言中利用函数重载和虚函数机帯*奴拟实现了客观世界中这种晋遍存在的多态性。1.4面向对象的#序设计面向对象的程序设讨]呈要有以下三个步骤:首先是进行面向对第的分析(00A-Object-orientedAnalysis),它的主要任务是了解同题域内该同题所涉及的时象'对象间的关系和作用>即操作。然后构造该问题的对象模型,力争这个複型能真实地因映出所要解决的实质问题。苴次是进行面向对渤岡设计(OOD-Object-OrientedDesign)・即设计软件的对象模型。在分析的基础上,根据所应用的面向对象软件开发环境的功能强弱不等,对所构造的问题的对象模型作必要的改造,以最少改变原同题域内的对象模型为原则,以便在软件系统内设计各个对象'对象间的关系,如••层次关系継承关系等,对象问的通信方式,如消息模式等,总之是设计各个对象应做些什玄进最后是面向对象的实现(OOI-OKj-ectOrientedImplementation)o所谓实现即软件功能的实现,包括:毎个对象的内功能的实或•:确-立对象哪一些处理能力应在哪些类中进行描述;确定并实现系统的界面s输岀的形式及其它魁制机.理等。1.5面向对象的方法学 \面向对象的方法学认为: /Is客观世界是由各种对象组成的•任何爭物都是一乍仝I象'毎个对象都有自己质的规定性和运动变化的规律'毎个对象都属于某个对象、类#细是该对象类的一个实例化元素。不同对象的组合及其相互作用就构成了我们要研究、分赫和构造的客观系统2、通过分析和比较,可以发现对象间的相似性,甲掲示出不同对象的共同属性。这就是构成对象类的根据。在按类、子类“父类等慨念构念对象类的层次关系时'如不加特殊说明'则低层对象可以自然地継承较高一层对象的属性\3s对于已分成类的各个对象>可以通过定义一组方哇来.说明该对象的功能,也就是允许作用于该对象上的各种操作。对象间的相互联系及其作用是遊过传递消息来完成的'消息就是通知对象去完成一个允许作用于该对象上的操作。至于该对象请如诃完成这个操作的细节>则是封装在相应的对象类的定义中的•对外是隐蔽的。
二、面向对象技术的哲学意义J面向对象技术比较冥实地複拟了客观爭物的固有结构和层次关系,符合人类认识爭物的L般规律.面向对象技术的初步成功给我们的启示是多方面的和深刻的。首先,从哲学的角 '任何一个软件作为智力产品,都是人们认识爭物的手段和工具,具有“方法”的性质・对象化的过程.只有当人的认识方法正确表征和顺应了客观爭物及苴过程。符合客观世界的真实过程和规律时'这种方法的对象化“物质化才是可行的。这和物•质化的结果一一软件,它的稳定性、通用性、重用性才是有保陞的•否则,就是不可行的。孟冋对象技术通过软件的自然化克服软件危机的爭实向我们昭明:以往软件不能大量生产、不傘通用、不能重用的本质原因在于,作为方法的软件系统中的主观性因素太多•这就是软件审机的深层实质。由此可见'克服软件危机的过程,其实就是改进人们认识爭物的方法的过悝,是人的认识方法不断客观化、自然化、系统化的过程。 !苴次,面向对象技术的发展深化了主客件之间的关系。丰富和发展了辩证唯物主义的认识论,软件作为人类认识爭物的方法和工月;它无疑是人和自然之间、主体和客体之间的中介。一方面>它是自然爭物即客体的模喊物,是客观爭物过程的一定程度上的形式化和对象化;另一方面J它又是主体认识方法和息维过程的形式化,是主体思维过程的一定程度的对象化。人们借助于它认识爭物、淫构弯屣的过程,既是客观爭物及苴过程不断形式化的过程,也是人的认识方法不断客观化的过程。换句话说>就是客体通过形式化进入主体和主体通过对象化深入客体的两个过程的交互杯一。面向对象技术由于实现了软件ICs较好地克服了软件危机,提高了软件系统的功能.所以它加速了人们认识爭物的进程,深化了主客体之间的关系。面向对象技术向我们表明?深化主客体之间的关系•提高主体的认识能力J苴唯一正确的途径就是不断加速实现软件葩自然化和系统化。这就是面向对象技术所启示绐我们的客体走进主体、主体深入客体的方法'论结论,也是一条重要的认识论结论。面向对象程序设计方法解决了传统结构化方法中问题空间与解空间不一致的问题,避免从分析与设计到软件模块结构问的多次转换过程'便开長憑得简单S高效、合理。从科学认识辩证法的角度来看J结构化方法是还原主复克法在软件系统设计方法的映射。必然带有还原主文的局限性。运用结构化方法为现实世界苗系.统淫模时,随着分析越来越深入'功能模块层次越来越多,也就越来越范以重现功能模块问鋼机联系。即容易篥只见树木»不见森林"。利用面向对象方法设计程序,实际上是利用抽象方法定义各种各样命抽象“类S通过将类具体化为对象和通过在对象之间传递消息来完成。苴中'通过模块和為装将对象的定义和对象的实现分开。通过継承体现类与类之间的关系。以及由此带来的动态*接性和并行性。从而构成面向对象的基本特征。面向对象软件开发方法的出现,是软件开发方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知识产权授权协议书范本
- 商业店铺租赁合同范本
- 红河卫生职业学院《物理化学(II)》2023-2024学年第二学期期末试卷
- 河南质量工程职业学院《影视与影像(视听语言与创意表达)》2023-2024学年第二学期期末试卷
- 河南财政金融学院《并行处理与分布式计算》2023-2024学年第二学期期末试卷
- 贵州大学《计算机伦理学》2023-2024学年第二学期期末试卷
- 大庆职业学院《燃料燃烧与器具》2023-2024学年第二学期期末试卷
- 长春中医药大学《咖啡文化与鉴赏》2023-2024学年第二学期期末试卷
- 内蒙古医科大学《道路勘测设计B》2023-2024学年第二学期期末试卷
- 辽宁中医药大学杏林学院《中东史》2023-2024学年第二学期期末试卷
- 2024年燃气轮机值班员技能鉴定理论知识考试题库-下(多选、判断题)
- 2024年服装门店批发管理系统软件项目可行性研究报告
- 交通法规课件
- (优化版)高中地理新课程标准【2024年修订版】
- 《Python程序设计》课件-1:Python简介与应用领域
- 各类心理量表大全
- 体育概论(第二版)课件第三章体育目的
- DB11T 1481-2024生产经营单位生产安全事故应急预案评审规范
- 《氓》教学设计 2023-2024学年统编版高中语文选择性必修下册
- 《网店运营与管理》第3版 课件全套 白东蕊 第1-11章 网上开店概述- 移动网店运营
- 2024年全国国家电网招聘之电网计算机考试历年考试题(附答案)
评论
0/150
提交评论