本章要点
物流信息系统实施是物流信息系统建设中具体实现物流软件系统的重要环节,物流信息系统实施的质量将直接影响系统能否最终实现、运行并交给用户使用。在本章中,要掌握程序设计的方法和程序的编写、开发技能,而系统的集成和测试将会直接影响所编写程序的质量,掌握系统测试的原则和过程、测试方法及测试用例的设计。新老系统的转换是物流信息系统实施的最后一个阶段,理解新老系统转换的方式和系统转换的主要工作内容。
6.1 系统实施阶段的任务
物流信息系统实施是物流信息系统分析与设计的后续阶段,也是新系统开发的最后一个阶段,是把物流信息系统分析设计的结果付诸实际、实现具体软件系统的阶段。
物流信息系统实施阶段的主要任务是实现物流信息系统设计阶段提出的物理模型,把物理模型转换成物理系统,即完成一个可以实际运行的物流信息系统,并交付给用户使用,其中包括针对所开发的物流信息系统的操作和维护、对用户的相关培训等。具体来讲,物流信息系统实施阶段的主要任务包括系统实施环境的建立、程序设计、数据准备、系统测试、人员培训、系统切换与试运行。
①系统实施环境的建立。系统实施环境的建立指的是各项实施工作的准备到位,包括准备前期工作的材料、人员到位、设备到位、软硬件到位等。
②程序设计。程序设计员按照系统设计的要求和程序说明书的规定,采用某种程序设计语言来实现各个功能模块的程序编写工作。
③数据准备。数据准备主要是进行数据的收集、整理和录入,以及录入数据的校验。
数据准备工作一般由业务人员来完成。由于原始数据的录入工作是一项很重要但又很繁杂的工作,例如每天出入库原始单据信息的记录生成和数据校验等,所以一定要安排既有耐心又有责任心的业务人员来负责。
④系统测试。系统测试是新系统交付给用户使用之前必须要完成的一项工作,是系统质量可靠性保证的关键,其主要任务是进行程序调试和系统的全面测试,保证系统运行的正确性和有效性,尽早发现程序以及系统中存在的问题和错误,并及时加以修正。
⑤系统切换与试运行。系统切换是指由旧的手工或计算机物流信息系统向新开发的物流信息系统的转换,而系统试运行也是物流信息系统开发应用中不可缺少的一个环节,相当于用真实数据和真实环境来检测新系统的适用性和稳定性。而在系统试运行过程中,通过新老系统运行情况的比较,还可以更好地改进系统。
以上几个阶段是物流信息系统实施中的主要活动,它们之间不是孤立的,不是严格划分阶段的,而是紧密联系且相互辅助的,有些还可能是交叉进行的。
6.2 系统的实现方法
和前面的物流信息系统分析与设计类似,物流信息系统的实现方法有结构化生命周期法、面向对象方法、原型法等。
结构化生命周期法在物流信息系统实施阶段的主要活动包括购置计算机软硬件并安装调试、程序设计、程序及系统的调试、新旧系统的转换、编写各种文档等。
生命周期法通常是在系统需求比较明确的情况下采用,它主要的特点是:目标明确、采用结构化的分析设计思想、严格区分工作阶段、文档标准化、开发过程易控制,但开发周期长,见效慢,风险也比较大。在实际开发中,这种传统的开发方法已经逐渐渗入了新的思想,或者与其他方法结合起来使用。
严格定义和预先说明的生命周期法理论基础是严密的,它要求系统开发人员和用户在系统开发初期对整个系统的功能有全面、深刻的认识,并制定出每一阶段的计划和说明书,因此用生命周期法开发系统有如下一些不足:开发周期长、繁琐、与用户交流不直观(用户最后才能看到真实模型)、不能充分预料系统可能发生的情况及变化。而当今一些物流信息系统的特点是:物流信息系统的开发要快、成本要低;物流信息系统使用环境经常发生变化;用户需求开发初期难以完全确定;随着信息技术的迅速发展,另一种开发方法——快速原型法得到越来越广泛的应用。
快速原型法的开发过程中,首先建立一个能反映用户主要需求的原型,让用户尽早看见新系统的概貌,以便判断哪些功能符合要求、哪些需要改进,通过对原型的反复改进,最终建立符合用户要求的新系统。快速原型法在建立新的物流信息系统实施阶段的主要活动为开发初始原型。根据用户的要求,开发人员迅速建立起一个初始原型,该原型是在计算机上初步实现的物流信息系统;征求用户对原型的改进意见,让用户亲自使用原型,对原型进行检查、评价和测试,指出原型的缺点和不足,提出改进意见和需求;修正和改进原型,开发人员对原型进行修改、扩充、完善,直到用户满意为止。
面向对象的物流信息系统实施方法主要是指物流信息系统的开发、实施采用面向对象的程序设计语言和支持面向对象的数据库管理系统,面向对象的技术把对象的属性(数据)和处理(方法)封装在一起,是真正的抽象思维,它通过子类对父类的继承,使软件便于维护和扩充,提高了软件的可重用性。
6.3 程序设计
程序设计又称编程,主要内容是使用选定的计算机程序设计语言,把物流信息系统详细设计阶段所得到的各模块的信息处理功能和过程转换成能在计算机系统中运行的程序源代码(源程序)。
为了使程序设计工作能够正确顺利地进行,程序设计人员一方面要仔细阅读系统设计阶段的全部文档,充分理解模块的处理过程和模块之间的接口;另一方面要熟练应用程序设计语言及其开发环境和工具,以保证系统功能的真正实现。
6.3.1 程序设计的目标
程序设计的目标包括以下四个方面:
1.运行准确和稳定
对程序设计最基本的要求是程序能够准确、稳定地运行,即在给定环境下计算机能够准确识别和准确、稳定地运行,满足系统设计的功能和性能要求。
常用的方法有:设计的程序支持具有容错功能的设备,如双机备份;设计的程序具有数据备份恢复、数据日志、故障处理等系统故障处理对策的功能;设计的程序具备对数据纠错和检错的能力,能合理地预测遗漏数据,保证程序准确、稳定地运行。
2.安全性高
程序设计的安全性是衡量物流信息系统的一项非常重要的指标。常用的程序设计的安全性控制有灾难恢复、数据备份、断电保护、口令权限、病毒预防等。
灾难恢复要求物流信息系统受到电力故障、网络入侵、计算机病毒等威胁时,设计的程序应具有数据恢复和系统恢复的功能。
数据备份要求设计的物流信息系统程序具有提供定时数据备份和数据还原的功能,保证数据的安全。
断电保护要求所设计的程序具有进行数据操作时,能进行日志跟踪等处理,保证意外断电后,下次运行系统时能自动还原到断电前的系统状态。
口令权限要求设计的系统程序能明确划分和识别用户所拥有的权限,非法用户不能登录到系统,普通权限的用户不能进行高权限用户的操作,口令不允许以明文方式出现等。
病毒预防要求所设计的程序具备基本的自检测功能,能自动捕捉异常数据、不合逻辑的数据变动和操作,必要时可以加载第三方杀毒软件以进行自我保护。
3.可读性强
尽管编写的源程序的基本功能是与计算机进行交互,但是从物流信息系统软件测试和维护的角度出发来看,编程人员在保证程序准确安全运行的前提下,还必须保证源程序的可读性,以便他人读懂和维护程序,所以程序的可读性也是衡量程序设计质量的一项主要指标。
4.其他目标
当前的物流信息系统大多是基于网络运行的,为了提高物流信息系统的运行效率,在程序设计时需要考虑如何提高网络速度和交互相应速度。
为了确保物流信息系统在相当长的一段时间内能够正常运行,程序设计时应当考虑便于系统的维护,要注意编程风格的统一,代码注释要全面准确,文档要规范完整。
提高程序的适应性,使编写的程序能够不经修改就由一个平台移植到另一个平台上运行。
6.3.2 程序设计语言的选择
随着计算机技术的发展,当前程序设计的语言众多,选择物流信息系统开发的高级语言主要从以下几个方面考虑:
1.程序设计语言的开发效率
程序设计语言的开发效率与对物流信息系统软件的理解能力、软件架构、代码编写、代码质量及软件测试都有很大关系。要求选择的程序设计语言易懂、易学,开发环境操作快捷方便,性能强大,具有较强的数据处理能力。
2.数据管理能力
物流信息系统以数据处理为主,所以所选择的程序设计语言要支持多种数据库,如Oracle、Microsoft SQL Server、Access或Sybase等,不必为转换数据库管理平台而增加额外的工作量。
3.物流信息系统的可维护性和可移植性
根据用户对程序设计语言的掌握情况,选择用户较为熟悉,或易学易用的语言进行程序设计,便于用户维护投入使用的物流信息系统。
开发语言的可移植性主要指使用该语言编写的程序从一种硬件配置或软件系统环境转移到另一种配置和环境时正常运行的能力。目前的物流信息系统大多是在复杂的软硬件环境中工作,所以在选择程序设计语言时,要选择可移植性较好的语言,使开发后的系统能够在不同的软硬件环境中运作。
4.成本原则
开发成本也是选择程序设计语言时一个很重要的因素。例如,要建立一个物流信息系统处理的网站,可以使用ASP+IIS+SQLServer,也可以使用JSP+Tomcat+Oracle,也可以选择PHP+Apache+MySQL。以上的组合都可以实现建立一个网站的工作,但是只有第三种搭配方式是完全免费的,若选择第三种方式,将有助于大大降低项目的开发成本。
此外,在选择程序设计语言时,还要考虑语言的发展趋势,从当前的主流程序设计语言中选择最适当的。若所选择的是高度智能化的主流商业开发工具,有效代码设计时的很多工作只需要拖动控件、填充属性,代码就能够自动生成,将能够大大提高程序的开发效率。
6.3.3 结构化程序设计
前面已经提到,源程序的可读性是程序设计的一项重要要求。但是,在20世纪60年代中期以前,由于没有一种共同的编程方法或标准规范可以遵循,程序设计人员仅凭个人的经验和习惯来编程,所以程序的可读性很差。结构化编程的思想起源于70年代,是荷兰学者Dijkstra提出的一种程序设计思想,其基本原则是自顶向下和逐步细化的思想,用一组单入口单出口的基本控制结构及反复嵌套来进行程序设计,在程序中尽可能不采用无条件转移(GOTO)语句。结构化程序设计的目的是使程序具有良好的结构,使程序易于设计、易于理解、易于调试修改,以提高程序设计和维护的工作效率。
根据结构化程序设计的原则,所有的程序都可以由顺序结构、选择结构、循环结构和调用结构及其组合来实现。
1.顺序结构
顺序结构是程序设计中最常用、最简单、最基础的结构,表示有多个连续的处理步骤语句排列的顺序就是命令的执行顺序,处理过程从语句系列1到语句系列2按顺序进行。组成顺序结构的语句一般包括赋值语句、输入、输出、注释、终止语句及有关系统环境设置等。
2.选择结构
选择结构是程序设计中的基本结构之一,它用选择命令描述分支现象,根据某个逻辑表达式的取值确定执行的路径。常用的选择命令有单条件选择和多条件选择。
3.循环结构
循环结构描述多次重复执行的现象,实现某段程序有规律地反复执行。有两种类型的循环结构:“当”型循环结构和“直到”型循环结构。
(1)“当”型循环结构(DO‐WHILE结构)
“当”型循环结构中,当控制条件成立时,重复执行特定的加工。当判断条件为真时,重复执行语句系列,然后回到判定条件测试处,重新进行判断;若判断条件为假,则从出口离开此结构。每次执行过循环语句后,都要修改判断条件中的控制变量,否则将会无限循环。
(2)“直到”型循环结构(DO‐UNTIL结构)
“直到”型循环结构与“当”型没有本质不同,不过测试条件在处理语句执行之后,所以,不管判断条件取何值,处理语句至少要执行一次。
6.4 系统集成和测试
系统测试是物流信息系统开发周期中一项十分重要的活动。尽管在物流信息系统开发各个阶段都采取了严格的技术审查,但是依然无法避免会有遗留差错存在,如果没有在系统投入运行前的系统测试阶段被发现并且纠正,问题迟早会在运行中暴露出来,那时纠错将会付出更大的代价。系统测试所占用的时间、人力和经济成本占整个系统建设的很大比例,有统计数据表明,开发较大规模的系统,系统测试的工作量大约占整个开发工作量的40%~50%。