水厂生产报表系统需求分析
水厂生产报表系统需求分析
一. 现状与目标
水厂生产报表系统的功能主要是在我厂供水生产工作中,将各个岗位、各个环节所产生的与生产相关的数据按照各级管理部门的要求进行组织与计算,并输出成纸质报表。
目前,我厂各部门的大多数岗位均需要使用各类报表系统,这些报表系统按照我厂的实际情况出发,可以根据重要程度与可控程度划分为A 、B 、C 、D 四类:
● A 类是可控核心报表,其产生的报表需要以固定周期上报公司相关部室,该类系统由我厂自行负责日常运维与报表定制工作由我厂控制,包括运行报表与化验报表,使用中科院自动化工程中心为我厂开发的水厂数据管理系统进行报表生成,该系统于2005年上线。
● B 类是不可控核心报表,此类报表系统均由公司相关部室统一下发,我厂无法直接修改其系统功能,如财务、仓库、档案以及即将上线的设备管理等岗位所使用的报表系统。
● C 类为不可控非核心报表,此类报表系统由外购的软件所附带的功能模块完成,我厂无法直接修改。如门禁管理、餐饮管理和考勤管理等。
● D 类为可控非核心报表,此类报表不需要上报公司,报表功能由我厂自行研发的系统所提供,其功能可以由我厂随时按需修改。如故障单等。
根据我厂2011年的工作部署,我们现将工作方向聚焦在对A 类报表系统的功能完善上,希望通过本年度的工作,将A 类报表系统的性能、数据完整性、可靠性与易用性几个方向进行改良与升级。
二、 问题与对策
目前存在的问题及初步的解决思路:
一)在性能改进方面,首先我们可以将现有报表系统的sql 语句进行全面的优化,把各种整表查询语句用小范围的查询语句进行重写。保守估计重写后报表生成速度至少能够提高25%左右。这种处理的优势在于无需修改现有的程序就可以用较小的代价来获得较明显的效益。
其次我们可以调整生成报表时的策略,将运行部门投诉较多的报表数据装载(LOAD 数)操作从人工触发型改进为任务计划型。具体的说就是把由运行值班员启动的数据装载手动操作改变成代理程序的自动操作,该程序可以根据预先配置的时间表,将一个报表生成周期分成多个较小的时间片进行自动预装载操作。代理程序在每个时间片内都会生成相应的中间数据,当运行值班员需要生成报表时系统只需将代理程序预先处理的中间数据进行合并计算即可。
二)在提高数据完整性和可靠性方面,可以认为相关的工作是一个系统工程,如果只是在某一个环节上进行努力,往往收效甚微甚至可能与全局最优化的目标背道而驰。因此我们需要从宏观的角度来思考这个问题。如果我们把生产数据作为反映和记录供水生产客观状态的载体,那么报表数据就是以生产数据为原材料的产品,而相关的数据分析人员以及各级领导就是报表数据的消费者。为了保障消费者能够得到真实准确的数据,我们可以参考在实体产品的生产活动中已经证明行之有效的质量控制(QC )方法,即把数据的“获取-传输-记录-加工-消费” 整体过程看做是一个流水线,用QC 方法来保障数据在整个生命周期中的质量品质。
具体来讲,就是把每一个数据处理环节进行统一的管理,把每个环节都视为一个流水线上的工序,而每个有人参与的环节都作为质量控制的节点,使负责报表生成工作的各个岗位承担起对前道工序进行数据质量检验的责任,进而形成环环相扣的责任链条。这种用责任链条形式来对报表数据的准确性的保障方式的优点在于,数据一旦出现问题,我们能够通过倒查机制找出存在问题的环节,并对造成问题的原因进行有效的分析并对其进行适当的改进。
三)在易用性方面,我们希望实现两个目标,分别是易于使用与易于维护。
在易用性方面,主要思路有两点,一是想方设法将有规律可循的手工操作用工具软件来自动完成,二是将必须用手工录入方式补全的数据进行录入时的验证。目前运行报表还有许多可以精简的中间环节,其中有的环节需要值班长从保存各岗位报表数据的excel 文件中以手动复制粘帖的方式进行数据处理操作,同时还有部分数据需要使用计算器计算后再手动填入excel 的对应单元格。由于excel 文件之间没有数据同步机制,目前这种操作方式的效率较低、且容易出现误操作。现计划使用上文所述的LOAD 数代理程序来自动执行现在由的值班员手动操作的规律性重复性工作。以此来提高值班人员的工作效率并且有效地减少误操作。
在可维护性方面,现有的C/S架构的软件让维护人员疲于奔命,一旦报表接受部门要求修改报表内容,维护人员既要保证现场程序的版本和配置文件的版本同步,又要维护散布在excel 文件模版中的计算公式, 这给程序的发布、配置和管理都造成了不便。因此建议使用基于三层B/S架构的报表系统取代原系统。
三、新系统参考设计
新系统的设计可以参考以下结构:
参考设计分为三层结构,界面接口层负责为值班人员提供一个基于B/S的用户操作界面,同时提供报表打印输出以及格式编辑功能,另外配置一个基于WebService 的接口提供与外部程序的数据交换功能。
逻辑业务层运行数据操作代理程序,并配置一个基于业务知识的数据验算引擎。
数据存取层提供基于OLEDB 以及OPC 的数据访问功能。
2011年1月11日