第5章管理信息系统开发基础2学习目标掌握结构化开发方法、原型法与面象对象开发方法的基本思想及优缺点管理信息系统开发策略了解CASE开发方法的基本思想及优缺点了解系统的开发方式35.1管理信息系统开发方法20世纪60年代起,人们已经开始注意信息系统开发的方法与工具研究,主要是RichardCanning的系统开发方法。20世纪70年代,系统开发的生命周期法(lifecycle)诞生了。它较好地给出了过程的定义,大大改善了开发过程。然而,问题的积累,成本的超支、性能的缺陷,加深了系统开发的难度。20世纪80年代以后,出现了友好的语言和自动编程工具,使系统开发方法又有了进步,但是维护费用却很高,占系统开发费用的70%-80%。20世纪90年代利用模块化和模块联接技术,大大降低了维护成本,同时大大提高了开发效率。尤其是面向对象的分析与设计和面向对象的语言(如C++)、Web技术等开始应用,给系统的开发方法注入了新的活力。45.1.1管理信息系统的生命周期任何事物都有产生、发展、成熟、消亡(更新)的过程,信息系统也不例外。信息系统在使用过程中随着其生存环境的变化,要不断维护、修改,当它不再适应的时候就要被淘汰,就要由新系统代替老系统,这种周期循环称为信息系统的生命周期。图5-1表示信息系统的生命周期以及相应的工作步骤。5系统运行和维护系统实施系统规划系统分析系统设计可行性研究开发请求初步调查祥细调查审批逻辑设计审查审查总体设计祥细设计验收系统维护系统评价系统转换编程调试系统运行和维护系统实施系统规划系统分析系统设计系统运行和维护系统实施系统规划系统分析系统设计可行性研究开发请求初步调查祥细调查审批逻辑设计审查审查总体设计祥细设计验收系统维护系统评价系统转换编程调试图5-1信息系统的生命周期6系统规划阶段的任务是对企业的环境、目标、现行系统的状况进行初步调查,明确问题,确定系统目标和总体结构,并根据企业目标和发展战略,确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出拟建系统的备选方案。对这些方案进行可行性分析,写出可行性分析报告。可行性分析报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书。1.系统规划阶段7系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,分析现行系统的业务流程、数据与数据流程、功能与数据之间的关系,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。这个阶段又称为逻辑设计阶段。2.系统分析阶段8简单地讲,系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,也即设计新系统的物理模型,因此,这个阶段又称为物理设计阶段。这个阶段可分为总体设计和详细设计两个阶段。此阶段的技术文档是“系统设计说明书”。3.系统设计阶段9系统实施阶段是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试,程序的编写和调试,人员培训,数据文件转换,系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出系统测试分析报告。4.系统实施10信息系统建设完成交付使用后,便进入运行维护阶段。这个阶段的工作主要包括系统评价和系统维护。系统评价的主要任务是在系统运行期间,根据用户的反映和系统日常运行情况记录,定期对系统的运行状况综合考核,评价系统的工作质量和经济效益,为系统维护及其再建设提供依据。系统维护的主要任务是记录系统运行情况,在原有系统的基础上进行修改、调整和完善,使系统能够不断适应新环境、新需要。5.系统运行和维护阶段115.1.2结构化系统开发方法1、结构化系统开发方法简述2、结构化系统开发方法的基本思想3、结构化系统开发方法的基本原则4、结构化系统开发方法的优缺点121.结构化系统开发方法简述结构化系统开发方法(structuredsystemdevelopmentmethodologies),是自顶向下结构化方法、工程化的系统开发方法和生命周期方法的结合,它是迄今为止开发方法中应用最普遍、最成熟的一种。结构化开发方法亦称SSA&D(structuredsystemanalysisanddesign)或SADT(structuredanalysisanddesigntechnologies)。131966年,波姆(Bohn)和雅科比尼(G.Jaeopini)提出结构化程序设计的理论,认为任何一个程序都可以用顺序、选择和循环(图5-3所示)三种基本逻辑结构来编制。是序列A序列B条件c序列A序列B条件c序列A(a)顺序结构(b)判断结构(c)循环结构图5-3程序的基本逻辑结构142.结构化系统开发方法的基本思想结构化系统开发方法的基本思想是:用系统工程的思想和工程化的方法,按用户至上的原则,结构化,模块化,自顶向下地对系统进行分析与设计。具体来说,就是先将整个信息系统开发过程划分出若干个相对独立的阶段,如系统规划、系统分析、系统设计、系统实施、系统运行与维护等。在前三个阶段坚持自顶向下地对系统进行结构化划分。在系统调查或理顺管理业务时,应从最顶层的管理业务入手,逐步深入至最基层。在系统分析阶段,提出新系统方案。在系统设计阶段,应从宏观整体考虑入手,先考虑系统整体的优化,然后再考虑局部的优化问题。在系统实施阶段,则应坚持自底向上地逐步实施。也就是说,组织人力从最基层的模块做起(编程),然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上、逐渐地构成整体系统。153.结构化系统开发方法的基本原则为保证系统开发的顺利进行,结构化系统开发方法强调遵循以下几个基本原则:(1)面向用户的观点(2)严格区分工作阶段,每个阶段有明确的任务和目标(3)按照系统的观点,自顶向下地完成系统的研制工作(4)充分预料可能发生的变化(5)工作成果文献化、标准化164.结构化系统开发方法的优缺点结构化系统开发方法具有以下突出优点:(1)强调系统开发过程的整体性和全局性(2)强调开发过程各阶段的完整性和顺序性这种方法的不足和局限性:(1)起点太低,所使用的工具落后,致使系统开发周期过长而带来一系列问题。(2)要求系统开发者在早期调查中就要充分地掌握用户需求、管理状况以及预见可能发生的变化,这不大符合人们循序渐进地认识事物的客观规律性。175.1.3原型方法原型法(PrototypingApproach)是20世纪80年代初随着软件技术的发展而兴起的一种开发方法,特别是在关系数据库(RDBS,relationaldatabasesystem)、第四代程序生成语言(4GL,4thgenerationlanguage)和各种系统开发生成环境产生的基础之上,提出的一种从设计思想、工具、手段都全新的系统开发方法。其动机主要是针对传统结构化开发方法缺乏弹性的缺陷,为了缩短开发周期,减少开发风险。181.原型方法的基本思想原型法的基本思想是:利用原型辅助系统开发的一种新思想。在大量投入人力、物力之前,开发人员首先对用户提出的问题进行总结,然后在限定的时间内,利用高级开发工具和环境,用最经济的方法,开发出一个可实际运行的系统原型。原型(Protype)是指目标系统的一个可执行模型或引导性的版本,在需求分析和系统设计过程中用于开发人员与用户之间进行通信。开发人员和用户一起反复运行原型系统,用户发现问题,提出修改意见,技术人员完善原型,使它逐步满足用户的要求,直到用户对系统完全满意为止。192.原型方法的基本步骤原型法基本步骤如下(如图5-4所示)第一步:快速分析用户最基本的需求。对系统进行初步调查,确定系统的基本需求。如功能要求、数据规范、报表格式、屏幕和菜单要求等。第二步:建立原型系统。在对系统功能、性能初步了解的基础上,尽快实现一个可运行的原型系统。这个系统应能反映待评价的特性,以便与用户进一步交流。第三步:运行并评价原型。这是进行交流、发现问题、消除误解的重要阶段。第四步:修正和改进。根据评价原型的结果(修改意见)进行改进和扩充原型,得出一个更加完善的原型,然后再交给用户运行。反复迭代第三、第四两个步骤,直到用户满意为止。20增加功能有修改意见吗?用户对新系统提出要求(各种问题)开发人员对问题进行总结开发一个原型系统运行原型系统增加新功能否?完成系统开发并交付使用修改YesYesNoNo图5-4原型方法的基本步骤2.原型方法的基本步骤213.原型方法的优缺点(1)从认识论的角度来看,原型方法更多地遵循了人们认识事物的规律,更容易为人们所普遍掌握和接受。(2)原型方法将模拟的手段引入系统分析的初期阶段,增进用户与开发人员之间的沟通,缩短了用户与分析人员之间的距离,解决了结构化系统开发方法中最难于解决的一环。(3)用户在整个开发过程中起主导作用,随时提供现场的第一手资料,帮助开发者认识用户的真正需求。(4)易于启发衍生式的用户需求。(5)原型法充分利用最新的软件开发工具,摆脱了老一套工作方法,使系统开发的时间、费用大大减少,效率、技术等方面都大大地提高,系统的弹性得以增强,从而降低了系统开发的风险。(6)采用原型法开发系统灵活,便于系统不断进行修改与扩充。(7)它“扬弃”了生命周期法的某些繁琐细节,继承了其合理的内核,是对结构化开发方法的发展和补充。22原型方法的适用范围和局限性(1)原型法贯彻的是“从下到上”的开发策略,更易被用户接受。但由于该方法在实施过程中缺乏对管理系统全面、系统的认识,因此,不适用于开发大型的管理信息系统。(2)在每次反复的过程中都要花费人力、物力,如果用户合作不好,盲目纠错,就会拖延开发周期。(3)对于含有大量运算的逻辑性较强的程序模块,原型法很难构造出模型供人评价,因为这类问题缺少交互性,也不容易三言两语把问题说清楚。(4)对于大型系统,如果不经过系统分析来进行整体性划分,想要直接用屏幕来一个一个地模拟是很困难的。要想将原型方法应用于一个大型信息系统的开发过程的各个环节是不可能的,因此,一般被用于小型局部系统或处理过程比较简单的系统设计到实现的环节。(5)对于原基础管理不善、信息处理过程混乱的问题,使用原型方法有一定困难。主要原因是工作过程不清,构造原型有一定困难;其次,由于基础管理不好,没有科学合理的方法可依,系统开发容易走上机械地模拟原来手工系统的轨道。234.原型法和结构化开发方法比较比较项目原型法结构化开发方法开发路径开发文档数量用户参与程度对功能需求和环境变化的适应性对用户的信息反馈对开发环境、软件工具要求对开发过程的管理和控制循环、迭代型较少高较好及时高难严格顺序型多一般较差较迟低较容易表5-1原型法和结构化开发方法比较245.1.4面向对象开发方法面向对象(objectoriented)方法,简称OO方法。作为一种新颖、具有独特优越性的方法,近年来引起了国内外的强烈关注,被誉为“研究高技术的好方法”。OO方法被扩展到软件及硬件各个领域:OO的体系结构、OO的硬件支持、OO的软件开发环境、OO数据库、OO程序设计语言等等。人们曾把OO方法视为解决“软件危机”的突破口。系统分析和设计就是要认识客观世界,并为之建模并转换为计算机化系统。OO方法作为一种认识(建模)的方法论,强调对现实世界的理解和模拟,便于由现实世界转换到计算机世界,所以OO方法特别适合于系统分析和设计。251.面向对象方法的起源20世纪60年代末,在Simula中第一次出现了“对象”(object)的概念。20世纪70年代末,由于管理大型程序的迫切需要,许多语言都追求实现“数据抽象”。20世纪80年代初,Smalltalk作为第一个纯粹的OOPL,引入了对象、对象类、方法、实例等概念和术语,采用了动态