程序设计方法学

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML在面向对象程序设计中的应用

引言

面向对象软件开发方法已经成为现代软件工程的重要手段。应用面向对象方法设计出的软件组件可以方便的实现软件重用。同时这种机制将传统的以数据为中心的软件开发方法,改变为同时关注数据的信息与功能,从而可以开发出适应信息与功能变化的系统。

面向对象方法学基本思想是:对所研究的事物进行自然分割,并从分割后的实体中抽象出对象,每个对象都真实地反映了它所对应的实体,然后以更接近人类思维的方式建立事物模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。

面向对象程序设计的介绍

上世纪八十年代末以来,随着面向对象技术成为研究的热点,面向对象的思想已经涉及到软件开发的各个方面。如:面向对象的分析(oboeCtor、entedAnalysis)、面向对象的设(ooD,oboeetorientedDeSlgn)、面向对象的编程(ooP,oboeetor、entedProgramming)等等。面向对象程序设计(oP)现在已经是我们编程的一项基本技能。面向对象编程之所以如此风靡,有好几个原因导致这种结果。

面向对象思想起源于七十年代,在八十年代得到了巩固和发展。九十年代,面向对象技术已经成熟,并进入深入发展阶段。面向对象程序设计与传统的过程化程序设计有着显著的区别:过程化程序设计

是面向功能的,通常用函数或过程来实现所需要的功能,数据通常作为参数传递给函数或过程,数据与实现该数据功能的函数或过程分离,这种方式不利于大中型软件的开发与维护,小部分数据或功能的变动会波及到很多相关的程序,由于用户的需求和软、硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳定的。这样开发出来的模块可重用性生不高。随着计算机应用需求的不断扩大,计算机软件越来越复杂,这种复杂性不仅体现在规模的扩大,而且模块之间的交互越来越复杂,为此,人们提出了面向对象的程序设计思想,它是一种以对象为中心的程序设计方法。

面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体。对象是包含现实世界物体特征的抽象实体,它反映了系统为之保存信息和(或)与它交互的能力。它是一些属性及服务的一个封装体,在程序设计领域,可以用`对象二数据+作用于这些数据上的操作”这一公式来表达。

类(class)是具有相同操作功能和相同的数据格式(属性)的对象的集合。类可以看作抽象数据类型的具体实现。抽象数据类型是数据类型抽象的表示形式。数据类型是指数据的集合和作用于其上的操作的集合,而抽象数据类型不关心操作实现的细节。从外部看,类型的行为可以用新定义的操作加以规定。类为对象(object)集合的抽象,它规定了这些对象的公共属性和方法;对象为类的一个实例。苹果是一个类,而放在桌上的那个苹果则是一个对象。对象和类的关系相当于一般的程序设计语言中变量和变量类型的关系。

消息是向某对象请求服务的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送消息。合作是指两个对象之间共同承担责任和分工。

面向对象程序设计方法具有四个基本特征:

1、抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。

2、继承(1nhoritanC。)是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性新类称为原始类的派生类(子类)而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,学生类,所有的学生可以看作是从同一个学生类派生出来的,但是,每一

种学生的具体表现行为各有不同。这是由于派生出了不同的子类,各个子类添加了不同的特性。继承带来的好处是软件的复用,使用继承可以在已有软件构件的基础上构造新的软件,从而提高软件的生产率并保证软件质量。

3、封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。封装、抽象和信息隐藏是用来降低软件复杂性的重要技术。

4、多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

面向对象程序设计的优点:

1、易于维护

在面向对象程序设计中模块性是与生俱来的,实体表现为类,而类在面向对象程序设计中是一个独立的模块任意增加一个类却不会影响应用程序其他模块。同时,继承和封装使得应用程序的修改带来的影响更加局部化。

2、可扩充性

面向对象程序设计支持扩充性,如果你有一个某种功能的类,你可以很快的扩展这个类,创建另一个具有扩充性的类。

3、代码重用

一个面向对象应用程序框架由一套类组成,这些类形成了应用程序的核心和基础。自从功能被压缩到一个类中并且类作为一个独立的实体存在,提供一个类库就变得非常容易了,可以在应用程序中大量采用成熟的类库,从而缩短开发时间。面向对象程序设计方法采用继承支持重用的思想。

从上面的概述我们可看出,面向对象程序设计成为现代编程技术的一个重要组成的原因。从面向过程到面向对象是程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的是: (l)提高程序的运行效率

(2)提高程序设计工作的效率

(3)提高程序的可维护性

运用面向对象技术不是必须的,但是对于一个大型复杂应用系统的开发,如果采用了面向对象技术,则开发效率会大大提高。UML的基本内容

相关文档
最新文档