资源描述
单击此处编辑母版标题样式,第9章,系统实施与维护,SYSTEM IMPLEMENTATION AND MAITAINENCE,物理系统的实施,程序设计与测试,项目管理?,人员培训,数据准备与录入,系统转换,系统评价,内容概要,系统实施的任务:,根据系统设计所提供的,控制结构图,、,数据库设计,、,系统配置方案,及,详细设计资料,,编制和调试程序、调试系统、进行系统切换等工作,将技术设计转化为物理实际系统。,系统实施的任务,系统实施的任务,系统实施的准备工作,物理系统的实施,用户培训,数据准备与录入,编码,软件测试,新旧系统之间的切换,系统实施的任务,内容,建立系统平台,。,计算机系统和通信网络系统的订购,机房的准备,设备安装和调试,培训管理人员和操作人员,基础数据的准备,管理流程重组,9.1 系统实施的准备工作,1.程序设计的基本任务,根据系统设计说明书中关于模块的详细描述和处理过程的描述,选择合适的计算机语言来编制程序的工作。,9.2 程序模块的设计,2.对程序的基本要求:,正确性,:语法正确、逻辑正确、需求正确,可维护性,:维护是指,对系统进行监督、统计、评价,找出问题,并进行修改、完善和扩充,使系统能正常地运行。,可维护性是指软件能够被校正、被修改或被完善的难易程度。,可靠性,:系统在规定的外部条件下,按照规定的功能,能够运行指定的一段时间的概率。,可理解性,:理解和使用该系统的容易程度。,效率,:指计算机资源(如时间和空间)能否被有效地使用。,9.2 程序模块的设计,1.软件测试的基本概念,(1)软件测试的对象,软件=程序+文档,测试对象:各个阶段产生的源程序和文档。,9.3 测试,1.软件测试的基本概念,(2)软件测试的目的,基于不同的立场,对软件测试的目的存在着两种完全对立的观点。,一种观点是,通过测试暴露出软件中所包含的故障和缺陷,(,从用户的角度,),;,另一种是,希望测试成为表明软件产品中不存在错误的过程,验证该软件中已正确地实现了用户的要求,,因此,它们倾向于选取导致程序失败概率最小的测试实例和数据。,显然,第二种观点对完善和提高软件质量和可靠性毫无价值,因此测试的目的应该是通过软件测试尽可能多地发现并改正软件种存在的错误。,9.3 测试,1.软件测试的基本概念,Glenford J.Myers把这一观点归纳为:,测试是程序执行的过程,其目的在于发现错误。,一个好的测试实例在于发现至今未发现的错误。,一个成功的测试是发现了至今未发现的错误的测试。,因此,软件测试(Software Testing)是,从引起和发现错误的目的出发执行某一程序的过程,。,9.3 测试,1.软件测试的基本概念,(3)错误的类型,功能错误,:处理功能说明不完整或不确切,致使编程时对功能有误解而产生的错误。,系统错误,:与外部接口错误、子程序调用错误、参数使用错误等。,过程错误,:算术运算错误和逻辑运算错误,数据错误,:数据结构、实体、属性错误。,编程错误,:语法错误、程序逻辑错误、编程书写错误等。,9.3 测试,二、软件测试的基本原则,成立测试小组,。避免由软件开发部门,(,或个人,),测试自己的程序。,精心设计测试用例,。测试用例的设计和选择、预期结果的定义要有利于错误的检测。,回归测试,。对于测试中发现错误的软件,经修正后,再用原来的测试用例进行的测试称为回归测试。,集中测试出错多的模块,。经验表明:程序中尚未发现的错误的数量与在该程序段已发现的错误数量往往成正比。,9.3 测试,软件测试,衡量标准,多,能够找到尽可能多的、以至于所有的BUG,快,能够尽可能早地发现最严重的BUG,好,找到的BUG是关键的、用户最关心的,找到BUG后能够重现找到的BUG,并为修正BUG提供尽可能多的信息,省,能够用最少的时间、人力和资源发现BUG,测试的过程和数据可以重用,测试技术,不实际运行程序,而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术。也称为静态分析技术。,实际运行程序,并通过观察程序运行的实际结果来发现错误的软件测试技术。,在不知道程序内部结构,只知道程序规格的情况下采用的测试技术或策略。,在知道程序内部结构的情况下采用的测试技术或策略。,开发组内部进行的,采用讲解、讨论和模拟运行的方式进行的查找错误的活动。,开发组内部进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告。,开发组、测试组和相关人员(QA、产品经理等)联合进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告。,针对要求的程序功能,按照规范的流程进行的测试。,针对要求的程序功能以外的其他要求,包括性能、安全、配置、负载等指标,按照规范的流程进行的测试。,针对要求的程序功能、性能、安全、配置、负载等指标,基于破坏目的、按照经验进行的随机测试。,程序修改或者版本更新以后,为了确保以前正确的功能和其他指标仍旧正确,而重新进行的测试。,在测试过程中,选择足够的测试用例,使得每一个可执行语句至少被执行一次。,在测试过程中,选择足够的测试用例,使得程序中的每一个分支判断的每一种可能结果都至少被执行一次。,在测试过程中,选择足够的测试用例,使得程序中的每一条可能执行的路径都至少执行一次。,三、软件测试方法,9.3 测试,三、软件测试方法,测试法分为,黑箱法,和,白箱法,。,黑箱(Black-box Testing)法:黑箱法又称为,功能测试法,,它是根据程序功能的分析,推演出由函数定义域中有代表性的元素组成测试集,这些数据应包括对程序是有效的和无效的输入,极端的、正常的和特殊的数据元素。,因此,黑箱测试法是从外界来检查模块或程序的功能,也即根据模块的输入和输出,得出所得结果得差异。这种测试无须知道模块的内部逻辑,而是给定一输入,检查是否会得到所期望的输出。功能测试法又具体分为等价类法,边值分析法,因果图法和错误猜测法等。,9.3 测试,进行黑盒测试主要是为了发现以下几类错误:,是否有错误的功能或遗漏的功能?,界面是否有误?输入是否能够正确接受?输出是否正确?,是否有数据结构或外部数据库访问错误?,性能是否能够接受?,是否有初始化或终止性错误?,9.3 测试,等价类法,是根据程序的I/O特性,将程序的输入划分为有限个等价区段,使得从每个区段内抽区的代表性数据进行的测试等价于该区段内任何数据的测试。对于每个输入条件存在着程序有效输入的有效等价类和对程序错误输入的无效等价类。,例如,某实数X的取值范围假设为aXb,则所有a+1,b-1之间的实数构成了有效等价类,而任何-,a或b,+之间的实数构成了两个无效等价类。,9.3 测试,边值分析法,是一种根据I/O边界等价类上或紧靠边界的条件,选择测试用例的更有效的方法。例如,给定三个点,判定能否构成三角形,可选取两边之和等于第三边的实例作为边值分析法的测试用例。,因果图法,是通过从用自然语言书写的功能说明表中找出因输入条件和果输出结果,通过因果图将功能说明转换成一张判定表,然后为每种输出条件的组合设计测试用例。,错误推测法,是根据测试人员的经验和直觉推测程序种可能存在的各种错误。,9.3 测试,白箱法(White-box Testing):白箱法也称之为结构测试或逻辑覆盖法。它是根据对软件内部逻辑结构的分析,选取测试数据集(即测试用例:Testing Case),而测试数据集对程序逻辑的覆盖程度决定了测试完全性的程度。,常用的几个覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。,9.3 测试,四、软件测试的过程,软件测试是按照与系统开发相反的方向来进行的。依次为:单元测试(模块测试)、集成测试、系统测试和验收测试。,9.3 测试,设计信息,可,运,行,系,统,系统其它元素,单元测试,单元测试,单元测试,集成测试,系统测试,验收测试,软件需求信息,测后软件,测后模块,模块,模块,模块,确认后软件,图 系统测试的步骤,9.3 测试,四、软件测试的过程,单元测试,单元测试(Unit Testing)又称模块测试(Module Testing),或模块分调,用于测试单个程序模块,确定模块的逻辑和功能是否正确。单元测试的实施要以黑箱法测试其功能,辅之以白箱法测试其结构。,9.3 测试,单元测试什么时候做?,Code a little,test a little,Code all,test all,单元测试由谁来做?,单元测试是程序员的事,单元测试是编码的一部分,单元测试是程序员必备的一项基本素质,单元测试流程,管理流程,主要指动态测试应用流程,测试计划,测试设计,测试执行,测试记录,分析,测试总结,完毕,缺陷跟踪,针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。,根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。,根据测试计划,配置测试环境,并手动或者自动执行测试设计。,根据测试计划,忠实地记录测试执行的过程和结果。,分析测试记录,如果发现与预期结果不同,确定并重现缺陷。,检查测试设计是否全部执行完毕,缺陷是否全部关闭。,记录、分发、评估、关闭缺陷报告。,分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。,单元测试流程,测试文档,主要指动态测试应用文档,测试计划,测试设计,测试执行,测试记录,分析,测试总结,完毕,缺陷跟踪,测试计划文档,测试用例文档,测试记录文档,缺陷跟踪报告,测试总结报告,Junit介绍,JUnit是由Erich Gamma和Kent Beck开发的开源测试框架,JBuilder集成了这个框架并对此做了扩展。JUnit之所以流行并为广大的开发人员所推崇,一是因为它实战性强,功能强大,二是因为它实在简单。一个产品或框架要能有生命力,最好都具备这样的特点。,简单地讲这个框架提供了许多断言(assert)方法,允许你设置测试的规则,如:assertEquals()、assertNull()、assertNotSame()、assertTrue()等方法,一个测试用例包括了多个断言,当运行测试用例后,JUnit运行器会报告哪些断言没有通过,开发人员就可顺藤摸瓜搞个水落石出了。而传统的测试方法需要将期望的结果用诸如System.out.println()等语句将过程信息打印到控制台或日志中,由开发人员观察输出信息以判断是否正确,现在这种观察的工作由JUnit的那些assertXxx()方法自动完成。,Junit框架,JUnit的测试框架类结构很简单,主要由3个类组成,关系如下图:,junit.framework.Test:测试接口。junit.framework.TestCase:测试用例类,业务类的测试用例类只需要承继这个TestCase,根据情况编写若干个public void testXxx()方法,在方法中通过assertYyy()定制若干测试规则就可以了。junit.framework.TestSuite:测试套件类,它可以将多个测试用例类捆绑在一起运行,也可以捆绑另一个测试套件。,测试固件,一个测试用例可以包含若干个testXxx()测试方法,测试用例测试一个或多个类API接口的正确性,当然在调用类API时,需要事先创建这个类的对象及一些关联的对象,这组对象就称为测试固件(Fixture),相当于测试用例的“工作对象”。,Junit测试过程,TestCase实例被运行时,依照以下步骤运行:,1创建测试用例的实例。,2调用setUp()方法,执行一些初始化工作。3运行testXxx()测试方法。4调用tearDown()方法,执行销毁对象的工作。,Junit测试过程,如果测试用例类中有多个testXxx()方法,且它们都需要使用到相同的一组对象,我们可以在setUp()中实例化这组对象,并在tearDown()中销毁它们。1创建TestCase类的子类。2在子类中声明若干个测试所用的对象。,3覆盖setUp()方法,在方法中实例化这些对象。4覆盖tearDown()方法,释放这些对象的资源。,测试固件例子,1.public class MoneyTest extends TestCase2.3.private Money f12CHF;/12瑞士法郎4.private Money f14CHF;/14瑞士法郎5.private Money f28USD;/28美国美元6.protected void setUp()7.f12CHF=new Money(12,CHF);8.f14CHF=new Money(14,CHF);9.f28USD=new Money(28,USD);10.11.protected void tearDown()12.,测试用例,有了测试固件,就可以开始编写测试用例的测试方法了。当然你也可不需要测试固件而直接编写测试用例方法。,测试方法都,必须以test为前缀,,且必须是public void的,运行器以此为,反射查找,规则找到这些测试用例方法。在一个方法中可以包括多个assertYyy()方法,每个assertYyy()方法都是一个测试规则。,assertEquals(0001,student.getId();,其标准格式为:,assertEquals(String message,expected,actual);,三个参数含义:String message为输入字符,其中 表示该参数为可选择输入,,expected 表示的期望输出值,actual为实际的输出值。,测试用例,测试用例的一个具体案例,1.public class MoneyTest extends TestCase2.3.private Money f12CHF;/12瑞士法郎4.private Money f14CHF;/14瑞士法郎5.private Money f28USD;/28美国美元6.protected void setUp()7.f12CHF=new Money(12,CHF);8.f14CHF=new Money(14,CHF);9.f28USD=new Money(28,USD);10.,11.public void testMoneyBag()12.13.Money bag=f26CHF,f28USD;14.MoneyBag expected=new MoneyBag(bag);15.assertEquals(expected,12CHF.add(f28USD.add(f14CHF);,16.17.protected void tearDown()18.,1.,divide(4,0);Assert.,调试必须由了解详细设计的开发人员完成。,单元测试(Unit Testing)又称模块测试(Module Testing),或模块分调,用于测试单个程序模块,确定模块的逻辑和功能是否正确。,4调用tearDown()方法,执行销毁对象的工作。,调试必须由了解详细设计的开发人员完成。,简单地讲这个框架提供了许多断言(assert)方法,允许你设置测试的规则,如:assertEquals()、assertNull()、assertNotSame()、assertTrue()等方法,一个测试用例包括了多个断言,当运行测试用例后,JUnit运行器会报告哪些断言没有通过,开发人员就可顺藤摸瓜搞个水落石出了。,针对要求的程序功能、性能、安全、配置、负载等指标,基于破坏目的、按照经验进行的随机测试。,分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。,在测试过程中,选择足够的测试用例,使得程序中的每一条可能执行的路径都至少执行一次。,分析所建成的MIS 系统现状真实值,是否达到或超过MIS 系统分析阶段所提出的规划及设想的目标,它表明了信息系统对其预先确定的系统目标的实现程度。,assertEquals(除数不能为零!,【评价系统的构成要素】,单元测试是程序员必备的一项基本素质,负责编制和调试应用程序,测试套件,如果每次只能运行一个测试用例,那么又陷入了传统测试的窘境:手工去运行一个个测试用例,测试套件专门为解决这一问题而来。它通过TestSuite对象将多个测试用例组装成到一个测试套件,则测试套件批量运行。需要特殊指出的是,可以把一个测试套件整个添加到另一个测试套件中,就象小筐装进大筐里变成一个箧一样。,测试套件类也通过承继TestCase类实现,只不过它提供了一个public static Test suite()静态方法,在该方法中将多个测试用例捆绑组装在一起。,测试套件的一个具体例子,1.public class MoneyTestSuite extends TestCase2.3.public TestSuite1(String s)4.5.super(s);6.7.public static Test suite()8.9.TestSuite suite=new TestSuite();10.suite.addTestSuite(MoneyTest.class);11.suite.addTestSuite(MoneyBag.class);12.return suite;13.14.,测试运行器,JUnit提供了3个标准的测试运行器运行这些测试用例或测试套件,这3个测试运行器分别是:junit.textui.TestRunner:文本测试运行器。junit.awtui.TestRunner:使用AWT组件界面的测试运行器。junit.swingui.TestRunner:使用Swing组件界面的测试运行器。,待测类,public class,Calculator,public int,add,(int a,int b),return a+b;,public int,minus,(int a,int b),return a-b;,public int,multiply,(int a,int b),return a*b;,public int,divide,(int a,int b)throws Exception,if(0=b),throw new Exception(除数不能为零!);,return a/b;,该类的测试类1/4,public class,CalculatorTest,extends,TestCase,private Calculator cal;,public void,setUp(),cal=new Calculator();,public void,tearDown(),测试类必须以,TestCase,为父类,每个测试方法执行前都会调用该方法,析构测试环境,执行收尾动作,生成对象,该类的测试类2/4,public void,testAdd,(),int result=cal.add(1,2);,Assert.,assertEquals,(3,result);,public void,testMinus,(),int result=cal.minus(1,2);,Assert.,assertEquals,(-1,result);,public void,testMultiply,(),int result=cal.multiply(2,3);,Assert.,assertEquals,(6,result);,Junit3.8测试方法需满足:,1)Public的,2)Void的,3)无方法参数,4)方法名称必须以test开头,断言,调用该方法,该类的测试类3/4,public void,testDivide,(),int result=0;,try,result=cal.divide(6,4);,catch(Exception e),e.printStackTrace();,Assert.,fail,();,Assert.,assertEquals,(1,result);,期望该行代码永远不会被执行,断言失败,停止执行立即失败,该类的测试类4/4,public void,testDivide2,(),Throwable tx=null;,try,cal.divide(4,0);,Assert.,fail,();,catch(Exception ex),tx=ex;,Assert.,assertNotNull,(tx);,Assert.,assertEquals,(Exception.class,tx.getClass();,Assert.,assertEquals,(除数不能为零!,tx.getMessage();,一个方法可以有多个测试方法,输入的不同情况会有不同的testcase出现,tx是Exception类型的,一旦发生异常,则tx一定不为空,期望该行代码永远不会被执行,断言失败,停止执行立即失败,四、软件测试的过程,集成测试(子系统测试、模块联调),集成测试(Integration Testing)用来测试模块之间接口的正确性,也即模块之间的数据和控制传递。集成测试是与单元测试平行进行的。,9.3 测试,四、软件测试的过程,系统测试,系统测试(System Testing)是对软件系统种的应用程序、硬件、手工操作以及系统的任何其它的组成部分的集成的总体的测试。,验收测试,验收测试(Acceptance Testing)是由用户来完成的测试,测试系统是否满足用户的需求。,(测试、测试),9.3 测试,Test、debug,(1)测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。(2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程。(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的飞跃。(6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。(7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。,系统切换是指新系统替换老系统,即老系统停止使用,新系统开始运行的过程。,系统切换的方式有:,直接方式:,平行方式:,试点后直接切换:,逐步方式:即将系统的交付使用分阶段继续进行。,9.4 系统切换,旧 新,旧,新,旧 新,9.4 系统切换,系统切换的主要工作:,建立系统使用说明文档。包括用户操作手册(用户使用说明书)、计算机操作规程、程序说明书等。,系统初始化:对系统运行环境和资源进行设置、系统运行和控制参数设定、数据加载、调整系统与业务工作同步等。,9.4 系统切换,系统维护是计算机信息系统投入运行后,为保证系统能够正常工作、进一步满足用户新的需求所采取的对原系统的修改、完善等措施,它是系统开发生命周期的最后一个阶段。,系统维护的任务,保证信息系统安全、正常、可靠地运行,对系统进行评价,不断改善和提高信息系统性能,以充分发挥系统的作用。,9.5 系统维护与管理,系统维护的重要性,2.系统维护的内容,应用软件维护。是系统维护最重要的内容。,数据维护,数据库的备份,转储和恢复,数据库的安全性控制和完整性控制,数据库的重组和重构,代码维护,硬件设备维护。,9.5.1 系统维护的内容,3.系统维护的类型,应用软件维护包括纠错性维护、适应性维护、完善性维护和预防性维护四种类型。,纠错性维护(Corrective maintenance):,适应性维护(Adaptive maintenance):,完善性维护(Perfective maintenance):,预防性维护(Preventive maintenance):,9.5.1 系统维护的内容,4.系统维护的副作用,修改,程序,的副作用:是指对源程序的修改而引入的新错误。例如,删去或修改一个子程序,改变了逻辑运算符等,修改,数据,的副作用:对数据结构的部分或全部修改都有可能引发新的错误。例如,将共有数据,(,全局数据,),改为私有数据,(,局部数据,),,或反过来将私有数据改为共有数据,修改数据库文件中字段的类型、长度等。,文档,资料,的副作用:程序修改了,相应的文档也应该随之修改,使之与系统配置完全一致。由于不重视文档的编制,未能及时对文档作出修改,出现系统与文档不匹配,这种错误应尽可能避免。,9.5.1 系统维护的内容,TestSuite suite=new TestSuite();10.,2 信息系统的管理机构,系统初始化:对系统运行环境和资源进行设置、系统运行和控制参数设定、数据加载、调整系统与业务工作同步等。,测试套件类也通过承继TestCase类实现,只不过它提供了一个public static Test suite()静态方法,在该方法中将多个测试用例捆绑组装在一起。,并可在恢复的系统上启用数据库的后备数据,根据数据处理过程记录,将数据恢复到故障发生前的状态。,每个测试方法执行前都会调用该方法,它通常是用户所关心的首要问题,特别是金融、交通、安全系统等。,数据的非法篡改、盗用或破坏,assertEquals(String message,expected,actual);,析构测试环境,执行收尾动作,在测试过程中,选择足够的测试用例,使得每一个可执行语句至少被执行一次。,public void testDivide2(),编程错误:语法错误、程序逻辑错误、编程书写错误等。,测试套件的一个具体例子,数据库管理组:负责管理数据库的信息、数据库的安全和维护工作。,信息中心的组成和职责:,各部分和各种人员的职责,系统开发部,:协助制定信息系统规划、分析企业对信息的需求、负责应用系统的开发和文档管理工作。,系统维护部,:负责维护应用软件系统。,计算机运行组,:负责计算机硬件和系统软件的安装和维护。,数据库管理组,:负责管理数据库的信息、数据库的安全和维护工作。,网络组,:负责网络的设计、安装、运行、安全和维护工作。,9.5.2 信息系统的管理机构,信息中心的组成和职责:,各部分和各种人员的职责,程序员,:系统程序员、应用程序员、维护程序员。,系统程序员。负责编制与修改系统软件,应用程序员。负责编制和调试应用程序,维护程序员。对现有程序进行维护。,数据库管理员,。负责整个企业数据库的建立、运行安全和维护工作,是企业中了解数据库结构、内容,对数据库存取权限最高的人。,网络管理员,:负责网络的设计、建立、运行、安全和维护工作。,9.5.2 信息系统的管理机构,一、系统的安全性,1.影响安全性的因素,自然灾害、偶然事件,软件的非法删改、复制和窃取,使系统的软件泄密和破坏。,数据的非法篡改、盗用或破坏,硬件故障,9.5.3 信息系统的安全性与可靠性,一、系统的安全性,2.系统安全性的措施,物理安全控制,。为了保证系统的各种设备和环境设施的安全而采取的措施。,人员及管理控制,。指用户合法身份的确认和检验。,存取控制,。是共享资源条件下保证信息系统安全性的重要措施。通过用户鉴别,获得使用计算机权的用户,应根据预先定义好的用户权限进行存取。(防火墙、权限管理),数据加密,。加密存储和加密传输。加密是指将明文信息和数据进行编码,使它转换成一种不可理解的内容,使信息窃取者无法认识和理解其原意。解密是加密的逆过程。,9.5.3 信息系统的安全性与可靠性,二、系统的可靠性,系统可靠性是指在运行过程中能抵御各种外界干扰、正常工作的能力。主要措施有:,设备冗余技术,。指系统中有两套硬件设备,以双工或双机方式工作,用冗余的设备来防止万一发生的硬件故障。,负荷分布技术,。将信息系统的信息处理、数据存储以及其他信息管理功能分布在多个设备单元上,以防止单一设备的故障致使整个系统瘫痪。,系统重新组合技术,。当系统发生故障后,为了使系统部分恢复或完全恢复,自动将故障设备停用,或用备件替换故障设备;并可在恢复的系统上启用数据库的后备数据,根据数据处理过程记录,将数据恢复到故障发生前的状态。,9.5.3 信息系统的安全性与可靠性,9.6 信息系统评价,【目的】,信息系统评价的目的是了解信息系统了解信息系统评价的方法和一般的指标体系,在管理信息系统(MIS)开发完成并投入运行后,需要对其进行评价。对MIS 的综合评价是对其进行全面的检查、测试、分析和评价,以确定MIS 是否达到了预期的目的,并为决策提供必要的信息。由于MIS 的开发需要消耗大量的人力、财力、物力,需要很长的时间,所以MIS 的评价意义重大。,【评价的概念】,评价是在多因素相互作用下的一种综合判断。评价是为了决策,而决策需要评价,从某种意义上讲,没有评价就没有决策。综合评价是指对被评价对象所进行的客观、公正、合理的全面评价。,9.6 信息系统评价,【评价的概念】,综合评价主要有两个功能:,一是通过排序评出先进和落后,为决策提供依据;,二是通过总排序和各层单排序与基础指标的联系,找出被评价对象的优势及弱点,揭示存在的问题。,9.6 信息系统评价,【评价系统的构成要素】,评价主体,评价方法,评价基准,评价指标,评价数据,评价模型,评价思路,评价报告,评价步骤,评价客体,9.6 信息系统评价,【评价系统的构成要素】,构成综合评价问题主要有七个构成要素:,1、,评价目的,:即要明确为什么要进行综合评价,评价事物的哪一方面以及评价精度等。,2、,被评价对象,:通常是同类事物(横向)或同一事物在不同时期的表现(纵向)。,3、,评价者,:评价者可以是某个人(专家)或某个团体(专家小组),由其确定评价目的、评价对象,设计评价指标并确定指标权重系数,建立评价模型等。,9.6 信息系统评价,【评价系统的构成要素】,4、,评价指标,:是指根据研究的目的和对象,能够反映研究对象某一方面情况的特征依据。指标体系(Index System)是指由一系列相互联系的指标所构成的整体,它能够综合反映出被评价对象的各方面情况。,5、,权重系数,:简称权重,是指标对总目标的贡献程度。当被评价对象及评价指标确定时,综合评价的结果依赖于权重系数。因此,综合评价结果的可信程度取决于权重系数的确定是否合理。,9.6 信息系统评价,【评价系统的构成要素】,6、,综合评价模型,:通过数学模型将多个指标值“合成”为一个整体性的综合评价值,所应用的“合成”方法因评价目的和被评价对象的特点而异。,7、,评价结果,:输出评价结果、解释其含义,并依据评价结果进行决策。,9.6 信息系统评价,【,MIS,的综合评价指标体系】,9.6 信息系统评价,【MIS的综合评价指标体系系统建设评价】,1),规划目标科学性,(C,11,),分析MIS 系统规划目标的科学性,并要考虑到经济上的可行性,技术上的可行性和管理上的可行性。,2),规划目标实现程度,(C,12,),分析所建成的MIS 系统现状真实值,是否达到或超过MIS 系统分析阶段所提出的规划及设想的目标,它表明了信息系统对其预先确定的系统目标的实现程度。,9.6 信息系统评价,【MIS的综合评价指标体系系统建设评价】,3),先进性,(C,13,),MIS 是否满足了用户的需求、充分利用了资源、融合了先进的管理科学知识、使组织管理融于先进的信息系统中、系统的设计是否科学,是否有较强的适应性。,4),经济性,(C,14,),MIS 的投资与所实现的功能相适应的程度。,9.6 信息系统评价,【MIS的综合评价指标体系系统建设评价】,5),资源利用率,(C,15,),MIS 对计算机、外部设备、各种硬软件、信息系统资源的利用程度。,6),规范性,(C,16,),MIS 的建设应遵循相关的国际标准,国家标准和行业标准,有关文档资料应该齐全而且规范。规范化、标准化程度高的MIS 将有较强的生命力,并易于使用、维护、扩充。,9.6 信息系统评价,【,MIS,的综合评价指标体系系统性能评价】,1),可靠性,(C,21,),MIS 可靠性是由其中的硬件系统的可靠性,软件系统的可靠性等因素所共同决定的。它通常是用户所关心的首要问题,特别是金融、交通、安全系统等。,2),系统效率,(C,22,),系统效率是指系统完成其各项功能所需要的计算资源,它是系统对用户服务所表现出来的与时间有关的特性,并由MIS 的软硬件所决定。常用的系统效率指标包括,周转时间,响应时间,吞吐量,9.6 信息系统评价,【MIS的综合评价指标体系系统性能评价】,3),可维护性,(C,23,),系统的可维护性是指确定系统中的错误,并修正错误所需作出努力的大小,它由系统自身的模块化程度、简明性及一致性等因素所决定。,4),可扩充性,(C,24,),MIS 的处理能力和系统功能的可扩充程度,它可分为系统结构的可扩充性、硬件设备的可扩充性、软件功能的可扩充性等。,9.6 信息系统评价,【MIS的综合评价指标体系系统性能评价】,5),可移植性,(C,25,),系统的可移植性是指将MIS 系统从一种软硬件配置或环境移植到另一种软硬件配置或环境下所需的努力。它取决于MIS 中的软硬件特点、开发环境及通用性的考虑。,6),安全保密性,(C,26,),危及系统安全的原因有系统软硬件的不可靠、用户无意的误操作、自然灾害及敌对者采取种种手段窃取秘密或破坏系统的正常运行。必须采取有效的对策及安全措施。,9.6 信息系统评价,【MIS的综合评价指标体系MIS系统应用评价】,1),经济效益,(C,31,),MIS 所产生的经济效益,如降低成本,提高了竞争能力,改进服务质量,获得了更多的利润,通常把经济效益作为信息系统的主要目标。经济效益的评价可以采用成本-效益分析等方法。,9.6 信息系统评价,2),社会效益,(C,32,),指对国家、地区和人类的共同利益所作的贡献,它指那些不能用货币计算的非经济效益,通常MIS 的社会效益远大于其所见的直接经济效益。它体现在促进社会经济协调发展、提高科技水平、实现决策科学化、提高生产水平、为公众提供信息、增进社会福利、科学合理地利用国家资源、保护生态环境等。,3),用户满意度,(C,33,),用户满意度是指用户对MIS 的功能、性能、用户界面等各个方面的满意程度,并应考虑到人-机界面友好、操作方便、容错性强、系统易用、屏幕设计合理、有帮助功能等。MIS 的价值通过应用得到体现,只有通过用户的认可才能投入使用。,4),系统功能应用程度,(C,34,),MIS 的目标和功能是在MIS 方案设计时就确立了,系统建成后,MIS 的目标和功能实现了多少,应用到什么程度,是否达到预期的目标和技术指标。,【MIS的综合评价指标体系MIS系统应用评价】,9.6 信息系统评价,
展开阅读全文