《管理信息系统开发方法.ppt》由会员分享,可在线阅读,更多相关《管理信息系统开发方法.ppt(90页珍藏版)》请在三一办公上搜索。
1、3.1 开发方法概述3.2 结构化生命周期法3.3 原型法3.4 面向对象开发方法3.5 计算机辅助开发方法,第3章 管理信息系统开发方法,第3章 管理信息系统开发方法,问题讨论:1、是否可以认为,只要能编写好程序,就能开发软件,对不对?2、“软件危机”是怎么回事?3、为什么许多管理信息系统开发和应用失败了,原因是什么?,第3章 管理信息系统开发方法,软件危机的产生背景及表现形式 早期的软件主要指程序。程序的开发采用个体工作方式,开发工作主要依赖于开发人员的个人技能和程序设计技巧由于软件开发时缺少好的方法指导和工具辅助,软件开发的实际成本和进度往往与预计的相差甚远,软件的质量得不到保证,开发出
2、来的软件常常不能使用户满意同时又缺少有关的文档,使得大量已有的软件难以维护。上述这些问题严重地阻碍了软件的发展把上述软件开发和维护中的各种问题称为“软件危机”,第3章 管理信息系统开发方法,管理信息系统开发:指以系统规划为前提,通过组织、分析、设计、应用来实现一个信息系统的工程。管理信息系统的开发是一项复杂的系统工程 它涉及知识面广、部门多,既涉及技术,又涉及管理业务、组织和行为。不仅是技术,而且是一项复杂的社会化系统工程。需要研究出科学的开发方法和过程化的开发步骤,以确保整个开发过程能够顺利进行,第3章 管理信息系统开发方法,管理信息系统开发的任务:根据企业管理的战略目标、规模、性质等具体情
3、况,从系统的观点出发,运用系统工程的方法,为企业建立起提高企业管理决策能力的管理信息系统 其中最核心的工作,就是采用适当的开发方法开发出适合现代企业管理要求的应用软件系统。主流的开发方法包括:结构化方法、原型法、面向对象的方法。,3.1 管理信息系统开发方法概述,3.1.1 研究开发方法的原因和目标3.1.2 系统开发的基本原则3.1.3 开发方法的结构体系3.1.4 MIS开发流程3.1.5 常见的开发工具3.1.6 开发策略的设计3.1.7 开发方式3.1.8 系统组织和项目管理,3.1 管理信息系统开发方法概述,3.1.1 研究开发方法的原因和目标,1.研究开发方法的原因 随着管理信息系
4、统应用程度的深入和应用规模的扩大,出现的问题:手工处理信息过程和方法原封不动地“翻译”成软件程序后,常常失败。大型的应用系统应如何合理地组织人力、物力、财力来协调开发。对一个实体组织应如何着手调查分析。一个大型系统应该如何进行系统化的划分。如何才能合理地协调和利用信息资源。如何充分发挥现有计算机和通讯设备的处理能力,更好的解决实际管理问题等。,3.1 管理信息系统开发方法概述,3.1.1 研究开发方法的原因和目标,2.研究开发方法的目标使管理信息系统正确反映管理需要,满足用户需求,使所开发的管理信息系统为管理决策提供信息支持;有效地管理系统开发过程,加快软件开发速度,提高软件生产效率,降低费用
5、;增强管理信息系统软件产品的功能,提高软件产品质量充分利用软件技术,尽快跟上硬件发展速度,从而最大限度地发挥和挖掘硬件的功能;合理组织和充分利用人力、物力和财力等资源。,3.1 管理信息系统开发方法概述,3.1.2 系统开发的原则,务实创新的原则:体现务实性。要及时了解新技术,使用新技术,但在创新的同时要充分考虑实现的可行性,以务实的态度进行行之有效的创新。综合整体的原则:体现完整性。企业管理可以理解为一个合理的闭环系统。目标系统应当是这个闭环系统的完善。企业完整的实现计算机管理不一定必须在企业的各个方面同时实现,但必须完整的设计系统的各个方面。循环发展的原则:体现超前性。为了提高使用率,有效
6、的发挥MIS的作用,应当注意技术的发展和环境的变化。MIS在开发过程中应注重不断发展和超前意识。,3.1 管理信息系统开发方法概述,3.1.2 系统开发的原则,设计标准化原则:体现规范化。系统开发的过程中往往 涉及很多环节,如果操作标准没有统一,在后期的合成和修改时会非常困难。经济耐用的原则:体现实用性。大而全和高精尖并不是成功MIS的衡量标准。事实上许多失败的MIS正是由于盲目追求高新技术而忽视了其实用性。盲目追求完善的MIS而忽视了本单位的技术水平、管理水平和人员素质。分阶段实施的原则:体现够用性。系统开发要一步一个脚印地实施,必须实时分析现状,按照“够用”的思路开展。,3.1 管理信息系
7、统开发方法概述,3.1.3 开发方法的结构体系,结构体系主流的系统开发方法,其侧重点各有所不同:,这些侧重点,从不同的角度提出,但彼此相互联系、相互支持、相互制约。之间的关系从图四个层次中体现。开发环境/工具位于最底层,说明其他三个层面均离不开开发环境/工具的支持;技术是组成方法学的基本成分。,3.1 管理信息系统开发方法概述,3.1.3 开发方法的结构体系,主流的开发方法,其侧重点各有所不同:方法学:强调开发方法的驱动对象(面向过程、面向对象);开发生命周期:强调开发过程的组织、管理和控制;技术:支持某种方法论的技术;系统开发环境/工具:系统开发需要在一定的开发环境下运用开发工具来完成。,3
8、.1 管理信息系统开发方法概述,3.1.3 开发方法的结构体系,1、开发方法学 开发方法学是一组思想、规范、过程、技术、环境及工具的集成。方法学是将具体的方法与技术包装在一起而形成的一种思想体系一种好的方法学应该能够为系统的开发过程从头到尾提供一整套高效率的途径和措施。,3.1 管理信息系统开发方法概述,3.1.3 开发方法的结构体系,2、系统生命周期 系统的生命周期:任何系统的发生、发展、成熟、消亡的过程。管理信息系统的生命周期:管理信息系统从它被提出和立项、开发、应用到系统的更新、完善,经历了一个孕育、生长到消亡的过程。基本思想:将管理信息系统的生命周期划分为:系统调查、系统分析、系统设计
9、、系统实施、系统维护与评价等阶段。生命周期是管理和控制信息系统成功开发的一种必要的措施和手段,3.1 管理信息系统开发方法概述,3.1.3 开发方法的结构体系,3、技术 指运用一些特殊的工具和规则来完成信息系统开发生命周期的一个或几个阶段。技术只是支持某一种方法学或开发过程中的一部分。举例:结构化方法学中的技术数据流图、实体关系图,3.1 管理信息系统开发方法概述,3.1.3 开发方法的结构体系,4、系统开发环境/工具 指用于支持系统生命周期、方法学以及技术的应用系统。计算机辅助软件工程:Computer Aided Software Engineering,CASE 软件开发环境:Softw
10、are Development Environment,SDE软件工程环境:Software Engineering Environment,SEE集成化项目/程序支持环境:Integrated Project/Programming Support Environment,IPSE 对上述范畴进一步扩展,即为现在各种主要的开发方法,中央资源库,3.1 管理信息系统开发方法概述,3.1 管理信息系统开发方法概述,3.1.4 管理信息系统的开发流程,开发流程包括:需求分析、系统设计、编码实现、测试评价 需求分析:在可行性分析的基础上,针对现行系统进行全面调查,分析企业的业务历程,分析数据和数据流
11、程、分析功能,并通过图表工具,构造出新系统的逻辑模型。需求分析的目的:解决“做什么?”系统设计:根据新系统的逻辑模型建立系统的物理模型,即根据功能的要求进行各种具体设计,包括功能模块设计、代码设计、输入输出设计、数据库设计等。系统设计目的:解决“怎么做?”,3.1 管理信息系统开发方法概述,3.1.4 管理信息系统的开发流程,开发流程包括:需求分析、系统设计、编码实现、测试评价 编码实现:通过编写程序具体系统设计阶段的新系统物理模型测试评价:用正常、异常数据分别对软件进行测试。软件运行一段时间后,对系统运行的质量和经济效益综合评价,作为验收和改进的依据。,3.1 管理信息系统开发方法概述,3.
12、1.5 常见的开发工具,面向对象方法无疑是今后发展的主要方向,与之相适应的先后出现了一系列的开发工具,包括:UML:统一建模语言(Unified Modeling Language)它不是一种可视化的程序设计语言,而是一种可视化的建模语言。它是面向对象分析与设计的一种标准表示。不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准。,3.1 管理信息系统开发方法概述,3.1.5 常见的开发工具,ROSE是美国Rational公司的面向对象建模工具利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C+、Java、VB、Oracle等语言和系统的代码。RUP
13、:(Rational Unified Process,统一软件开发过程)RUP方法在于不断地修正系统设计,通常是很快就拿出系统的简单版本,该版本实现了系统的主体功能,进行测试,在主体运行正常的情况下,不断地加入新功能,修正Bug,最终形成1,0版系统。RUP具有很多长处:P37。,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,开发策略是针对用户需求的不确定性程度及其变化而采取的系统开发方法与步骤的选择。根据系统的难易程度和风险的大小,可分为:接收式、直线式、迭代式、实验式、综合式,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,用户式开发策略(接收式)认为用户对信
14、息需求的表达是正确的、完全的和不会变化的,并且完全以此为开发依据,直接开发系统。只适合于用户需求明确的简单的小系统,而且开发者对该类系统开发要有丰富的经验。,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,直线式开发策略(瀑布模式)用户需求定义良好且不随环境变化而作较大的改变,开发者对同类问题也比较熟悉,就可以从需求说明开始到最后实现运行,一个阶段接一个阶段的直线式的进行下去。这种策略通常采用结构化生命周期法,适用于规模较大,但结构化程度较高,开发者具有熟练的技术和开发同类系统的丰富经验的情形。,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,反复式开发策略(迭代式
15、)对直线式策略作了改进的策略,允许阶段间来回反复,以保证开发能较好地满足用户的真正需求。这种策略通常当用户需求的不确定性较高,系统规模较大,开发者对该类系统不是很熟悉,采用直线式开发策略比较困难时。,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,试验式开发策略(实验式)在用户需求的不确定性很高时,就要通过快速生成的一个简化的实际工作原型模拟系统,使用户在试验运行中不断明确其真正的需求,不断地改进扩充试验系统,最终完成系统开发。这种策略通常采用原型法,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,规划集成式开发策略(综合式)其基本策略是采用结构化方法的基本思想,自
16、顶向下作好总体规划;在总体规划的指导下,采用各种适宜的策略开发各子系统或分子系统,并自底向上集成。一个大中型组织的整体MIS,系统的规模相当大又相当复杂时常常要采用这种策略。,3.1 管理信息系统开发方法概述,3.1.6 开发策略的设计,在实际开发过程中,开发策略还可分为:“自下而上”的开发策略 从现行系统的业务状况出发,先实现各项业务的具体功能,逐步由低层到高层,最后形成整个系统。“自上而下”的开发策略 从整体上协调和规划,由全局到局部,从长远到近期。首先从高层管理入手,考虑企业的总体目标、总体规划,划分子系统,然后进行各个子系统的分析与设计。应用于开发规模较大的系统。难度大,开发费用较大,
17、3.1 管理信息系统开发方法概述,3.1.7 管理信息系统的开发方式,开发方式:指确定由谁、用什么形式开发MIS建立和开发MIS的主要方式有:用户自行开发 委托专业软件单位开发 联合开发 购买现成软件包开发方式的确定:主要从用户需求、开发成本、开发周期、技术力量、可维护性以及外部环境等方面加以比较。,3.1 管理信息系统开发方法概述,1.用户自行开发依靠企业自己的信息技术队伍进行开发基本条件要求:企业要有强有力的领导,足够的技术力量和资金保障优点:易于协调、开发费用少、系统适应本单位的需求且满意度较高、便于维护;缺点:开发周期较长、质量不能完全确保、过分强调本单位的需求,适应能力不强、规范程度
18、不高。2.委托开发 委托给一个专业开发单位,系统建成后再交付企业使用优点:质量相对较高,需求经常变化,委托开发的软件很难满足企业的要求,而且运行维护也存在一些问题缺点:开发费用较高、难满足企业的要求、维护困难。,3.1 管理信息系统开发方法概述,3.联合开发 企业与专业软件公司联合进行开发优点:企业的专业技术人员和专业软件公司的各类计算机技术人员各自发挥自身的优势、提高了开发效率、可开发出满足需要的系统、维护方便缺点:互相配合有时出现问题这种方式被普遍采用。4.购买现成软件 如果企业的业务流程或管理模式与现有的管理信息系统软件基本吻合,则可以购买现有的软件。优点:成本低、见效快;质量较稳定、可
19、靠;软件维护有保障。缺点:专用性较强,不能完全满足本单位的需求。,3.1 管理信息系统开发方法概述,3.1.8 系统开发组织和项目管理,1.建立系统开发组织 系统开发领导小组制定管理信息系统规划在开发过程中根据发展情况进行决策,协调各方面关系控制开发进度。系统开发工作小组 由系统分析员负责,根据系统目标展开具体工作2.制定系统开发计划3.加强项目管理4.合理组织开发队伍和人员分工,3.1 管理信息系统开发方法概述,3.1.8 系统开发组织和项目管理,开发管理信息系统人员分工开发管理信息系统需要以下几个方面的人员:1.项目经理:全面负责 2.系统分析员:系统分析与设计 3.程序员:用某种程序设计
20、语言实现MIS的程序模块 4.数据库管理员:管理和控制数据库。5.系统测试员 6.系统维护员,3.1 管理信息系统开发方法概述,管理信息系统开发的基本条件(补充),一般来说,开发管理信息系统必须具备以下五个基本条件:必须有开发MIS的实际需要和迫切性 具有一定的科学管理的基础 必要的资金支持 领导重视与业务部门的支持 有一支不同层次的开发、使用、维护管理信息系统的专业人才队伍,3.2 结构化系统开发方法,管理信息系统开发方法的分类,目前比较成熟的系统开发方法有三种:结构化开发方法 先对问题进行全面、细致的调查,然后从功能和数据流的角度来分析、了解和优化问题,最后设计和实现系统。原型法 大致了解
21、用户的问题,然后利用软件工具迅速模拟出一个系统原型,再与用户一道运行和评价这个原型,若不满意则立即修改,如此反复,直到用户满意为止。,3.1 管理信息系统开发方法概述,管理信息系统开发方法的分类,面向对象方法面向对象方法产生于20世纪60年代,它以类、类的继承、聚集等概念描述客观事物及联系,为管理信息系统的开发提供了全新的思路。先对问题进行调查,然后从对象以及与对象有关的数据、操作的角度来分析问题,将问题按其情况和属性划分成各种不同的对象和种类,弄清它们之间的联系,最后用面向对象的软件工具实现系统。,结构化生命周期法(SDLC,Structured Design Life Cycle),也称结
22、构化方法;是一种采用结构化分析与设计方法,按照生命周期的工作步骤来进行管理信息系统开发的方法。,3.2 结构化生命周期法,3.2 结构化生命周期法,3.2.1 结构化开发方法的基本思想,基本思想:用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化,自顶向下地对系统进行分析与设计。具体地说:就是先将整个系统开发过程划分出若干个相对独立的阶段,如系统规划、系统分析、系统设计、系统实施等。在前三个阶段坚持自顶向下地对系统进行结构划分。,3.2 结构化生命周期法,3.2.1 结构化开发方法的基本思想,开发过程中各阶段应注意的问题:在系统调查、理顺管理业务时:应从最顶层的管理业务入手,逐步
23、深入至最基层。在系统分析、提出新系统方案和系统设计时:应从宏观整体考虑入手,先考虑整体、再考虑局部。在系统实现阶段:则应坚持自底向上地逐步实现。即:组织人力从最基层的模块做起(编程),然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上、逐渐地构成整体系统。,3.2 结构化生命周期法,3.2.2 结构化开发方法的原理,面向用户的观点,用户的积极参与 用户积极参与系统开发的全过程,是信息系统开发能否成功的一个关键的、绝对必要的因素。严格按划分的阶段和活动进行系统开发,每个阶段规定明确的任务和所应得的成果将系统开发的全过程采取“分而治之”的策略,划分开发阶段,将“阶段”分成一系列的活动
24、。每个开发阶段完成要论证、检查 每个开发阶段完成要有文档及文档标准化,3.2 结构化生命周期法,3.2.2 结构化开发方法的特点,整体设计:自顶向下地分析与设计和自底向上的实施 用户至上:用户的参与程度和评价是衡量系统开发是否成功的关键。深入调查研究:在设计之前,要深入实际单位,详细地调查研究,搞清实际业务处理过程的每个细节,然后分析研究,制定出科学合理的新系统设计方案。,3.2 结构化生命周期法,3.2.2 结构化开发方法的特点,严格区分工作阶段:每个阶段都有明确的任务和目标以及预期要达到的阶段性成果。充分考虑变化的情况:新系统应具有应对各种变化的适应能力。开发过程工程化:开发的每一阶段按工
25、程标准规范化、开发成果文档化、标准化。,3.2 结构化生命周期法,3.2.4 结构化的生命周期,按照生命周期的观点,结构化开发方法将开发过程一般分为五个阶段:系统规划、系统分析、系统设计、系统实施和系统运行与维护阶段。这五个阶段就是结构化方法的生命周期,3.2 结构化生命周期法,3.2.4 结构化的生命周期,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统规划阶段:依据企业资源状况、企业整体信息管理需求以及当前技术环境,对企业管理信息系统从系统目标、总体功能结构、关键功能需求、关键信息需求、开发进度等方面做出战略性安排。规划方法:战略目标集转化法(SST)、关键成功因素法(CSF)
26、企业规划法(BSP)主要任务:根据开发请求,进行初步调查,明确问题,进行总体规划,确定新系统目标和总体结构,进行可行性研究,形成可行性报告。,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统分析阶段:对现行系统进行详细调查,分析业务流程,分析数据与数据流程;通过分析功能与数据之间关系,提出新系统的逻辑方案(功能要求)。通过运用数据流图和数据字典对系统模型进行描述。解决系统“做什么”的问题分析工具:数据流图(DFD)、数据字典(DD)等。,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统分析阶段的成果为“系统分析说明书”,用户根据系统说明书可以了解未来系统的功能,判断是不
27、是他们所要求的系统。“系统分析说明书”就是下一阶段系统设计的依据。,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统设计阶段:根据“系统分析说明书”所规定的功能要求设计具体实现方案。解决系统“怎么做”的问题。这个阶段又可分成总体设计和详细设计总体设计:确定系统总体结构,划分子系统功能,确定共享数据的组织。详细设计:描述如何具体实现系统功能。功能模块的处理过程(算法)设计、数据库设计、输入/输出界面设计、编码设计。工具:功能模块图、E-R图、程序流程图等成果:“系统设计说明书”,为下一阶段提供编程指导,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统实施阶段:指将系统设计
28、阶段成果的具体实现。系统实施阶段的主要任务:计算机等设备的购置、安装和调试;编写程序、测试和调试程序建立数据库;整理基础数据,培训人员;工具:程序设计语言、测试工具、软件等,3.2 结构化生命周期法,3.2.4 结构化的生命周期,系统运行与维护阶段:日常运行管理,评价系统运行效率。改正错误、修改扩充功能以延长系统的使用寿命,提高系统的效益。若存在一些小问题,则对系统进行修改、升级等若存在重大问题,则用户只有提出开发新系统的要求,这标志着旧系统生命的结束,新系统的诞生。工具:系统维护、管理软件等,生命周期法开发流程,3.2 结构化生命周期法,3.2.5 结构化方法的优缺点,优点阶段的顺序性:严格
29、区分工作阶段,开发过程清晰。开发过程整体性好,全局性强:在整体优化前提下自顶向下分析和设计;逻辑设计和物理设计分开:首先进行系统分析,然后系统设计,大大提高了系统的正确性、可靠性和可维护性。质量保证措施完备:每个阶段及时总结,发现问题及时反馈和纠正。,3.2 结构化生命周期法,3.2.5 结构化方法的缺点,缺点和不足 资源耗费过大、开发周期过长。缺乏灵活性。一旦分析、设计考虑不周,修改的工作量很大。不适合开发信息需求不确定的系统。生命周期法认为系统需求在整个开发期间是不变的、稳定的。用户需求难以准确描述开发周期太长文档管理十分复杂适应性较差,3.2 结构化生命周期法,3.2.6 结构化方法的适
30、用范围,适用条件:组织结构相对稳定 业务处理过程规范 需求明确并在一定的时期内不发生大的变化的大型复杂系统,3.3 原型法,原型法的产生及基本思想,1、原型法产生的原因 运用结构化系统开发生命周期法的前提条件是要求用户在项目开始初期就非常明确地陈述其需求,需求陈述出现错误,对信息系统开发的影响尤为严重。事实上这种要求又难以做到。人们设想:有一种方法,能够迅速发现需求错误当图形用户界面(Graphic User Interface,GUI)出现后,自80年代中期以来,原型法逐步被接受,并成为一种流行的信息系统开发方法。,3.3 原型法,原型法的产生及基本思想,2、原型法(Prototyping
31、Method)的基本思想 原型法是在系统开发初期,凭借系统开发人员对用户需求的了解和系统主要功能的要求,在强有力的软件环境支持下,迅速构造出系统的初始原型,然后与用户一起不断对原型进行修改、完善,直到满足用户需求。原型:信息系统的最初版本,原型法在建立新系统时可以划分为4个步骤。确定用户的基本要求。如功能、界面要求等。开发新系统的原型。开发人员根据用户的要求迅速开发出新系统的原型,交由用户试用。征求用户对原型的意见。通过用户与开发者的交流尽量使用户的要求达到最大满足。若用户对新系统原型完全不能接受,则应回到第阶段。修改系统原型。对原型进行修改、完善,再回到第阶段,反复征求意见,反复修改,直到用
32、户满意为止。,3.3 原型法,3.3 原型法,原型法的开发过程,原型法对用户需求的确定是动态的,系统分析、设计与实现都是随着对原型的不断修改而完成的,相互之间并无明显的界限,也没有明确的分工。系统开发就是一个反复修改的过程。,3.3 原型法,3.3.3 原型法的主要特点:,原型法具有以下方面的特点:从认识论的角度来看,原型法遵循了人们认识事物的规律,更容易被接受。原型法将模拟的手段引入到系统分析的初级阶段,缩短了用户和系统分析人员之间的距离。充分利用了最新的软件工具,使系统开发时间、费用减少,效率得以提高。,3.3 原型法,3.3.4 原型的种类和构造方法:,根据原型在系统开发过程中的作用,可
33、分为丢弃式原型和进化式原型两种类型。丢弃式原型:目的是为了明确需求,使原型的功能能够充分体现用户的需求,在明确了需求后,原型就会被废弃,并不打算把它作为实际系统运行。进化式原型:(类似版本升级)先按照基本需求开发出一个系统,逐步改进,最终形成符合实际需求的系统。,3.3 原型法,3.3.5 原型法的优缺点:,优点:提高了用户的可接受度,降低了开发风险,可在一定程度上减少开发费用。缺点:由于原型法不经过系统分析,因此整个系统没有一个完整的概念。系统开发的文档无法统一,给以后的维护带来困难。对解决复杂系统和大型系统困难,对用户的管理水平要求高,3.3 原型法,3.3.3 原型法的适用范围:,原型法
34、的适用范围是比较有限的,适合于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统。不适合:大型、业务复杂的系统。大量运算,逻辑性较强系统。管理基础不完善,信息处理混乱的企业。批处理系统。,3.4 面向对象开发方法,3.4.1 面向对象开发方法的产生,面向对象方法产生的原因:结构化方法主要从功能角度进行分析与设计,只是单纯地反映管理功能的结构状况,只能被动地迎合实际问题需要的做法。面向对象的方法 把数据和过程封装成为对象,以对象为基础对系统进行分析与设计,通过对象的组合来构造应用系统的开发方法,面向对象(Object Oriented)方法,简称OO方法,是20世纪80年代中后期随着
35、面向对象的程序设计(OOP)发展起来的一种新型的开发方法。起源于面向对象编程语言:它的出现以60年代末SIMULA语言为标志。80年代中期面向对象编程语言达数十种之多。(80年代中期,C+十分热门)面向对象技术很快用于系统分析和系统设计方法中,发展成为面向对象分析OOA和面向对象设计OOD。OOA与OOD方法使人们分析、设计一个系统的方法尽可能模拟人类的思维习惯、尽可能接近人们认识一个系统的方法。,3.4 面向对象开发方法,3.4.1 面向对象开发方法的产生,面向对象可理解为:客观世界都是由各种各样的“对象”组成的,每种对象都有各自的内部状态和运动规律,不同对象之间的相互联系就构成了各种不同的
36、系统。任何复杂事物都可以通过对象的某种组合构成。,3.4 面向对象开发方法,3.4.2 面向对象开发方法的基本思想,面向对象的基本概念:(1)对象:现实世界中某个实际存在的事物 可以是有形的(如汽车);也可以是无形的(如计划)在面向对象方法中:对象是将数据和使用该数据的一组基本操作或过程封装在一起的实体由属性和方法组成,是构成系统的基本单位属性(数据):反应了对象的特征。如姓名、性别等。方法(操作):是改变属性状态的各种操作。(程序代码),3.4 面向对象开发方法,3.4.2 面向对象开发方法的基本思想,面向对象的基本概念:(2)消息:对象之间进行通信的一种数据结构对象之间的联系是通过“消息”
37、来实现的。消息包含控制流(操作)和数据流(参数)。,3.4 面向对象开发方法,3.4.2 面向对象开发方法的基本思想,对象的本质:就是属性(数据)与操作(程序代码)的封装,通过接口与外界联系。,面向对象的基本概念:(3)类:具有相同属性和操作的对象的集合类与对象的关系:继承类是对象的抽象对象是类的实例如:把“学生”作为一个类,那么“张三”就是学生类的一个对象实例。,3.4 面向对象开发方法,3.4.2 面向对象开发方法的基本思想,3.4 面向对象开发方法,面向对象的基本概念:(4)封装:对象将它自身的属性及操作(方法)包装起来对象的最基本的特征是:封装性、继承性,3.4 面向对象开发方法,3.
38、4.2 面向对象开发方法的基本思想,3.4 面向对象开发方法,3.4.3 面向对象的开发过程,OO方法工作过程可分为4个阶段:系统调查和需求分析:先弄清要干什么。面向对象分析,OOA:分析问题的性质和求解问题。即:在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。面向对象设计,OOD:整理问题即:对分析的结果作进一步地抽象、归类、整理,并最终以范式的形式将它们确定下来。(逐步细化)面向对象的编程,OOP:程序实现。即用面向对象的程序设计语言将上一步整理的范式编程实现。,3.4 面向对象开发方法,3.4.4 OOA和OOD方法简介,1.面向对象分析(OOA)的基本原则 抽象原则(处
39、理复杂问题原则)封装的原则 继承性的原则 相关原则 组织方法原则 组织方法原则 组织方法原则,3.4 面向对象开发方法,3.4.4 OOA和OOD方法简介,2.OOA的5个基本步骤第1步:确定对象和类 找出问题领域的对象和类,并确定这些对象和类的属性和操作。(对象名、属性、操作)第2步:确定这些类之间结构结构:类之间的连接关系结构分为两种:分类结构:一般特殊的关系组装结构:整体部分的关系,3.4 面向对象开发方法,分类结构(一般特殊):体现了面向对象继承的特性。识别出的类的层次结构。,3.4 面向对象开发方法,组装结构(整体部分):刻画了一个整体及其组成部分。用来表示一个对象如何成为另一个对象
40、的一部分,以及多个对象如何组装成更大的对象。,3.4 面向对象开发方法,3.4.4 OOA和OOD方法简介,第3步:确定主题,按主题把对象和类分组 主题由一组类及对象组成,将相似性质的类与对象归纳为同一主题,将类及对象模型划分为更大的单位,便于理解。第4步:确定属性 定义类的实例(对象)的属性数据。第5步:确定方法 定义对象之间的收到消息的处理方法。,3.4 面向对象开发方法,3.4.4 OOA和OOD方法简介,3.OOD(面向对象设计)OOD方法是OO方法中的一个过渡环节;分析阶段已建成问题领域的所有对象和类;设计阶段将这些对象和类加以整理和求精;对于分析阶段所确定的对象结构、属性及方法等内
41、容,需要进行增添、分解、合并以及分类、整理等。,3.4 面向对象开发方法,3.4.4 OOA和OOD方法简介,OOD的主要作用:对OOA的分析结果作进一步的规范化整理,以便能被OOP接受。OOD的主要工作:对象定义规格的求精 数据模型和数据库设计 优化,面向对象开发方法的特点:(1)优点:分析、设计中的对象和软件中的对象的一致性 利用特定的软件工具直接完成从对象客体的描述到软件之间的转换缩短开发周期 解决了结构化方法从设计到软件模块结构之间多次转换的复杂过程重用性好、可维护性好 系统模型的基本单元是对象,是客观事物的抽象,具有相对稳定性,因而面向对象法开发的系统有较强的应变能力,重用性好、维护
42、性好,并能降低系统开发维护费用和能控制软件的复杂性。,3.4 面向对象开发方法,3.4.5 面向对象开发方法的特点和面临的问题,面向对象开发方法的特点:(2)缺点(面临的问题):不易于大型管理信息系统的开发 在大型管理信息系统开发中,若不经自顶向下的整体划分,而是一开始就自底向上地采用OO方法开发系统,会造成系统结构不合理、各部分关系失调等等问题。易使系统整体功能的协调性差,效率降低等,3.4 面向对象开发方法,3.4.5 面向对象开发方法的特点和面临的问题,3.4 面向对象开发方法,三种开发方法的比较,1、结构化系统开发方法(1)优点:从系统整体出发,强调在整体优化的条件下“自上而下”地分析
43、和设计,保证了系统的整体性和目标的一致性;遵循用户至上原则;严格区分系统开发的阶段性;每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制;文档规范化,按工程标准建立标准化的文档资料。(2)缺点:用户素质或系统分析员和管理者之间的沟通问题;开发周期长,难于适应环境变化;结构化程度较低的系统,在开发初期难以锁定功能要求。(3)适用范围:主要适用于规模较大、结构化程度较高的系统的开发,3.4 面向对象开发方法,三种开发方法的比较,2、原型法(1)优点:符合人们认识事物的规律,系统开发循序渐进,反复修改,确保较好的用户满意度;开发周期短,费用相对少;由于有用户的直接参与,系统更加贴近实际;易
44、学易用,减少用户的培训时间;应变能力强。(2)缺点:开发过程管理要求高,整个开发过程要经过“修改评价再修改”的多次反复;用户过早看到系统原型,开发人员易将原型取代系统分析;缺乏规范化的文档资料(3)适用范围:处理过程明确、涉及面简单的小型系统。不适合于:大型、复杂系统,难以模拟;存在大量运算、逻辑性强的处理系统;管理基础工作不完善、处理过程不规范;大量批处理系统,3.4 面向对象开发方法,结构化方法、原型法和面向对象方法的优缺点和适用场合,3、面向对象开发方法(1)优点:a、分析、设计中的对象和软件中的对象的一致性 b、实现软件复用,简化程序设计 c、系统易于维护 d、缩短开发周期(2)缺点:
45、不易于大系统的开发,3.5 计算机辅助开发方法,3.5.1 计算机辅助开发方法的产生,计算机辅助软件工程(Computer aided software Engineering,CASE)严格地讲,CASE只是一种开发环境而不是一种开发方法 它是80年代末从计算机辅助编程工具、第四代语言(4GL)及绘图工具发展而来的。采用CASE工具进行系统开发,必须结合一种具体的开发方法,如:结构化开发方法、因向对象方法、原型化法等,CASE方法只是为具体的开发方法提供了支持每一过程的专门工具。因此,CASE工具实际上把原先由手工完成的开发过程转变为以自动化工具和支撑环境支持的自动化开发过程。,CASE方法
46、的基本思想 结合系统开发的具体方法,在完成对目标系统的规划和详细调查后,如果系统开发过程中的每步都相对独立,则整个系统开发就可以应用专门的软件开发工具和集成开发环境来实现。现在,CASE中集成了多种工具,这些工具既可以单独使用,也可以组合使用。CASE的概念也由一种具体的工具发展成为开发信息系统的方法学。,3.5 计算机辅助开发方法,3.5.1 计算机辅助开发方法的产生,CASE环境的应用必须依赖于一种具体的开发方法。既支持自顶向下结构化方法,又支持自底向上的原型法、面向对象方法等,完备的CASE产品,能为用户提供支持上述各种方法的开发环境。支持系统开发(分析、设计、编程)的全过程 简化了软件
47、开发的管理和维护。自动生成程序代码和各种软件文档。它能帮助开发者方便、快捷地产生出系统开发过程中各类图表、程序和说明性文档。侧重于分析、设计。设计具有可重用性。,3.5 计算机辅助开发方法,3.5.2 计算机辅助开发方法的特点,典型的CASE工具主要包括以下几类。图形工具。例如绘制流程图、结构图或者其他与设计方法有关的图表工具。原型设计工具。用于快速生成用户界面、报表等。代码生成器。自动产生可执行的程序源代码。测试工具。用于测试各类错误,包括对程序的结构、生成的源代码、系统集成的测试等。文档资料生成工具。用于产生结构化方法所需的各种文档。其他的工具还有:语句校对程序、信息知识库、开发方法和项目
48、管理工具等。,3.5 计算机辅助开发方法,常用CASE工具介绍,绘图工具Visio工具SmartDraw原码浏览的工具SourceInsigtSourceNavigator配置管理工具Virsual Source Safe(VSS)PVCSClearCaseCVS,数据库建模工具ERWinPowerDesignUML建模工具Rational RoseJude,3.5 计算机辅助开发方法,讨论题:(1)你如何评价“决定信息技术能带来多少竞争优势的关键不在于技术本身,而在于管理”这句话?(2)对于系统开发过程中的高层领导支持和用户参与你有何看法?(3)采用生命周期法还是原型法或者是其他开发方法应根据什么条件而定?,3.6 讨论,