APP下载

基于改进Jackson图的报表分析与设计方法研究

2018-03-26田苗苗孙宏波范宝德

软件导刊 2018年3期
关键词:报表

田苗苗 孙宏波 范宝德

摘要:作为企业信息系统的一个必备模块,统计与分析模块需要将不同功能、不同模块的数据连接起来按报表进行查询,然而结构化方法或面向对象方法都强调信息的隐蔽和封装,因此在进行报表分析和设计时不直观、便捷。为了在报表分析和设计中更直观地表示数据来源,且更便捷地导出SQL语句,提出了基于改进Jackson图的分析与设计方法。实验结果表明,在实际系统应用中,该方法具有很强的可行性,能够更方便地实现自动化程序生成,提高软件开发生产率,同时更有利于报表数据的一致性验证,减少软件出错概率。

关键词:报表;软件分析方法;软件设计方法;改进Jackson图

DOIDOI:10.11907/rjdk.172469

中图分类号:TP301

文献标识码:A文章编号文章编号:16727800(2018)003004505

英文摘要Abstract:As an unavoidable module of enterprise information systems, module statistics and analysis rearranges data from various functions and modules into report forms. While both structural method and object oriented method are all emphases on information transparency and encapsulation, when it comes to report forms these methods are lack of intuitive and convenient. In order to display the data source more intuitively and to export the SQL statement more conveniently in the analysis and design of the report, an improved Jackson diagram based analysis and design method for report forms is proposed. Finally,experimental results show an industrial case validates the feasibility of this approach.The conclusion is that this approach is more convenient for automated program generation, and can improve the productivity of software development. It is more conducive to the consistency verification of report data and to reduce the probability of software error.

英文關键词Key Words:report form; software analysis method; software design method; improved Jackson diagram

0引言

企业信息系统已经被大部分企业广泛使用[1]。在企业信息系统中,统计与分析数据往往以报表形式展现[2]。报表是进行数据存储、浏览、分析、统计的有效工具[3],也为企业经营者和决策者了解企业运行情况并作出战略决策提供了重要的数据支撑[4]。然而,现有企业信息系统往往采用结构化方法或面向对象方法进行分析和设计[5],这两种方法都强调了信息的隐蔽和封装[6]。而报表数据往往来源于不同的模块和功能,这就对报表的分析和设计造成了一定困难。

另一方面,作为面向数据结构的分析和设计方法,传统的Jackson图能够用于报表分析和设计[7],却很难与结构化方法或者面向对象方法结合起来[8]。本文借鉴Jackson方法,提出一种基于改进Jackson图的分析与设计方法,不仅能够有效地分析与设计报表,还能与已有的结构化方法及面向对象方法进行有机结合。

1基于改进Jackson图的分析方法

1.1基本属性表示

在改进的Jackson图中,圆角矩形表示最基本的数据元素,在此基础上还有若干属性的表示方法,如图1所示。其中,A表示报表需要显示的数据元素名称,用正体表示。报表中不需要显示的数据元素名称用斜体表示。F(A)表示对数据元素A的函数操作,F表示函数名,F也可以为嵌套函数。左上角标G(p)表示数据元素A与参数p的关系,G表示关系运算符或BETWEEN…AND…。当G表示BETWEEN…AND…时,表示为G(p1,p2)。右上角标β表示对A操作的关键字,如β=g表示“GROUP BY”,β=o表示“ORDER BY”,β=d表示“DISTINCT”。A表示临时表中存储的数据,(a)表示对A重命名。

1.3临时表表示

报表有时需要建立临时表,以方便查询和数据操作,如图3所示。临时表有两种表示方法,一种是通过实体中的数据元素连接得到结果集合,如图3(a)所示;另一种是程序执行过程中需要存放临时数据,将临时数据存放到临时表中,有些临时数据通过子过程得到,如图3(b)所示。临时表也是实体的一种。

1.4实体关系表示

实体与实体之间的关系通过实体间的数据元素建立连接,如图4所示。在实体1中起到连接作用的数据元素通过连线与实体4连接,在实体4中起到连接作用的数据元素用左上角标G(p)标记,实体1与实体4则建立了关系。其中,P表示外界接口传入的参数,F(A)表示对A的函数操作。图4的实体可以是视图也可是临时表。

临时表不仅可以与其它实体建立连接,还可以对临时表中的数据进行统计操作。当统计临时实体中的数据时,可直接对临时表中的数据进行统计汇总,如图5(a)所示;也可以通过临时表中的某些数据统计出不同的汇总信息,如图5(b)所示,通过数据A统计出不同的汇总信息。这仅表示临时表的信息汇总,不表示汇总信息存储在临时表中。

1.5程序结构定义

改进Jackson图包含矩形框、框内文字、连线等。矩形框与矩形框之间的关系不是调用关系,而是组成关系,一个矩形框中包含的操作仅由它下层矩形框中的操作组成。框内文字用来表达数据的具体内容。

改进Jackson图中元素彼此间的逻辑关系有顺序结构、选择结构、循环结构[9],如图6所示。顺序结构由一个或多个元素组成,每个元素按照确定次序出现一次,一般为从左到右的顺序,如图6(a)所示;选择结构包含两个或多个元素,每次使用这些元素时,按照一定条件从这些元素中选择一个执行,如图6(b)所示。其中“0”表示选择,S(i)为执行条件;循环结构包含一个循环体,根据使用时的条件每进入循环结构一次,循环体将被执行多次,也可能执行0次,如图6(c)所示,其中“*”表示循环。

2基于改进Jackson图的设计方法

报表的最终目的是为用户呈现有指导意义的数据[10],经过基于改进Jackson图的分析之后,进一步进行设计工作。

2.1定义

为了叙述方便,本文作以下定义:

终端实体:在改进Jackson图中,终端实体是只能由其它实体生成而不能生成其它实体的实体。

非终端实体:在改进Jackson图中,非终端实体是能生成其它实体的实体。

生成框:在矩形框内,带有“生成”字眼的矩形框称为生成框。

程序结构框:通过报表的输入数据结构和输出数据结构的对应关系,导出报表程序结构时,表示程序结构的矩形框称为程序结构框。在SQL SELECT转化规则中,将忽略程序结构框。

公式框:如果矩形框内是公式,称为公式框。

内部连接条件:在视图或临时表中,数据库中的多张表通过相同的数据元素连接起来,这种连接条件称为内部连接条件。

外部连接条件:在实体与实体之间的关系中,上一个实体的数据元素通过生成框,连接下一个实体中有左上角标G(p)的实体数据元素,这种连接条件称为外部连接条件。

2.2终端实体转化规则

在建立实体之间关系时,实体1中的数据元素与实体2的数据元素建立连接,这就对应了一条SQL SELECT语句。所以,每一个生成框生成一条SQL SELECT语句。按照以下定义的规则得到的SQL SELECT语句,如图7所示。

定义的规则为:①每一个生成框生成一条SQL SELECT语句;②在生成的实体中,实体中正常字体的数据元素依次在SELECT关键字后,用逗号分隔;③在生成的实体中,该实体中包括的实体名依次在FROM关键字之后,用逗号分隔;④在生成的实体中,内部连接条件转化成WHERE条件子句,每一个连接线对应一个WHERE条件子句,连接线相当于等号;⑤外部连接条件也转化为WHERE条件子句,根据生成实体中数据元素的左上角标G(p)转化为WHERE条件子句;⑥如果在生成的实体中,数据元素有右上角标β,在得到这些数据元素时要写上这些标记。

2.3非终端实体转化规则

非终端实体转化规则与终端实体转化规则基本相同,区别在于SELECT关键字之后的规则。在非终端实体中规则为:SELECT关鍵字之后为连接该实体之后生成框的数据元素。按照非终端实体转化规则转化的SQL SELECT语句,如图8所示。

2.4子过程转化规则

子过程获得的数据存放在临时表中。子过程中包含公式框,框内是对数据计算的公式。子过程转化为的SQL SELECT语句如图9所示。下面定义公式框的规则:①将公式框以及公式框以下的部分全都去掉,成为终端实体,按照终端实体的转化规则转化为SQL SELECT语句;②每一个公式框生成一条SQL SELECT语句;③将公式框内的操作方法写在SELECT关键字之后,再写关键字AS,AS之后为紧跟公式框的数据元素名称;④FROM关键字以及WHERE关键字之后的规则与终端实体的转化规则相同。

3应用案例

以烟台某公司受订年度统计表为例,用改进Jackson图分析受订年度统计表的数据结构,然后转化为SQL语句。客户要求的受订年度统计表的数据结构如图10所示。报表中显示的数据分为表头信息和表体信息,表头信息从基础资料模块中获得,表体信息从多个业务模块中获得。

改进Jackson图的报表分析过程为:①分析报表的输入数据结构和输出数据结构,找出输入数据结构和输出数据结构中有对应关系的数据单元,即有直接的因果关系,在程序中可以同时处理,对于每对有对应关系的单元画一个程序框,导出程序结构[11];②根据程序结构确定实体,以及实体关系;③根据定义的规则,导出SQL SELECT语句。

报表的输入数据结构为数据库中的数据,而数据库中的数据都存储在数据库表中,数据库中的表又分为基础资料模块表和业务模块表,输入数据结构见图11(a);报表的输出数据结构是多条报表记录,一条报表记录包括表头信息和表体信息,输出数据结构见图11(b);报表中的记录从数据库中获得,报表中表头信息从数据库的基础资料模块获得,表体信息从数据库的业务模块获得,从而得出报表输入数据结构和输出数据结构的关系,如图11(c)所示;根据输入数据结构和输出数据结构的关系导出程序结构,如图11(d)所示;进一步分析受订年度统计表得到详细程序结构,如图11(e)所示。

由于篇幅有限,本文仅以受订年度统计表Jackson图中的一部分——生成表体索引为例,导出SQL语句。生成表体索引的Jackson图如图12所示,表体索引实体为非终端实体,应用非终端实体转化规则,转化为SQL SELECT语句,如图13所示。

受订年度统计表的Jackson图应用上述SQL语句自动转换规则,实现了自动化程序的生成,提高了软件开发效率,有利于报表数据的一致性验证,有效地指导了后续编码阶段。受订年度统计表的运行结果如图14所示。

4结语

现有企业信息系统往往采用结构化方法或面向对象方法进行分析和设计,这两种方法中都强调了信息的隐蔽和封装。然而作为企业信息系统的一个必备模块,统计与分析模块却需要将不同功能、不同模块的数据连接起来进行统一查询,该模块往往由多个报表构成,对于这些报表功能的分析和设计尚缺乏有效手段。本文提出了一种基于Jackson图的分析与设计方法,相比于其它分析设计方法,本方法具有如下优点:①重新定义的Jackson图对于报表分析的表达更为直观,与报表的实际分析过程更加契合,更便于理解;②提出的SQL语句自动转换规则,更便于实现自动化程序生成,提高软件开发的生产率;③形式化的生成过程,更有利于报表数据的一致性验证,减少软件出错概率。最后,本文在实际案例中验证了该方法的可行性和有效性。

参考文献参考文献:

[1]林世明.计算机集成信息系统在企业管理中的应用[J].数字技术与应用,2016(2):244.

[2]潘永才,刘海龙.可定制报表系统的设计与应用[J].物联网技术,2015(1):104106.

[3]刘丽钦.基于非线性模型的报表工具的研究[D].北京:华北电力大学(北京),2009.

[4]汤加,符云清,万煊民.一种基于单数据源的可视化自定义报表模型[J].计算机科学,2017,44(5):184188.

[5]張淑娟.软件工程技术发展趋势研究[J].软件导刊,2014(2):1213.

[6]仲辉,曹淑艳,邱涤珊.面向对象与结构的系统分析与设计方法应用研究[J].计算机工程与应用,2003,39(23):105107.

[7]JACKSON M A. Principles of program design[M].New York: Academic Press,1975.

[8]史济民,顾春华,郑红.软件工程:原理、方法与应用[M].第3版.北京:高等教育出版社,2009.

[9]张海藩.软件工程导论[M].第5版.北京:清华大学出版社,2008.

[10]马瑞敏.基于Web的报表生成技术研究及其应用[D].重庆:重庆大学,2009.

[11]姜宏伟,吕励,梁田,等.Jackson设计方法中关于结构冲突的处理[J].智能计算机与应用,2001(2):3031.

责任编辑(责任编辑:黄健)

猜你喜欢

报表
LabWindows/CVI中Excel报表技术研究
公司集团合并报表的编制
合并报表编制及其局限性
从三大报表读懂养猪人的成绩单
基于HANA的工单备件采购联合报表的研究与实现
镇长看报表
VFP下报表的设计与输出
基于.NET模式的WEB报表服务中报表格式转换的设计与实现
月度报表
月度报表