资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,管理信息系统的开发方法,(优选)管理信息系统的开发方法,第二章,管理信息系统的开发方法,2.1,管理信息系统的开发方式,2.2 管理信息系统的项目管理,2.3,结构化系统开发方法,2.4,原型化方法,2.5,面向对象的开发方法,2,.6 计算机辅助开发方法,2.7,各种开发方式的比较,第二章,管理信息系统的开发方法,管理信息系统的开发是一个较为复杂的系统工程,它涉及到计算机处理技术、系统理论、组织结构、管理功能、管理知识、认识规律以及工程化方法等方面的问题。尽管系统开发方法有很多种,但遗憾的是至今尚未形成一套完整的、能为所有系统开发人员所接受的理论以及由这种理论所支持的工具和方法,本章将讨论目前常用的四种系统开发方法的基本思想、主要特点以及相应的工具和技术。,2.1,管理信息系统的开发方式,自主开发,委托开发,合作开发,购买现成软件,各种开发方式的比较,2.1,管理信息系统的开发方式,管理信息系统的开发方式主要有独立开发方式、委托开发方式、合作开发方式、购买现成软件方式。这四种开发方式的选择,要根据使用单位的技术力量、资金情况、外部环境等各种因素进行综合考虑。不论哪一种开发方式都需要使用单位的领导和业务人员参加,并在管理信息系统的整个开发过程中,培养、锻炼、壮大使用单位的系统开发、设计和维护队伍。,自主开发,自主开发适合于有较强的管理信息系统分析与设计队伍和程序设计人员、系统维护使用队伍的组织和单位,如高等院校、研究所、计算机公司、等单位。独立开发的优点是开发费用少,实现开发后的系统能够适应本单位的需求且满意度较高,系统维护方便。缺点是由于不是专业开发队伍,容易受计算机业务工作的限制,系统优化不够,开发水平较低。,委托开发,委托开发方式适合于使用单位无管理信息系统分析、设计及软件开发人员或开发队伍力量较弱、但资金较为充足的组织和单位。,委托开发的方式的优点是省时、省事,系统的技术水平较高。缺点是费用高、系统维护需要开发单位的长期支持。此种方式需要使用单位的业务骨干参与系统的论证工作,开发过程中,需要开发单位和使用单位双方及时沟通,进行协调和检查。,合作开发,合作开发方式适合于使用单位有一定的管理信息系统分析、设计及软件开发人员,但开发队伍力量较弱,希望通过管理信息系统的开发建立完善和提高自己的技术队伍,便于系统维护工作的单位。双方共同开发成果,实际上是一种半委托性质的开发工作。优点是相对于委托开发方式比较节约资金,可以培养、增强使用单位的技术力量,便于系统维护工作,系统的技术水平较高。缺点是双方在合作中沟通易出现问题,需要双方及时达成共识,进行协调和检查。,CASE方法的体系结构,缺点是由于不是专业开发队伍,容易受计算机业务工作的限制,系统优化不够,开发水平较低。,3)需要有实际的、可供用户参与的系统模型,面向对象开发方法的基本概念,重新构造现行系统的程序代码;,为了使模型与用户的愿望一致,就要对模型进行修改。,面向对象法,它是一种围绕对象来进行系统分析和系统设计,然后用面向对象的工具建立系统的方法。,尤其是OO法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换,在设计中容易和用户沟通。,5)充分预料可能发生的变化。,原型化方法的基本思想,因此,所有工作文件必须要求标准化、规范化,按照统一的标准整理、归档,便于管理、交流和使用。,(优选)管理信息系统的开发方法,因此,在开发最终的需求时,反复是完全需要的。,这一阶段一般被称之为面向对象的程序,简称为OOP。,系统分析阶段的任务是,分析业务流程;,购买现成软件,目前,软件的开发正在向专业化方向发展,一些专门从事管理信息系统开发的公司已经开发出一批使用方便、功能强大的专项业务管理信息系统软件。为了避免重复劳动,提高系统开发的经济效益,也可以购买现成的适合于本单位业务的管理信息系统软件,如企业管理信息系统、教育管理信息系统、财务管理系统、进销存管理系统等等。此方式的优点是节省时间的费用、系统技术水平高。缺点是通用软件专用性较差,跟本单位的实际工作需要可能有一定的差距,有时可能需要做二次开发工作。因此,在选择通用软件时,不可只看开发商的宣传,要经过多方详尽的考查后再作决定。,各种开发方式的比较,以上介绍的四种开发方式有各自的长处和短处,需要根据使用单位的实际情况进行选择,也可综合运用各种开发方式,见表,2-1,。,方式,特点比较,独立开发,委托开发,合作开发,购买现成软件,分析和设计能力的要求,较高,一般,逐渐培养,较低,编程能力的要求,较高,不需要,需要,较低,系统维护的难易程度,容易,较困难,较容易,较困难,开发费用,少,多,较少,较少,说明,开发时间较长,系统适合本单位,培养了自己的开发人员。,省事,开发费用高。,开发出的系统便于维护。,最省事,但不一定完全适合本单位。,2.2,管理信息系统的项目管理,项目管理的主要任务,项目管理的主要内容,2.2,管理信息系统的项目管理,在管理信息系统的建设过程中,不仅要有先进的设计方法和优良的开发工具,而且要有完善的管理策略和先进的管理技术,人们常说,“三分技术,七分管理”、“成功的信息系统归功于成功的管理”,就是强调项目管理的重要性。为了减少开发 ,提高系统的经济效益,要考虑多种因素的影响。一般认为,三分在于技术,七分在于管理。管理信息系统是以软件工程为主的知识密集型产品,它综合了多种技术,其开发过程是开创性的工作过程,有着一系列组织管理特点,依靠简单的热情和增加人力是行不通的,必须遵循其特有的规律,加强组织管理工作。,项目管理的主要任务,项目管理的主要任务有以下几个方面:,明确总体目标,制定开发规则,对开发过程进行组织管理,保证总体目标的顺利实现;,严格选拔和培训人员,合理组织开发机构和管理机构;,编制和调整开发计划进程表;,开发经费的概算与控制;,组织项目复审和书面文件资料的复查与管理;,系统建成后运行与维护过程的组织管理。,项目管理的主要内容,1,)任务管理,将整个开发工作划分成一个个较细的任务,并将这些任务落实到人或各个开发小组里,明确工作责任,使开发工作有序、高效。,划分任务时,应该按统一的标准,包括任务内容、文档资料、计划进度、验收标准等。还要根据任务的大小、复杂程度以及所需软硬件等方面的原因进行资金划分。在开发过程中,各开发小组、参与者之间如何协调,需要哪些服务支持和技术支持等,都应在任务划分时予以明确。,项目管理的主要内容,2,)计划安排,任务划分后,还要制定详尽的开发计划表,包括配置计划、软件开发计划、测试评估计划、质量保证计划、安全保证计划、安装计划、培训计划、验收计划等。这些计划表的建立,应该尽可能地考虑周全,不要盲目制定不切实际的结束时间,也不要在开发过程中随意增加项目内容。,这些计划制定出来以后,可以画出任务时间计划表,明确任务的开始时间、结束时间;表明任务之间的依赖程度。任务时间计划表的建立可以采用表格形式(如,PERT,技术等),也可以采用图形方式(如计划网络图、甘特图等),还可以使用软件工具(如,Micro Project 98,等),其表达方式取决于实际的应用需求。,项目管理的主要内容,3,)经费管理,经费管理是项目管理中一个重要因素,管理得好,可以促进开发工作的进展,起到少花钱多办事的作用;否则,花了很多钱,开发工作进展缓慢,影响开发人员的积极性,甚至导致系统开发的失败。,在经费管理中,重要的是制定好经费开支计划,包括各任务所需的资金分配,系统开发时间表及相应的经费开支,各任务可能出现的超支情况及应付办法等,在执行过程中,如果经费有变动,还要及时通知相关人员。,项目管理的主要内容,4,)审计与控制,审计与控制是保证开发工作在预算的范围内,按照任务时间表来完成相应的开发任务。首先要制定开发的工作制度,明确开发任务,确定质量标准。还要制定详细的审计计划,针对每个开发阶段进行审计,并分析审计结果,处理开发过程中出现的问题,修正开发过程中出现的偏差。,项目管理的主要内容,5,)风险管理,任何一个系统开发项目都具有风险性,在风险管理中,应注意的是:技术方面必须满足需求,尽量采用商品化技术;经费开销控制在预算范围之内;保证开发进度;在开发过程中尽量与用户沟通;充分估计可能出现的风险,注意倾听开发人员的意见。,2.3,结构化系统开发方法,结构化系统开发方法的基本思想,结构化系统开发方法的特点,系统开发的生命周期,结构化系统开发方法的优缺点,2.3,结构化系统开发方法,结构化系统开发方法(,Structured System Development Methodologies,),亦称,SSA&D,(Structured System Analysis and Design),或,SADT,(,Structured Analysis and Design Technologies,),是自顶向下结构化方法、工程化的系统开发方法和生命周期的结合,概括起来说就是自顶向下、逐步求精,分阶段实现的软件开发方法,是一种先整体后局部的信息系统开发方法,也是迄今为止开发方法中应用最普遍、最成熟的一种。,结构化系统开发方法的基本思想,结构化系统开发方法的基本思想是:用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析与设计。具体来说,就是先将整个信息系统开发过程划分出若干个相对独立的阶段,如系统规划、系统分析、系统设计、系统实施等。在前三个阶段持向自顶向下地对系统进行结构化划分。在系统调查时,应从最顶层的管理业务入手,逐步深入至最基层。在系统分析,提出新系统方案和系统设计时,应从宏观整体考虑入手,先考虑系统整体的优化,然后再考虑局部的优化问题。在系统实施阶段,则应坚持自底向上地逐步实施。也就是说,组织人力从最基层的模块做起,然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上、逐渐地构成整个系统。,结构化系统开发方法的特点,结构化系统开发方法主要强调以下特点:,1,)运用系统的观点,自顶向下整体性的分析与设计和自底向上逐步实施的系统开发过,程。即在系统分析与设计时要从整体全局考虑,要自顶向下地工作(从全局到局部,从领导到普通管理者);而在系统实现时,则要根据设计的要求先编制一个个具体的功能模块,然后自底向上逐步实现整个系统。,结构化系统开发方法的特点,2,)用户至上。用户对系统开发的成败是至关重要的,故在系统开发过程中,必须与用户保持密切联系,要充分了解用户对系统的需求和愿望,也要让用户了解系统的进展,以保证开发工作的正确方向和质量。,3,)深入调查研究。即强调在设计系统之前,深入实际单位,详细地调查研究,努力弄清实际业务处理过程的每一个细节,然后分析研究,制定出科学合理的新系统设计方案。,结构化系统开发方法的特点,4,)严格区分工作阶段。把整个系统开发过程划分为若干个工作阶段,每个阶段都有其明确的任务和目标而每一阶段又可划分为若干个工作步骤。这种有序安排不仅条理清楚,便于计划管理和控制进度,而且后一阶段的工作又基于前一阶段的成果,前后衔接,不易返工。,5,)充分预料可能发生的变化。因为系统开发是一项耗人力、财力、物力且周期很长的工作,一旦周围环境(组织的内外部环境、信息处理模式、用户需求等)发生变化,就会直接影响到系统的开发的工作,所以结构化开发法强调在系统调查和分析时,对将来可能发生的变化给予充分的重视,强调所设计的系统对环境的变化具有一定的适应能力。,结构化系统开发方法的特点,6,)开发过程工程化。系统开发过程中,资料的积累、整理、保管是十分重要的,是系统开发所得的宝贵财富。因此,所有工作文件必须要求标准化、规范化,按照统一的标准整理、归档,便于管理、交流和使用。,系统开发的生命周期,用结构化系统开发方法开发一个系统,将整个开发过程从大的方面可以划分为系统规划阶段和系统建设两个阶段,又可细分为五个首尾相连接的阶段,一般称之为系统开发的生命周期(,life cycle,),如图,2.1,所示。,图,2.1,系统开发生命周期,6,总体设计,7,评审,8,详细设计,5,需求分析,9,评审,4,评审,3,可行性,研究,11,切换运行,12,系统评价,2,系统调查,1,系统请求,10,编程调试,系统设计,系统分析,系统定义,系统运行,系统实施,系,统,规,划,系,统,建,设,系统开发的生命周期,系统开发生命周期各阶段的主要工作有:,1,)系统规划阶段,系统规划阶段的工作就是根据用户的系统开发请求,初步调查,明确问题,然后进行可行性研究。如果不满意,则要反馈修正这一过程;如果不可行,则取消项目;如果可行并满意,则进入下一阶段工作。,系统开发的生命周期,2,)系统分析阶段,系统分析阶段的任务是,分析业务流程;分析数据与数据流程;分析功能与数据之间的关系;最后提出新系统逻辑方案。若方案不可行则停止项目;若方案不满意,则修改这个过程;若可行并满意,则进入下一阶段的工作。,3,)系统设计阶段,系统设计阶段的任务是:总体结构设计;代码设计;数据库文件设计;输入输出设计;模块结构与功能设计。与此同时根据总体设计的要求购置与安装设备,最终给出设计方案。如不满意,则反馈修改这个过程;如可行,则进入下一阶段工作。,系统开发的生命周期,4,)系统实施阶段,系统实施阶段的任务是:同时进行编程(由程序员执行)、人员培训(由系统分析设计人员培训业务人员和操作员)以及数据准备(由业务人员完成),然后投入试运行。如果有问题,则修改程序;如果满意,则进入下一阶段工作。,5,)系统运行阶段,系统运行阶段的任务是:同时进行系统的日常运行管理、评价、监理审计三部分工作。然后分析运行结果,如果运行结果良好,则送管理部门,指导生产经营活动;如果有点问题,则要对系统进行修改、维护,或者是局部调整;如果出现了不可调和的大问题(这种情况一般是系统运行若干年之后,系统运行的环境已经发生了根本的变化时才可能出现),则用户将会进一步提出开发新系统的要求,这标志着老系统生命的结束,新系统的诞生。这全过程就是系统开发生命周期。,结构化系统开发方法的优缺点,结构化系统开发是在对传统的自发的系统开发方法批判的基础上,通过很多学者的不断探索和努力,而建立起来的一种系统化方法。这种方法的突出优点就是它强调系统开发过程的整体性和全局性,强调在整体优化的前提下来考虑具体的分析设计问题,即自顶向下的观点。它强调的另一个观点是严格地区分开发阶段,强调一步一步地严格地进行系统分析和设计,每一步工作都及时地总结,发现问题及时地反馈和纠正。这种方法避免了开发过程的混乱状态,是一种被广泛采用的系统开发方法。,2.4,原型化方法,原型化方法的基本思想,原型化方法的开发步骤,原型化方法的特点,2.4,原型化方法,结构化生命周期法理论基础是严密的,但它要求系统开发人员和用户在系统开发初期对整个系统的功能有全面、深刻的认识,并制定出每一阶段的计划和说明书。随着计算机技术的发展,特别是在关系数据库系统(,RDBS,,,relational data base system,)、第,4,代程序生成语言(,4GLs,4th generation language,)和各种系统开发生成环境产生,尤其是计算机网络的普遍应用,这种传统的信息系统开发方法受到了挑战。,19,世纪,80,年代提出了一种从设计思想到工具、手段都全新的系统开发方法,原型化方法。,原型化方法的基本思想,原型化方法(,Prototyping Method,)的基本思想主要体现在以下几个方面。,1,)并非所有的需求在系统开发以前都能准确地定义,需求的预先定义虽然在某些情况下是可能的,但往往由于用户和项目参加者的个人原因导致在很多情况下难以实现。用户与专业人员对计算机、具体业务的理解也有一定的差距,用户很善于叙述其对象、方向和目标,但对于如何实现却不甚清楚或难以确定,只有看到一个具体的应用系统才能清楚了解到自己的需要和系统存在的缺点,并能提出更具体的需求。,原型化方法的基本思想,2,)提供快速的系统建造工具,在建造系统时,提供快速的原型建造工具,迅速建立起原始系统,并能够方便地对原始系统进行修改、扩充和完善。目前所谓应用生成器和第四代生成语言,都是原型化方法的有力支持工具。,原型化方法的基本思想,3,)需要有实际的、可供用户参与的系统模型,文字和静态图形是一种比较好的通信工具,然而其最大的缺点是缺乏直观的、感性的特征,因而往往不易理解对象的全部含义,而交互系统能够提供一个生动活泼的动态模型,用户见到的是一个运行着的系统,并且系统运行暴露出来的问题可以迅速修改和完善。,4,)大量的反复修改是必要的和不可避免的,用户的需求是多变的,这在预先定义方法中是难以实现的。随着原始系统的运行,用户不断积累经验,并充分发挥自己的想象,提出更新的需求。因此,在开发最终的需求时,反复是完全需要的。只有这样,才可能达到用户和系统间的良好匹配,而且所开发的系统也容易为用户所接受。,原型化方法的开发步骤,原型化方法遵循图,2.2,所示的开发步骤。,1,)识别基本需求,识别基本需求是为了能够设计和建立初始模型。为此必须对当前系统进行调查、与用户交互、做业务性研究,传统的需求调查方法都可采用,调查的内容主要有约束条件、系统的输入输出、数据、功能、人机界面、安全性、可靠性、应用范围和运行环境等。需求分析的目标是为初始模型搜集大量信息。,原型化方法与传统分析方法的主要不同是:它既不必是完整的,也不必是完善的,而只是一种“好设想”。,原型化方法的开发步骤,2,)开发工作模型,开发工作模型是根据系统的基本需求建立原型的初始方案,以便进行讨论。一般这个初始的工作模型是在计算机上初步实现的信息系统,包括了数据库模型、系统功能模型,其中多种功能的屏幕和报告是系统改进的基本动力,有关数据库模型可以运用第,5,章所论述的基本原理和理论来建立。,图,2.2,原型法开发步骤,识别基本需求,开发工作模型,修改和改进,原型完成,图,2.2,原型法开发步骤,Y,Y,N,N,整理原型和提供文档,模型验证,原型化方法的开发步骤,3,)模型验证,模型验证即验证系统模型的正确程度,进而提出开发新的、修改原有的功能需求。这项工作必须通过所有有关人员的检查、评价和测试。开发者要积极地鼓励所有的评论者提出修改意见和需求,同时充分解释所完成模型的合理性。这个模型应该在开发人员和广大用户的相互交流中达到完善。,原型化方法的开发步骤,4,)修改和改进,为了使模型与用户的愿望一致,就要对模型进行修改。大多数的修改是在现有模型的基础上进行的,为了使修改工作顺利进行,必须建立一套完整的文档资料,特别是数据字典,它不仅用以描述系统中的数据和功能,而且可以作为修改的依据。保留修改前后的两个模型和数据字典是有好处的。这不仅当用户需要时易于退回,而且并存地演示两个可供选择的对象是帮助决策的良好方式。,原型化方法的开发步骤,5,)判定原型完成,对于模型来说,每一个成功的改进都会促进模型的进一步完善。实际上模型是描述功能和对最终系统的展示。判断系统是否完成是判断有关用户的各项应用需求是否已经被掌握并开发出来,这个重复周期是否可以结束。,因此根据判定结果可以有两种转向,一是继续修正和改进,二是进行详细的说明,即进入整理原型提供文档。,原型化方法的开发步骤,6,)整理原形提供文档,整理原形提供文档是把原型进行整理和编号,并将其写入系统开发文档资料中,以便为下一步的运行、开发服务。原型法同结构化方法一样也必须具有一套完整的文档资料,它包括用户的需求说明、新系统的逻辑方案、系统设计说明、数据字典、系统使用说明书等,这也是系统运行维护的依据。,原型化方法的特点,从原型法的开发步骤可以看出,原型法从原理到流程都是十分简单的,并无任何高深的理论和技术,之所以倍受推崇,为广大开发者所接受,主要有如下几方面的特点:,采用了先进的软件开发工具,提高了开发的效率,使系统开发的周期缩短,费用减少。,在分析过程中引入了模拟的手段,提供了初始原型,使用户直接参与,并引导、启发用户提出准确、完善的系统需求。,系统开发灵活,修改与扩充都很方便。,用户只要经过简单培训,就能很快掌握使用的方法。,原型化方法的特点,当然,原型法有其一定的适用范围和局限性,对于一个大型的系统以及逻辑性很强的系统开发,不能直接运用原型法,要经过系统分析来进行整体性划分;对于原基础管理不善,信息处理过程混乱的单位,使用也有一定的困难。,特别是对已经使用了管理信息系统的单位,要以此作为新系统的快速原型,对原信息系统进行扩充完善改造,即对原系统进行系统重构,而整个系统按照生命周期法进行开发(见图,2.3,)。由于管理任务和管理方式的变化,以及对信息处理的更深层次的要求,使是现有的,MIS,已经不能适应现代信息管理的客观要求;在系统重构时,要考虑以下几方面:需要增强新的功能;对数据提出了更高的要求;更大量的数据管理,更大范围的信息共享。,图,2.3,应用原型,+,结构化生命周期法的开发步骤,系统实现与评价,意满不,系统设计,系统分析,系统定义,修改扩充,原型,建立,系统原型,提出,新需求,6,总体设计,7,评审,8,详细设计,5,需求分析,9,评审,4,评审,3,可行性,研究,11,切换运行,12,系统评价,2,系统调查,1,系统请求,系统建设阶段,满意,原,型,评,价,10,编程调试,系统规划阶段,系统重构阶段,2.5,面向对象的开发方法,面向对象开发方法的基本概念,方法的开发过程,方法,方法,方法的特点,2.5,面向对象的开发方法,面向对象的技术于,20,世纪,80,年代开始兴起,近几年来其研究已经遍及软件系统的各个领域,如面向对象的程序设计语言、面向对象的程序设计方法、面向对象的系统分析方法、面向对象的数据库管理系统及面向对象的操作系统等。面向对象的概念的出现是程序设计方法学和软件工程方法学的里程碑,它已从研究阶段转向应用阶段,随着研究和应用的不断深入,必将成为面向,21,世纪的重要技术之一。,面向对象方法(,object oriented,,简称,OO,方法)从面向对象的角度,为人类认识事物进而开发系统提供了一种全新的方法。,面向对象开发方法的基本概念,OO,方法认为,客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同的对象之间的相互作用和联系就构成了各种不同的系统。当设计和实现一个客观系统时,如能在满足需求的条件下,把系统设计成由一些不可变的(相对固定)部分组成的最小集合,这个设计就是最好的。它把握了事物的本质,因而不再会被周围环境(物理环境和管理模式)的变化以及用户没完没了的变化需求所左右。这些不可变的部分就是所谓的对象。,面向对象开发方法的基本概念,1,)对象,OO,的对象(,Object,)就是客观世界中的任何事物在计算机程序世界里的抽象表示,或者说,是现实世界中个体的数据抽象模型。事物是行为的主体,任何事物都由状态和行为两个方面构成,状态反映了事物的内部结构,行为反映了事物的运动规律,二者分别反映了事物的表态和动态特性,故对象是事物状态和行为的数据抽象,既是事物状态的集合,也是为改变状态而施加的操作方法或算法程序的集合。在,OO,法中的对象就是一个一个的可重用部件,是面向对象程序设计的基本元素。,面向对象开发方法的基本概念,2,)对象类,所谓对象类(,Class,)是指将具有相同或相似结构、操作和约束规则的对象组成的集合。故对象类是一个共享属性和操作方法的集合。任何一个对象都是某一对象类的实例,每一个对象类都是由具有某些共同特征的对象组成的。,对象类由类说明和类实现两部分组成。类说明描述了对象的状态结构、约束规则和可执行的操作,定义了对象类的作用和功能。类实现是由开发人员研制实现对象类功能的详细过程以及方法、算法和程序等。,面向对象开发方法的基本概念,3,)消息和方法,客观世界的各种事物都不是孤立的,而是相互联系、相互作用的。实际问题中的每一个个体也是相互联系、相互作用的,个体之间的相互联系反映了问题的静态结构,相互作用则反映了问题的动态变化,当抽象为对象和对象类以后如何反映出它们之间的相互联系和作用呢?为此,,OO,法又引入消息和方法(,Message and Method,)这两个概念。,面向对象开发方法的基本概念,4,)继承机制图封闭图开图五边形多边形线形矩形三角形椭园园图,2.4,图的继承继承性(,inheritance,)是一种表达相似性的机制,是自动地共享类、子类和对象中的数据和方法的机制。继承性是面向对象方法实现可重用性的前提和最有效的途径,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。因此,继承机制又称可重用机制或代码共享机制,它是软件部件化的基础。继承机制很好地避免了属性描述信息和操作程序信息的冗余,简明自然地把客观事物的行为和状态及个体之间的层次关系和所属关系抽象为计算机的数据模型或算法程序。,图,2.4,图的继承,图,封闭图,开图,五边形,多边形,线形,矩形,三角形,椭园,园,图,2.4,图的继承,面向对象开发方法的基本概念,5,)封装机制,封装(,encapsulation,)又称信息隐蔽。它是软件组成部件(模块、子程序、方法等)应当分离或隐藏为单一的设计。即用户只能看见对象封闭界面上的信息,对象内部对用户而言是隐蔽的。,它是指在确定系统的某一部分内容时,应考虑到其它部分的信息联系都在这一部分内部进行,外部各部分之间的信息联系应尽可能的少。封装的原则很像,SSA&D,中划分子系统或模块时的内部信息聚合度(,cohesion,)原则。如果分析人员能在,OOA,(面向对象的分析方法)中封装需求分析的各个部分,则当需求改变时,各部分相对独立,系统的维护将对整个系统的影响程度减至最小。,面向对象开发方法的基本概念,6,)对象抽象机制,对象抽象机制就是把对象的动态特性和静态特性抽象为数据结构以及在数据结构上所施加的一组操作,并把它们封装在一起,使对象状态变成对象属性值的集合,对象行为变成能改变对象状态的操作方法(算法和程序等)的集合,变成对象功能或作用的集合。,面向对象开发方法的基本概念,7,)对象通信机制,如前所述,面向对象程序的功能是靠对象之间的相互作用即对象操作来实现的,而对象的操作是用消息和方法通过对象通信机制完成的。,对象通信机制包括两方面:一是消息的传递,另一个是消息和方法(或操作程序)的动态联编(,Dynamic Binding,)。,面向对象开发方法的基本概念,8,)类型定义机制,面向对象系统本质上就是一种类型定义机制。数据类型的概念在绝大多数计算机程序设计语言中早已引入了,例如,整数、浮点数、字符串等是单一的数据类型,数组、记录和联合是复合数据类型。引入类型定义的目的无非是计算机系统中以最基本的数据单元构成更大更复杂更实用的数据结构。,根据对象的继承特性,在一个分类结构中,对象共享在它之上定义的属性,例如,交通工具(Transport)结构中,汽车(Car)共享为所有Transport所定义的属性,如Id,Name,Passenger-Capacity等。,开发工作模型是根据系统的基本需求建立原型的初始方案,以便进行讨论。,管理信息系统的开发方法,面向对象开发方法的基本概念,结构化系统开发方法的特点,结构化系统开发方法的基本思想,当然,原型法有其一定的适用范围和局限性,对于一个大型的系统以及逻辑性很强的系统开发,不能直接运用原型法,要经过系统分析来进行整体性划分;,即先弄清要干什么的问题。,绘制结构图,生成图形符号,并能对其进行修改等操作。,面向对象开发方法的基本概念,结构化系统开发方法的特点,19世纪80年代提出了一种从设计思想到工具、手段都全新的系统开发方法原型化方法。,对象类由类说明和类实现两部分组成。,即先弄清要干什么的问题。,通过检查各种对象的状态图及它们之间的交换事件能够把若干个非并发的对象归并到一条控制线中。,面向对象开发方法的基本概念,大多数非面向对象的语言都支持新数据结构的构造,但仅仅是支持新类型的表示定义,即:由现有的数据类型表示新的数据类型。只有面向对象的语言不仅支持新数据类型的表示定义,还支持新类型的操作定义,这大大方便了新类型的使用。例如,一个复数由两个浮点数,,X,,,Y,组成,在,C,语言中表示为:,Type def struct complex,(,float x,,,y,;),complex,;,其操作定义为:在复数集合上的加、减、乘、除运算均映射到各个复数的,X,,,Y,域上的浮点运算。,OO,方法的开发过程,根据,OO,法的一些特性,可将,OO,方法开发的工作过程分为四个阶段。,1,)系统调查和需求分析对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究。即先弄清要干什么的问题。,2,)分析问题的性质和求解问题在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。这一阶段一般被称之为面向对象分析,简称为,OOA,。,OO,方法的开发过程,3,)整理问题即对分析的结果作进一步的抽象、归类、整理,最终以范式的形式将它们确定下来。这一阶段一般被称之为面向对象设计,简称为,OOD,。,4,)程序实现即用面向对象的程序设计语言将上一步整理的范式直接映射(即直接用程序语言来取代)为应用程序软件。这一阶段一般被称之为面向对象的程序,简称为,OOP,。,下面主要介绍一下,OOA,和,OOD,所包涵的具体内容,,OOP,是一个直接映射过程,读者可自行参考有关计算机语言方面的书籍。,方法,面向对象的分析方法,即,OOA,方法,是,OO,方法的组成部分。在一个系统的开发过程进行了系统业务调查以后,就可以按照面向对象的思想来分析问题了。应该注意的是,,OOA,所说的分析与结构化分析有较大的区别。,OOA,所强调的是在系统调查资料的基础上,针对,OO,方法所需要的素材进行的归类分析和整理,而不是对管理业务现状的方法的分析。,方法,OOA,分析方法是建立在对处理对象客观运行状态的信息模拟和面向对象程序设计语言的概念基础之上。它从信息模拟中吸取了属性、关系、结构以及对象作为问题域中某些事物的、实例的表示方法等概念;从面向对象的程序设计语言中吸取了属性和方法的封装,属性和方法作为一个不可分割的整体以及分类结构和继承性等概念。在用,OOA,具体地分析一个事物时,大致上遵循如下五个基本步骤:,方法,第一步,确定对象(,object,)和类(,class,),这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力;类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。,标识对象的首要目的是使一个系统的技术表示同现实世界的观点联系更加密切。第二个目的是希望产生一个稳定的框架模型,以便考虑问题空间并收集用户要求。第三个目的是为了避免从系统分析到设计时改变系统的基本表示。,那么,如何确定对象呢?首先从应用领域、文字资料、图片入手,寻找结构、其它系统、设备、事件、作用等。弄清每一个对象的属性、处理方法、处理过程,准确地命名和表示每一个对象。,方法,第二步,确定结构(,structure,)。这里所说的结构是指问题域的复杂性和连接关系,类成员结构反映了泛化,-,特化关系,整体,-,部分结构反映了整体和局部之间的关系。,分类结构用于应用领域的类,-,成员层次,它通过搜索公共特性并把这种特性扩充至特例之中来显示现实世界事件的通用性和专用性。例如,通用的交通工具(,Transport,)及其特例:汽车(,Car,)、飞机(,Aircraft,)、轮船(,Ship,),如图,2.5,。一些属性和方法适用于所有的交通工具,而另外一些仅适合于汽车、飞机、轮船。,方法,根据对象的继承特性,在一个分类结构中,对象共享在它之上定义的属性,例如,交通工具(,Transport,)结构中,汽车(,Car,)共享为所有,Transport,所定义的属性,如,Id,,,Name,,,Passenger-Capacity,等。同样,在一个分类结构中,对象也共享在它之上定义的方法。,组装结构用于刻画一个整体及其组成部分,例如,一辆汽车由发动机、传动装置和刹车装置组成。如图,2.6,所示交通工具汽车飞机轮船汽 车发动机传动装置刹车装置图,2.5,分类结构图图,2.6,组装结构图,交通工具,汽车,飞机,轮船,汽 车,发动机,传动装置,刹车装置,图,2.5,分类结构图,图,2.6,组装结构图,方法,方法,第三步,确定主题(,subject,)。这里所说的主题是指事物的总体概貌和总体分析模型。,定义主题时,根据需要,把紧耦合的主题合在一起,对主题进行编号,画出矩形框图,并将主题间的连接在图上表示出来。,第四步,确定属性(,attribute,)这里所说的属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出并在对象的存储中指定。,方法,第五步,确定方法(,method,)。这里所说的方法是在收到消息后必须进行的一些处理方法,方法要在图中定义并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的,如计算费用等。,定义方法的中心是为每一个对象和分类结构定义所需要的行为,并确定对象之间的必要的通信。,OOD,方法,面向对象的设计方法,即,OOD,方法,是,OO,方法中一个中间环节。其主要作用是对,OOA,分析的结果作进一步的规范化整理,以便能够被,OOP,直接接受。,OOD,的设计过程由四个部分组成,问题域部分、人机交互部分、业务管理部分和数据管理部分(如图,2.7,)。具体地讲有如下几项工作。,OOD,方法,主题层,类及对象层,结构层,属性层,处理层,人机交,互部分,(HIC),问题域,部分,(PDC),任务管,理部分,(TMC),数据管,理部分,(DMC),图,2.7,OOD,的组成,OOD,方法,1,)整理和求精,OOA,所定义的对象,对于,OOA,所抽象出来的对象、对象类,以及汇集的分析文档,,OOD,需要有一个根据设计要求整理和求精的过程,使之更能符合,OOP,的需要。这个整理和求精过程主要有两个方面:一是要根据面向对象的概念模型整理分析所确定的对象结构、属性、方法等内容,改正错误删去不必要的和重复的内容等。二是整理的方法主要是进行分类整理,以便于下一步数据库设计和程序处理模块设计的需要。整理的方法主要是进行归类,对对象、对象类、属性、方法和结构、主题进行归类。,OOD,方法,2,)数据模型和数据库设计,数据模型的设计需要确定对象、对象类属性的内容、消息连接的方式、系统访问、数据模型的方法等。最后每个对象实例的数据都必须落实到面向对象的库结构模型中。,面向对象数据库(,OODB,)是以对象、对象类及其相互关系作为其主要组成,并且以对象模型为基础的一种结构体系。,OODB,是对象网状结构的代表,而对象则通过封装机制将状态、数据和处理作为一个整体。任何一个对象都是某一个对象类的实例,每一个对象类都是由具有某些共同特征的对象组成。,OOD,方法,3,)处理过程的设计,通过面向对象分析建立起来的动态模型,分析哪些数据在系统中具有并发性,哪些数据在系统中具有排斥性,如果两个对象之间不存在交互,或者它们同时接收事件,则这两个对象在本质上是并发的。通过检查各种对象的状态图及它们之间的交换事件能够把若干个非并发的对象归并到一条控制线中。所谓控制线,是一条遍及状态图
展开阅读全文