信息系统分析与设计信息系统分析与设计第第55章章面向对象的系统面向对象的系统分析与设计分析与设计信息系统分析与设计信息系统分析与设计面向对象的思想最早起源于一种名为Simula的计算机仿真语言。70年代问世的名为Smalltalk的计算机高级语言则首次提出面向对象这一概念。到了80年代,由于Smalltalk—80和c++语言的推出,使面向对象的程序设计语言趋于成熟,并为越来越多的人所理解和接受,从而形成了面向对象的程序设计(ObjectOrientedProgramming,OOP)这一新的程序设计方法。然而,信息系统的开发并不仅仅是程序设计,它还包括系统分析、系统设计、系统运行与维护、项目管理等多个环节。因此,只解决程序设计一个环节的问题是不够的。人们从软件工程的发展过程中得到了启示,即某些处理问题的基本思路与方法在程序设计中在得到成功应用后,经过适当的扩充与发展,就可以应用于系统开发的其他环信息系统分析与设计信息系统分析与设计节。软件发展史上的一个范例,就是结构化方法在程序设计中广泛应用后又在信息系统的结构化分析和结构化设计中得到扩展和应用。因此,从80年代中、后期开始,进行了在系统开发各个环节中应用面向对象概念和方法的研究,出现了面向对象分析(ObjectOrientedAnalysis,OOA)、面向对象设计(ObjectOrientedDesign,OOD)等涉及系统开发其他环节的方法和技术,它们与面向对象程序设计(OOP)结合在一起,形成了一种新的系统开发方法,即许多文献都称之为面向对象(ObjectOriented,OO)方法。面向对象OO方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现在已经成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主信息系统分析与设计信息系统分析与设计要方法。面向对象方法以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结果与客观世界的实际比较接近,容易被人们所接受。面向对象的建模语言出现在20世纪七八十年代,随着编程语言的多样化以及软件产品在更多领域的应用,当时的软件工程学者开始分析与设计新的软件方法论。在这期间出现了超过50种的面向对象方法,对于这些不同符号体系的开发方法,软件设计人员和程序员往往很难找到完全适合他们实际开发的建模语言,而且这也妨碍了不同公司,甚至是不同项目开发组间的交流与经验共享。因此,有必要确立一款标准统一的,能被绝大部分软件开发和设计人员认可的建模语言——UML应运而生。如今,UML已经成为面向对象软件系统分析设计的必备工具,也是软件系统信息系统分析与设计信息系统分析与设计设计人员、开发人员、项目管理员、系统工程师和分析员必须掌握的基础知识。5.1面向对象的概念什么是面向对象?很多初学者都会问起这个问题,软件工程学家Coad和Yourdon曾给出一个简单定义:面向对象=对象+类+继承+通信。如果一个软件系统使用上述4个概念设计并加以实现,则认为这个软件系统是面向对象的。面向对象技术的基本观点可以概括如下。(1)客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。(2)具有相同数据和操作的对象可归纳成类,对象是类的一个实例。信息系统分析与设计信息系统分析与设计(3)类可以派生出子类,子类除了继承父类的全部特征外还可以有自己的特性。(4)对象之间的联系通过消息传递来实现。由于类的封装性,它具有某些对外界不可见的数据,这些数据只能通过消息请求调用可见方法来访问。面向对象方法的基本出发点就是尽可能地按照人类认识世界的方法和思维方法来分析和解决问题,使人们分析、设计一个系统的方法尽可能接近认识一个系统的方法。下面分别介绍面向对象的几个核心元素。5.1.1对象(object)面向对象方法就是以对象为中心、为出发点的方法,所以对象的概念相当重要。《现代汉语词典》(商务印书馆,1996)的解释是:对象信息系统分析与设计信息系统分析与设计是行动或思考时作为目标的人或事物。广义地讲,对象可以是任何人或事物。在00方法中,对象同样有上述的含义。不过,可以定义得更精确一些:对象是一些属性及专用服务的封装体,它是问题空间中—些东西的抽象。在面向对象的系统中,...