面向对象技术与软件工程探讨

时间:2020-11-12 18:06:09 硕士论文 我要投稿

关于面向对象技术与软件工程探讨

  [摘要]随着计算机技术的发展和人们对软件本质和内在规律认识的提高,传统的软件工程方法已经不适应现代软件系统的要求了。面向对象方法是一种新的软件工程方法。本文介绍了现代软件工程的特点以及面向对象软件开发方法的基本思想和原理。

  [关键词]面向对象软件工程

  1.软件工程概念及传统软件工程模式

  由于软件危机的产生,使人们认识到用传统方法再也无法驾驭如此复杂的软件生产,是到了必须彻底解决软件危机,才能拯救这一最有希望的新兴产业的时候了。1986 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题。在这次会议上正是随着计算机技术的发展及人们对软件本质和内在规律认识的提高,对软件工程的定论也在变化。著名的软件工程专家B.W.Boehm 对软件工程的定义是:“运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料”。

  软件工程采用的方法是把软件生存周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低整个软件开发工程的困难程度。在实现每个阶段的任务时,采用的是系统化的技术方法———结构化分析和结构化设计技术。这是传统的软件工程模式。它的缺点是强调了分阶段实施模块化、结构化程序设计技术和方法,而忽视了人在软件开发过程中的地位和作用。

  2.面向对象技术

  在计算机领域,很多新方法和新技术都从编程阶段首先开始,进而发展到软件生命期阶段,早在60 年代未E.W.Dijkstra 就提出了结构化程序设计的概念,为程序设计方法学奠定了基础。70 年代美国的E.

  Youdon 教授提出了结构化分析方法,指出了分析和设计比编码更为重要,这一技术当时曾被软件界看成是治愈“软件危机”的灵丹妙药,其实由不然。面对大型软件系统,用结构化方法,系统的重要性、稳定性、扩充性都无法实现。80 年代面向对象方法应运而生,为软件工程增添了活力。面向对象分析和面向对象设计是当今面向对象的关键技术。

  2.1 面向对象的概念面向对象简称为“00”。这是目前计算机业界使用的高频词。“00”代表着一种新的思维方式,代表着一种新的程序设计方法的潮流。

  传统的程序设计方法,不论是需求分析,还是系统设计,都是针对数学模型的,出发点是“怎样做”,即用计算机求解这个实际问题应该“怎样做”。面向对象方法的出发点是:“是什么”,即要求解的实际问题,它到底“是什么”。Youtdon 给出了面向对象的一个定义:“面向对象= 对象+ 类+ 继承+ 通信”。

  2.1.1 对象对象是面向对象开发模式的基本成分。每个对象可用其一组属性和它可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又成为方法或服务,在C++ 中称为成员函数,它描述了对象执行的功能。若通过消息传递,还可以为其他对象使用。而消息是一个对象与另一个对象之间通信的手段,是要求另一个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义了一个操作名和一个参数表(可能是空的),并制定某一个对象。当一个对象接收到发给自己的消息时,则调用消息中制定的操作,并将形式参数与参数表中的相应的值结合起来。接收对象对消息处理可能会改变对象的状态,即改变接收对象的属性,并发送一个消息给自己或另一个对象。可以认为,这种消息的传递大致等价于传统过程性方法中的函数调用。

  为了把说明与实现分离,需对对象的数据结构和相关操作的实现进行封装,因此,“对象”有两个视图,分别表现在设计和实现方面。从设计方面来看,对象是一些概念的实例。它们把有关的实体模型化。从实现方面来看,一个对象是表达在应用的可执行代码中的实体而使用的实际数据结构。这些对象是数据结构与操作的单一混合体,它们是数据抽象的实例化。

  2.1.2 类类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。在一个类中,每个对象都是类的实例,它们都可使用类中提供的函数。一个对象的状态则包含在它的实例变量中。

  类,就其是一个数据值的聚合的意义上来看,与Pascal 中记录或C中的结构类似,但又有差别。类扩展了通常的`记录语义,可提供各种级别的可访问性。出就是说,记录的某些成分可能是不可访问的,而这些成分对于该记录型来说具有可访问性。类不同于记录,因为它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。

  2.1.3 继承继承是使用已存在的(现存)定义作为基础建立新定义的技术。新类的定义可以在现存类所声明的数据、定义与新类所增加的声明的组合。新类复用现存类的定义,而不要求修改现存类。因为这种类的一部分已经实现和测试,故开发费用较少。现存类可当作父类(范化类、基类或超类)来引用,则新类相应地可当作子类(特化类、子女类或派生类)来引用。

  使用继承设计一个新类,可以视为描述一个新的对象集合,它是现存类所描述对象集合的子集合。这个新子集合可以认为是现存类的一个特化。新类的界面还可以看作是现存类界面的扩充界面。

  2.1.4 消息消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格的说明。发送消息的对象成为发送者,接收消息的对象称为接收者。对象间的联系,只能通过传递来进行。对象也只能在收到消息时,才被激活。被激活后的对象代码将按消息中的命令去操作它的私有数据,完成要求的功能。

  (1)消息的定义将操作送到目标对象的一种机制称为消息。它包括操作名的选择和传递、操作信息变量有三个部分:接收消息的对象、消息选择符、变元。

  (2)消息的性质同一个对象可接受不同形式的多少消息,产生不同的响应,即:

  1 个对象M个消息M个动作相同形式的消息可以送给不同的对象,所做出的响应可以是截然不同的:即:

  M个对象1 个消息M个动作消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的。

  在某个对象的一批消息中,由外界对象直接向它发送的消息,称为公有消息。在某个对象的一批消息中,不对外发放,由对象自己向本身发送的消息,称为私有消息。

  2.2 面向对象软件开发方法面向对象的软件开发方法是以数据为中心而不是以过程为中心。

  面向对象软件本身的内部结构已发生了质的转变。由此带来良好的可构造性、可扩充性和可复用性。对象作为唯一标识的实体,封装了一组属性及其相关操作,提供了一种结构化系统设计的抽象手段。基于对象构造的系统,其开发的各个阶段(分析、设计和实现)都是统一按照相互作用的对象来组织的,因此各个阶段的过程比较平滑,不会象“瀑布型”的结构化方法,从分析到设计(数据流图到结构流程图)有很大的跳跃。

  2.3 面向对象的分析与设计

  完整的面向对象方法包含了面向对象分析、设计、实现、测试和维护等多个方面,其中面向对象的分析和设计用于描述一个系统,使整个面向对象方法中最重要的组成部分———最能体现面向对象方法好处的部分。面向对象的分析与面向对象的设计是在面向对象的程序设计语言基础上发展起来的,试图用面向对象软件开发方法取代传统的结构化软件开发方法。

  2.3.1 面向对象的基本思想方法

  面向对象方法给出两个问题和两个空间的概念:客观世界中的自然领域问题和计算机世界中的软件产品问题;客观世界中的自然领域问题空间对应于计算机世界中的解空间。从分析设计到编程,每一阶段都是按问题域本身的样子组织的。这种范型不仅带来稳定性,而且还具有扩充性。面向对象方法的基本特点:模块性、抽象性、继承性、动态联接的灵活性、易维护性和易扩充性。

  2.3.2 面向对象的设计在设计阶段中继续采用五个层次,用于建立系统的四个组成部分。

  这四个组成部分是问题论域、用户界面、任务管理和数据管理。图2 给出了这四个部分及其相互间的关系。

  问题论域部分包括与所面对的应用问题直接有关的所有类和对象。由于识别和定义这些类和对象的工作在00A 中已经开始,设计部分只是对它们做进一步的细化。在其他的三个部分中,识别和定义新的类和对象。这些类和对象形成问题论域部分与用户、与外部系统和专用设备以及与磁盘文件和数据库系统的界面。这三部分的作用主要是保证系统基本功能的相对独立,以加强软件的可复用性。

  3.小结

  用面向对象思想方法进行软件构造、软件过程研究和建立软件体系结构都标志着面向对象理论趋于成熟。随着计算机的广泛应用,大型和超大型软件系统的开发是必不可少的。从面向对象的思想出发,用面向对象的分析和设计方法去实现它,必将事半功倍。

  参考文献

  [1]郑人杰.殷人昆,陶永雷.实用软件工程.北京:清华大学出版社

  [2]周之英.现代软件工程.北京:科学出版社

  [3]朱海滨.面向对象技术———原理与设计.长沙:国防科技大学出版社

  [4]魏远旺.基于面向对象的软件复用技术的研究和应用[D].南昌大学,2005 年

  [5]段小君,高金环.软件复用与面向对象技术[J].西安邮电学院学报,2004 年02 期

【关于面向对象技术与软件工程探讨】相关文章:

1.计算机语言面向对象开发的发展探讨论文

2.数据库开发中面向对象编程思想论文

3.关于电子技术与通信工程的探讨分析

4.建筑施工技术探讨

5.装配式技术与基础课程教学探讨论文

6.“药物制剂工程技术与设备”课程教学探讨论文

7.信息技术与政治学科整合策略探讨的论文

8.探讨网络技术的影响论文

9.微机接口技术教学探讨的论文