技术开发 频道

对面向对象技术的理解

【IT168 技术文章】

    发现在翻译的过程中自己能够学到更多东西,陆续贴一贴自己翻译的文章,供大家伙批评指正。

    面向对象技术已经成为大多数软件开发的行业标准了。这项技术是从系统分析与系统工程的众多原则演化而来。人们需要一些抽象工具来对复杂软件系统进行分解和建模。这一需求推动了面向对象技术的演化。在对复杂软件系统建模的过程中存在着两股关键而又相反的力量:“抽象化”和“复杂度的最小化”。“抽象化”主要是采用一些理论上的建模原理来对复杂系统建模。“复杂度最小化”非常关键,因为它对开发工作的可行性和时间有着重大的影响。为了一个系统能在尽可能短的开发周期内完成,系统的模型务必仅限于描述系统本质的而且尽可能少的特性。

    对系统建模的非常好的方案要求抽象的收敛点是确定的。所谓抽象的收敛点是指所采用的理论的级别必须足以解决问题域中所固有的问题,并且又没有采用过多的原理使得问题被过度抽象化,进而引入不必要的复杂度。复杂度是程序员的天敌。程序员应该在开发的各个方面降低复杂度。当然面向对象的主要目的之一也是降低复杂度。所以说非常好的的方案就是采用合适的抽象工具来达到抽象的收敛点,定义出问题域所固有的复杂度。

    如果说所采用的抽象层次相对于问题域所固有的复杂度过高的话,其所导致的严重后果是整个开发团队的熟练程度也必须要达到相应的更高水平,这样才能保证开发过程中的效率。这就增加了开发过程中的成本和时间。如果说采用了过低的抽象层次,则该方案就不能有效和高效地描述问题域中所存在的各个问题。准确评估问题域中所固有的复杂度的唯一方法就是找到一个问题模型来定义问题域中各个问题的相对重要性和优先级别。这也是在制定复杂软件系统架构过程中的关键任务。

    抽象工具是由一个元模型来定义。该元模型是由模式模型、模式、对象模型、对象和对象细节所组成。所有这些都位于不同的抽象级别,依次从高到低排列,定义如下:

    对象:对象是软件域中用来实现系统所定义好的状态和行为的具体形式

    对象细节:对象细节给出了用以支撑对象模型中所定义的对象间的结构关系的实现细节。对象细节实现了对象行为的各个细节。它通常等同于用编程语言所实现的算法和逻辑

    对象模型:对象模型定义了一组对象之间的结构上的关系已经动态的交互工程

    模式:模式了定义了在给定场景下经常出现的问题的常被采用的方案。每次应用模式的细节可以不同,但是整个结构,动态交互过程和解决的途径都是一样的。模式是每个对象模型的模板,而对象模型则是模式的一个实例。

    模式模型:模式模型表述了模式之间的关系,比如说模式之间的相对重要性以及应用模式时的优先次序。模式模型中的每个模式都位于不同的抽象层次,从而形成层次结构。模式模型直接对应于问题模型,定义出问题域中问题的层次结构。模式模型代表了元模型中的收敛点,定义了在面向对象建模过程中所用到的抽象模型。

0
相关文章