(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf_第1页
(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf_第2页
(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf_第3页
(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf_第4页
(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(管理科学与工程专业论文)面向对象方法在管理信息系统开发中的深入应用和研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

r 。 南京航空航天大学硕士学位论文 y 五2 0 99 1 摘要 tlpf。f, 匣塑翌塞查望垄笪墨堕:垦墨竺堑垄! 塑堡全壁旦兰塑! 垂一 a b s t r a c t t h et r a d i t i o n a ld e v e l o p i n gm e t h o d so fm a n a g e m e n ti n f o r m a t i o ns y s t e ma r e o u to fd a t en o wa n dc a n n o tm e e tt h en e wd e m a n d so ft h ec u s t o m e r s b a s e d o n a n a l y z i n g t h el i m i t a t i o no ft r a d i t i o n a ld e v e l o p i n gm e t h o d s o fm a n a g e m e n t i n f o r m a t i o ns y s t e m ,t h i sp a p e rp r e s e n t st h eb a s i cp r o c e s sa n dc o n t e n t s o f d e v e l o p i n gm a n a g e m e n t i n f o r m a t i o ns y s t e mu s i n go b j e c to r i e n t e dm e t h o d i t f o c u s e so n i n t r o d u e i n g t h e p r o c e s s o fd e v e l o p i n gm a n a g e m e n t i n f o r m a t i o n s y s t e m b a s e d0 nt h eu n i f i e dm o d e l i n gl a n g u a g e a tt h es a m et i m e ,a ne x a m p l e i nas u c c e s s f u le n g i n e e r i n ga p p li c a t i o n 。w h i c hi n c l u d e sr e q u i r e m e n t ,a n a l y s i s d e s i g n ,i m p l e m e n t a t i o n ,c o n f i g u r a t i o na n dt e s tp h a s e ,i sg i v e n o u tt od e s c r i b e t h ep r o c e s s a tl a s t t h i sp a p e ra l s od i s c u s s e sh o wt ou s er e l a t i o nd a t a b a s e i no b e c to r i e n t e dm e t h o di nd e t a il k e y w o r d s :o b j e c to r i e n t e d ,o b j e c to r i e n t e dm e t h o d ,m a n a g e m e n t i n f o r m a t i o n s y s t e m ,t h eu n i f i e dm o d e l i n gl a n g u a g e 2 南京航空航天人学硕十学位论文 第一章绪论 近年来,随着计算机应用的不断普及和信息技术的迅速发展,管理信息系统 ( m a n a g e m e n ti n f o r m a t i o ns y s t e m s 简称m i s ) 得到了广泛的应用,它已经渗透到 国民经济的各个角落,起着越来越重要的作用。尤其是在我国经济高速发展的今天, 人们每天接收和需要处理的信息量日益庞大,很多企业和单位都已经或正在准备实现 信息化的管理,另外有一些企业由于原先管理信息系统开发较早,到现在相关的软件 已经不能适应实际工作的需要了,它们都迫切需要新建或改建现代化的企业管理信息 系统。所以说社会对管理信息系统开发和完善的需求是在日益增长,但是目前我们开 发高质量管理信息系统的能力却大大落后于计算机硬件日新月异的发展和社会需求 的增长,特别是在开发大型的管理信息系统方面,能力是非常欠缺的。很多人对管理 信息系统的开发和实施都存在着一些不科学的,甚至是错误的认识和行为,这些不仅 经常会导致整个管理信息系统开发的失败,而且还严重妨碍了计算机技术和计算机应 用技术的进步与发展。 近年来,我国各类企业都或多或少地已建、在建一些管理信息系统。但是其中有 许多都惨遭失败或中途夭折。当然这其中原因很多,有认识上的,有体制上的:有人 的原因,也有技术上的原因。但是,从软件开发人员的角度来讲,不应老是去指责企 业,什么领导不重视,资金不到位,需求经常变化等等。而应该更多的从自身找原因, 我想这从中,我们所掌握、运用的软件开发方法的落后也是导致管理信息系统开发失 败的一个非常重要的原因。所以从管理信息系统的相关理论出发,讨论如何运用更科 学、更先进的方法和技术来成功开发符合时代发展特点甚至是有更好预见性和可扩展 性的管理信息系统,在当前来讲就非常具有实际意义。 管理信息系统传统的开发方法主要是结构化系统开发方法,它是一种面向功能的 方法,强调功能分解与模块性。系统分析的重点在于分析企业业务处理过程中的数据 流动和变换方式。这种开发方法在某些方面越来越不适应现在的大规模复杂性管理信 息系统的开发,不能适应企业管理系统业务的重组和系统内外环境变化的需求。因为 它将开发的基础建立在不稳定的企业业务功能要素上,而企业系统内外环境业务处理 形式是不断变化的,在面向功能分析基础上所建立的系统很难适应企业环境的变化。 一旦业务处理过程发生变化,整个管理信息系统将处于瘫痪状态,从而给企业管理带 来很大困难,造成企业经济损失。 当前,面向对象( o b j e c t 一0 r i e n t e d ) 技术的研究已普及到了计算机系统的各个 领域,如面向对象的程序设计语言、面向对象分析设计方法( 也可简称面向对象方 法) 、面向对象的操作系统、面向对象的数据库管理系统等。尤其是面向对象方法在 软件开发领域里已经得到了相当广泛的应用,并且有了相当成熟的理论。特别是随着 支持面向对象的第四代语言( 4 g l ) 的出现,面向对象方法取代传统的开发方法已是 一个必然趋势,它正在成为当前计算机软件工程学中的主流方法。相对于管理信息系 面向对象方法在管理信息系统开发中的深入应用与研究 统传统的结构化系统开发方法而言,面向对象方法有着更多的先进性和优点。它与结 构化系统开发方法不同之处在于它是以企业的客观实体为基础,对管理信息系统的对 象特征和行为进行分析与定义。一个管理信息系统开发成功与否的关键是在系统分析 设计阶段是否能正确建立管理信息系统的信息处理模型。不同企业生产经营、管理方 式、组织形式及企业运行机制各不相同,因此信息系统的形式也呈现出不同形式,但 构成管理信息系统事物或对象是类似的或相同的。例如企业库存管理的对象分为物理 实体仓库、产品;概念实体入库单、出库单,它们是可标准化的实体,并不 完全依赖于企业生产管理方式及组织结构,而企业生产管理、组织结构、运行机制的 方式决定了各实体间的联结方式,形成不同信息流的结构。所以运用面向对象方法开 发的企业管理信息系统具有更好的可维护性、可扩充性,因为它建立的信息模型是由 相对稳定的客观实体和随具体情况变化的信息流组成的。 但是,在目前的大多数管理信息系统理论中,对面向对象的方法只是作了一般性 的描述,它的实际运用也非常有限。所以我们认为,完全可以在管理信息系统的建设 过程中,大胆地从理论的高度来运用面向对象方法,使这项已经不算新鲜的技术在管 理信息系统建设中继续发挥它的威力。本文主要探讨的就是如何运用面向对象的分析 设计方法来开发管理信息系统,当然这是一个分阶段的过程,文中将详细论述开发过 程中各阶段基本的实施步骤、实施方法,相关的细节以及一些值得注意的地方。 在这方面国外已经作了较多的研究,特别是美国的r a t i o n a l 公司在综合多种面向 对象的分析设计方法后,提出了统一建模语言( u n i f i e dm o d e l i n gl a n g u a g e 简称 u m l ) ,并推出了一个相关的较成熟的c a s e 工具r a t i o n a lr o s e 。但是,在国内 对用面向对象方法开发管理信息系统的研究、应用,无论在广度还是在深度上都还很 不够。目前只能说它正在流传,还处在一个了解掌握的阶段,只有少数大型的软件公 司在进行试探性的开发。当然,即使在这方面国外已作了较多的研究,但是运用面向 对象方法开发管理信息系统是一个系统的过程,它涉及到问题比较庞杂,值得研究的 问题也很多,决不是说掌握了一两个c a s e 工具就可解决一切问题。在实际运用过程 中,我们会发现还有很多空白需要我们去填补。比如,在面向对象方法中主要用到的 是对象、封装、关联、继承等概念,但当前开发管理信息系统必然要用到数据库,可 是一些主流的数据库产品大都是关系型数据库,并不是面向对象数据库。而在关系数 据库中主要涉及的又都是表、范式、1 对多、多对多等的概念。这两种概念体系的理 论基础是不一样的,所以如何合理有效的把处理两者关系就是一个比较新的命题,在 文中也将对此做一些较为详细的研究和探讨。 南京航空航天大学硕七学位论文 第二章管理信息系统及其开发方法概述 管理信息系统( m a n a g e m e n ti n f o r m a t i o ns y s t e m ,简称m i s ) 是一门新兴学科, 它是在引用其他学科概念的基础上,形成的一门综合的多元目的学科,这些基本学科 包括管理科学、系统科学、运筹学、统计学以及计算机科学。管理信息系统就是在这 些学科的基础上形成了信息收集和加工的方法,进而形成的一个纵横交织的系统。管 理信息系统从五、六十年代在欧美兴起,到现在也不过几十年的时间,所以它还不是 很完善,其本身仍在不断的发展变化,特别是随着现代信息技术和管理技术的迅速发 展,它所涉及的内容也越来越多。 2 1 管理信息系统是个不断发展的概念 关于管理信息系统的概念,至今还没有一个明确的定义,应该说它还是一个不断 发展的概念。管理信息系统的创始人,明尼苏达大学的著名教授g o r d o nb d a v i s 在 8 0 年代曾给它下过一个较完整的定义:“它是利用计算机硬件和软件,手工作业,分 析,计划,控制和决策模型,以及数据库的用户一机器系统。它能提供信息支持企业 或组织的运行、管理和决策功能。”在我国,按照中国企业管理百科全书( 企业管 理出版社,1 9 8 4 ) 的定义,管理信息系统是一个由人和计算机等组成的能进行信息收 集、传递、储存、加工、维护和使用的系统。它能实测企业的各种运行情况,利用过 去的数据预测未来,从全局出发辅助企业决策,利用信息控制企业行为,帮助企业实 现规划目标。这两个定义都全面地说明了管理信息系统的目标、功能、性质和组成, 所以也可以通俗地讲,管理信息系统是由以下三要素组成的:系统的观点,数学的方 法以及计算机的应用,管理信息系统的总体概念可用图2 1 来表示。 圈2 i 管理信息系统概念图 面向对象方法在管理信息系统开发中的深入应用与研究 但是这两个定义也仅仅是反映了管理信息系统当时所达到的水平,当前的计算机 技术和通讯技术的发展可谓是日新月异,这些技术的发展不仅为管理信息系统的建立 提供了新的契机,更为管理信息系统孕育了更深、更新、更广的内涵。我国管理信息 系统方面的权威专家,清华大学经济管理学院的侯炳辉教授认为现代管理信息系统的 概念,“主要体现在它非常的全面,里面有管理的概念、i t 的概念、更有系统的概念, 它是利用计算机技术、通信技术、管理决策技术等,为管理者提供辅助管理、辅助决 策服务的系统”。总之,当前的管理信息系统已经发展到了一个崭新的阶段。 2 2 管理信息系统的结构 管理信息系统作为一个系统必然有一定的结构,这种结构反映各个部分之间的关 系、各个部分的特点、面临的主要问题以及人们的认识水平和技术水平。对各部分的 不同理解就可构成不同的结构方式。 从概念上来看,管理信息系统的总体结构由信息源、信息处理器、信息用户和信 息管理者组成管理信息系统的总体结构,如图2 2 所示。信息源是信息的产生地。信 息处理器负责信息的传输、加工、存储。信息用户是系统的用户。信息管理者负责系 统设计、实现、运行和维护。 图2 2 管理信息系统的总体结构 另外通常我们还经常从数据处理的内容和决策的层次来看,把管理信息系统的结 构表示成金字塔结构,如图2 3 所示。由于一般的组织管理均是分层次的,为它们服 务的信息处理和决策支持也相应地分为多层,从底层的业务处理到运行控制、管理控 制、最高层的战略计划。最基层由任务巨大、处理繁杂的事务信息和状态信息构成。 层次越往上,事务处理的范围越小,针对的也是比较特殊和非结构化的问题,信息处 理的工作量也逐渐减小。 作彰淤 管理控制0 + 作业控制 。+ 事务处理| 图2 3 管理信息系统的塔形结构 4 南京航空航天大学硕士学位论文 以上描述的都是一个完整的管理信息系统的框架。但是在实际工作中,由于时间、 人力、技术、经费等方面的限制,一个组织很难开发这样一个完整的系统。另外,这 样的系统维护也很困难。实际工作中开发的信息系统可能涉及某几个子系统,即管理 活动的某些层次,而其它则成为该系统的环境和界面。但有了这样一个框架,对于所 开发的系统的地位、作用和结构就可以有一个清楚的认识。 2 3 管理信息系统在现代企业中的地位和作用 管理信息系统是社会生产力发展和科技进步的产物。在工业发达国家,为了适应 激烈的市场竞争,在企业管理中逐步形成一种以生产计划与控制为主导的管理模式, 管理思想和方法。在电子计算机的帮助下,对企业生产经营过程中的人流、物流、资 金流、信息流处于最佳状态。达到以最少的投入获得最大的产出,这就是企业管理信 息系统的作用所在。 随着互联网的飞速发展,企业所面对和需要处理的信息量日益膨胀,管理信息系 统在现代企业中的地位也愈发显得重要。它不仅能全面系统地保存大量的数据,为企 业及时全面地提供不同要求、不同细度的信息,使各项统计工作简化,使信息成本最 低化。而且它还能利用数学方法和模型技术处理信息,支持各种信息的查询和综合, 为组织的各项决策提供出信息的支持。 长期以来,由于政府职能的转换及环境和条件的限制,我国的大多数企业一直孤 零零地面对国内外市场的冲击和影响,虽然它们对内部、外部的信息需求日趋强烈, 但是却没有一个很好的工具或手段来处理、利用这些信息。尤其是随着全球经济一体 化进程的发展和国有企业的深化改革,越来越多的企业意识到了优化内部资源配置和 全面提高现代化企业管理水平的重要性和紧迫感,建立企业管理信息系统已是势在必 行。搞好管理信息系统建设不仅是企业本身效益增长的有效手段,而且对于整个国民 经济也是一个很好的经济增长点。 2 4 管理信息系统的开发方法 随着管理信息系统的不断发展,人们在实践中认识到开发方法的重要性,发展了 多种指导信息系统开发的科学方法。管理信息系统的开发方法主要是指执行系统开发 活动时所使用的技术,根据其中采用技术的主要特点,可以归纳为如下几类: 2 4 1 面向功能方法 面向功能方法主要是指结构化分析和设计方法,它是目前最成熟、应用最广泛的 一种工程化方法。结构化分析和设计方法是从波姆( b 6 h n ) 和雅科比尼( g j a c o p i n i ) 提出的结构化程序设计理论发展起来的,它把模块化思想引入到系统设计中来,根据 自顶向下,逐步求精的原则,将一个系统按功能分解成若干层次化的程序模块结构。 它的实质就是把问题的处理看作是一个处理过程,强调功能分解和模块化,从而可以 有效地将一个复杂的系统分成若干易于控制和处理的子系统,子系统又可以分解成更 e 面向对象方法在管理信息系统开发中的深入应用与研究 小的子任务,最后的子任务都可以独立编写成子程序模块,这些模块接口简明、界面 清晰,使用和维护起来非常方便。 这种方法比较独特的一个方面就是提供了块间联系和块内联系这两个评价模块结 构质量的标准,从而保证模块相对独立,功能单一,实现高凝聚、松耦合。这个总的 原则虽是定性衡量标准,但很具体,它可成为设计阶段的中间目标,只要达到了这个 中间目标,设计的最终目标( 即易维护、易理解、可靠的高质量软件) 也就达到了。 但是,面向功能方法也有一些缺陷。首先,它过于强调纸上设计的完善,让人看 到的是过多的书面形式的东西,而在相当长时间内偏移软件实体。其次,开发周期较 长,一个规模较大的系统,在较长的开发过程中,其生存环境可能已经发生了变化, 最后完成的系统可能已经不能满足现实的需求了。另外,通常在编码完成之前,用户 看不到任何可运行的程序或演示。最后这种方法严格分离了数据与功能之间的关系, 在分析阶段只考虑数据在系统中的流向,而在设计阶段只注重按系统功能划分模块。 2 4 2 面向数据结构方法 j a c k s o n 方法是最典型的面向数据结构的软件开发方法,j a c k s o n 方法认为只要 通过三种基本结构形式( 即顺序、选择和重复) 的组合就可表示任意复杂的结构体系。 所以它的做法就是从目标系统的输入、输出及其内部存储信息的数据结构入手,导出 程序框架结构,再补充其它细节,最后得到完整的程序结构图。这一方法对输入、输 出数据结构明确的中小型信息系统的开发特别有效。 此外,同属于面向数据结构方法的还有w a r n i e r 方法。它跟j a c k s o n 方法非常类 似,主要差别就在于:它们使用的图形工具不同,分别使用w a r n i e r 图和j a c k s o n 图;另一个差别是它们使用的伪码不同;它们最主要的差别是在构造程序框架时, w a r n i e r 方法仅考虑输入数据结构,而j a c k s o n 方法不仅考虑输入数据结构,而且还 考虑输出数据结构。 面向数据结构方法主要是从数据角度来开发信息系统,把客观世界描述为数据和 数据属性及其相互关系的集合,而不像结构化方法那样是从功能角度考虑问题。实际 上,面向数据方法论和面向过程方法论都认为需要功能和数据,只是在发掘功能和数 据的解决问题策略上的侧重点不同,应该说它们是各有千秋的。但是这两种方法都将 功能和数据分离为相互独立的实体,所以它们也都有一个严重的缺陷,就是总存在错 误的数据调用正确的程序模块或用正确的数据调用错误的程序模块的可能性。因此, 在具体实现过程中如何使数据与功能始终保持相容,就成了程序员一个沉重的负担。 2 4 3 面向对象方法 面向对象方法是当前软件方法学的主要方向,也是目前最有效、最实用和流行的 软件开发方法之一。面向对象的方法认为:客观世界是由许多各种各样的对象组成的, 每个对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了 6 南京航空航天大学硕士学位论文 各种各样不同系统,构成了我们所面对的客观世界。 面向对象吸取了其他一些方法的基本思想和主要优点,它通过“对象”把数据与 操作结合起来,作为一个相互依存、不可分割的整体来处理,并且综合了功能抽象和 数据抽象,采用数据抽象和信息隐藏技术,将问题求解看作是一个分类演绎过程。与 其他方法相比,面向对象更接近人们的认识事物和解决问题的过程和思维方法。 早在1 9 8 2 年,r e n t s c h 就曾预言“8 0 年代的面向对象程序设计就像7 0 年代的结 构化程序设计一样,每个人都喜欢它,每个软件商都开发他们的软件支持它,每个管 理员都要付出代价应用它,每个程序员都要以不同的方式实践它,但是没有人能清楚 地讲清楚它”。事实已经证明,8 0 年代面向对象的研究热潮比7 0 年代结构化研究热 潮有过之而无不及,所以有人称面向对象是“8 0 年代的结构化”。到2 1 世纪的今天, 面向对象的方法和技术已经真正到达了r e n t s c h 所预言的那样一种应用情景,并且人 们已经能清楚地描述“面向对象到底是什么”。 最后要提一下的是,有时候人们把原型法单独作为一种开发方法分为一类,而我 们认为原型法的开发思想实际上在许多其他的开发方法中都有应用,所以我们这里就 不把它单独归为一类。 2 5 面向对象方法对管理信息系统开发的意义 应该况,面向对象的开发方法是信息系统工程发展的一个必然的趋势。管理信息 系统的主要工作就是数据处理,数据处理既包括数据也包括功能( 处理) 。而无论是 面向功能还是面向数据结构的开发方法都只是偏重于其中的一个方面,但实际上它们 是一件事情的两个方面,应该把它们看作是一个整体,就是对象。在面向对象的开发 方法中,系统就是被看作是一些对象的集合。对象捕捉了问题空间中最稳定的要素, 所以基于对象表示的系统具有更好可塑性和可扩充性。 2 5 1 传统的开发方法的不足 传统的管理信息系统的开发方法主要存在着以下些问题: ( 1 ) 如何准确地理解,表达系统需求 准确、透彻地理解系统需求是软件开发的首要任务。但是要做到这一点很不容易, 其原因常有:软件开发人员往往不是领域专家,他们对业务领域的理解深度有限,而 参与系统分析的领域专家又往往对软件开发的一些要求和方法不熟悉,难以恰当地归 纳和提供软件系统分析所要求的领域知识。实际上,对许多待开发的系统的要求不仅 是简单地对现实世界现有状况进行模拟,而且是要利用计算机的优势,尽可能地用自 动化模拟人工操作,用先进的规范化的管理模式取代传统的管理模式,这些都有赖于 分析人员有更丰富的理论知识和更高的系统分析水平。因此,迫切需要有效的方法和 工具能够简单明了地描述待开发软件的用户需求。 软件开发是一项创造性的思维活动,在软件开发过程中人员的交流频繁。软件开 面向对象方法在管理信息系统开发中的深入应用与研究 发项目的有关人员包括用户、领域专家、系统分析员、软件设计员、程序员、测试员、 项目管理员等,需要经常交流,探讨系统的需求,明确软件成分的定义,协商系统的 结构与衔接,进行工作的交接等。通信障碍常是人员交流中的一个困难。例如,用户、 领域专家或项目管理员看不懂、不明白软件开发人员表达问题的概念、术语、表示法, 反之亦然。因此,需要有一套通用的思维方法和便于交流的“语言”,包括系统的模 型、术语、表示法、文档书写格式等,为人员之间的交流架设一座桥梁。 ( 2 ) 如何处理系统需求变化 在软件开发过程中系统的需求常不断地发生变化。这种变化可能由多种原因引 起。最常见的是用户对系统的要求发生改变。在软件开发之初,用户对系统的需求的 认识可能不够深入,随着软件开发的进展,用户提出对早期的系统需求进行修改和补 充:也可能客观情况发生了变化,用户提出了新的系统需求。其他如经费、技术因素、 竞争因素等都由可能引起系统需求的变化。 传统的软件开发方法通常是不允许在开发过程中用户的需求发生变化的,一旦需 求发生变化,通常会导致很多问题,所以后来人们提出了“原型”的思想,在这方面 作了较大的改善。但是原型一定要能快速生成,否则将会浪费大量的人力、物力,整 个工程周期也会受到影响。 ( 3 ) 软件复用率低 软件复用是提高软件开发效率、改善软件质量得重要途径。正如一座房屋由许多 门、窗、墙、楼板等构件构成,一台机器由许多零部件构成一样,一个软件系统也是 由许多构件构成的,其中很大部分可以复用已有的构件,无须重复设计和编程。然而 利用传统的开发方法开发的软件大多是一段程序或模块的复用,软件复用的利用率和 效果都不是很好。比如用面向功能方法开发的系统,它的软件系统是建立在企业业务 流程的基础上的,而各个企业的业务流程通常都是有差别的,所以不能直接套用别人 的模块,只能针对这个业务流程重新设计一个模块。 ( 4 ) 可维护性差 用传统开发方法开发的软件的可维护性一般都比较差,比如面向功能的方法,它 在开发软件时是基于功能分解的,尽管软件工程学在可维护方面作出了极大的努力, 使软件的可维护性有较大的改进。但从本质上讲,基于功能分解的软件是不易维护的, 不能适应企业管理系统业务重组和系统内外环境变化的需求。因为功能一旦有变化都 会使开发的软件系统产生较大的变化,甚至推倒重来。更严重的是,在这种软件系统 中,修改是困难的。由于种种原因,即使是微小的修改也可能引入新的错误,所以传 统开发方法很可能会引起软件成本增长失控、软件质量得不到保证等一系列严重问 题。 2 5 2 面向对象方法开发管理信息系统的优点 面向对象是在吸取一些传统开发方法的思想和优点的基础上发展起来的,它继承 南京航空航天大学硕士学位论文 了传统开发方法的一些设计准则,并对它们作了进一步发展和扩充,同时又有自己的 技术特色。所以面向对象方法弥补了传统开发方法在开发系统方面的很多缺陷,对于 解决上述这些软件系统的分析与设计所面临的问题,它有着自身显著的优点。 ( 1 ) 按照人类的自然思维方式,面对客观世界建立软件系统模型,有利于理解 用户需求和人员之间的交流。因为对象、类、继承、封装、消息等这些基本概念都是 符合人类的自然思维方式的,比较容易为人们理解和接受,所以用面向对象方法进行 系统分析与设计,所获得的结果也比较容易与有关方面达成共识。 ( 2 ) 对需求变化的适应性。面向对象方法在对付需求的变化方面有较好的弹性, 它的封装机制使开发人员可以把系统最稳定的部分,即对象,作为构筑系统的基本单 位,并把容易发生变化的部分,即属性与服务,封装在对象之内,对象之间通过接口 联系,使得需求变化的影响尽可能地限制在对象的内部。 ( 3 ) 支持软件复用。对象所具有的封装性和信息隐藏等特性,使它容易实现软 件复用。只要定义好一个类之后就可以利用这个类不断产生实例对象,这些就实现了 类的数据结构和操作代码的软件构件的复用,同时由于免去了重复编写代码,也大大 提高了软件开发的效率和质量。当然,面向对象中的软件复用需要解决复用构件的提 取与制作、复用构件库的组织等技术问题,不过整个任务虽然并不轻松,但却是一劳 永逸。 ( 4 ) 可维护性好。系统由对象构成,对象包含了属性和服务操作两方面,是一 个独立的单元,对象之间通过消息联系。即使系统出现了错误,维护人员非常容易对 其定位和修改,而且不至于牵一发而动全身。另外它可以通过虚函数重载,直接对一 些行为进行修改,而不需要对原来的模块引入任何改动,这样就比较彻底的解决了软 件的可维护性 事实已经证明面向对象的方法相对于传统的开发方法而言,在把握用户需求、信 息交流、软件复用等方面都有了很好的改善,它代表着当前信息系统开发方法的方向。 应该说目前信息系统开发的环境已与从前大不一样了,信息系统的开发一方面要适应 不断改变的运行环境,如新一代的硬件、操作系统等;另一方面还要适应来自用户的 更为复杂的需求。这些因素都迫使软件开发能力与效率必须有数量级上的改观。而实 际上目前软件开发能力的滞后相当明显,但是正是由于崭露头角的面向对象方法的出 现给人们带来了一线曙光。 面向对象方法在管理信息系统开发中的深入应用与研究 第三章运用面向对象方法开发管理信息系统 其实面向对象的概念和思想由来以久,早在1 9 6 7 年d a h l 与n y g a r d 就推出了程 序设计语言s i m u l a - 6 7 ,并在其中引入了对象的概念,所以有人把s i m u l a - 6 7 作为面向 对象的诞生标志。但是,面向对象真正的第一个里程碑应该是1 9 8 0 年s m a l l t a l k 一8 0 的出现。s m a l l m l k 8 0 发展了s i m u l a 6 7 中对象和类的概念,并引入方法、消息、元类 及协议等概念,所以通常我们将s m a l l m l k 8 0 称为第一个面向对象的语言。当然最终 使面向对象广泛流行的应该是面向对象的程序设计语言c + + 。 3 1 面向对象方法的概述 面向对象方法是计算机语言界经过长期探索而逐步形成和创立起来的一种符合 人类思维模式和认识规律的先进方法学,其中代表面向对象方法的灵魂和最本质的东 西是面向对象概念体系。 3 1 1 面向对象的概念体系 面向对象的概念体系是研究和认识面向对象方法的出发点,其内容主要如下。 ( 1 ) 对象。概括地讲,对象本质上就是客观世界中的任何事物,具体地讲,它 是我们用计算机所建立的,用于表达和描述客观事物的一种数据模型,在此数据模型 中包含了事物的结构属性和行为特征。由此也可以把对象简单的定义为:对象= 数据 + 操作。在面向对象理论中,现实世界中的任何事物均被视为对象,这就预示着对象 具有无所不能的表达和模拟能力,而这是传统方法所绝对不具备的。 ( 2 ) 类。类被视为是基于对象概念层次上更高一级的抽象,是定义和描述相同 属性( 数据和操作) 对象集合的数据模型,即对象元模型。类的重要特色是将同类对 象的数据和数据上的操作都封装在内部,实现了类的外部特性与类的内部实现的隐藏 和隔离,从而使面向对象方法具有天然的模块化特性。 ( 3 ) 实例。实例是由类所创建的具体对象,即给类定义中的数据赋予具体值, 操作赋予确定处理程序而所获得的实际对象。 ( 4 ) 方法。定义在对象上描述对象行为特征的操作称为方法( 或成员函数) 。方 法是实施对象操作和访问的外部接口,但方法在对象内部的具体实现是不可见的,这 就保证了对象调用和操作的绝对安全性。 ( 5 ) 消息。消息是对象之间相互作用的一种通信机制。对象之间的相互操作、 调用和应答都是通过发送消息到对象的外部接口来实施的,因此,消息也就是为完成 某些操作而向对象发送的命令和命令的说明。 3 1 2 面向对象方法的先进机制和能力 以面向对象概念为理论基础所创建的面向对象方法,具有传统开发方法所不具备 的诸多先进机制和优异特性,主要表现如下。 】o 南京航空航天大学硕士学位论文 ( 1 ) 抽象性抽象是人类认识和表述复杂现实世界的一种辨证方法和重要手 段。抽象在计算机科学中,尤其在系统分析、系统设计和程序设计语言的发展中一直 起着主导作用,面向对象方法的创立和形成是程序设计语言不断抽象和发展的结果。 与传统结构化方法相比,面向对象方法具有更高的抽象性,具体表现为: 对象具有极强的抽象表达能力。面向对象方法采用对象来表达一切事物,它不 仅可传达结构化数据,又可表达复杂的多媒体数据。另外它既可以表达任何事物的结 构属性,又可表达事物的行为特征。正是由于对象的这种高度抽象的表达能力,使面 向对象方法具有很强的建模能力,它冲破了传统建模的约束,能更自然、更充分地表 达现实世界存在的语义。 对象实现了抽象的数据类型以对象概念为基础,类是对象的元模型,实现了 对象级上更高一层的抽象。首先,将具有相同语义特性的一组对象组成类之后,就可 进一步将这些对象的共性加以提取,并进行统一说明,从而省略了各个对象对共性的 重复说明。其次,类将数据结构上的抽象与功能上的抽象结合起来,实现了传统方法 所不具备的更高级的抽象。 ( 2 ) 封装性封装的基本含义是指:所有软件的组成部件的内部都有明确的范 围和清楚的外部边界,每个部件应有友好的接口,用以实现部件之间的相互联系和相 互作用,而且部件内部的设计与实现是不可知的,用以保证软件的质量和可靠性。面 向对象方法提供了完整的封装机制,具体表现为: 类是封装良好的模块:类定义将其“说明”与“实现”显式地区分开,其内部 实现按具体定义的作用域提供保护,分为私有、局部和全局等。 对象是封装的最基本单位:类定义为本类的所有对象提供了共享,但在采用面 向对象解决实际问题时,往往要对类定义的属性和成员具体赋予具体信息,使其成为 类的一个具体对象。因此,对象的封装比类封装更具体、更细致,成为面向对象封装 的最基本单位。 面向对象方法的封装性远远优于结构化的封装性:通常,结构化方法是以库函 数形式来实现其封装的,但库函数的内部实现与外部接i :1 划分不清楚,所以结构化方 法仅具有部分的封装性,不能实现完全的封装。 ( 3 ) 继承性继承性是面向对象方法所独有的,其他方法一律不具备此特性。 继承性体现并扩充了面向对象方法的共享机制,对象不仅可共享它所在类的属性、操 作与约束等语义特性,而且通过类层次的继承性及多重继承性还可实现不同类或对象 之间纵向和横向的共享机制。继承性之所以成为面向对象方法的重要特性和机制之 一,主要是因为它具有如下一些重要作用: 继承性真正实现了软件系统的开放性。现代软件发展的重要趋势是开发体系结 构,主要是指系统的开发应尽可能选用公用的接1 :3 ,实现信息的交换与共享,模块应 尽量多的重用。面向对象方法由于具有继承性,使要建立的新系统并非都要重新开始, 而是尽量利用已有系统或已建立的类进行扩充或修改雨实现自己的新系统。 1 l 面向对象方法在管理信息系统开发中的深入应用与研究 类层次的继承性是信息组织与分类的行之有效的方法。类层次反映了现实世界 中普遍存在的一般与特殊的语义联系:越靠上层表示着更普遍或更概括的概念,而越 往下层表示更专门、更细化、更具体的概念。这种从概括到细化,从一般到特殊,从 抽象到具体便是面向对象方法提供给人类的进行信息组织和分类的先进方法。 显著地简化了对象、类的创建工作量。通过声明新定义的类可直接继承已建立 了的属性或操作,使类和对象的创建变的极为简单和省事。因而,提高软件开发效率, 保证软件开发质量、缩短软件开发周期是继承性带来的必然结果。 增强了软件的重用能力。继承性真正实现了软件代码的重用,可靠性有了显著 提高。 ( 4 ) 多态性多态性通常是指用一个操作名称实现不同数据类型的多种操作, 它实现的主要是通过函数重载、虚函数以及动态束定等方式。应该说,多态性赋予面 向对象方法一种先进的动态行为特征,而这种动态行为特征又为软件开发带来了如下 作用: 自适应的消息响应机制。多态性允许每个对象以适应自身的方式去响应共同的 消息,极大地提高了软件操作的透明性、可理解性和可维护性。 多态性增强了软件的灵活性和重用性。采用虚函数与动态束定机制后,允许用 户以更为明确、易懂的方式去建立通用软件。 上述由面向对象概念所孕育和形成的诸多先进机制和能力,使得面向对象方法把 计算机技术与人类认识活动的辨证规律最自然地结合在一起,这就是面向对象方法独 具的先进思想和精髓。 3 1 3 面向对象方法的一些缺陷 面向对象方法虽然说具有很多优点,但是事实上它也存在一些缺陷,同传统方法 相比它还不够成熟,在实际项目开发应用中也暴露出它们的一些不足。 ( 1 ) 对大型系统分解的支持效果不好 传统的分析设计方法为系统的自然分解提供了有力的帮助,结构化方法中采用了 嵌套的处理可以将许多大型项目分解成较小的自然组成部分,然后再分配给不同的开 发小组。这种分解通常在开发阶段的早期进行,它非常自然,分解后的各成分之间的 关系也很自然且非常有利于今后的集成。在面向对象方法中,对象与类是形式定义粒 度最大的实体。尽管对象与类提供了集成系统功能的强有力机制,但它们通常采用自 底而上的定义方式,公共特性被抽取以形成更高层的继承结构。对于非常大的系统, 即使顺利的完成了这样的抽取过程,仍可能会存在数以百计的顶层类。因此,对象与 类作为分解大型开发项目的工具而言,显得粒度太细,在开发过程中的定义太迟。为 此,软件学家发明了高层的结构,将相关的对象类组织成簇,比如d ec h a m p e a u x 所 提出的群和群类是簇机制中定义最严格的机制。虽然看上去很有前途,但它还有待于 实践应用的检验。 一 童巫堕窒堕鲞奎堂堡主堂垡堡奎 ,_i-_-_一 ( 2 ) 对点到点的处理不够全局 许多问题领域内包含着影响许多对象的全局性处理。这些处理由若干并行或串行 执行的步骤组成。如制造商的订单处理、银行的每日帐目平衡等。传统的方法学提供 了对这些处理建模的常规工具,诸如:数据流图,处理过程依赖图等。现在的许多面 向对象方法论只是零碎的用服务、动作、处理、责任等操作来描述此类处理的个别部 分的建模。雪梨米勒提出了一个描述控制线索流向的过程,但这个过程分散在不同 的图形中,看上去非常不自然。b a i l i n 支持在分析阶段使用数据流图的想法,但只是 为了对对象有一个更好的理解,产生的图只是作为一个中间表示,并不作为面向对象 规格说明的组成部分。在所有的面向对象方法论中,布什的时序图在点到点处理的建 模方面给出了最好的支持,但这个图与诸如信息工程中采用的处理过程依赖图相比表 达能力非常有限。时序图只是显示了控制流信息,而处理过程依赖图显示了控制流、 数据流和条件执行。 这种对全局处理支持上的不足并不奇怪,因为全局处理的概念并不从属与任何单 个对象,它与面向对象的精神不一。事实上,布什和d ec h a m p e a u x 都警告说不要使 用数据流模型,怕因此会使偏离面向对象而变成面向对象功能。但是,没有足够的理 由说明采用了面向对象技术后,可以不管复杂的商务处理和它们的自动化系统,而且 我们也不能统一抛弃点到点处理是接受面向对象的先决条件。因而,需要有一个独立 的工具将封装了的服务组织起来,构成一个能够表达顺序、条件执行及与全局处理相 关概念的模型。 ( 3 ) 在软件重用方面还待挖掘 在重用方面,目前的许多方法只是设计重用,尚未提及如何用于寻找以及挖掘现 存的模型领域知识或构件的技术与过程。面向对象有许多机制如封装、继承、多态和 动态联编等,如果使用得当的话,确实可以排除重用储蓄代码的许多障碍。但是,目 前在面向对象的实现环境中,仍不能自动化高层的重用。虽然面向对象的方法学家都 强调从应用开始就要计划今后的重用,但是关于如何在分析与设计阶段收获重用的方 法却很少。事实上,分析与设计要耗费比实现更多的财力、人力,因而更需要重用。 3 2 面向对象方法开发管理信息系统的基本过程 软件生命周期是软件工程与方法学中最基础的概念。软件工程的方法、工具都是 以软件生命周期为基础的活动。软件生命周期的基本思想是:任何软件都存在一个从 诞生到最终被淘汰的周期,这个周期就称为软件生命周期。它可以被划分成若干阶段, 每个阶段有较明显的特征,有相对独立的任务,有其特定的方法和工具。 软件生命周期的阶段划分方法有很多种,但是它们都遵循一条基本原则,即要使 每个阶段的任务尽可能相对独立,同一阶段各项任务的性质应尽可能相同,这样就可 以降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发的管理。 一种典型的阶段划分为:问题定义、可行性研究、需求分析、概要设计( 总体设计) 、 面向对象方法在管理信息系统开发中的深入应用与研究 详细设计、编码与单元测试、综合测试、维护等八个阶段。但是这种软件生命周期的 划分只适合于早期那些“理想的”软件工程项目,在实际软件工程项目种较难操作。 在面向对象开发方法中使用最广泛的软件生命周期的划分方法是,分为需求确定阶 段、系统分析阶段、系统设计阶段、系统实现阶段、运行与维护阶段,其中的系统分 析、系统设计和系统实现阶段合起来就是人们通常所说的“软件开发”,如图3 1 所 示。 重 图3 1 面向对象中常用的软件生命周期划分 3 2 1 需求确定阶段的基本任务和主要活动 需求确定的基本任务就是寻求要开发的管理信息系统的真正需求并以需求说明 书的形式将它记录下来。需求确定是研制信息系统非常重要的阶段,也是最困难的阶 段。需求确定的困难主要来自三个方面:问题空间的理解、人与人之间的沟通和环境 的不断变化。由于系统分析员缺乏足够的对象系统的业务知识,在需求调查中往往感 到无从下手,或者被各种具体数字、大量的资料、庞杂的业务流程搞得眼花缭乱。另 一方面,用户往往缺乏计算机方面的足够知识,不了解计算机能做什么和不能做什么。 许多用户虽然精通自己的业务,但往往不善于把业务过程明确地表达出来,不知道该 给系统分析员介绍些什么。对一些具体的业务,他认为理所当然就该这样或那样做。 在这种情况下,系统分析员很难从业务人员那里获得充分有用的信息。另外,最使系 统分析员困惑的是环境的变化。信息系统生存在不断变化的环境中,因为大多数企业 都在不停地膨胀或缩小,导致信息系统的需求经常发生变化,而开发人员只有去适应 这些要求,信息系统才能顺利开发。所以有时要完全确定系统需求是困难的,甚至是 办不到的。 需求确定实际上主要是一个数据收集活动,通常包括以下四个子活动需求期 望、需求引导、需求验证、需求规格说明。这里的需求期望是指系统分析员根据自己 的经验和对问题领域的理解,自己假定的该信息系统大致应该存在的一些需求;需求 引导是指系统分析员运用各种技巧,包括采访、调查问卷、小组讨论会等向用户征求 关键需求;需求验证是指系统分析员和用户一起确认需求是否有效和正确,例如系统 分析员同用户一起检查书面需求等;而需求规格说明是指系统分析员在需求引导和需 求验证进行过程中及完成后,将需求分类并作记录。以上这四个活动互相联系,可以 南京航空航天大学硕士学位论文 反复进行,而且通常情况下各个活动之间很难进行严格意义上的区分。但是有些专家 认为深入了解需求确定的每个活动有助于更好的收集系统需求。 3 2 2 系统分析阶段的基本任务和主要活动 对一个信息系统在进行物理设计之前进行逻辑设计,这就是系统分析。在面向对 象方法中系统分析阶段的基本任务是:应用系统的思想和方法,把复杂的对象分解成 简单的组成部分,找出这些部分的基本属性和彼此间的关系,从而达到深刻认识系统 并准确定义其功能的目的。 传统的结构化系统分析是一种简单实用的方法。它采用介于形式语言和自然语 言之间的描述方式,通过一套分层次的数据流程图,辅以数据字典等工具来描述系 统。它主要通过自顶向下、逐层分解的方法,利用分解和抽象这两个基本手段控制 系统的复杂性,把大问题分解成小问题,然后分别解决,实际上就是进行分而治之, 这也正是系统工程的思路。具体分解时是分层进行,先考虑问题最本质的属性,暂 时略去具体细节,以后再逐层添加细节,直到最详细的内容,这就是抽象。 采用面向对象方法来进行系统分析就同结构化的系统分析大不相同了,应该说, 它们之间最主要的区别就在于对功能描述所采取的办法上,面向对象的分析方法是将 系统描述成一组对象的集合。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论