面向对象开发方法的优缺点
⑴ 面向对象的优缺点
说几个主要的:
优:
(1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)
(2)适用于各类信息系统的开发。
(3)实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。
(4)开发工作的重用性、继承性高,降低重复工作量。
(5)缩短了开发周期。
(这几点是网上复制的)
缺点也很明显。
类和继承等特点使得程序会多很多指针操作来定位函数入口和自身要维护虚拟方法表等额外的工作,程序的处理效率相对要低(但程序开发效率高)。所以现在单纯的C语言还是大为用武之地的。
但随着科技的进步,CPU和内存的性能也突发猛进。由原来的1核到8核,内存16M和现在的16G,所以程序的效率多多少少会随着硬件的性能变得更好。你可以发现很多大的项目也开始由C转而变成让c++和JAVA等面向对象来写了。
⑵ 面向对象程序设计的优点是什么
1、维护简单
面向对象程序设计的一个特征就是模块化。实体可以被表示为类以及同一名字空间中具有相同功能的类,可以在名字空间中添加一个类而不影响该名字空间的其他成员。这种特征为程序的维护提供了便捷性。
2、可扩充性
如果有一个具有某一种功能的类,就可以扩充这个类,创建一个具有扩充功能的类。
3、代码重用
功能是被封装在类中的,类是作为一个独立实体而存在的,因此可以很简单的提供类库,使代码得以重复使用。
(2)面向对象开发方法的优缺点扩展阅读
面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
⑶ 面向过程与面向对象各自的优缺点
不太同意楼上观点。一定程度上两者的试用地方不同
对面向对象来说几个主要的:
优:
(1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)
(2)适用于各类信息系统的开发。
(3)实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。
(4)开发工作的重用性、继承性高,降低重复工作量。
(5)缩短了开发周期。
(这几点是网上复制的)
缺点也很明显。
类和继承等特点使得程序会多很多指针操作来定位函数入口和自身要维护虚拟方法表等额外的工作,程序的处理效率相对要低(换来的是开发效率高)。所以现在单纯的C语言还是大为用武之地的。 如驱动程序开发,或与硬件联系很紧密的东西,单片机等。基本不会用高等的面向对象语言。
但随着科技的进步,CPU和内存的性能也突发猛进。由原来的1核到8核,内存16M和现在的16G,所以程序的效率多多少少会随着硬件的性能变得更好。你可以发现很多大的项目也开始由C转而变成让c++和JAVA等面向对象来写了。
当然核心和底层的东西基本都不会用面向对象语言来写的。
⑷ 面向对象编程的优点和缺点分别是什么
使用面向对象思想进行开发有以下优点:
1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
4、易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
缺点:
1.性能损失.面向对象编程达到了软件工程的三个主要目标:重用性、灵活性和扩展性,相对的为了实现相应的目标, 就会有一定的性能损失,如果程序进行超大规模计算,则性能损失就比较明显;
2.对数学运算等对象化很弱的编程不适用;
⑸ 简答:简述面向对象软件开发方法的基本概念和优点.
基本概念:
谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。
优点:
1)近代的软件产业发展非常的迅速,但是却出现了让软件开发人员越来越不能忽视的危机,比如,软件的开发成本,尤其是大型软件开发成本、软件维护升级等费用非常的昂贵,针对出现的危机,人们提出了能够提高代码复用等的面向对象技术,面向对象技术的提出可以使客户于软件开发人员、软件开发人员之间的交流更加的顺畅,原因在于:首先,面向对象技术通常对现实世界的对象进行抽象,这种抽象使得即是非专业人员也能明软件要做什么,使得客户于专业的软件开发人员交流起来更加顺畅,节约开发成本;其次,面向对象技术通常会采用封装,继承等技术,这些技术会使得不同的程序模块之间的关联度减小,可以使得开发人员专注于程序的研发,而不是把大量的精力都放到各个模块的协调上。
2)并不是说我们利用了面向对象的语言,比如C++、JAVA,面向对象技术的好处就会出现,实际上在小的程序设计上,可能根本不需要这么复杂。真正的大型软件开发用到时需要采用相应的技术方法,不断的优化,比如瀑布模型法,快速原型法。瀑布模型法主要是把软件分为若干阶段,在每一个阶段,都充分的和客户交流;快速模型法主要是首先提出一个总的模型提交给客户,然后在不断的修改,通常这种方法只适用于较小的工程。无论采用那种方法我们可以遵从一个原则:就是把大的软件项目不断的细化,最后细化到一个个小函数,然后在根据之间的关系封装等。
⑹ ooa试述传统的开发方法与面向对象的开发方法各有哪些优缺点
谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。面向对象是当前计算机界关心的重点,它是90年代软件开发方法
⑺ 结构化系统开发方法,原型法和面向对象开发方法的优缺点和适用场合
1、结构化系统开发方法(亦称“生命周期法”)
(1)优点:从系统整体出发,强调在整体优化的条件下“自上而下”地分析和设计,保证了系统的整体性和目标的一致性;遵循用户至上原则;严格区分系统开发的阶段性;每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制;文档规范化,按工程标准建立标准化的文档资料。
(2)缺点:用户素质或系统分析员和管理者之间的沟通问题;开发周期长,难于适应环境变化;结构化程度较低的系统,在开发初期难以锁定功能要求。
(3)适用范围:主要适用于规模较大、结构化程度较高的系统的开发
2、原型法
(1)优点:符合人们认识事物的规律,系统开发循序渐进,反复修改,确保较好的用户满意度;开发周期短,费用相对少;由于有用户的直接参与,系统更加贴近实际;易学易用,减少用户的培训时间;应变能力强。
(2)缺点:不适合大规模系统的开发;开发过程管理要求高,整个开发过程要经过“修改—评价—再修改”的多次反复;用户过早看到系统原型,误认为系统就是就是这个模样,易使用户失去信心;开发人员易将原型取代系统分析;缺乏规范化的文档资料
(3)适用范围:处理过程明确、简单系统;涉及面窄的小型系统
不适合于:大型、复杂系统,难以模拟;存在大量运算、逻辑性强的处理系统;管理基础工作不完善、处理过程不规范;大量批处理系统
3、面向对象开发方法
(1)优点:a、分析、设计中的对象和软件中的对象的一致性
b、实现软件复用,简化程序设计
c、系统易于维护
d、缩短开发周期
(2)缺点:不易于大系统的开发
⑻ 与传统开发方法相比,面向对象方法有什么优点
1、强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,使系统能更准确地反映问题域。
2、运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息等基本原则)进行系统开发,有利于发挥人类的思维能力,有效控制系统复杂性。
3、对象的概念贯穿于开发全过程,使各个开发阶段的系统成分具有良好的对应关系,显著提高系统的开发效率与质量,并大大降低系统维护的难度。
4、对象概念的一致性,使参与系统开发的各类人员在开发的各阶段具有共同语言,有效地改善了人员之间的交流和协作。
5、对象的相对稳定性和对易变因素隔离,增强了系统对环境的适应能力。
6、对象、类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。
(8)面向对象开发方法的优缺点扩展阅读:
在面向对象程序设计中,类作为一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。
在Java程序设计中,类被认为是一种抽象数据类型,这种数据类型,不但包括数据,还包括方法。这大大地扩充了数据类型的概念。
⑼ 面向对象框架开发有什么优点和缺点尽量详细点啊。。。谢谢
使用面向对象思想进行开发有以下优点:
1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
4、易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
七、面向对象的语言(产品)
面向对象的语言应该具备的特征:
1.用对象而非过程(功能或算法)作为程序设计的基本逻辑构件;
2.每个对象属于应该类(型),并为该类的一个实例;
3.一个类可继承其它类的性质。
面向对象的语言有:
1.SmallTalk-76,80,(80年代下半叶)
2.Actor(80年代下半叶)
3.C++,Objective-C (20世纪80年代下半叶)
4.Object Pascal, Object-Oriented Turbo Pascal,Apple ObjectPascal (80年代初开始)
5.Eiffel (80年代上半叶)
6.Ada9X
但Microsoft Visual C++, Boland C++等都属于混合型面向对象的语言,因为它们是在原来的过程语言的基础上发展起来的,都保留了原来的数据类型,如整数、浮点数、字符以及记录等。
几个有代表性的商品软件
Microsoft Visual Basic先从软件的可视化、速成化和组件化开始的,这3化已经开始或正在形成信息与软件工艺的主流之一。
Bland Delphi是组件软件和复合文书工艺的软件。它包含面向对象Pascal的编辑程序、查错程序、可视研制环境和工具、强大的数据库存取(BDE-Database Engine)工具;它用Object Pascal做情节描述语言。
Optima++ Developer 是Sybase/Powersoft出版的可视化、速成化的研制工具。它是采用C++的一种纯可视编辑工具,用拖扔编程技术,从一组标准的和可增的控件制模板中拖出组件,将其扔进应用图表中去,并编辑其性质。它可在Windows 9X和NT下运行,它不仅是一个GUI(图形用户接口)建造程序,而且还是一个C/S(客户/服务器)数据库构造工具。
IBM的VisualAge(SmallTalk版),用一套图标来代表应用组件(对象),并提供许多标准函数(例程)、部件,供GUI配置关系数据库存取、通信、等之用。
用户编程时,只需用鼠标把要用的部件(图标)拖扔到屏幕中的工作面内,按要求设置这些图标的缺省项和参数值,再把这些图标用线段连接起来,表示它们之间的关系和交互操作,并最后加以测试。在组装过程中,要添加复杂的计算/控件流,可用VisualAge的描述语言(Scripting Language-一种4GL)来编写。如果这还不行,VisualAge则提供SmallTalk编辑环境,以添加所需的语句。
Digitalk(现叫ParcPlace-Digitalk)的Visual Smalltalk提供组件组装的可视研制环境和工具,用拖扔手段,可视地把组件组装成一个软件(程序),它还能自建新的组件。它最适宜研制软件雏形的OO程序设计语言。应用完成之后,使用Digitalk Smalltalk编译程序编译,其计算效率据称可增加25%,GUI效率增加了100%。
Prograph CPX(跨平台)将程序面向对象结构的可视化方面做得较突出:
-它用图标代表一个软件的组成部分,对象、类、组件全部可视化;
-全套图标都用多面体图标,如类具有“ 方法”面和“ 属性”面;
-能对图标加以注释,对象和类关系可用线段表示;
-通过工具可方便地将方法加入Tools菜单;
-既有解释程序、又有编译程序,可解除解释程序速度慢的问题。
八、OO方法特点和优缺点
1.特点
(1)利用特定软件直接从对象客体的描述到软件结构的转换。
(2)解决了传统结构化方法中客观世界描述工具与软件结构的不一致性。
(3)减少了从系统分析、设计到软件模块结构之间的多次转换映射的繁杂过程。
2.OO方法优缺点
优点:
(1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)。
(2)适用于各类信息系统的开发。
(3)实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。
(4)开发工作的重用性、继承性高,降低重复工作量。
(5)缩短了开发周期。
缺点:
(1)需要一定的软件支持环境。
(2)不太适宜大型的MIS开发,若缺乏整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题。
(3)只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化。
(4)初学者不易接受、难学。
面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境,但是实现结果和实现成本却在很大程度上取决于实现环境。因此,直接支持面向对象设计范式的面向对象程序语言、开发环境及类库,对于面向对象实现来说是非常重要的。
为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言适合用来实现面向对象设计结果。事实上,具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。
良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。
面向对象方法学使用独特的概念和完成软件开发工作,因此,在测试面向对象程序的时候,除了继承传统的测试技术之外,还必须研究与面向对象程序特点相适应的新的测试技术。在这方面需要做的研究工作还很多,目前已逐渐成为国内外软件工程界研究的一个新的热门课题。