为什么要使用面向对象的方法?(why use OO methodology?) (1分)

  • 主题发起人 majorsoft
  • 开始时间
M

majorsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
12 benefits in using OO method
the principal benefits are follows:
1.Less costly to Maintain
Maintenance is Localized and thus is less costly and error-prone,even in face
of changing requirements,provided that the inheritance structuredo
esn't have to be rewritten.
2.High Quality &
Productivity
Object Technology addresses the trade-off between quality and productivity.
Well-designed object-oriented systems are the basis for systems to be assembled
largely from reusable components,leading to higher productivity. Reusing
existing classes that have been tested in the field on earlier projects leads to system which are of higher quality,meet business requirments better and contain fewer bugs.
3.Easily Extensible
object-oriented programming,and inheritance in particular,makes it possible to define clearly and use modules that are functionally incomplete and then
allow their extension without upsetting the operation of other modules or their
clients.this makes systems more flexible,more easily extensible and less costly
to maintain.
4.a tool for complex projects
Ojbect-orientation is a tool for managing complexity,leading to increased
scalability(可量测性?),there is no reason why effort should increase
exponentially with project size and complexity as is the case with conventional
systems.
5.thinking in natural
in the same way,the partitionning of work in a project has a natural basis and should be easier,Analysis and design by partitioning ado
main into objects
corresponding to(符合) solution-oriented view of their real-world counterparts(
副本?) is often more natural than a top-down functional decomposition.
6.support Prototyping &
evolutionary software developement method better
Prototyping and evolutionary delivery are better supported,thus reducing
time-to-market and requirements drift.
7.the message passing metaphor(比喻,暗示?) means that interface descriptions
between modules and external and legacy systems become much easier.
8.There is greater seamlessness in passing from conceptual modelling, through
analysis and design to coding. Objects can be used for all stages of modelling
and there is a greater chance that the coded objects will correspond to
something in the vocabulary of users:eek:pening the possibility of shared
understanding between developers and their clients.
9.greater reversibility to model
Object-Oriented systems are potentially capable of capturing far more of the
meaning of an application;its semantics. Since object-oriented methods are
mainly concerned with modelling systems they can be used to carry out scenario
modelling and facilite changes within the business. This property leads to
greater reversibility(可逆性) in the end product and enhances the possibility of reverse engineering systems and of tracing features back to requirements.
10.secure
information hiding through encapsulation helps to build secure systems.
11.Formal specificaiton methods can be made to blend with object-oriented
design to some extent. I will have more to say on this later.
12.Some applications have defeated other approachs and object technology seems to be the only way to build them efficiently. Examples are graphical user
interfaces, distributed systems,agent-based systems and workfow systems.

--摘自《Object-Oriented methods principles &
practice》3rd edition,Ian Graham.
我个人觉得不错,不过比较难翻译,如果有高手翻译了,我将感激不尽。ps:前面的标题是我总结的.

 
M

majorsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]我是一个字一个字地敲出来的啊。不会没人看吧
 
S

Sterntaler

Unregistered / Unconfirmed
GUEST, unregistred user!
看,这下满意了吧? ^^
 
M

majorsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
如果有人把它翻译好了,另外开贴给分(200分以上)。
 
M

milan

Unregistered / Unconfirmed
GUEST, unregistred user!
使用面向对象方法的12个优点
主要的优点如下所述:
1 维护费用低
假设继承结构没有必要重写,即使是改变需求,那么维护是局部的,因此维护费低,
只有1分,就先翻译1个优点吧,呵呵。
 
W

wyb_506

Unregistered / Unconfirmed
GUEST, unregistred user!
12 benefits in using OO method
使用面向对象方法的好处
the principal benefits are follows:
主要益处如下:
1.Less costly to Maintain//更低的维护成本
Maintenance is Localized and thus is less costly and error-prone,even in face of changing requirements,provided that the inheritance structuredo
esn't have to be rewritten.
维护是局部的,因此维护成本会更低且是易错的(原文是不是应该有个non前缀?),即便是面临需求的改变,继承的结构(部分)是不需要重写的。
2.High Quality &
Productivity//高质量和高生产率
Object Technology addresses the trade-off between quality and productivity.
Well-designed object-oriented systems are the basis for systems to be assembled
largely from reusable components,leading to higher productivity. Reusing
existing classes that have been tested in the field on earlier projects leads to system which are of higher quality,meet business requirments better and contain fewer bugs.
对象技术致力于质量和生产力效率间的交替权衡。设计良好的面向对象的系统是那些很大程度上从可重复使用的构件中得来的系统进行聚合的基础。重复使用现有的在早期工程中使用过的类可以使系统具有更高的质量,更符合商业要求以及含有更少的错误。
3.Easily Extensible//易与扩展
object-oriented programming,and inheritance in particular,makes it possible to define clearly and use modules that are functionally incomplete and then
allow their extension without upsetting the operation of other modules or their
clients.this makes systems more flexible,more easily extensible and less costly
to maintain.
面向对象的程序,特别是继承,使得清晰的定义、不完整功能模块化的使用,以及不影响其他模块或者是它客户端的扩充成为可能。
4.a tool for complex projects//(建立)复杂工程的工具
Ojbect-orientation is a tool for managing complexity,leading to increased
scalability(可量测性?),there is no reason why effort should increase
exponentially with project size and complexity as is the case with conventional
systems.
面向对象是管理复杂程序和增加程序可伸缩性的工具,没有理由为什么程序实现目标随工程的尺寸呈指数增长,同时程序复杂程度却要同常规系统一样。
 
X

xml1123

Unregistered / Unconfirmed
GUEST, unregistred user!
5.thinking in natural //更自然地思考
in the same way,the partitionning of work in a project has a natural basis and should be easier,Analysis and design by partitioning ado
main into objects
corresponding to(符合) solution-oriented view of their real-world counterparts(
副本?) is often more natural than a top-down functional decomposition.
//同样,项目中的工作划分就有了个自然的基础并且应该更容易。把一个域划分成对象的分析和设计方法,符合现实世界中的面向解决的观点,这通常比自顶向下的功能分解更自然。
6.support Prototyping &
evolutionary software developement method better
Prototyping and evolutionary delivery are better supported,thus reducing
time-to-market and requirements drift.
//更好的支持原型/演进的软件开发方法
原型和演进式交付被更好的支持,这就降低了上市时间(time-to-market高手帮忙,实在不知道该怎么翻译)和需求流失。
7.the message passing metaphor(比喻,暗示?) means that interface descriptions
between modules and external and legacy systems become much easier.
//消息传递隐喻意味着模块间、模块与外部、模块与后继系统的接口描述更容易。
8.There is greater seamlessness in passing from conceptual modelling, through
analysis and design to coding. Objects can be used for all stages of modelling
and there is a greater chance that the coded objects will correspond to
something in the vocabulary of users:eek:pening the possibility of shared
understanding between developers and their clients.
//从概念模型到分析道设计再到编码更加的平滑。各个阶段的模型都可以用对象,甚至有很大的可能,你编码的对象成为你的用户的词汇表的一部分。这就为在开发人员和客户之间分享共同的理解提供了可能性。
9.greater reversibility to model //更强大的反向到模型的能力
Object-Oriented systems are potentially capable of capturing far more of the
meaning of an application;its semantics. Since object-oriented methods are
mainly concerned with modelling systems they can be used to carry out scenario
modelling and facilite changes within the business. This property leads to
greater reversibility(可逆性) in the end product and enhances the possibility of reverse engineering systems and of tracing features back to requirements.
//面向对象的系统因为其语义,潜在地拥有捕获一个应用的更多信息的能力。因为面向对象的模型主要关注可以用来实现场景模型的模型系统和商业内部灵活变化。这个特性使得最终产品有更强的可逆性(反向性),并且增强了反向工程系统和功能跟踪回溯到需求的可能性。
10.secure//安全
information hiding through encapsulation helps to build secure systems.
//通过封装(实现的)信息隐藏有助于建立安全的系统。
11.Formal specificaiton methods can be made to blend with object-oriented
design to some extent. I will have more to say on this later.
//正式的说明这种方法在一定程度上可以与面向对象的设计混用。我稍后将作详细说明。
12.Some applications have defeated other approachs and object technology seems to be the only way to build them efficiently. Examples are graphical user
interfaces, distributed systems,agent-based systems and workfow systems
//一些(成功的)应用已经击败了其他的方法,使得对象技术好像是唯一能有效构建它们的方法。(成功的)例子有图形用户界面,分布式系统,基于代理的系统和工作流系统。
------------
第一次来翻译东西,不当之处欢迎批评指正,不吝赐教。
不为分数,只为自己别把英语忘光了。
 
K

kidneyball

Unregistered / Unconfirmed
GUEST, unregistred user!
我来试试,某些地方加入了自己的理解。欢迎指正
12 benefits in using OO method
使用面向对象方法的12个好处
the principal benefits are follows:
以下是主要的好处:
1.Less costly to Maintain
1.减低维护成本
Maintenance is Localized and thus is less costly and error-prone,even in face
of changing requirements,provided that the inheritance structuredo
esn't have to be rewritten.
维护工作被局部化了,因此减低了维护成本与出错可能——即使需求发生了变动。但前提是继承结构不需要重写。
2.High Quality &
Productivity
2.高质量与高生产力
Object Technology addresses the trade-off between quality and productivity.
Well-designed object-oriented systems are the basis for systems to be assembled
largely from reusable components,leading to higher productivity. Reusing
existing classes that have been tested in the field on earlier projects leads to system which are of higher quality,meet business requirments better and contain fewer bugs.
对象技术致力于质量与生产力之间的平衡。使用可重用组件来装配大型系统可以提高生产力,而设计良好的面向对象系统正是这种系统的基础。重用已有并且已经在之前的项目中、相关的领域中被测试过的类能提高系统的质量,更好地符合业务需求,而且bug更少.
3.Easily Extensible
3.易于扩展
object-oriented programming,and inheritance in particular,makes it possible to define clearly and use modules that are functionally incomplete and then
allow their extension without upsetting the operation of other modules or their
clients.this makes systems more flexible,more easily extensible and less costly
to maintain.
面向对象编程——特别是继承机制——使得那些功能尚不完整的模块(译注:应该是指在系统分析期间还不能确定完整功能的模块)能被清晰地定义和使用。并且允许它们在不影响其他模块或它们的用户的前提下进行扩展。这使得系统更加有弹性,更加易于扩展,而且成本更低。
4.a tool for complex projects
4.(适用于)复杂的项目的工具
Ojbect-orientation is a tool for managing complexity,leading to increased
scalability(可量测性?),there is no reason why effort should increase
exponentially with project size and complexity as is the case with conventional
systems.
面向对象是管理复杂性的一种工具,能提高系统的硬件-性能伸缩能力(译注:scalability,特指系统在通过增加硬件来提高性能方面的自适应能力)。在传统系统中(译注,应该指非面向对象系统),工作量会随项目的规模与复杂度增加呈指数增长。但这种情况(在面向对象系统中)是毫无道理的。
5.thinking in natural
5.符合自然思维
in the same way,the partitionning of work in a project has a natural basis and should be easier,Analysis and design by partitioning ado
main into objects
corresponding to(符合) solution-oriented view of their real-world counterparts(
副本?) is often more natural than a top-down functional decomposition.
同样地,对项目中的工作进行分解时能基于一个自然的标准,因而也更加容易。在分析和设计时把业务领域分解为对象,而这些对象与它们在面向解决方案视图中的真实配对物一一对应,这通常比自顶向下的功能分解更为自然。

6.support Prototyping &
evolutionary software developement method better
6.更好地支持原型法与演进型的软件开发方法。
Prototyping and evolutionary delivery are better supported,thus reducing
time-to-market and requirements drift.
更好地支持原型与演进的分发方式[1],因此减少了上市时间与“需求漂流”[2]
[1] 译注:我一直不知道delivery正确的中文译法,感觉“分发”,“交付”等都不能表达出Delivery作为IT术语的味道 :(
[2] 译注:在我印象中,在原型法中,有可能会因为需求的不停变动而导致系统失去控制地改动,称为requirements drift。但我也不确定,待高手更正
7.the message passing metaphor(比喻,暗示?) means that interface descriptions
between modules and external and legacy systems become much easier.
7.消息传递隐喻[1]使得模块与外部系统以及遗留系统[2]的接口描述更为简单。
[1] 隐喻在计算机术语中指用一种自然说法来表达一个技术机制,这里用the message passing metaphor,我的理解是因为对象之间通讯并不是真正的传递消息(例如windows的消息系统),在技术上说是对象方法的互相调用。使用消息传递这种隐喻能帮助我们自然地理解接口的概念
[2]Legacy systems指在当前系统开发之前已经存在,并且要与当前系统共同工作的系统。Legacy system通常暗示这些系统已经在使用,不能被本项目小组修改,而且数据格式、定义等也不保证与本系统相同。
8.There is greater seamlessness in passing from conceptual modelling, through
analysis and design to coding. Objects can be used for all stages of modelling
and there is a greater chance that the coded objects will correspond to
something in the vocabulary of users:eek:pening the possibility of shared
understanding between developers and their clients.
8.从概念模型,到分析,到设计,到编码的无缝进展。对象能在建模的各个阶段使用,而且很可能模型编码中的对象能与用户心目中的词汇表对应:这使得在开发人员与他们的客户之间分享理解成为可能。
9.greater reversibility to model
9.更好的逆向建模的能力[1]
Object-Oriented systems are potentially capable of capturing far more of the
meaning of an application;its semantics. Since object-oriented methods are
mainly concerned with modelling systems they can be used to carry out scenario
modelling and facilite changes within the business. This property leads to
greater reversibility(可逆性) in the end product and enhances the possibility of reverse engineering systems and of tracing features back to requirements.
面向对象系统具有作为一个应用系统之外俘获更多信息的潜在能力[2]——通过它的语义学分析。因为面向对象方法主要关心的是它们用来实现情景模型以及适应业务变动的模型系统。这种特性使得最终产品具有更大的逆向抽象能力,并提高了使用逆向工程系统[3]与反向追踪功能到需求的可能。
[1]Reversibility,指通过分析源程序,反向得出业务模型的能力。
[2]这句话的意思应该是说面向对象除了作为一个应用系统,它本身还携带了关于模型的许多信息,这些信息有可能被俘获出来并用于反向建模。
[3]reverse engineering system,我的理解是能自动根据源代码进行反向建模的系统。
10.secure
10.安全性
information hiding through encapsulation helps to build secure systems.
通过封装来隐藏信息有助于建立安全的系统。
11.Formal specificaiton methods can be made to blend with object-oriented
design to some extent. I will have more to say on this later.
11.一些正式的规范说明方法(译注:应该指UML等)能在一定程度上与面向对象设计结合起来。我会在稍后具体谈到。
12.Some applications have defeated other approachs and object technology seems to be the only way to build them efficiently. Examples are graphical user
interfaces, distributed systems,agent-based systems and workfow systems
12.某些具体应用系统已经使其他方法尝到了苦头,似乎对象技术是构建它们的唯一有效方法。例如图形用户界面,分布式系统,基于代理机制的系统,以及工作流系统等。
 

Similar threads

I
回复
0
查看
1K
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
I
回复
0
查看
698
import
I
顶部