310 likes | 471 Views
管理信息系统. Management Information System. 湖南财政经济学院信息管理系. 4.2 系统开发方法. 4.2.1 开发方法概述 4.2.2 常用系统开发方法 4.2.3 开发策略与开发方式. 4.2.1 开发方法概述. 1 、开发方法的基本目标 使管理信息系统正确反映管理需要,满足用户需求,使所开发的管理信息系统为管理决策提供信息支持; 有效地管理系统开发过程,加快软件开发速度,提高软件生产效率,降低费用; 增强管理信息系统软件产品的功能,提高软件产品的质量;
E N D
管理信息系统 Management Information System 湖南财政经济学院信息管理系
4.2 系统开发方法 4.2.1 开发方法概述 4.2.2 常用系统开发方法 4.2.3 开发策略与开发方式
4.2.1 开发方法概述 1、开发方法的基本目标 • 使管理信息系统正确反映管理需要,满足用户需求,使所开发的管理信息系统为管理决策提供信息支持; • 有效地管理系统开发过程,加快软件开发速度,提高软件生产效率,降低费用; • 增强管理信息系统软件产品的功能,提高软件产品的质量; • 充分利用软件技术,尽快跟上硬件发展速度,从而最大限度地发挥和挖掘硬件的功能; • 合理组织和充分利用人力、物力和财力等资源。
4.2.1 开发方法概述 2、开发方法的结构体系 主流的系统开发方法,其侧重点各有所不同: • 强调开发过程的组织、管理和控制,属于系统开发生命周期的范畴; • 强调开发方法的驱动对象,属于方法论的范畴; • 支持某种方法论的技术,属于技术范畴; • 系统开发需要在一定的开发环境下运用开发工具来完成,属于系统开发环境/工具研究的范畴。 这些方法在一定层面上,从不同的角度提出,但彼此相互联系、相互支持、相互制约,之间的关系从下图四个层次中体现。开发环境/工具位于最底层,说明其他三个层面均离不开开发环境/工具的支持;技术是组成方法学的基本成分。
系统开发生命周期 方法学 技术 开发环境/工具 中央资源库 4.2.1 开发方法概述 (1) 系统开发生命周期 是指系统分析员、软件工程师、程序员以及最终用户建立计算机信息系统的一个过程,是管理和控制信息系统开发成功的一种必要措施和手段。或者是一种用于规划、执行和控制信息系统开发项目的项目组织和管理方法,是工程学原理(系统工程的方法)在信息系统开发中的具体应用。
系统开发的 组织和管理 标准化 (开发规范) 开发方法学 开发技术 开发环境/工具 4.2.1 开发方法概述 (2) 开发方法学 开发方法学是一组思想、规范、过程、技术、环境及工具的集成。一种好的方法学应该能够为系统的开发过程从头到位提供一整套高效率的途径和措施。
4.2.1 开发方法概述 方法学是将具体的方法与技术包装在一起而形成的一种思想体系。任何一种开发方法学应该支持SDLC的每一个阶段,对整个系统开发生命周期进行综合的、详细的描述,体现在: • 每个阶段所包含的每一个作业; • 在每一个作业中个人和小组的作用; • 每一个作业的质量标准; • 所运用的开发技术。 分类: • 面向过程的方法学(结构化方法学)——70年代的主流 • 面向数据的方法学(数据建模和信息工程)——80年代 • 面向对象的方法学——90年代的主流
4.2.1 开发方法概述 (3) 技术 技术是指运用一些特殊的工具和规则来完成信息系统开发生命周期的一个或几个阶段。技术只是支持某一种方法学或开发过程中的一部分。 如:数据流程图、实体关系图——结构化方法学中的技术。 (4)系统开发环境/工具 系统开发环境/工具是指用于支持系统生命周期、方法学以及技术的应用系统。 • 计算机辅助软件工程:Computer Aided Software Engineering , CASE • 软件开发环境:Software Development Environment, SDE • 软件工程环境:Software Engineering Environment ,SEE • 集成化项目/程序支持环境:Integrated Project/Programming Support Environment, IPSE 对上述个范畴进一步扩展,即为现在各种主要的开发方法。 详见下图 :
4.2.1 开发方法概述 计算机开发方法 方法学:驱动 对象的观点 系统开发生命 周期(SDLC) 面向数据方法 (信息工程方法) 结构化 SDLC 面向过程方法 (结构化方法) 面向对象方法 (OO方法) 原型法 技 术 计算机辅助 软件工程 可视化技术 软件复用技术 其它技术 计算机信息系统开发环境/工具 集成化的项目/ 程序支持环境 计算机辅助 软件工程 软件开发环境 中央资源库
4.2.2 常用系统开发方法 • 结构化程序设计方法 基本思想是:用系统的思想,系统工程的方法,按用户至上的原则,结构化、模块化、自顶向下对信息系统进行分析与设计。具体来说,就是先将整个信息系统开发过程划分出若干个相对独立的阶段,如系统规划、系统分析、系统设计、系统实施等。 • 速成原型式的程序开发方法 原型法(Prototyping Method)是在系统开发初期,凭借系统开发人员对用户需求的了解和系统主要功能的要求,在强有力的软件环境支持下,迅速构造出系统的初始原型,然后与用户一起不断对原型进行修改、完善,直到满足用户需求。 • 面向对象程序设计方法 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程。
4.2.2 常用系统开发方法 1、结构化程序设计方法 • 结构化系统分析和设计方法的开发过程 ①系统规划阶段。该阶段的范围是整个业务系统,目的是从整个业务的角度出发确定系统的优先级。 ②系统分析阶段。主要活动包括可行性分析和需求分析。其范围是列入开发计划的单个信息系统开发项目。目的是分析业务上存在的问题,定义业务需求。 ③系统设计阶段。系统设计的目的是设计一个以计算机为基础的技术解决方案以满足用户的业务需求。总体设计的主要任务是构造软件的总体结构;详细设计包括人机界面设计、数据库设计、程序设计。 ④系统实施阶段。系统实施的目的是组装信息系统技术部件,并最终使信息系统投人运行。如用户手册等。包括的活动有编程、测试、用户培训、新旧系统之间的切换等。 ⑤系统运行与维护阶段。目的是对系统进行维护,使之能正常地运作。
4.2.2 常用系统开发方法 • 结构化系统分析和设计方法的优点 ①结构化分析方法简单、清晰,易于学习掌握和使用。 ②结构化分析的实施步骤是先分析当前现实环境中已存在的人工系统,在此基础上再构思即将开发的目标系统,这符合人们认识世界改造世界的一般规律,从而大大降低了问题的复杂程度。目前一些其它的需求分析方法,在该原则上是与结构化分析相同的。 ③结构化分析采用了图形描述方式,用数据流图为即将开发的系统描述了一个可见的模型,也为相同的审查和评价提供了有利的条件。
4.2.2 常用系统开发方法 • 结构化系统分析和设计方法的缺点: ①它是一种预先定义需求的方法,基本前提是必须能够在早期就冻结用户的需求,只适应于可以在早期阶段就完全确定用户需求的项目。然而在实际中要做到这一点往往是不现实的,用户很难准确地陈述其需求。 ②未能很好地解决系统分析到系统设计之间的过渡,即如何是物理模型如实反映出逻辑模型的要求,通俗地说,就是如何从纸上谈兵到真枪实弹地作战的转变过程。 ③该方法文档的编写工作量极大,随着开发工作的进行,这些文档需要及时更新。 • 适用范围 该方法适用于一些组织相对稳定、业务处理过程规范、需求明确且在一定时期内不会发生大的变化的大型复杂系统的开发。
4.2.2 常用系统开发方法 2、原型法 • 原型法的开发过程 ①可行性研究。对系统开发的意义、费用、时间作出初步的计算,确定系统开发的必要性和可行性。 ②确定系统的基本要求。系统开发人员向用户了解用户对信息系统的基本需求,即应该具有的一些基本功能,人机界面的基本形式等。 ③建造系统初始原型。在对系统有了基本了解的基础上,系统开发人员应争取尽快地建造一个具有这些基本功能的系统。 ④用户和开发人员评审。用户和开发人员一起对刚完成的或经过若干次修改后的系统进行评审,提出完善意见。 ⑤修改系统原型。开发人员就要根据用户的意见对原始系统进行修改、扩充和完善。发人员在对原始系统进行修改后,又与用户一起就完成的系统进行评审,如果不满足要求,则要进行下一轮循环,如此反复地进行修改、评审,直到用户满意。 ⑥结束。如果经用户评审,系统符合要求,则可根据开发原始系统的目的,或者作为最终的信息系统投入正常运行,或者是把该系统作为初步设计的基础。
4.2.2 常用系统开发方法 • 原型法的优点 ①原型法符合人们认识事物的规律 ②原型法有利于项目的开发者和用户之间的交流,加强了开发过程中的用户参与程度 ③实际的原型为准确认识问题创造了条件 ④能充分利用最新的系统开发环境 ⑤原型法将系统的调查、分析、设计融为一体
4.2.2 常用系统开发方法 • 原型法的缺点 ①对于大型的系统,如果不经过系统分析来进行整体性划分,要想直接用屏幕一个一个进行模拟是很困难的。 ②对于大量的运算、逻辑性较强的程序模块,原型法很难构造一个合适的模型来供人评价。 ③对于原基础管理不善、信息处理混乱的问题,使用有一定困难。 ④对于批处理系统,因其大部分是内部处理,用原型法有一定困难。
4.2.2 常用系统开发方法 • 原型法支撑环境 ①方便灵活的关系数据库系统(RDBS)。 ②与RDBS相对应的、方便灵活的数据字典,它具有存储所有实体的功能。 ③与RDBS相对应的快速查询系统,能支持任意非过程化的(即交互定义方式)组合条件的查询, ④高级的软件工具(如4GLS或信息系统开发生成环境等等),用以支持结构化程序,并且允许采用交互的方式迅速地进行书写和维护,产生任意程序语言的模块(即原型), ⑤非过程比的报告或屏幕生成器,允许设计人员详细定义报告或屏幕输出样本。 • 适用范围 原型法的适用范围是比较有限的,对于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统。
4.2.2 常用系统开发方法 3、面向对象方法 • 基本概念 ①对象:客观世界由各种“对象”(Object)组成,任何客观事物都是对象,对象是在原事物基础上抽象的结果。任何复杂的事物都可以通过对象的某种组合结构构成。对象可由相对比较简单的对象以某种方式组成; ②属性和方法:对象由属性和方法组成。属性(Attribute)反映了对象的信息特征,如特点、值、状态等等.而方法(Method)则是用来定义改变属性状态的各种操作;
4.2.2 常用系统开发方法 ③消息:对象之间的联系主要是通过传递消息(Message)来实现的,而传递的方式是通过消息模式(Message pattern)和方法所定义的操作过程来完成的; ④类:对象可按其属性进行归类(Class)。类有一定的结构,类上可以由超类(Super class),类下可以有子类(Subclass)。对象或类之间的层次结构是靠继承关系(Inheritance)维系的; ⑤封装:对象是一个被严格模块化了的实体,称之为封装(Encapsulation)。这种封装了的对象满足软件工程的一切要求,而且可以直接被面向对象的程序设计语言所接受。
4.2.2 常用系统开发方法 • 面向对象方法开发过程 ①系统调查和需求分析:对系统面临的问题和用户的开发需求进行调查研究。 ②分析问题的性质和求解问题:在复杂的问题域中抽象识别出对象及其行为、结构、属性和方法。这一个阶段一般称为面向对象分析,即OOA。 ③整理问题:对分析的结果进一步抽象、归类整理,最终以范式的形式确定下来,即OOD。 ④程序实现:使用面向对象的程序设计语言将其范式直接映射为应用程序软件,即OOP(它是一个直接映射过程)。
4.2.2 常用系统开发方法 • 面向对象开发方法的优点 ①把数据和操作封装到对象之中。从应用设计到解决问题的方案更加抽象化而且具有极强的对应性。是一种全新的系统分析设计方法。 ②实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。 ③开发工作的重用性、继承性高,降低重复工作量。应用程序具有较好的重用性、易改进、易维护和易扩充。 ④缩短了开发周期。 ⑤设计中产生各式各样的部件,然后由部件组成框架,以至于整个程序。 ⑥ 适用面广,适用于各类信息系统的开发。
4.2.2 常用系统开发方法 • 面向对象开发方法的缺点 ①需要一定的软件支持环境。 ②不太适宜大型的MIS开发,若缺乏整体系统设计划分,易造成 系统结构不合理、各部分关系失调等问题。 ③只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化。 ④初学者不易接受、难学。
4.2.2 常用系统开发方法 4、CASE 介绍 • 计算机辅助软件工程方法 是一种自动化或自动化的系统开发环境,它能够全面支持出系统调查外的给一个开发步骤,使得原来由手工完成的开发过程转变为一自动化工具和支撑环境支持的自动化开发过程。采用CASE工具进行系统开发,还必须结合某种具体的开发方法,如结构化系统开发方法等。 • 计算机辅助软件工程方法的特点: ①解决了从客观对象到软件系统的映射问题,支持系统开发的全过程。 ②提高了软件质量和软件重用性。 ③加快了软件开发速度。 ④简化了系统开发过程的管理和维护。 ⑤自动生成开发过程中的各种文档资料。
4.2.2 常用系统开发方法 5、开发方法的发展 • UML统一建模语言 UML统一建模语言(Unified Modeling Language)是一种建模语言。是第三代用来为面向对象开发系统的产品进行说明可视化和编制文档的方法。UML取代目前软件业众多的分析和设计方法(Booch Coad Jacobson Odell Rumbaugh Wirfs-Brock等)成为一种标准,这是软件界的第一次有了一个统一的建模语言。它是面向对象分析与设计的一种标准表示。它不是一种可视化的程序设计语言,而是一种可视化的建模语言。不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准。不是过程也不是方法,但允许任何一种过程和方法使用它。
4.2.2 常用系统开发方法 UML的目标是: • 易于使用、表达能力强、进行可视化建模。 • 与具体的实现无关,可应用于任何语言平台和工具平台。 • 与具体的过程无关,可应用于任何软件开发的过程。 • 简单并且可扩展,具有扩展和专有化机制,便于扩展无需对核心概念进行修改。 • 为面向对象的设计与开发中涌现出的高级概念,例如协作框架模式和组件提供支持,强调在软件开发中对架构框架模式和组件的重用。 • 最好的软件工程实践经验集成。 • 可升级,具有广阔的适用性和可用性。 • 有利于面对对象工具的市场成长。 • ROSE ROSE是美国Rational公司的面向对象建模工具,利用这个工具,我们可 以 建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、 Java、VB、Oracle等语言和系统的代码。
4.2.2 常用系统开发方法 • RUP RUP(Rational Unified Process,统一软件开发过程) 具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容; 此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。
4.2.3 开发策略与开发方式 1、系统开发的基本条件 • 系统开发成功的要素 ①合理地确定系统目标。 ②组织系统性队伍。 ③从总体上对系统开发进行规划。 • 基本条件 ①有科学的管理基础。 ②领导的重视和员工的积极参与。 ③有一支高水平的专业技术队伍。 ④有较雄厚的物资基础。
4.2.3 开发策略与开发方式 2、开发策略 • 根据系统的特点和开发工作的难以程度或者风险的大小,一般采取下列开发策略: ①接收式 ②直接式 ③迭代式 ④实验式 • 实际开发过程中,开发的过程策略可分为: ①自上而下:从整体上协调和规划,由全局到局部,由长远到近期,从探索合理的信息流出发来设计系统。 ②自下而上:从现行系统的业务状况出发,先实现各项业务的具体功能,逐步由底层到高层,直至最后形成整个系统。
4.2.3 开发策略与开发方式 3、开发方式 • 用户自行开发。 • 委托开发。 • 合作开发。 • 从市场上购买是合组织需要的软件。 • 咨询开发。 4、开发单位的选择 • 开发单位应具有计算机专门知识,熟悉开发工具; • 具有相关项目开发成功的实际开发经验; • 熟悉用户的业务情况和开发过类似的信息系统项目; • 与用户单位具有较近的地理位置,便于及时对系统进行维护。
4.2.3 开发策略与开发方式 5、系统开发组织和项目管理 • 建立系统开发组织 • 系统开发领导小组 系统开发领导小组的任务是制定管理信息系统规划;在开发过程中,根据客观发展情况进行决策,协调各方面的关系,控制开发制度。小组成员应包括一名企业领导,系统开发项目负责人,有经验的系统分析师,以及用户各主要部门的业务负责人。 • 系统开发工作小组 系统开发工作小组由系统分析员,即系统工程师负责。其任务是根据系统目标和系统开发领导小组的指导展开具体工作。这些工作包括开发方法的选择,各类调查的设计和实施,调查结果的分析,撰写可行性报告,系统的逻辑设计,系统的物理设计,系统的具体编程和实施,制定新旧系统的交接方案,监控系统的运行;如果需要,协助组织进行新的组织机构变革和新的管理规章制度。
4.2.3 开发策略与开发方式 • 制定系统开发计划 指定系统开发大致的进度计划。 随着系统分析、系统设计的不断深入,再制定系统的详细的 开发进 度计划,并且指定专人负责。项目负责人要对各项任务进行定期检查,采用系统开发的进度计划及甘特图进行表示。 • 加强项目管理 • 计划管理 • 技术管理 • 质量管理 • 资源管理 • 合理组织队伍和人员分工