收藏 分销(赏)

报表引擎的设计与应用.pdf

上传人:曲**** 文档编号:462235 上传时间:2023-10-11 格式:PDF 页数:89 大小:6.32MB
下载 相关 举报
报表引擎的设计与应用.pdf_第1页
第1页 / 共89页
报表引擎的设计与应用.pdf_第2页
第2页 / 共89页
点击查看更多>>
资源描述
中图分类号:TP3论文编号:10006GS0421243如京航左就天大孚专业硕士学位徐文报表引擎的设计与应用 学科专业 软件工程 关于学位论文的独创性声明本人郑重声明:所呈交的论文是本人在指导教师指导下独立进行研究工作所取得的 成果,论文中有关资料和数据是实事求是的。尽我所知,除文中已经加以标注和致谢外,本论文不包含其他人已经发表或撰写的研究成果,也不包含本人或他人为获得北京航空 航天大学或其它教育机构的学位或学历证书而使用过的材料。与我一同工作的同志对研 究所做的任何贡献均已在论文中作出了明确的说明。若有不实之处,本人愿意承担相关法律责任。学位论文作者签名:日期:年 月 日学位论文使用授权书本人完全同意北京航空航天大学有权使用本学位论文(包括但不限于其印刷版和电子版),使用 方式包括但不限于:保留学位论文,按规定向国家有关部门(机构)送交学位论文,以学术交流为 目的赠送和交换学位论文,允许学位论文被查阅、借阅和复印,将学位论文的全部或部分内容编入 有关数据库进行检索,采用影印、缩印或其他复制手段保存学位论文。保密学位论文在解密后的使用授权同上。学位论文作者签名:日期:年 月 日指导教师签名:日期:年 月 日报表引擎的设计与应用摘要随着我国政府对电子政务的大力推动,很多政务机关已经开始大规模部署网络办公平台。这些 平台系统的基本实施方式是以政府公务流程为中心,设计和实现工作流转系统。但目前政府很多部 门涉及更专业的领域。农业数据管理就是政府农业部门的专业职能,涉及大量的农业报表,本文设 计与实现了处理报表数据的报表引擎病应用这一引擎实现了密云县农业资源管理系统统计分析子系 统的统计分析功能模块。本文的工作共分为两个部分,第一个部分是设计与实现一个报表引擎,第二个部分是应用报表 引擎实现报表的管理以及业务的流转。其中第一个部分是本文论述的核心。报表引擎在国内外都有 成熟的产品,但各自都具有一些缺点,本文的主要工作就是解决这些缺点并实现新的报表引擎。本文首先分析了密云县农业资源管理系统统计分析子系统的功能需求,随后根据功能需求引导 出对报表引擎系统的内在需求,并通过对比国内外报表引擎,提出了能够解决他们的缺点的基本方 案。所实现的报表引擎能够很好的处理中国式报表,实现在网页填报、跨表引用等功能,报表基于 文件定义,可以使用本项目专门设计的小型定义语言实现对其他报表的引用。另外,报表引擎还将 实现版本控制功能,对报表定义以及数据库内容的修改都不会对已经填写成功的报表造成影响。在 设计与实现报表引擎的同时,本文还基于报表引擎API设计与实现了统计分析功能,包括对报表的 一般操作以、使用可定制工作流进行报表审批以及绘制统计图表。通过设计与实现报表引擎以及统 计分析用户功能,本文实现了预期工作目标。关键词:农业数据,统计分析,报表引擎Design and apply:Report Engine SystemAbstractWith our countrys pushing e-government system in almost all levels of government,a lot of city governments already begin to deploy e-government systems build on top of LAN or WAN.The core of that kind of system is Office Automation.Which means,in current situation,we have many general OA systems in governments?And they just realize simple workflow.But government needs very professional system for many fields,such as power management field or agricultural management field.The agricultural resource management mentioned in this thesis is a professional field,have a lot of report table to deal with.So,the core of this thesis is to build a professional report engine system and apply it to build a subsystem which should be used to deal with agricultural data.The way to deal with report tables need programmers to implement two related systems.This first is to design and implement a report engine,the second is to build a statistical analysis subsystem which uses the API that report engine exposes.The first system is the core of my thesis,we have quite a lot of report engine products around the world,some of them have more than 10 years history,but when deal with“Chinese Style Report,they all lack the power.So in this thesis,Til analysis the requirements in the whole system and give a workable solution on report engine.In this thesis,first well analysis the requirements in statistical analysis subsystem,and then lead out the requirements about report engine,compare the workable engines among some products,and introduce my solution.The solution I give can deal with“Chinese Style Report”,the user can use this engine to online edit a report table,and realize references across many tables.I define the report using report define files,I build a small DSL language to let report defines refer to other report defines and instances.The second system is just build upon the report engine API,we use these APIs to implement functions like draw analysis pictures and list reports or edit reports.After two steps above,we will have a subsystem which realizes the target of this thesis.Keywords:agricultural data,statistical analysis,report engine北京航空航天大学硕士学位论文目 录第一章绪论.11.1 课题背景和意义.11.2 国内外研究现状.21.3 系统整体综述.41.3.1 农业电子政务办公自动化.41.3.2 农业数据统报.51.3.3 与其它系统的集成.51.4 论文研究的目标和内容.61.5 术语与缩略语.61.6 论文组织结构.71.7 小结.7第二章系统需求分析.82.1 系统需求概述.82.2 需求获取方法简介.112.3 系统的功能需求分析.122.3.1 统计分析子系统的需求分析.122.3.2 报表引擎的需求概述.142.3.3 报表类型的需求分析.152.3.4 报表引擎的需求分析.172.4 其他需求.222.4.1 安全性需求.222.4.2 系统性能需求.232.5 小结.23第三章系统总体设计及相关技术分析.243.1 系统总体设计中的关键问题.243.2 系统技术方案选型.243.2.1 系统支撑平台技术选型.243.2.2 系统数据访问技术选型.253.2.3 系统表现层技术选型.263.3 系统整体技术架构.263.4 统计分析子系统的架构设计.29北京航空航天大学硕士学位论文3.4.1 统计分析子系统基本设计原则.293.4.2 统计分析子系统架构说明.303.4.3 统计分析子系统架构与父系统架构的对应关系.313.5 统计分析子系统的功能模块设计.323.5.1 统计分析功能模块的设计说明.323.5.2 报表引擎功能模块的设计说明.343.6 其它设计问题.353.7 报表引擎技术分析.363.8 AJAX技术分析.373.9 小结.39第四章 系统详细设计与实现.404.1 系统详细设计的关键问题.404.2 报表定义的设计与实现.404.2.1 报表定义的关键问题及解决方案.414.2.2 报表定义文件的设计与实现.424.2.3 报表定义语言的设计实现.464.2.4 报表定义解析方案的设计与实现.474.3 报表引擎的设计与实现.504.3.1 报表标签的设计与实现.514.3.2 报表引擎API的设计.524.3.3 报表请求处理模块的设计与实现.544.3.4 报表引擎数据模块的设计.564.3.5 报表定义解析模块的设计与实现.574.3.6 报表环境管理模块的设计.584.3.7 报表运算模块的设计.604.3.8 报表版本控制模块的设计与实现.604.4 统计分析功能的设计与实现.634.4.1 统计报表管理功能模块的设计与实现.644.4.2 基本分析功能模块的设计与实现.664.5 数据库具体设计.674.6 小结.68第五章系统测试与部署.695.1 系统测试概述.69北京航空航天大学硕士学位论文5.2 报表引擎的测试方法.705.2.1 数据库连接API的单元测试.705.2.2 对定义文件解析器的单元测试.705.2.3 对报表运算引擎进行测试.715.2.4 上层模块测试.715.3 统计分析子系统的测试方法.715.4 测试工具.735.5 测试实施及结果分析.735.5.1 功能测试结果分析.735.5.2 非功能测试结果分析.755.6 结论.76第六章总结与展望.776.1 论文总结.776.2 工作展望.78参考文献.79致谢.81111北京航空航天大学硕士学位论文第一章绪论1.1 课题背景和意义多年来,我国各级政府本照中央政府的要求,大力度建设电子政务系统,其目标是 实现政府的办公自动化。但是,政府很多部门都属于具有专业背景的部门,他们在办公 流程、日常工作内容等方面都超出了现有通用办公自动化系统所涵盖的内容。建设面向 专业领域的电子政务系统势在必行,本文的背景即为建设面向农业领域的专用政务平 台。北京市密云县农业委员会(以下简称农委)负责密云县农业政策的制定与实施,目 前也已经实现了基本的办公自动化。该办公自动化系统虽然包含了完整的一般性政务办 公流程,但却无法满足农委以及相关单位对农业数据处理的需求。农业数据是一种分级 统报的数据,而农业管理单位也是分级管理的单位。农业数据都是从基本的农户开发统 计的,逐级汇总,经过村政府、乡镇农口单位(如某乡经管站)汇总到农业归口单位(如 密云县经管站或密云县畜牧中心),这些农口单位将数据制作成为报表,报送给农委审 阅。对于办公系统而言,报表的逐级报批属于一般性功能,但是农业数据专业性较强,数据报表的制作与统计都需要服务器实时完成,现有通用政务平台产品无法实现这一需 求。为了实现对密云县农业生产数据的统计与分析,密云县农委决定投资建设“密云县 农业资源管理决策系统”以实现联网处理农业数据的目标。该系统分三期建设,第一期 的研发目标为实现农业数据的统报与统计,第二期的研发目标为实现数据挖掘以及决策 支持,第三期的研发目标为建设农业数据空间信息系统。其中,第一期工程被称为“密 云县农业资源管理系统”。本文的项目背景为该系统的第一期工程,第一期工程的核心为统计分析子系统,其 统计分析功能建立在报表引擎之上。所有的农业数据都通过报表引擎进行整理与统计,开发报表引擎是实现统计分析的基础。报表引擎在国内外都有成熟的产品。目前国内的报表普遍属于“中国式报表”,这些 报表表头复杂,表的各行也往往包含复杂的逻辑关系,在大多数情况下,不同的报表之 间还存在一定的联系,这种报表与国际标准二维报表有较大的差异,故国外报表引擎无 法处理。国内报表引擎系统虽然一般都可以解决“中国式报表”问题,但仅限于通过数 1第一章绪论据库查询数据并展示。作为集成式的办公平台,数据的填报、展示显然都需要在线完成,这种需求已经超出了国内一般报表引擎的功能范围。另外,国内报表引擎一般属于“定 义一张报表就只能展示一张报表”的类型,对于日常工作中的年报、月报等具有时间属 性的报表没有专门的处理方式,进而无法实现“定义一张报表模板,填写多个报表实例”的需求。综上所述,通过采购的方式获取报表引擎的方案是行不通的。为了实现统计分析子系统,必须研发新的报表引擎,这也是本文论述的核心。1.2 国内外研究现状本系统的核心是报表引擎,故本节阐述国内外报表引擎的技术现状。中国式报表是中国特有的报表形式,其中最重要的特点是“复杂表头”以及“不规 则表行”。外国研究机构一般不会涉及到中国式报表的特有领域。我们常见的外国报表 工具包括如下公司的产品:Style Report,获奖次数最多的美国报表产品,能够进行包括复杂套表查询在内的多 种报表技术,同时具备联机分析处理能力(OLAP)。该系统提供复杂的API以定制数据 源、缓存、分析策略以及显示策略等报表要素,能够与各种应用程序服务器完美结合。Jasper Report,开源世界中最著名的报表系统,能够进行报表的生成与统计,但不 具备图形界面以及OLAP功能,属于入门级产品。目前,另外一些开源项目为该系统只 作了一些图形界面,但由于其功能简单,尚不具有广泛使用的价值。其他各类外国报表产品与上述产品大同小异,他们共同的特点是提供对标准表头结 构的二维表的生成与分析处理。国内公司面向本国国情,提出了解决报表问题的一揽子方案,这些方案基本上包括 如下的内容:采用HTML表格显示报表结构;采用图片模拟斜线在表格结构中显示,以求实现报表样式与实际报表样式完全 一致;采用多源分片或类似的方案解决报表中的复杂表头与复杂左表头的问题;提供基于网页的填表模型,使得用户可以直接在浏览器中填报数据。这些方案成功的解决了中国式报表的填报问题,但是也遗留了一些其他问题。目前,这类报表主要面向单张设计与单张填报的模型,对报表模板的支持比较混乱,这种情况 导致此类报表系统的用户不能轻松的创建一个填报模板,然后在系统中多次填报。如:2北京航空航天大学硕士学位论文防汛物资统计情况是一张年度报表,在设计好填报的表样后,应当能够指定报表的类型 为年报、月报或日报等等。每次填表时,应当提供方案,允许客户输入相应的年份或月 份等参数,并为不同的年份或月份等参数创建不同的报表实例。并且,在报表类型明确 的前提下,这些系统应当提供跨越年度或月份的报表信息比较统计功能。目前,国内的 报表系统仅仅部分的实现了上述功能需求,而且由于不具有统一的国家标准以及未能提 供详尽的APL这类系统在二次开发上以及可移植性上同国际上的软件有较大的差距。国内的报表软件是在国外报表软件发展成熟之后才开始研发的,但因为国外软件具 有通用软件的特点,属于国际化软件,报表格式不可能照顾某个具体的国家,所以不具 备中国式报表的开发能力,故而国内软件起步虽晚,却正在走出自己的特色。国内报表系统与国外报表系统的相同之处在于:两者都面向关系型数据库 两者都使用B/S架构进行显示 两者都提供简单的OLAP功能国外报表系统的特色在于:提供面向B/S结构的报表设计功能 提供先进的、组织良好的API 提供更加复杂的数据仓库支持以及BI(商业智能)处理而国内报表系统的特色在于:提供中国式报表的设计与定义 提供在线填报的功能表1比较了现有商业产品与用户需求相对于程序员以及用户来说,目前并没有相对 全面的解决方案。面对中国式报表,我们需要的功能更加复杂:(1)提供填报报表的类型定义(年报、月报、日报等);(2)提供完整的数据访问抽象API;(3)提供完整的在线报表设计工具,并提供存储临时数据的非关系型数据库解决方 案,并且,不管采用何种方式存贮数据,系统仍需要拥有OLAP功能或类OLAP 功能;(4)提供报表的版本控制功能,报表的定义以及报表的实例都是具有历史性的,更 改报表定义不应当使原有的报表实例受到影响,数据库内容的改变也不应该对 已经定稿的报表实例造成影响。3第一章绪论综上所述,目前国内外所有报表引擎系统均存在优势与劣势,为了实现本系统的功能,开发小组需要设计结合了国内外系统优点的报表引擎。报表引擎功能点现有商业产品用户需求提供报表的设计工具提供必须用文件表示报表的定义提供必须提供对数据库的连接提供可选在报表定义的基础上定义报 表无必须提供明确的时间属性无必须提供模板与实例的概念无必须在线填报报表可选必须提供统计图表提供必须提供解决中国式史杂报表的 能力提供必须提供复杂的排版样式提供不需要表1报表引擎功能比较1.3 系统整体综述密云县农业资源管理系统由多个子系统组成,系统的主要功能模块如下图所示:文件流转消息传递农口新闻统计4析子系统犯案管理系统用户权限系%外部系统整合功能注册树用户信息管_对农口系统基础信息统i建模 6 图1密云县农业资源管理系统结构图密云县农业资源管理系统主要提供三个功能:实现密云县农委及其下属单位的电子 政务基本办公H动化,实现农业数据的统报以及与现有专业系统实现无缝集成。1.3.1 农业电子政务办公自动化密云县农业资源管理系统首先是一个办公系统,这意味着系统能够实现所有的网上 办公需求。该系统包含前台以及后台两组系统,除去统计分析子系统外,其主要功能模块还包 括新闻系统、文件管理系统、用户管理系统以及消息管理系统。其中用户权限系统关系 北京航空航天大学硕士学位论文到统计分析子系统。办公自动化系统后的后台是一棵功能注册树,管理员通过使用该系 统可以动态的增删系统功能,统计分析子系统也是通过该功能分配给各个农口单位相关 人员的。1.3.2 农业数据统报农业数据统报是通过统计分析子系统实现的,这一子系统处于核心的地位。统计分 析子系统能够实现如下功能:(1)管理员在系统中定义若干的报表并将报表关联到数据库;(2)被授权的用户可以填写报表,报表在保存时将进行数据校验;(3)被授权的用户可以管理报表,对报表进行各种操作;(4)管理员可以定制报表的查阅权限以及审批流程;(5)领导可以查阅报表并对其进行审批,报表的状态会随着查阅以及审批发生变化。以上功能均可以看作对报表的操作,为了实现这些功能,报表需要报表引擎作为支 撑,报表引擎提供的功能如卜:(1)提供层次清晰的报表定义机制(2)解析报表的定义;(3)将报表关联到其他报表或数据库;(4)运算并生成报表;(5)提供标签库以展示含有CSS样式的报表;(6)提供版本控制以实现报表定义以及实例的历史性。本文主要论述的内容就是统计分析子系统以及报表引擎的设计与实现。1.3.3 与其它系统的集成密云县农业资源管理系统与农口单委的专业系统紧密集成,为领导提供更多参考。通过分析各种专业系统的数据,开发小组通过监控数据库变化,设计了用于集成各种农 业专业系统的中间件,通过使用消息机制,本系统中的数据被异步更新,并以本系统的 统一方式展示给用户。另外,在与森林防火系统以及水情监控系统的集成中,开发小组 还通过消息中间件形成控制流,直接操作监控系统中的硬件,使这种集成变为真正的互 动。综上所述,密云县农业资源管理系统是一个多子系统的复杂集合,本文研究的内容 为统计分析子系统以及其支撑环境报表引擎,即图中黄色背景的区域。5第一章绪论1.4 论文研究的目标和内容本文的研究目标是设计与实现一个处理农业数据的统计分析系统,为密云县农业资 源管理系统提供数据统报平台。本文的主要内容是分析密云县农委对统计分析子系统的 需求,从功能需求中提取对报表引擎的内在需求,随后以Java语言为编程语言,以 Hibernate及Spring框架为支撑,首先实现报表引擎,随后实现建筑于之上的统计分析 系统功能。本文的具体工作内容如下:(1)设计与实现了一个报表引擎,该引擎的作用是处理报表定义文件,获取数据库 数据,组装报表并展示给用户;(2)设计与实现了一个统计分析子系统,该系统使用报表引擎作为支撑,对农业数 据报表进行管理,所有的用户都可以使用该系统通过浏览器操作报表,包括报 表的创建、填写、呈报、审批等操作。1.5 术语与缩略语表2术语与缩略语术语或缩略语全称解释XPExtremeProgramming极限编程,敏捷软件开发中的一种实践方式,适用于Web系统的开 发Java EEJava Enterprise EditionJava语言企业版,以前称为J2EE,在2006年修改成为Java EE轻量级容器无管理程序组建生命周期的软件程序称为容器,EJB属于重量级容器,Spring属于轻量级容器,两者的区别在于组件的实现方式POJOPlain OldJava Object普通Java对象,用来与EJB等重型概念相对应,一个普通Java对 象就可以被轻量级容器管理,并运行在企业级生产环境中,另外,普通Java对象可以用来表示持久化的对象,但需要通过ORM(见 下一条解释)技术支持ORMObject-Relati onal Mapping一种常见的技术解决方案,将对象映射成为关系型数据库中的数据,最佳的Java ORM工具是Hibernate,Hibernate与Spring相配合,可 以提供企业级持久化解决方案CRUDCreate-Read-Update-Delet e一般的Web系统表现为对数据的四种处理方式:建立、读取、更新 以及删除,这种简单的Web系统被称为CRUD系统报表定义指一种模板,如某种年度报表的模板,这种模板可以反复填写报表实例某个模板的一次填写就是一个实例,只有实例才具有数据统计的价 值6北京航空航天大学硕士学位论文1.6 论文组织结构本论文共由六章组成:第一章“绪论”介绍了本文课题的背景、来源和研究意义,介绍了密云县农业资源 管理系统的基本情况,分析了国内外技术现状,并提出本论文的研究目标和内容。第二章”系统需求分析”介绍了项目基本需求,讨论本项目开发中使用的极限编程 工程过程的基本要求以及开发小组实际使用的改进过的需求分析方法,并对统计分析子 系统以及报表引擎进行需求分析工作。本章的重点是将用户的功能需求引申到对报表引 擎的内在需求,着重分析面向本系统统计分析子系统的报表引擎应具备的功能。第三章”系统总体设计与相关技术介绍”。提出统计分析子系统尤其是报表引擎的 关键设计问题,提出完整的解决方案,做出系统的总体设计。同时,介绍系统设计中使 用的有关技术并进行简要分析。第四章“系统详细设计与实现”。给出系统的各逻辑模块的详细设计,着重描述 报表引擎的具体设计,简要说明数据库的设计并讨论系统实施的一些细节问题。第五章”测试与部署”。分析了系统需要进行的测试并给出测试情况分析,详细描 述了系统的部署情况。第六章“总结与展望”。对项目已完成部分以及论文工作进行简要总结,并展望下 一步系统研发工作的内容。1.7 小结本章首先介绍了论文的背景及其现实意义,随后介绍了目前国内外相关领域对报表 引擎的研究状况,紧接着简要介绍了密云县农业资源管理系统的整体情况以及统计分析 子系统、报表引擎与整个系统的关系,最后阐述了本论文的主要工作内容、要达到的目 标以及全文的组织结构。7第二章系统需求分析第二章系统需求分析密云县农业资源管理系统的需求获取工作前后共历时四个月时间,其中前两个月采 用集中调研的方式,后两个月采取补充调研的方时。本章将主要介绍统计分析子系统的用户需求以及其核心系统报表引擎的系统 需求,在描述这些需求之后,我们还将对需求进行初步的分析,为技术选型以及系统设 计打下基础。在实际的调研过程中,开发小组经历了两个主要阶段以完成调研任务,其中第一个 阶段是进行项目功能需求调研,第二个阶段是进行报表引擎系统需求分析。在第一个阶 段中,我们获取了大量的用户角度的功能描述,通过这些描述可以梗概的了解系统的面 貌。这些功能描述中涉及了大量报表功能,与报表相关的问题是整个需求工作的核心。在第一个阶段结束后,开发小组对需求进行了简单的分析,通过建立系统的原型,我们 发现统计分析子系统明显建立在报表引擎系统之上,然而报表引擎的研发本身就是产品 级别的工作,其需求获取工作显然需要单独进行。因为,在第一个阶段的工作成果之上,开发小组又以形成报表引擎系统为目标进行了第二个阶段的需求获取工作,这一阶段我 们主要以自身为用户,经多次讨论以及与其他报表引擎产品的比较,我们最终获取了报 表引擎系统的全部需求。2.1 系统需求概述密云县农业资源管理系统统计分析子系统是一个数据收集与处理系统,该系统的功 能是收集数据与展示农业生产数据,并且为数据挖掘提供良好的数据结构。由于密云县 农业资源决策支持系统分为三期建设,该子系统也分为三期建设。密云县农委计划按如下方案划分这三期工程:第一期工程建设报表系统,能够做到 所有密云县农口报表的在线设计、在线填报以及在线展示,对于领导而言,还需要提供 数据的集中展示,如果领导需要对某一类型的数据集中统计,那么不工作人员应该能够 通过本系统设计一张或多张新的报表,并通过将这些报表中的单元格关联到已经存在的 报表上来实现统计功能。第二期工程的主要目标是实现数据挖掘功能,通过对既有的数 据重新建模,根据农委的需求用第一期工程的数据培训系统,形成有价值的预测。第三 期工程的主要目标是通过与空间地理信息系统整合,形成基于空间信息、农业数据的双 重数据挖掘,最终实现空间可视化的农业决策数据支持。8北京航空航天大学硕士学位论文在第一期工程中,统计分析系统被用来实现报表以及统计功能。农业数据一般是以 表格的形式从农户逐级报送到农委的,这些数据一般经过两种可能的处理工序:统计为 新的报表或直接修正数据后向上呈报,统计分析系统必须能够满足这种需求。根据农委的一般工作流程,统计分析系统必须有对应的功能来实现,表3列出了农 委的工作流程与统计分析子系统的功能对应关系。表3农业业务流程与系统功能需求对比农委工序统计分析系统的功能规划一张报表定义新的报表从上级或北京市领取一张新的报表同上制定报表的填表单位,决定报表的呈报方式定义报表填报工作流填写报表在线填报将报表报送指定单位或领导将报表提交,自动传送至报表工作流指定的审阅 单位以及审阅人报表审阅单位负责处理报表的工作人员审阅报表报表审阅被审阅的报表报送给领导同上领导对报表进行批示在线审批工作人员将报表存档无对应功能,报表存储在数据库中领导提出对统计报表的要求,办公室工作人员根 据领导要求定制新的报表定义新的报表工作人员寻找以前提交的报表的数据,填写刚刚 制作的统计报表通过报表设计器,将一张报表关联到其他报表领导或工作人员根据工作需要,将报表批量取出,寻找需要的历史报表报表列表、报表检索存档时间长久的报表,应当在经过批准后销毁报表删除、数据备份农委修改报表的格式编辑报表定义提交报表的单位查阅自己提交的报表报表列表、报表检索提交报表的单位根据审批意见修改自己的报表报表审批、报表重新提交表3列出了农委的主要报表工作流程,为了实现这些流程中的项目,统计分析子系 统需要具备表中右列的功能。为了实现办公自动化,这些功能的使用顺序与农委的日常 工序存在不同之处,根据业务流程可以形成对功能流程的需求,如图2至图5所示。图形共分为两组,其中图2、图3对比了农委对报表的模板的管理,在统计分系系 统中,我们仍称报表的样式定义为“模板”,从图中可见,报表模板的功能流程比较农 委业务流程更加规范和完整。图4、图5对比了农委填写以及维护报表的流程,从这一 流程对比可以看出,目前的业务流程相对将为混乱,报表的呈报、审批流程虽然可以以 流程方式展示但却具有很大的可变性。图5描述了一个可能的统计分析系统报表工作流 程,这一流程应能够按照农委实际工作流程的变化具有多样性。9第二章系统需求分析图2农委报表创建流程图3统计分析系统报表定义管理图4农委报表工作流程保存报表模板10北京航空航天大学硕士学位论文图5统计分析系统报表工作流程为了实现统计分析系统地若干功能,整个系统还需要有报表引擎作为支撑,报表引 擎的实质是一种框架,能够通过报表定义、解溪报表、计算报表数据等一些烈步骤实现 报表的组装,统计分析系统展示报表的工作实际上就是通过调用报表引擎来实现的。报 表引擎相对于统计分析系统而言是内在的子系统,其需求分析详见2.3.2节。2.2 需求获取方法简介根据本人所在公司软件开发方面的要求,密云县农业资源管理系统将采用敏捷软件 开发方法设计与实施。敏捷软件开发已经拥有了几种著名的软件工程方法作为其理论指导下的实践方式,其中最著名的软件开发方法称为:XP软件开发方法。“XP”是英文“extreme Programming的缩写,在中文中的含义是:极限编程。极限编程的概念并不仅仅代表“编程”这一个环节,她是一个从计划到测试的完整的软件开发流程。与RUP开发方 式类似,极限编程同样是采用迭代开发的方式。本章获取的需求分为两个部分:统计分析子系统的功能需求以及报表引擎的功能需 求。在获取统计分析子系统功能时,开发小组遵循了极限编程的最佳实践要求,采用了“用户故事”的方案描述需求,而在获取报表引擎的需求时,则使用了“用例”的方案 获取需求。对应于统计分析子系统,本文还将使用极限编程的其他步骤来设计与实现。11第二章系统需求分析2.3 系统的功能需求分析在第一个迭代周期开始之前,开发小组一直驻扎在密云县,进行了长达两个月的需 求调研工作,调研工作涵盖了几个主要的方面:(1)农口十个单位的基本情况;(2)农口十个单位的所有报表、报告;(3)涉及到呈报的报表、报告的日常操作流程;(4)现有遗留系统,如办公自动化以及地理信息系统。在农口单位积极的配合下,所有的报表和报告都在指定时间内收集成功。随后,开发小组根据用户对系统的设想,将整个系统划分为:新闻系统、办公自动 化系统、地理信息系统以及统计分析系统。本文中论述的统计分析系统是日常使用频率 较高子系统。统计分析系统的核心是报表引擎,报表引擎在本项目中比较独立,属于框架类别的 系统核心组件,根据用户的需求,我们无法准确的设计出一个报表引擎,只能采用对现 有开源及商业报表引擎进行分析改进的方案来设计实现本项目中的报表引擎。下面,我 们将逐步分析述统计分析子系统的功能需求。2.3.1 统计分析子系统的需求分析根据极限编程实践原则,所有的客户需求都要采用用户故事的方式记录,密云县农委 提供的用户故事记录了他们对系统最终表现形态的要求。用户故事与用例类似,也是记 录用户需求流程的工具,在本文中,我们使用“用例图”来分析用户故事。以下是核心部分的用户故事:用户故事一:某个经过授权的某单位的某个人可以向系统中添加一张报表。这张报表以实际的报 表样式为准。在添加了这张报表后,添加报表的人可以指定这张报表属于哪个科室的哪 个人填写以及填完的报表哪些领导可以看见。在报表录入系统后,其他经过授权的人可 以维护这样报表的基本情况。一旦报表被添加进入系统并指定填报人,该填报人自己的 菜单上将显示有关填写这样报表的选项。报表的设计人可以定义报表的基本审批流程,制定报表的审阅人以及审阅权限,填报人无权决定报表提交后的去向。12北京航空航天大学硕士学位论文用户故事二:经过授权的某单位的某人可以在自己的菜单中选择填报报表,报表的每一个表格都 可能有约束条件,填写完成之后,这个人可以选择保存报表或发布报表。保存报表将使 报表存储在草稿中;发布报表将使报表不能再被修改。但是如果这个填报人又被授权修 改,他可以修改已经发布的报表,而且报表的状态又重新变为草稿状态。用户故事三:农委领导可以审阅报表。农委领导看到报表后,可以选择“已阅”。还可以选择“驳 回”。领导可以把报表发给自己的秘书或农委综合科的指定人员,尤其是选择了“驳回”的报表仍然可以发给这些人。一旦“驳回”并且没有发给这些人,报表就应该被打回填 报人,状态变为草稿,这个报表的负责人也应该收到提示。用户故事四:农委领导一旦“驳回”一张报表,并且发给一个指定的人,那就意味着这个被指定 的人应该收到通知,他需要马上察看报表的情况,并立即通知相关人员(包括填写单位 和填写人),在了解清楚情况后,他可以选择将报表重新提交给领导或“驳回”给填写 人。用户故事五:报表系统应该这样定义一张报表:某某月报就是按月必须填写的报表。如果一张报 表是月报表,那么这样报表就需要在每个月都填写。这类报表分为年报、月报、日报、季报、半年报。对应于所有的这类报表,都可以按照时间的先后排序。还有一类报表是 临时报表,临时报表可能有固定的形式也可能没有。存在固定形式的报表可以先录入系 统,需要填写的时候填写一张。没有固定形式的报表就需要上传Word文档即可。用户故事六:对报表可以进行一般的操作,包括检索和删除。检索一张报表有很多方式,可以检 索报表的时间、填报时间、填报人、单位或者是内容。可以按照一项检索或多项检索,不能不指定任何项就检索。每个人根据自己的权限不同可以检索到不同的报表,而删除 或者是修改都需要特别的授权。被删除的报表不能直接删除,要存档,要可以恢复。13第二章系统需求分析用户故事七:对报表可以统计,报表中的数据可以按照领导的要求画图,领导的要求是固定的,可以预先在报表中定义好。一般情况下,需要画图的内容可能涉及到很多张表,有可能 是同一个类型的很多张表,也可能是不同类型的多张表。用户故事八:所有的报表在填写的时候都可以上传附件,填写人还可以为报表填写注释。填写报 表的人以及任何有权利查看报表人都可以选择打印报表或将报表输出为Excel文件或 PDF文件。这些功能的总体设计以及详细设计详见第三、第四章。2.3.2 报表引擎的需求概述通过上一节的用户故事可以看出,即使经过语言的修正,用户故事仍然只能代表了 用户混乱不清的思维,作为合格的极限编程团队,获取用户需求必须要进行任务分解,直到获得更有价值的任务集。14北京航空航天大学硕士学位论文通过对用户故事的分析,我们注意到用户对报表系统并不了解,系统开发中的瓶颈 用户并未发掘。系统的开发瓶颈不在于业务流程,任何业务流程都可以较为轻松的定制,真正的难点在于对报表的“定义与处理”,即报表引擎。用户对报表引擎的需求可以被抽象为如下功能点:(1)提供一个的设计器;(2)可以在定义一个报表的时候引用另一个报表的定义;(3)报表需要明确的时间属性;(4)可以查询报表;(5)报表定义后仅仅是一个模板,比如一张“月表”的定义,一个模板显然对应了 若干的“实例”;(6)报表可以统计,对报表的统计可能包含三种典型的情况:a)对一张报表“实例”的统计
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服