Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11.,*,11.,系统开发方法与策略,掌握系统开发的几种方法:,生命周期法,、,原型法,、,软件包法,、,最终用户开发,和,外包方法,;,弄清系统开发五种方法的,特点,和,适用场合,;,掌握系统开发过程中可以采用的几种技术和工具:,结构化技术,、,面向对象技术,和,计算机辅助软件工程,;,明确系统开发过程中可以采用的这几种技术和工具的,特点,及,适用场合,.,*,学习目的,传统生命周期法,生命周期法(,life cycle,)是在系统生命周期概念的基础上,应用结构化的思想方法把整个系统开发过程分为若干活动,每个活动应用一系列标准规范和方法完成一个或多个任务,并形成符合规范的阶段性成果,直至最后系统的物理实施、运行和维护。第一个步骤和最后一个步骤首尾相连,形成一个系统的有生、有死、有再生的生命周期循环。,*,信息系统的生命周期,系统规划,系统分析,系统设计,系统实施,系统运行,和维护,生命周期法的特点,“用户参与”原则,“先逻辑后物理”原则,“自顶向下,分解协调”的原则,工作文档的规范化和标准化原则,*,生命周期法的局限,资源消耗多,开发成本高,时间长,不具有灵活性,在开发早期就明确确定需求,对小型的、结构化不是很强的系统这种方法不是很适用,特别是面向决策的系统,*,原型法prototype,用户在建立原型、评价原型、修改原型的过程中不断精练自己的需求,原型:,根据基本需求所开发的系统以让用户明确需求、评价原型,交互式的过程,*,原型法的步骤,标识用户基本需求,系统设计人员了解确定用户的基本需求,开发一个工作原型,系统设计人员尽快开发一个工作原型,通常是使用第四代软件工具或一些,CASE,工具进行原型的开发,原型只是实现计划系统的一些重要功能,使用原型,用户使用原型,确定原型与他们需求之间的差距,提出对原型的修改意见,满意,修改、改进原型,运行原型,系统开发人员了解用户需求的改变,对原型进行修改,修改后提交给用户使用,重复3、4两步直到完成整个系统的开发,原型开发工具,原型化工具,抛弃型原型,CASE,(计算机辅助软件工程)原型化工具,演化型或递增演化型原型,可用于原型开发的工具,界面原型,*,原型法的优缺点,优点:,1.,改进了用户和系统设计者的信息交流方式,2.,用户满意程度提高,3.,更加贴近实际,4.,开发风险度降低,5.,原型法减少了用户培训时间,简化了管理,6.,开发成本降低,7.,实用的学习工具,8.,应变能力强,*,原型法的优缺点,缺点:,原型法不适合于开发大的系统,原型法开发的时候,测试和文档开发工作常常容易被忽略,将给系统就下隐患,运行的效率可能会比较低,*,其他的信息系统开发方法,利用软件包开发系统,最终用户开发,外包信息系统,*,应用软件包开发,预先编制好的、能完成一定功能的、供出售或出租的成套软件系统,满足公共通用需求,为了满足特定需求,需对软件进行修改,*,在这样一些情况下企业可考虑购买软件包:,1)许多企业所共用的功能;,2)企业内部缺少进行信息系统开发的资源;,3)微机应用程序上已有很多方便易用的软件包,为此,企业在配置用户微机上的应用程序时可考虑购买软件包。,利用软件包开发系统的步骤,系统分析。明确原系统的问题和需求,提出解决方案,比较不同的开发策略,确定是否应该利用软件包进行开发,选择软件包的供应商,评价并选择软件包;,系统设计。裁剪用户的需求,以适应软件包的功能;培训技术人员,完成客户化设计和新的业务流程设计;,编程、调试、转换。安装、修改、设计程序接口、做文档、切换、测试、培训用户;,运行和维护,改错与升级。,*,利用软件包开发,优点:,1),缩短开发时间,2),节约开发费用,3),技术水平较高,4,),可以得到比较好的维护,5,),能减轻组织内部对系统开发的阻力,利用软件包开发,缺点:,1),功能较为简单,2),难以满足特殊要求,3),实施的费用随客户化工作量的增大而急剧上升,最终用户开发,利用第四代工具,,用户在技术人员很少的支持条件下,自行完成信息系统的开发,*,最终用户开发的步骤,确定范围,系统分析,系统设计,系统实施,系统运行和维护,*,最终用户开发,优点:,开发速度快,改善了需求的确定,提高知识工作者的参与和主人翁意识,*,最终用户开发,缺点:,知识工作者缺乏专业技能而导致开发的系统难以实现,非组织集中建立的信息系统增多,对设计方案缺乏充分的分析导致不达标准的信息系统,缺乏文档和外部支持导致系统寿命短促,*,外包信息系统,将,计算中心的运行,远程通讯网的管理,应用程序的开发,全部交由外部专门机构负责,*,外包信息系统的步骤,选择一个目标系统,确定逻辑需求,编制征询方案书,对征询方案书答复的评价并选择一家供应商,测试并验收解决方案,监控并重新评估,外包信息系统,优点:,经济。靠这种方法建立信息系统,可以使用户节约百分之十五到百分之三十的费用,最高的可以达到百分之五十;,服务质量好。用户可以用相同的和较低的成本获得更好的服务。因为外部化的服务的提供者是有竞争的,而用户内部的系统却缺乏这种竞争;,可预见性好。当组织无论将系统开发,还是将某些其他的业务职能资源外包时,都要知道精确的成本。而外部化合同有明确的服务费用,便于作预测;,信息系统外包,把力量集中到唯一的核心能力上。通过把支持非关键业务职能的系统开发工作进行资源外包,组织能够将力量集中在支持主要的、唯一的核心能力的系统开发上;,灵活。随着业务的成长,不需要对组织的信息系统作重大的改变,只需要调整外部的费用和能力就能满足需要;,更有效的利用人才。用户可以让原来用于运行内部信息系统的那些高级专业技术人员去做一些更有价值的工作,充分发挥他们的潜能。,信息系统外包,缺点:,1,)降低了对未来技术变革的了解程度。外包信息系统意味着组织内部不再拥有利用信息系统组织智力的专长。,2,)降低了控制力。资源外包意味着放弃控制,无论什么原因选择资源外包,在某种程度上组织正在放弃对职能的控制;,3)增加了战略信息的易受攻击性。外包信息系统开发,包括告诉另外的组织使用哪些信息以及如何使用这些信息。同时,你的组织可能正在泄露战略信息和秘密;,4,)增加了对其他组织的依赖性。组织一旦开始外包信息系统,就意味着开始依靠其他的组织完成许多本组织内的业务职能。,三种开发方式的比较,方式,特点比较,利用软件包开发,最终用户开发,外包信息系统,分析设计能力的要求,较低,较高,一般,编程能力,的要求,较低,较高,不需要,系统维护,难易程度,较困难,容易,较困难,开发费用,较少,少,多,说明,要有鉴别与校验软件包功能及适应条件的能力。即使完全符合本企业业务处理要求,仍需要编制一定的接口软件。,开发时间较长,但可得到适合本企业的系统,并培养了自己的系统开发人员。该方式需要强有力的领导及进行一定的咨询。,最省事,开发费用高。必须配备精通业务的人员,需要经常进行监督、检查和协调。,系统开发技术和方法,结构化方法,自上而下、按部就班地,逐步完成系统的开发,后一步的工作是建立在前一步的基础上,用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下的对系统进行分析和设计。,先将整个信息系统开发过程划分出若干个独立的阶段,如系统规划、系统分析、系统设计、系统实施等。,*,结构化方法的特点,目的性,整体性,用户至上,深入的调查研究,相关性,环境适应性,层次性,开发过程工程化,*,结构化分析,数据流图,:,描述逻辑业务过程、信息需求和信息流,数据字典:,所有数据描述的定义控制,例如数据的名和类型,过程说明:,从模块层上描述处理逻辑,*,数据流程图的图符,DATA FLOW DIAGRAMS(DFD):,数据流,处理,数据源,或数据,目的地,文件,帐单生成,客户,平衡计算,报表,管理人,支付文件,客户文件,数据流程图:,结构化系统开发方法的优缺点,优点:,强调系统开发的整体性和全局性,强调在整体优化的前提下来考虑具体的分析设计问题,即自顶向下的观点。,强调严格的区分开发阶段,强调一步步的严格的进行系统分析和设计,每一步工作都及时地总结,发现问题及时的反馈和纠正。,*,结构化系统开发方法的优缺点,缺点:,结构化方法是一种面向过程的方法。侧重点在于数据转换过程而不是数据本身。人们已经越来越多的意识到,数据的转换处理过程是不稳定的、变化的,而数据本身却是相对稳定的。,系统的开发周期常也是结构化系统分析方法的一个缺点。由于要经过非常严格的系统分析、系统设计和系统实施的三个阶段的工作,因此开发周期比较长,这样的结果就导致原来设想的方案和了解的需求都会因为环境的变化而不适合了。,*,面向对象(,OO,)软件开发,强调的不是程序,将重点从模型与数据转向,对象,对象是数据和程序的结合体,对象、类、消息,*,OO方法的特点,继承,封装,多态,抽象,OO方法开发过程,1.,定义问题。定义问题也就是我们通常所说的需求分析和确定系统目标;,2.,分析问题的性质和求解问题。在繁杂的问题空间中抽象的识别出对象以及其行为、结构、属性、方法等。,OOA,;,4.,详细设计问题,从而给出对象的现实描述。整理问题、详细的设计对象,对分析结果做进一步的抽象、归纳、整理,最后以范式的形式确定对象。,OOD,;,5.,程序实现。采用面向对象的程序设计语言实现抽象出来的范式形式的对象,使之成为程序软件。,OOP,。,*,OOA方法,标识对象和类,标识结构,定义主题,定义属性,确定方法,OOD方法,问题空间部分的设计,人机交互部分的设计(,HIC,),任务管理部分的设计,数据管理部分的设计,耦合、内聚、重用,面向对象方法的优缺点,优点:,由于面向对象的方法更接近于现实世界,易于理解。,解决了客观世界描述工具和软件结构的不一致性问题,缩短了开发周期。,一旦对象库建立起来,设计及程序编写工作通常在系统分析文档未完成时便可进行。,面向对象方法的优缺点,缺点:,需要一定的软件基础支持才可以应用。,一开始就自底向上的采用面向对象方法开发系统,会造成系统结构不合理、各部分关系失调等问题。,技术仍处于不成熟的阶段,要让大多数公司采用,还需要做大量的验证。,计算机辅助软件工程,COMPUTER AIDED SOFTWARE ENGINEERING,(CASE),计算机辅助系统工程,集图形处理技术、程序生成技术、关系数据库技术和各类开发工具于一身,支持结构化开发方法、原型方法、,OO,方法到支持知识处理语言,一种辅助的开发方法,*,CASE,图表工具:,DFD、ER,图或其他与特定方法相关的图形工具,语法校正:,对进入系统的信息的准确性和完整性按照特定方法的相关原则进行验证,原型法工具:,界面、报表及菜单生成器,使分析人员画出自己需要的界面报表格式或菜单,信息存储:,用来存储所有软件资源的中心信息数据库,包括界面及报表的格式,图形、数据定义、持续代码、项目安排以及其他文档。这些信息的存储可方便分析人员查询、共享以及将来的软件重用,代码生成器:,从较高层的规范描述生成可执行的代码模块,有些,CASE,工具使用图符来表示各种功能并将这些符号转换成程序,开发方法:,一些,CASE,产品包括整个系统开发过程的详细描述,可用来帮助监控整个系统的开发,项目管理工具:,一些,CASE,工具将他们的组成与常用的一些工具集成起来以进行项目的安排以及资源的评价,有些则直接将项目管理软件集成到,CASE,工具中,计算机辅助软件工程,(,CASE),优点:,解决了从客观世界对象到软件系统的直接映射问题,强有力的支持软件/信息系统开发的全过程;,使结构化方法更加实用;,自动检测的方法大大的提高了软件的质量;,使原型化方法和OO方法付诸于实施;,减少了重复工作量,简化了软件的管理和维护,加速了系统的开发过程;,*