1、2023年2月15日星期三第第7章物流信息系统实施章物流信息系统实施与运行管理与运行管理7.物流信息系统物流信息系统实施与运行管实施与运行管理理7.1 物流信息系统实施概述物流信息系统实施概述7.2 程序设计程序设计7.3 程序调试程序调试7.4 数据准备数据准备7.5 系统测试系统测试7.6 系统切换及人员培训系统切换及人员培训7.7 物流信息系统运行管理物流信息系统运行管理7.8 物流信息系统评价物流信息系统评价7.1 7.1 物流信息系统实施概物流信息系统实施概述述 当系统分析与系统设计的工作完成以后,开发人员当系统分析与系统设计的工作完成以后,开发人员的工作重点就从系统分析、设计和创造
2、性思考的阶段转的工作重点就从系统分析、设计和创造性思考的阶段转入实践阶段。在此期间,将投入大量的人力、物力及占入实践阶段。在此期间,将投入大量的人力、物力及占用较长的时间进行物理系统的实施、程序设计、程序和用较长的时间进行物理系统的实施、程序设计、程序和系统调试、人员培训、系统转换、系统管理等一系列工系统调试、人员培训、系统转换、系统管理等一系列工作,这个过程称为系统实施。作,这个过程称为系统实施。(1)系统实施的目标系统实施的目标 系统实施的目标就是把系统设计的物理模型转换成系统实施的目标就是把系统设计的物理模型转换成可实际运行的新系统可实际运行的新系统。(2)系统实施的任务及步骤系统实施的
3、任务及步骤 系统实施阶段的主要任务有:系统实施阶段的主要任务有:物理系统的实施;物理系统的实施;程序设计与程序调试;程序设计与程序调试;7.1 7.1 物流信息系统实施概述物流信息系统实施概述 数据准备;数据准备;系统测试;系统测试;系统切换;系统切换;人员培训。人员培训。系统实施的步骤是系统实施的步骤是:系统实施首先进行物理系统的实施,根据计算机物系统实施首先进行物理系统的实施,根据计算机物理系统配置方案购买和安装计算机硬、软件系统和通信理系统配置方案购买和安装计算机硬、软件系统和通信网络系统网络系统(如果购买的时间太早会带来经济上的损失如果购买的时间太早会带来经济上的损失),还包括计算机机
4、房的准备和设备安装调试等一系列活动还包括计算机机房的准备和设备安装调试等一系列活动,熟悉计算机物理系统的性能和使用方法,同时进行程,熟悉计算机物理系统的性能和使用方法,同时进行程序设计;接着是收集有关数据并进行录入工作;然后是序设计;接着是收集有关数据并进行录入工作;然后是系统调试;最后是人员培训和系统切换。系统调试;最后是人员培训和系统切换。7.2 程序设计程序设计 程序设计的主要依据是系统设计阶段的程序设计的主要依据是系统设计阶段的HIPO图以及图以及数据库结构和编程语言设计。数据库结构和编程语言设计。程序设计的目的是使用计算机语言实现系统设计中程序设计的目的是使用计算机语言实现系统设计中
5、的每一个细节。的每一个细节。编程的目的是为了实现开发者在系统分析和系统设编程的目的是为了实现开发者在系统分析和系统设计中所提出的管理方法和处理构想,编程不是系统开发计中所提出的管理方法和处理构想,编程不是系统开发的目的。在编程实现时,建议尽量借用已有的程序和各的目的。在编程实现时,建议尽量借用已有的程序和各种开发工具,尽快、尽好地实现系统。种开发工具,尽快、尽好地实现系统。7.2.1 程序设计的任务和要求程序设计的任务和要求(1)程序设计的任务程序设计的任务 程序设计的任务是为新系统编写程序,即把详细设程序设计的任务是为新系统编写程序,即把详细设计的结果转换成某种计算机编程语言写成的程序。计的
6、结果转换成某种计算机编程语言写成的程序。(2)程序设计的基本要求程序设计的基本要求 正确性。正确性。编写的程序能够严格按照规定的要求,准确无编写的程序能够严格按照规定的要求,准确无误地提供与其的全部信息。误地提供与其的全部信息。7.2 程序设程序设计计 可理解性。可理解性。程序的内容清晰、明了,便于阅读和理解。程序的内容清晰、明了,便于阅读和理解。可靠性。可靠性。程序要具有较好的容错能力,不仅在正常情况下程序要具有较好的容错能力,不仅在正常情况下能正确工作,而且在异常情况下也能便于处理。能正确工作,而且在异常情况下也能便于处理。可维护性。可维护性。程序的应变性强,即在程序执行过程中发现问程序的
7、应变性强,即在程序执行过程中发现问题或客观条件变化时,调整和修改程序比较简便易行。题或客观条件变化时,调整和修改程序比较简便易行。效率高。效率高。程序的结构严谨,运算处理速度快,节省机时;程序的结构严谨,运算处理速度快,节省机时;程序和数据的存储、调用安排得当,节省存储空间。程序和数据的存储、调用安排得当,节省存储空间。此外,程序设计结束后,还应写出程序使用说明书此外,程序设计结束后,还应写出程序使用说明书,说明使用该程序时的具体操作步骤。,说明使用该程序时的具体操作步骤。7.2.2 程序设计方法和步骤程序设计方法和步骤(1)程序设计方法程序设计方法 结构化程序设计结构化程序设计(Struct
8、ured Programing,SP)方方法法 结构化程序设计方法,由结构化程序设计方法,由EDIJKSTRA等人于等人于1972年年提出,提出,7.2 程序设程序设计计用于详细设计和程序设计阶段,指导人们用良好的思想方用于详细设计和程序设计阶段,指导人们用良好的思想方法,开发出正确又易于理解的程序。法,开发出正确又易于理解的程序。结构化程序设计方法按照结构化程序设计方法按照HIPO图的要求,用结构化图的要求,用结构化的方法来分解内容和设计程序。的方法来分解内容和设计程序。结构化程序设计方法的内部强调自顶向下地分析和设结构化程序设计方法的内部强调自顶向下地分析和设计,外部强调自底向上地实现整个
9、系统。计,外部强调自底向上地实现整个系统。结构化程序设计方法主要强调:结构化程序设计方法主要强调:模块内部程序各部分要自顶向下地结构化划分;模块内部程序各部分要自顶向下地结构化划分;各程序部分应按功能组合;各程序部分应按功能组合;各程序部分的联系尽量使用子程序调用(各程序部分的联系尽量使用子程序调用(Call-Return)方式,不用或少用)方式,不用或少用Goto方式。方式。HIPO(hierarchy plus input-process-output)图是图是IBM公司于公司于70年代中期在层次结构图年代中期在层次结构图(structure chart)的的基础上推出的一种描述系统结构和
10、模块内部处理功能的工基础上推出的一种描述系统结构和模块内部处理功能的工具具(技术技术)。HIPO图由图由7.2 程序设计程序设计层次结构图和层次结构图和IPO图两部分构成图两部分构成,前者描述了整个系统的设前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入块内部的处理过程和输入/输出关系。输出关系。原型方法原型方法 原型法首先将原型法首先将HIPO图中带有普遍性的功能模块集中图中带有普遍性的功能模块集中,如菜单模块、报表模块、查询模块、统计分析和图形模,如菜单模块、报表模块、查询模块、统计分析和图形模
11、块等;然后寻找有无相应和可用的软件工具,若有则使用块等;然后寻找有无相应和可用的软件工具,若有则使用这些工具生成这些程序模型原型。否则,可考虑开发一个这些工具生成这些程序模型原型。否则,可考虑开发一个能够适合各子系统情况的通用模块。能够适合各子系统情况的通用模块。面向对象程序设计方法面向对象程序设计方法 面向对象的程序设计方法一般应与面向对象设计(面向对象的程序设计方法一般应与面向对象设计(OOD)所设计的内容相对应。它实际上是一个简单、直)所设计的内容相对应。它实际上是一个简单、直接的映射过程,即将接的映射过程,即将OOD中所定义的范式直接用面向对中所定义的范式直接用面向对象的程序(象的程序
12、(OOP)。)。7.2 程序设计程序设计(2)程序设计步骤程序设计步骤 明确条件和要求明确条件和要求。根据系统设计及其他有关资料,弄根据系统设计及其他有关资料,弄清楚该程序设计的条件和设计要求。清楚该程序设计的条件和设计要求。分析数据。分析数据。首先对要处理的数据进行仔细分析,弄清数首先对要处理的数据进行仔细分析,弄清数据的详细内容和特点,然后按照要求确定数据的数量和层次结构,据的详细内容和特点,然后按照要求确定数据的数量和层次结构,安排输入、输出、存储、加工处理,以及具体的计算方法等。安排输入、输出、存储、加工处理,以及具体的计算方法等。确定流程。确定流程。依据数据的输入、输出、存储、加工处
13、理过依据数据的输入、输出、存储、加工处理过程,绘制程序流程图。程,绘制程序流程图。编写程序。编写程序。采用一种程序设计语言,按其规定的语法规采用一种程序设计语言,按其规定的语法规则把确定的流程描写出来。则把确定的流程描写出来。检查和调试。检查和调试。检查内容包括程序结构安排是否得当,语检查内容包括程序结构安排是否得当,语句的选用和组织是否合理,语法是否符合规定,语义是否准确等。句的选用和组织是否合理,语法是否符合规定,语义是否准确等。发现问题要及时进行修改。发现问题要及时进行修改。编写程序使用说明书。编写程序使用说明书。说明执行程序需要使用的设备说明执行程序需要使用的设备,输入、输出的安排,操
14、作的步骤,以及出现意外情况时采取的应,输入、输出的安排,操作的步骤,以及出现意外情况时采取的应变措施等,以便程序运行有条不紊地进行。变措施等,以便程序运行有条不紊地进行。17.2 程序设程序设计计7.2.3 程序设计的风格程序设计的风格 程序的可读性对于软件,尤其是对软件的质量有重程序的可读性对于软件,尤其是对软件的质量有重要影响,因此在程序设计过程中应当充分重视。为了提高要影响,因此在程序设计过程中应当充分重视。为了提高程序的可读性,在程序设计风格方面应注意以下几点:程序的可读性,在程序设计风格方面应注意以下几点:(1)适当的程序注释适当的程序注释 程序中适当地加上注释后,可以使程序成为一篇
15、程序中适当地加上注释后,可以使程序成为一篇“自自我解释我解释”的文章,读程序时就不必翻阅其它说明材料了。的文章,读程序时就不必翻阅其它说明材料了。注释原则上可以出现在程序中的任何位置,但是如果注释原则上可以出现在程序中的任何位置,但是如果使注释和程序的结构配合起来则效果更好。注释一般分为使注释和程序的结构配合起来则效果更好。注释一般分为两类:序言性注释和描述性注释。两类:序言性注释和描述性注释。序言性注释出现在模块的首部,内容包括:模块功能序言性注释出现在模块的首部,内容包括:模块功能说明;界面描述(如调用语句格式、所有参数的解释和该说明;界面描述(如调用语句格式、所有参数的解释和该模块需调用
16、的模块名等);某些重要变量的使用、限制;模块需调用的模块名等);某些重要变量的使用、限制;开发信息如作者、复查日期、修改日期等。开发信息如作者、复查日期、修改日期等。7.2 程序设计程序设计v 描述性注释嵌在程序之中,用来说明程序段的功能或描述性注释嵌在程序之中,用来说明程序段的功能或数据的状态。数据的状态。如果详细设计是用过程设计语言(如果详细设计是用过程设计语言(PDL)描述的,则)描述的,则编程时可将编程时可将PDL描述嵌在程序中。描述嵌在程序中。书写注释时应注意:书写注释时应注意:注释应和程序一致,修改程序时应同时修改注释,注释应和程序一致,修改程序时应同时修改注释,否则会起反作用,使
17、人更难明白。否则会起反作用,使人更难明白。注释应提供一些程序本身难以表达的信息。注释应提供一些程序本身难以表达的信息。为了方便用户今后维护,注释应尽量多用汉字。为了方便用户今后维护,注释应尽量多用汉字。(2)有规律的程序书写格式有规律的程序书写格式 恰当的书写格式将有助于阅读,在结构化程序设计中恰当的书写格式将有助于阅读,在结构化程序设计中一般采用所谓一般采用所谓“缩排法缩排法”来写程序,即把同一层次的语句来写程序,即把同一层次的语句行左端对齐,而下一层的语句则向右边缩进若干格书写,行左端对齐,而下一层的语句则向右边缩进若干格书写,它能体现程序逻辑结构的深度。此外,在程序段与段之间它能体现程序
18、逻辑结构的深度。此外,在程序段与段之间安排空白行,也有安排空白行,也有7.2 程序设计程序设计助于阅读。助于阅读。(3)恰当选择变量名恰当选择变量名 理解程序中每个变量的含义是理解程序的关键,所理解程序中每个变量的含义是理解程序的关键,所以变量的名字应该适当选取,使其直观,易于理解和记忆以变量的名字应该适当选取,使其直观,易于理解和记忆。例如采用有实际意义的变量名、。例如采用有实际意义的变量名、不用过于相似的变量名不用过于相似的变量名、同一变量名不要具有多种意义。此外,在编程前最好能同一变量名不要具有多种意义。此外,在编程前最好能对变量名的选取约定统一标准,以后阅读理解就会方便的对变量名的选取
19、约定统一标准,以后阅读理解就会方便的多。多。7.2.4 常用的编程工具常用的编程工具 目前比较流行的软件工具可分为目前比较流行的软件工具可分为6类:一般编程语言类:一般编程语言,数据库系统,程序生成工具、专用系统开发工具、客户,数据库系统,程序生成工具、专用系统开发工具、客户/服务器(服务器(client/Server,C/S)型工具以及面向对象的编程)型工具以及面向对象的编程工具。工具。(1)常用编程语言类常用编程语言类 它是指由传统编程工具发展而来的一类程序设计语它是指由传统编程工具发展而来的一类程序设计语言。言。(2)数据库类数据库类7.2 程序设计程序设计 它是物流信息系统中数据存放的
20、中心和整个系统数据它是物流信息系统中数据存放的中心和整个系统数据传递和交换的枢纽。目前市场上提供的主要有:传递和交换的枢纽。目前市场上提供的主要有:xBASE系系统(以微机关系数据库为基础)和大型数据库系统。统(以微机关系数据库为基础)和大型数据库系统。(3)程序生成工具类程序生成工具类 它是指第四代程序它是指第四代程序(4GLs)生成语言,是一种常用数据生成语言,是一种常用数据处理功能和程序之间的对应关系的自动编程工具。处理功能和程序之间的对应关系的自动编程工具。(4)系统开发工具类系统开发工具类 它是在程序生成工具基础上进一步发展起来的,可帮它是在程序生成工具基础上进一步发展起来的,可帮助
21、用户生成应用系统中大部分常用的处理功能。目前主要助用户生成应用系统中大部分常用的处理功能。目前主要有专门开发工具类和综合开发工具类。有专门开发工具类和综合开发工具类。(5)客户客户/服务器服务器(C/S)工具类工具类 它是采用了人类在经济和管理学中经常提到的它是采用了人类在经济和管理学中经常提到的“专专业化分工协作业化分工协作”的思想而产生的开发工具。它是在原有开的思想而产生的开发工具。它是在原有开发工具的基础上,将原有工具改变为一个发工具的基础上,将原有工具改变为一个 个既可被其它工个既可被其它工具调用的,又可以调用其它工具的具调用的,又可以调用其它工具的“公共模块公共模块”。在整个。在整个
22、系统结构方面,系统结构方面,7.2 程序设计程序设计采用了传统分布式系统的思想,产生了前台和后台的作业采用了传统分布式系统的思想,产生了前台和后台的作业方式,减轻了网络的压力,提高了系统运行的效率。方式,减轻了网络的压力,提高了系统运行的效率。(6)面向对象编程工具类面向对象编程工具类 它主要是指与它主要是指与OO方法相对应的编程工具。方法相对应的编程工具。7.3 程序调试程序调试7.3.1程序调试的意义和目的程序调试的意义和目的 在物流信息系统开发周期的各个阶段都不可避免地在物流信息系统开发周期的各个阶段都不可避免地会出现差错。会出现差错。系统调试是保证系统质量的关键步骤。统计资料表系统调试
23、是保证系统质量的关键步骤。统计资料表明,对于一些较大规模的系统来说,系统调试的工作量明,对于一些较大规模的系统来说,系统调试的工作量往往占程序系统编制开发总工作量的往往占程序系统编制开发总工作量的40%以上。以上。调试的目的在于发现其中的错误并及时纠正,所以调试的目的在于发现其中的错误并及时纠正,所以在调试时应想方设法使程序的各个部分都投入运行,力在调试时应想方设法使程序的各个部分都投入运行,力图找出所有错误。错误多少与程序质量有关。图找出所有错误。错误多少与程序质量有关。7.3.2程序调试的步骤程序调试的步骤 一个物流信息系统通常由若干子系统组成,每个子一个物流信息系统通常由若干子系统组成,
24、每个子系统又由若干模块(程序)组成。所以,调试工作可分系统又由若干模块(程序)组成。所以,调试工作可分为模块(程序)调试、分调(子系统调试)和总调(系为模块(程序)调试、分调(子系统调试)和总调(系统调试)三个层次。统调试)三个层次。程序调试的主要步骤图程序调试的主要步骤图7.3 程序调试程序调试(1)模块调试模块调试 模块(程序)调试的目的是保证每个模块本身能正模块(程序)调试的目的是保证每个模块本身能正常运行,在该步调试中发现的问题大都是常运行,在该步调试中发现的问题大都是程序设计或详细程序设计或详细设计设计中的错误。中的错误。模块调试,一般分成模块调试,一般分成人工走通人工走通和和上机调
25、试上机调试两步进行两步进行。程序的错误可分成语法错误和逻辑错误两种情况。程序的错误可分成语法错误和逻辑错误两种情况。程序的检查最好请审查小组或其他开发者。目前的调试基程序的检查最好请审查小组或其他开发者。目前的调试基本上还是由编程者本人进行。按各层次人员的分工,模块本上还是由编程者本人进行。按各层次人员的分工,模块调试应由操作员或程序员来进行。调试应由操作员或程序员来进行。当人工走通后,就可以上机调试了。当人工走通后,就可以上机调试了。总之,语法错误比较容易发现和修改,但是检查的总之,语法错误比较容易发现和修改,但是检查的全面性不尽相同。为了有效地发现并改正逻辑错误,一方全面性不尽相同。为了有
26、效地发现并改正逻辑错误,一方面,认真设计调试用例;另一方面,充分利用高级语言提面,认真设计调试用例;另一方面,充分利用高级语言提供的调试机制或软件工具供的调试机制或软件工具。7.3 程序调试程序调试(2)分调分调 分调也称子系统调试,就是把经过调试的模块放在分调也称子系统调试,就是把经过调试的模块放在一起形成一个子系统来调试。主要是调试各模块之间的协一起形成一个子系统来调试。主要是调试各模块之间的协调和通信,即重点调试子系统内各模块的接口。例如,数调和通信,即重点调试子系统内各模块的接口。例如,数据穿过接口时可能丢失;一个模块对另一个模块可能存在据穿过接口时可能丢失;一个模块对另一个模块可能存
27、在因疏忽而造成的有害影响;把若干子功能结合起来可能不因疏忽而造成的有害影响;把若干子功能结合起来可能不产生预期的主功能等等。产生预期的主功能等等。分调通常有两种方法:分调通常有两种方法:“非渐增式非渐增式”调试,是先分别调试每个模块,再把调试,是先分别调试每个模块,再把所有模块按设计要求连成一起进行调试。所有模块按设计要求连成一起进行调试。“渐增式渐增式”调试,是把下一个要调试的模块同已经调试,是把下一个要调试的模块同已经调试好的那些模块结合起来进行调试,调试完成后再把下调试好的那些模块结合起来进行调试,调试完成后再把下一个应该调试的模块结合进来调试。这种方式实际上同时一个应该调试的模块结合进
28、来调试。这种方式实际上同时完成了模块调试和子系统调试。完成了模块调试和子系统调试。7.3 程序调试程序调试7.3 程序调试程序调试图图1 子系统调试示例子系统调试示例 图图2 2 驱动模块和桩模块驱动模块和桩模块 非渐增式调试非渐增式调试 在调试某个模块在调试某个模块X时,需要临时,需要临时设计一个驱动模块和若干个桩模时设计一个驱动模块和若干个桩模块。驱动模块的作用是模拟块。驱动模块的作用是模拟X的调的调用模块,桩模块的作用则是模拟用模块,桩模块的作用则是模拟X的下层模块。的下层模块。例:调试图例:调试图1中的模块中的模块B。要设计一个驱动模块,其作用要设计一个驱动模块,其作用是将调试数据传送
29、给模块是将调试数据传送给模块B并接收并接收和显示和显示B产生的结果。同时,还需产生的结果。同时,还需设计一个桩模块,用来接受设计一个桩模块,用来接受B的控的控制并模拟制并模拟E的功能。临时模块(驱的功能。临时模块(驱动模块和桩模块)可以设计的非常动模块和桩模块)可以设计的非常简单,只要满足调试要求即可。简单,只要满足调试要求即可。7.3 程序调试程序调试图图1 子系统调试示例子系统调试示例 渐增式调试渐增式调试 又可分为又可分为“由顶向下由顶向下”、“由由底向上底向上”等多种方式调试。等多种方式调试。例:调试图例:调试图1的子系统。的子系统。若采用若采用“由底向上由底向上”的渐增式方式,则先顺
30、序地或并行的渐增式方式,则先顺序地或并行地(由三人完成)调试模块地(由三人完成)调试模块E、C、F,此时只需为每个模块临,此时只需为每个模块临时准备驱动模块,但不需要桩模块,然后为模块时准备驱动模块,但不需要桩模块,然后为模块B准备一个驱准备一个驱动模块,将模块动模块,将模块B与模块与模块E连接起来调试,再为模块连接起来调试,再为模块D准备一准备一个驱动模块将个驱动模块将D与与F连接起来调试,最后把模块连接起来调试,最后把模块A与其它各模与其它各模块连接并调试。块连接并调试。对于物流信息系统来说,采用对于物流信息系统来说,采用“由底向上由底向上”的渐增式方的渐增式方法是一种较为适合的调试方法。
31、法是一种较为适合的调试方法。在调试一个实际系统时,当把一个已经充分调试过在调试一个实际系统时,当把一个已经充分调试过的模块结合进来时,可以着重调试模块之间的接口;当一的模块结合进来时,可以着重调试模块之间的接口;当一个没有充分调试过的模块结合进来时,则需要利用已调试个没有充分调试过的模块结合进来时,则需要利用已调试过的模块充分调试它。过的模块充分调试它。(3)总调总调 总调,也称为系统调试,是把调试过的子系统装配总调,也称为系统调试,是把调试过的子系统装配成一个完整的系统来调试,用以发现成一个完整的系统来调试,用以发现系统设计和程序设计系统设计和程序设计中的错误,验证系统的功能是否达到设计说明
32、书的要求。中的错误,验证系统的功能是否达到设计说明书的要求。总调时,采用一些精心设计的数据量较少的调试用总调时,采用一些精心设计的数据量较少的调试用例,不仅减少工作量,更容易发现错误和确定错误所在范例,不仅减少工作量,更容易发现错误和确定错误所在范围。围。总调完成后,可将原始系统手工作业方式得出的结总调完成后,可将原始系统手工作业方式得出的结果正确的数据作为新系统的输入数据进行果正确的数据作为新系统的输入数据进行“真实真实”运行,运行,不仅将结果与手工作业进行校核,还考察了系统的有效性不仅将结果与手工作业进行校核,还考察了系统的有效性、可靠性和效率。所以,系统调试时最好请用户一起参加、可靠性和
33、效率。所以,系统调试时最好请用户一起参加。7.3 程序调试程序调试 系统调试的关键是系统调试的关键是“真实真实”和全面。进行系统调试和全面。进行系统调试应该注重以下几点:应该注重以下几点:调试用例应由实际意义的数据组成的。可请用户参调试用例应由实际意义的数据组成的。可请用户参与调试用例的设计。与调试用例的设计。某些已经调试过的纯粹技术的特点不需再次执行。某些已经调试过的纯粹技术的特点不需再次执行。对用户特别感兴趣的功能或性能,可以增加一些调对用户特别感兴趣的功能或性能,可以增加一些调试。试。设计并执行一些与用户使用步骤有关的调试。设计并执行一些与用户使用步骤有关的调试。在总调和系统调试前充分准
34、备,尽量使用户积极主在总调和系统调试前充分准备,尽量使用户积极主动地参与。在总调前由开发部门对用户进行培训。动地参与。在总调前由开发部门对用户进行培训。总调阶段发现的问题往往和系统分析阶段的差错有总调阶段发现的问题往往和系统分析阶段的差错有关,涉及面较广且解决起来也较困难,这时需要和用户关,涉及面较广且解决起来也较困难,这时需要和用户充分协商解决。充分协商解决。7.3 程序调试程序调试7.4 数据准数据准备备 数据准备是系统实施工作中的一项十分艰巨的任务。数据准备是系统实施工作中的一项十分艰巨的任务。在进行新系统建设过程中,很重要的一点就是数据的标准在进行新系统建设过程中,很重要的一点就是数据
35、的标准化。化。若新系统是在手工管理基础上开发的,那么将手工处若新系统是在手工管理基础上开发的,那么将手工处理的数据按照新系统的规则进行分类并集中在一起,然后理的数据按照新系统的规则进行分类并集中在一起,然后组织人力进行数据的录入工作,将纸介质中存放的数据转组织人力进行数据的录入工作,将纸介质中存放的数据转换程计算机能够读取的信息。换程计算机能够读取的信息。若新系统是在已有的系统基础上开发的,那么通过合若新系统是在已有的系统基础上开发的,那么通过合并、更新、转换等方法,将原系统中的数据转换到新系统并、更新、转换等方法,将原系统中的数据转换到新系统中来。中来。7.4.1 数据的标准化数据的标准化
36、计算机只能对规范的数据按照既定的流程进行处理。计算机只能对规范的数据按照既定的流程进行处理。规范的数据要求数据标准化,既定的流程要求流程标准化规范的数据要求数据标准化,既定的流程要求流程标准化。所以,要充分发挥物流信息系统的作用,就要尽可能地。所以,要充分发挥物流信息系统的作用,就要尽可能地做到信息的标准化和流程的标准化。其中,信息的标准化做到信息的标准化和流程的标准化。其中,信息的标准化又分为指标体系的标准化和代码的标准化。又分为指标体系的标准化和代码的标准化。7.4 数据准数据准备备7.4.2 基础数据的准备基础数据的准备 要运行一个新系统,必须要准备系统运行中使用的各要运行一个新系统,必
37、须要准备系统运行中使用的各种基础数据或初始化数据。种基础数据或初始化数据。例如要运行基于供应链的物流信息系统,必须要输入例如要运行基于供应链的物流信息系统,必须要输入物料或产品信息、库存信息、市场需求信息、供需方信息物料或产品信息、库存信息、市场需求信息、供需方信息和财务成本信息等。和财务成本信息等。7.5 系统测试系统测试 系统测试是保证系统质量和可靠性的关键步骤,是系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复对系统开发过程中的系统分析、系统设计和实施的最后复查。查。7.5.1 系统测试的定义和目标系统测试的定义和目标 系统测试是在假定系统中
38、有错误的前提下进行的,系统测试是在假定系统中有错误的前提下进行的,是为了发现错误而执行程序的过程。具体而言,就是指根是为了发现错误而执行程序的过程。具体而言,就是指根据系统开发各阶段的需求、设计等文档或程序的内部结构据系统开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例(即输入数据和预期的输出结果),并精心设计测试用例(即输入数据和预期的输出结果),并利用这些测试用例来运行程序,以便发现错误的过程。利用这些测试用例来运行程序,以便发现错误的过程。系统测试是对系统的基本功能、系统的效率、系统系统测试是对系统的基本功能、系统的效率、系统的可靠性和可操作性等方面进行的测试。的可靠性和可操
39、作性等方面进行的测试。系统测试的目标就是希望能以最少的人力和时间发系统测试的目标就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。现潜在的各种错误和缺陷。系统测试包括硬件测试、网络测试和软件测试。硬系统测试包括硬件测试、网络测试和软件测试。硬件测试、网络测试根据具体的性能指标进行,软件测试是件测试、网络测试根据具体的性能指标进行,软件测试是在软件投入运行前,对软件的需求分析、设计、实现编码在软件投入运行前,对软件的需求分析、设计、实现编码进行最终审查,它是保障最终建立一个可靠性高的软件系进行最终审查,它是保障最终建立一个可靠性高的软件系统的一部分。统的一部分。7.5 系统测试系统测试7.5
40、.2 系统测试过程系统测试过程 系统测试过程基本上与开发过程并行进行。一个规系统测试过程基本上与开发过程并行进行。一个规范化的测试过程通常包括以下几个基本的测试活动:范化的测试过程通常包括以下几个基本的测试活动:(1)拟定测试计划。拟定测试计划。充分考虑整个项目的开发时间可开发充分考虑整个项目的开发时间可开发进度,以及一些人为因素、客观条件等,使测试计划可行。测试计进度,以及一些人为因素、客观条件等,使测试计划可行。测试计划的内容主要有:测试的内容、进度安排、测试所需的环境和条件划的内容主要有:测试的内容、进度安排、测试所需的环境和条件(包括设备、被测项目、人员等)、测试培训安排等。(包括设备
41、、被测项目、人员等)、测试培训安排等。(2)编制测试大纲。编制测试大纲。测试大纲是测试的依据,明确详尽地测试大纲是测试的依据,明确详尽地规定了在测试中针对系统的每一项功能或特性所必须完成的基本测规定了在测试中针对系统的每一项功能或特性所必须完成的基本测试项目和测试完成的标准。试项目和测试完成的标准。(3)设计和生成测试用例设计和生成测试用例。产生测试设计说明文档,其产生测试设计说明文档,其内容主要有:被测项目、输入数据、测试过程和预期输出结果等。内容主要有:被测项目、输入数据、测试过程和预期输出结果等。(4)实施测试。实施测试。测试的实施阶段是由一系列的测试测试的实施阶段是由一系列的测试周期组
42、成的。在每个测试周期时,测试人员和开发人员将依据预先周期组成的。在每个测试周期时,测试人员和开发人员将依据预先编制好的测试大纲和准备好的测试用例,对被测软件或设备进行完编制好的测试大纲和准备好的测试用例,对被测软件或设备进行完整的测试。整的测试。(5)生成测试报告。生成测试报告。测试完成后,要形成相应的测试报测试完成后,要形成相应的测试报告,主要对测试进行概要说明,列出测试的结论,指出缺陷和错误告,主要对测试进行概要说明,列出测试的结论,指出缺陷和错误,另外,给,另外,给7.5 系统测试系统测试出一些建议,如:可采用的修改方法,各项修改预计的工作量、修出一些建议,如:可采用的修改方法,各项修改
43、预计的工作量、修改的负责人等。改的负责人等。通常,测试与纠错是反复交替进行的。如果使用通常,测试与纠错是反复交替进行的。如果使用专业测试人员,测试与纠错可平行进行。专业测试人员,测试与纠错可平行进行。7.5.3系统测试的原则系统测试的原则 (1)测试用例应该由测试用例应该由“输入数据输入数据”和和“预期的输出预期的输出结果结果”组成。即在执行程序前应对期望的输出有很明确组成。即在执行程序前应对期望的输出有很明确的描述,测试后可将程序的输出同它仔细对照检查。的描述,测试后可将程序的输出同它仔细对照检查。(2)不仅要选用合理的输入数据进行测试,还应选不仅要选用合理的输入数据进行测试,还应选用不合理
44、的甚至错误的输入数据进行测试。用不合理的甚至错误的输入数据进行测试。(3)除了检查程序是否做了应该做的工作,还应检除了检查程序是否做了应该做的工作,还应检查程序是否做了它不该做的事情。查程序是否做了它不该做的事情。(4)长期保留所有的测试用例,直至该系统被废弃长期保留所有的测试用例,直至该系统被废弃不用为止。不用为止。7.5 系统测试系统测试7.5.4 硬件测试硬件测试 硬件设备到货后,在各个相关厂商配合下进行初验硬件设备到货后,在各个相关厂商配合下进行初验测试,初验通过后与软件、网络等一起进行系统测试。初测试,初验通过后与软件、网络等一起进行系统测试。初验测试的工作主要有:验测试的工作主要有
45、:(1)配置检测。检测系统软件、硬盘、内存、配置检测。检测系统软件、硬盘、内存、CPU等等配置情况。配置情况。(2)硬件设备外观检查。检查计算机主机、工作站、硬件设备外观检查。检查计算机主机、工作站、磁带库、磁盘机柜和存储设备等,所有设备及配件开箱后磁带库、磁盘机柜和存储设备等,所有设备及配件开箱后外观有无明显划痕和损伤。外观有无明显划痕和损伤。(3)硬件测试。首先进行加电检测,观看运行状态是硬件测试。首先进行加电检测,观看运行状态是否正常,有无报警、屏幕有无乱码提示和死机现象,是否否正常,有无报警、屏幕有无乱码提示和死机现象,是否能进入正常提示状态。然后进行操作检测,用一些常用的能进入正常提
46、示状态。然后进行操作检测,用一些常用的命令来检测机器是否能执行命令,结构是否正常。命令来检测机器是否能执行命令,结构是否正常。通过以上测试,要形成相应的硬件检测报告,其内通过以上测试,要形成相应的硬件检测报告,其内容包容包7.5 系统测试系统测试含测试步骤、测试过程和测试的结论等。含测试步骤、测试过程和测试的结论等。7.5.5 网络测试网络测试 网络设备到货后,在各个相关厂商配合下进行初验网络设备到货后,在各个相关厂商配合下进行初验测试,初验通过后与软件、硬件等一起进行系统测试。初测试,初验通过后与软件、硬件等一起进行系统测试。初验测试的工作主要有:验测试的工作主要有:(1)网络设备的外观检查
47、。检查交换机、路由器等,网络设备的外观检查。检查交换机、路由器等,所有设备及配件开箱后外观有无明显划痕和损伤。所有设备及配件开箱后外观有无明显划痕和损伤。(2)硬件测试。进行加电检测,观看交换机、路由硬件测试。进行加电检测,观看交换机、路由器等工作状态是否正常,有无错误和报警。器等工作状态是否正常,有无错误和报警。(3)网络连通测试。用网络连通测试。用PING、TELNET、FTP等命令等命令来检查网络是否连通。来检查网络是否连通。通过以上测试,要形成相应的网络检测报告,其内通过以上测试,要形成相应的网络检测报告,其内容包含测试步骤、测试过程和测试的结论等。容包含测试步骤、测试过程和测试的结论
48、等。7.5 系统测试系统测试7.5.6 软件测试软件测试 软件测试可分为单元测试、组装测试、确认测试和软件测试可分为单元测试、组装测试、确认测试和系统测试。系统测试。单元测试单元测试(unit testing),是指对源程序中的每一个是指对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。明书的要求。组装测试组装测试(integration testing),是将已测试过的模是将已测试过的模块组合成子系统,重点测试各模块之间的接口和联系。块组合成子系统,重点测试各模块之间的接口和联系。确认测试确认测试(validatio
49、n testing),是对整个软件进行验是对整个软件进行验收,根据系统分析说明书来考察软件是否满足要求。收,根据系统分析说明书来考察软件是否满足要求。系统测试系统测试(system testing),是指软件、硬件、网络是指软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。、性能等方面的测试。7.5 系统测试系统测试 软件测试的方法主要有两大类:人工测试和机器测试软件测试的方法主要有两大类:人工测试和机器测试。软件测试的主要方法软件测试的主要方法 走查走查 会审会审软件测试软件测试人工测试人工测试机器测试机器测试
50、个人复查个人复查黑盒测试黑盒测试白盒测试白盒测试7.5 系统测试系统测试(1)人工测试人工测试 人工测试又称代码复审,是指采用人工方式进行测人工测试又称代码复审,是指采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。组织良好的人工测试可发现程序中能发现的错误。组织良好的人工测试可发现程序中30%70%的编码和逻辑设计错误。的编码和逻辑设计错误。人工测试通过阅读程序,查找错误,包括:检查代人工测试通过阅读程序,查找错误,包括:检查代码和设计是否一致;检查代码逻辑表达是否正确和完整码和设计是否一致;检查代码逻辑表达是否正