资源描述
第八章管理信息系统的实施,8.1系统实施的概述8.2程序设计8.3编码标准8.4系统开发工具8.5系统测试8.6系统运行8.7系统评价,8.1系统实施概述,系统实施是新系统付诸实现的实践阶段,也是取得用户对系统信任的关键阶段。因此,必须根据新系统设计报告的要求,进行组织工作,主要内容包括:物理系统的实施、程序设计与调试、项目管理、人员培训、数据准备与录入、系统转换和评价等。,8.1系统实施概述,系統实施概述系统实施是继系统规划、系统分析、系统设计之后的又一个阶段,它将按照系统设计选定的方案具体实现,系统实施主要包括以下几项工作:程序设计系统测试数据录入系统转换系统测试报告与系统说明书编制系统运行管理与评价,8.1系统实施概述,以上各项工作是分别独立实现的,但又互相联系。系统实施阶段的建构(40%)与测试(20%)将消耗系统60%的开发时间,加上发行(10%),实施阶段将消耗系统开发时间的70%,还不包括转换的时间。项目实施的前1/3用来详细了解需求和发展高质量的构架方式;中间的1/3主要建立项目软件上,这一阶段程序代码会快速产生;后面的1/3焦点在检查前面阶段写出来的程序代码是否合格;,8.1系统实施概述,物理系统的实施企业的MIS,应该是一个开放的、支持各种业务工作并能随着业务变化或拓展而重构的、具有良好人机界面的应用系统。物理系统实施的内容包括:1.建立以计算机网络为主的物理系统(性价比、可扩充性,技术支持)2.物理实施的环境要求(温度、湿度、无尘、不间断电源)3.网络系统的实施(局域网,广域网)4.选择合适的开发工具(officeFoxProVBPowerBuiderSQL),8.2程序设计,系统程序设计1.编程思路整个系统自下而上、逐步推进的开发方法(从某个功能模块开始、逐步扩充)2.注意事项(1)尽量使用通用的标准方法,这可降低开发成本、减少编程工作量,同时便于系统的调试、维护及二次开发;(2)编程不是目的,应利用一些良好的开发工具、成熟的程序模块,以更好更快地完成编程任务。,8.2程序设计,程序设计原则可维护性指当系统需求变化时,容易对程序进行补充或修改。可靠性不仅正常情况下能正确工作,而且在意外情况下应便于处理。可理解性要求层次清楚,便于阅读,便于维护。效率程序的效率指程序能否有效地利用计算机资源,如节省存储空间、提高运行效率等。但片面地追求程序的运行效率反而不利于程序设计质量的全面提高,因为效率与可维护性、可理解性通常是矛盾的。,8.2程序设计,程序设计方法结构化程序设计方法编写程序应符合软件工程化思想,即应利用工程化的方法进行软件开发。这不仅可提高软件开发效率,而且便于将来的维护和修改。具体是:从整体上,应采用自顶向下的模块化设计方法;在具体编程中,则应采用结构化程序设计方法。,8.2程序设计,自顶向下的模块化设计首先确定上层功能,然后,经过层层分解,把一个复杂的系统分解为多个功能较单一的功能模块。在模块化程序设计中应注意以下几点:模块的独立性应尽可能相互独立,以便于模块独立开发。模块大小划分要适当,模块中包含的子模块数要合适。模块功能要简单底层模块一般应完成一项独立的处理任务。共享的功能模块应集中在一个上层模块中,供各模块引用。,8.2程序设计,结构化程序设计方法特点是采用以下三种基本逻辑结构来编写程序:顺序结构由一系列依次执行的语句或模块构成。循环结构循环结构是由一个或几个模块构成,程序运行时重复执行,直到满足某一条件为止.选择结构根据条件成立与否选择程序执行路径。,8.2程序设计,程序的调试程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。主要步骤:模块调试:对模块进行全面的调试;接口功能调试检测每个子模块的信息是否按设计的逻辑关系顺利流转;数据结构调试测试子功能模块内部数据变化是否符合设计要求;边界条件调试测试每个子功能模块在其值域边界是否正常;出错处理调试测试子功能模块在系统出错时,能否启动出错处理功能。,8.2程序设计,分调(功能调试)系统的应用软件通常由多个功能模块组成,每个模块由一个或几个程序构成。在单个程序调试完成以后,尚需进行分调,即将一个功能内所有程序按次序串联起来进行调试。这种调试的目的是要保证模块内各程序间具有正确的控制关系,同时可以测试模块的运行效率。分调的时间:单个程序调试完成以后。分调的做法:将一个功能内所有程序按次序串联起来进行调试。模块结构调试各个子功能模块在连接上是否有错;模块数据调试测试子功能模块之间数据的传输是否有效、完整、一致;模块接口调试测试人机界面和子功能模块间的通信接口是否符合设计;模块外设调试测试各个子功能模块运行时是否与外设正确连接。,8.2程序设计,总调(能行性联调)1.主控程序和调度程序调试调试目的不是处理结果的正确性,而是验证控制接口和参数传递的正确性,以便发现并解决逻辑控制问题。调试时,将所有控制程序与各功能模块的接口“短路”,即用直接送出预先安排计算结果的联系程序代替原功能模块。调试目的不是处理结果的正确性,而是验证控制接口和参数传递的正确性,以及发现并解决资源调度中的问题。,8.2程序设计,2.程序的总调是将主控制和调度程序与各功能模块联结起来进行总体调试。这一阶段查出的往往是模块间相互关系方面的错误和缺陷。功能模块和控制程序调试完成后,即可进行整个程序的总调。也就是将主控制和调度程序与各功能模块联结起来进行总体调试。对系统各种可能的使用形态及其组合在软件中的流通情况进行能行性测试。这一阶段查出的往往是模块间相互关系方面的错误和缺陷。总调应由系统分析员和程序员合作进行。,8.2程序设计,衡量编程工作的指标可靠性程序或系统的安全可靠性;程序运行的可靠性;规范性系统的划分、书写格式,变量的命名都按统一规范;可读性程序简单清晰、注释说明详细等;可维护性不同功能模块之间应尽量保持独立。,8.3编程标准,C#编程规范1.命名惯例和规范注记:Pascal大小写形式所有单词第一个字母大写,其他字母小写。Camel大小写形式除了第一个单词,所有单词第一个字母大写,其他字母小写。类名使用Pascal大小写形式publicclassHelloWorld.方法使用Pascal大小写形式publicclassHelloWorldvoidSayHello(stringname).变量和方法参数使用Camel大小写形式publicclassHelloWorldinttotalCount=0;voidSayHello(stringname)stringfullMessage=Hello+name;.,8.3编程标准,根据类的具体情况进行合理的命名以Class声明的类,都必须以名词或名词短语命名,体现类的作用。如:ClassIndicator当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾,如ClassScreenClassClassSystemClass当类只用于作为其他类的基类,根据情况,以Base结尾:ClassIndicatorBase不要使用匈牙利方法来命名变量以前,多数程序员喜欢它把数据类型作为变量名的前缀而m_作为成员变量的前缀。例如:stringm_sName;intnAge;然而,这种方式在.NET编码规范中是不推荐的。所有变量都用camel大小写形式,而不是用数据类型和m_来作前缀。,8.3编程标准,控件命名建议使用控件名简写作为前缀,并且简写的首字母小写,符合Camel规范。格式:控件名简写+英文描述,英文描述首字母大写主要控件名简写对照表:TextBoxtxtButtonbtnCheckBoxchkRadioButtonrdoCheckBoxListchklstRadioButtonListrdolstListBoxlstDropDownListddlDataGriddgDataListdlImageimgTabletblPanelpnlLabellbl,LinkButtonlnkbtnImageButtonimgbtnCalendercldAdRotatorarRequiredFieldValidatorrfvCompareValidatorcvRangeValidatorrvRegularExpressionValidatorrevValidatorSummaryvsCrystalReportViewerrptvew,8.3编程标准,用有意义的,描述性的词语来命名变量别用缩写。用name,address,salary等代替nam,addr,sal;别使用单个字母的变量象i,n,x等.使用index,temp等;用于循环迭代的变量例外:for(inti=0;icount;i+).如果变量只用于迭代计数,没有在循环的其他地方出现,许多人还是喜欢用单个字母的变量(i),而不是另外取名。变量名中不使用下划线(_)。文件名要和类名匹配例如,对于类HelloWorld,相应的文件名应为HelloWorld.cs(或,HelloWorld.vb),8.3编程标准,2.良好的编程习惯遵从以下良好的习惯以写出好程序:1)避免使用大文件。如果一个文件里的代码超过300400行,必须考虑将代码分开到不同类中。2)避免写太长的方法。一个典型的方法代码在125行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。3)方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。好:voidSavePhoneNumber(stringphoneNumber)/Savethephonenumber.不好:/Thismethodwillsavethephonenumber.voidSaveData(stringphoneNumber)/Savethephonenumber.,8.3编程标准,4)一个方法只完成一个任务,不要把多个任务组合一个方法中,即使那些任务非常小;5)使用C#或VB.NET的特有类型,而不是System命名空间中定义的别名类型;好:intage;stringname;不好:Int16age;Stringnem;6)别在程序中使用固定数值,用常量代替;好:enumMailTypeHtml,PlainText,AttachmentvoidSendMail(stringmessage,MailTypemailType)switch(mailType)caseMailType.Html:/Dosomethingbreak;caseMailType.PlainText:/Dosomethingbreak;caseMailType.Attachment:/Dosomethingbreak;default:/Dosomethingbreak;,不好:voidSendMail(stringmessage,stringmailType)switch(mailType)caseHtml:/Dosomethingbreak;casePlainText:/Dosomethingbreak;caseAttachment:/Dosomethingbreak;default:/Dosomethingbreak;,8.3编程标准,3.注释文件头部注释在代码文件的头部进行注释,标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的手。样本:/*作者:Eunge*创始时间:2004-6-8*修改人:Koffer*修改时间:2004-12-9*修改人:Ken*修改时间:2005-01-29*描述:*主要用于产品信息的资料录入,*/我们甚至可以在这段文件头注释中加入版权信息、文件名、版本信息等。,8.4系统开发工具,(1)常用编程语言类:C语言、C+语言、COBOL语言、PROLGO语言、OPS语言(2)数据库类:XBASE系统(3)程序生成工具类:FoxPro、VisualBASIC、VisualC+、CASE、PowerBuider(4)系统开发工具类(5)客户/服务器(C/S)工具类:FoxPro、VisualBASIC、VisualC+、Excel、PowerPoint、Word、PowerBuilder、Enterprise(6)面向对象编程工具类:C+(VC+)、Smalltalk,8.5系统测试,测试概述系统进行测试是保证系统质量的关键步骤,测试的目的在于发现其中的错误并及时纠正。测试的定义应该是:为了发现错误而执行程序的过程。没有发现错误的测试则是失败的测试。测试的策略和基本原则:测试用例应该由“输入数据”和“预期的输出结果”组成;不仅要选用合理的输入数据进行测试,还应选用不合理的甚至错误的输入数据;除了检查程序是否做了它应该做的工作,还应检查程序是否做了它不该做的事;应该长期保留所有的测试用例,直至该系统被废弃不用为止。,8.5系统测试,系统测试的方法静态测试法:以人工方式对程序进行分析和测试。静态测试法成效比较明显,可以查出30-70%的逻辑错误,成本低。动态测试法:黑盒法:将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。白盒法:分析程序结构与过程执行路径,按照程序内部的逻辑结构设计测试用例,检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。覆盖路径,检查所有路径是否正确。需要说明的是,系统测试只能证明错误存在,不能证明错误不存在。这是因为不可能穷举数据,不可能完全覆盖路径,这样就不能证明系统中不存在错误。,8.5系统测试,系统测试的分类单元测试指对软件中最小可测试单元进行检查和验证。例如:C语言中,单元一般指1个函数;在Java里,单元一般指1个类;在图形化的软件中,单元也可以指1个窗口,1个菜单等。总结起来,单元就是人为规定的最小的被测功能模块。单元测试的通过标准:程序通过所有单元测试的用例语句的覆盖率达到100%分支覆盖率达到85%,8.5系统测试,组合测试(集成测试)单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。在组合测试过程中,要为模块设计一个驱动模块和若干个桩模块。驱动模块:驱动模块是模拟待测模块X的调用模块,其作用是将测试数据传送给待测模块X,并显示待测模块X的结果。,8.5系统测试,桩模块:桩模块的作用是模拟待测模块X的下层模块E。其作用是接受待测模块X的控制并模拟下层模块E的功能。,8.5系统测试,确认测试集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。目的是向用户表明软件系统的有效性,确认测试技术以黑盒法为主,以验证软件是否满足SRS(软件需求说明书)规定的需求。,8.5系统测试,系统测试系统测试是指将整个系统看做1个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。验收测试系统测试后期,以用户测试为主,或有测试人人员等质量保障人员共同参与的测试,它也是软件正式交给用户的最后一道工序。验收测试又分a(阿发)测试和B(贝搭)测试。,8.5系统测试,测试内容的综述,8.6系统运行,日常的运行管理系统运行的日常管理(由系统管理员完成)内容包括:数据的收集、整理和录入系统输出结果的整理与分发系统运行情况的记录除了记录正常情况(如处理效率、文件存取率、更新率)外,还要记录意外情况发生的时间、原因与处理结果。硬件和设施的日常管理,8.6系统运行,系统维护内容包括:-程序的维护指根据需求变化或硬件环境的变化对程序进行部分或全部的修改。-数据文件的维护一般使用开发商提供文件维护程序,也可自行编制专用的文件维护程序。-代码的维护如订正、添加、删除及重新设计。,8.6系统运行,运行管理体制管理信息系统的开发和应用需要的人才1.系统工作人员:负责系统分析与设计2.程序员:负责编写和调试程序3.操作员:包括上机操作人员和数据录入人员4.硬件人员:负责机器维护和保养工作5.项目负责人:系统开发的总工程师项目开发还应由管理人员参与,应加强用户和设计人员之间的理解和沟通。计算机和用户的关系是计算机为用户服务,而不是用户为计算机服务,之间的理解和沟通。,8.7系统评价,评价贯穿系统建设的全过程,尤其在设计、实施阶段更为重要。它分析系统的处理,以确保系统能按期望运行。系统运行一段时间后,应对运行情况做出客观评价,以此作为系统维护、升级改造、二次开发的依据。系统评价的目的测试系统目标是否达到预期效果;检查系统中各种信息资源的利用情况;分析投入产出比(经济效益);找出新系统的薄弱环节,提出改进方案。,8.7系统评价,评价指标系统评价指标体系,8.7系统评价,评价报告评价报告一般包括以下5个方面:系统运行的一般情况系统的使用效果系统的性能系统的经济效益统存在的问题及改进意见技术指标评价对信息系统的功能评价对现有硬件和软件的评价对信息系统的应用评价对信息系统的经济效果评价,8.7系统评价,系统经济评价信息系统直接经济效益的评价信息系统间接经济效益的评价-管理体制是否进一步合理化-理方法是否进一步科学化-管理基础数据是否进一步科学化-管理效果是否进一步最佳化-管理人员的劳动性质是否发生变化,管理信息系统的实施小结,
展开阅读全文