[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc

上传人:sccc 文档编号:4532990 上传时间:2023-04-26 格式:DOC 页数:52 大小:722.93KB
返回 下载 相关 举报
[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc_第1页
第1页 / 共52页
[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc_第2页
第2页 / 共52页
[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc_第3页
第3页 / 共52页
[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc_第4页
第4页 / 共52页
[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc》由会员分享,可在线阅读,更多相关《[工学]时间序列数据可视化工具的设计与实现终稿updated2.doc(52页珍藏版)》请在三一办公上搜索。

1、装订线时间序列数据可视化工具的设计与实现时间序列数据可视化工具的设计与实现软件工程 郭磊 指导老师 穆斌【摘要】时间序列数据是一类普遍而又广泛存在的数据类型,近年来时序数据挖掘越来越受到人们的关注。时间序列分析是对时间序列的规则和模式进行发现的统计学方法。而数据可视化技术可以帮助对于时间序列数据的挖掘。本文设计并实现了一个基于统计分析的数据挖掘可视化原型工具,旨在帮助计量经济学教学,以及针对一维时间序列数据进行可视化挖掘。本文首先介绍了数据可视化的相关技术。其次介绍了时间序列分析的原理,并介绍了利用简单的时间序列分析技术实现的数据挖掘可视化原型工具,具体描述了此原型工具的设计和实现。最后本文利

2、用此工具对一个示例时间序列数据集进行可视化分析挖掘,展示了此原型工具的工作流程和分析表述能力。【关键词】 数据挖掘 可视化 时间序列分析 计量经济学【Abstract】 Time series data is a ubiquitous data type. In recent years, time series data mining is drawing more and more attention. Time series analysis is a statistical method for finding rules and patterns in time series. Me

3、anwhile, data visualization can help with the mining of time series data. In this paper, a statistics-based data mining visualization prototype is designed and implemented, aiming to work as an educational assist to Econometrics and visually mine one-dimension time series data. Firstly relevant tech

4、niques about data visualization were introduced. Then the theory of time series analysis was presented. The design and implementation of the prototype using basic time series analysis techniques were specifically described. Finally, we used the prototype to visually analyze and mine a sample time se

5、ries dataset, presented the working process and analytically expressiveness of this prototype. 【Keyword】 data mining visualization time series analysis Econometrics共 52 页 第 1 页目录1引言41.1项目背景41.2市场背景41.3研究目标51.4本论文组织结构52相关概念和理论知识62.1数据可视化62.1.1数据类型62.1.2可视化技术72.1.3交互和变形技术92.1.4数据挖掘可视化92.2时间序列数据挖掘和时间序列

6、分析102.2.1时间序列数据挖掘简介102.2.2时间序列分析112.2.3时间序列的分析模型122.2.4时间序列的分析步骤132.2.5长期趋势的分析方法142.2.6季节性变动的分析方法152.2.7本文所用的模型152.3MVC模式与Java Swing152.3.1MVC模式152.3.2Java Swing173需求分析与系统概要设计193.1需求分析193.2模块划分193.3系统架构203.4平台选择214各模块详细设计与功能实现224.1控制器概述224.2用户界面模块的设计与功能实现224.2.1概述224.2.2模块功能描述224.2.3功能实现224.3数据模块的详细

7、设计与功能实现244.3.1概述244.3.2模块功能描述244.3.3功能实现254.4输入输出模块的详细设计与功能实现274.4.1概述274.4.2模块功能描述274.4.3功能实现284.5图形模块的详细设计与功能实现294.5.1概述294.5.2模块功能描述304.5.3模块功能实现305案例演示375.1概述375.1.1获取源数据375.1.2数据预处理385.1.3读入文件385.1.4数据可视化395.1.5选取模型进行挖掘结果可视化395.1.6结果编辑和输出426总结与展望456.1总结456.2展望46参考文献47附录48术语表48谢 辞521 引言1.1 项目背景时

8、间序列数据是一个普遍存在的数据集合。在现实生活中,时间序列数据遍及经济、气象、通信、医疗等等多个领域。时间序列数据中包含着很多潜在的有用的信息。对时间序列数据进行挖掘具有很重要的价值它能够帮助人们掌握时间序列中蕴含的规律,为人们提供有力的决策支持。随着电脑的普及和互联网的发展,大量的数据随处可得,对时间序列数据的分析和挖掘也已经在客户行为分析、Web访问模式、序列、疾病监测、自然灾害、科学实验等领域获得了广泛应用。时间数据挖掘可以用作对未来行为的预测,具有重要的研究价值和实际意义。长期以来,数据可视化技术一直被用来进行时间序列数据的分析和挖掘。数据可视化技术能够在数据挖掘的早期引入用户的认识、

9、偏好,从而降低整体的计算复杂度,并且减少无意义结果的数量。使用可视化技术来挖掘时间序列数据,大数据量的数据可以在屏幕上同时进行展示,可以使用户直观地看出时间序列数据中的相似性、趋势,等等。数据挖掘事先并不知道会挖掘出什么结果,也不知道挖掘模型会得到什么样的挖掘结果;可视化为分析大量的复杂的数据提供了帮助。数据挖掘和可视化的结合能够大大提高对数据分析的速度和效率。时间序列分析(Time series analysis)是一种动态数据处理的统计方法。该方法基于随机过程理论和数理统计学方法,研究随机数据序列所遵从的统计规律,以用于解决实际问题。它包括一般统计分析(如自相关分析,谱分析等),统计模型的

10、建立与推断, 以及关于时间序列的最优预测、控制与滤波等内容。经典的统计分析都假定数据序列具有独立性,而时间序列分析则侧重研究数据序列的互相依赖关系。后者实际上 是对离散指标的随机过程的统计分析,所以又可看作是随机过程统计的一个组成部分。1.2 市场背景在经济金融领域,存在着大量的时间序列数据,对于这些数据的分析和挖掘,是市场上十分热门的应用。在市场上能够对时序数据进行可视化分析的工具软件相当之多,可以列举出以下三类:(1)针对金融市场的各类分析软件,尤其如股票分析软件等。(2)针对商业分析的各类商业智能(Business Intelligence)软件,如进行销售业绩分析的软件等。(3)针对经

11、济数据分析的计量经济学分析软件。这些软件有一个特点,就是专业性比较强,使用起来比较复杂,而且往往不仅仅针对一类数据。即使是专门针对股票数据的工具,也常常会有很多专业性的指标和术语。这就要求用户投入相当的精力和时间来进行相关的培训,以熟悉各种指标、术语和使用方法。在本工具专注的计量经济学领域,存在着Eviews,SAS等等相当专业的工具。同样的,这些工具也存在着门槛较高,使用方法较复杂的问题。在使用这些软件进行专业的统计分析之前,最好的方法是利用样本数据进行相关术语和分析方法的学习。尤其在计量经济学领域,经济时序数据常常是长期趋势、季节性、周期性都很明显的数据,利用一种简便的工具对样本经济学数据

12、进行分析和学习是很必要的。1.3 研究目标根据以上背景介绍和分析,本课题的目标便产生了:(1)本课题将深入研究时间序列数据,尤其是经济学数据的统计学特征,利用时间序列分析的技术,建立有效而容易理解的统计学模型。(2)利用建立起的统计学模型,本课题将设计和实现一个原型教学工具,展示对于一维时间序列数据进行分析处理,并将最终结果可视化的过程。1.4 本论文组织结构论文结构分成9章,包括相关概念和理论知识的介绍、统计研究过程的设计和具体实现,对统计结果的分析以及对本文的总结。第一章说明了选题的背景意义。第二章介绍了在课题中所用到的相关技术概念和理论知识的介绍。第三章介绍了系统的概要设计和模块划分。第

13、四章详述了系统各模块的设计与实现。第五章以样本数据为例,演示了本系统的功能。第六章总结了论文的主要工作,对未来的工作提出了展望。2 相关概念和理论知识2.1 数据可视化数据可视化研究范围包括三个方面。2.1.1 数据类型数据可视化涉及到数据类型、可视化技术以及对数据进行交互和变形的技术。这三个要素构成了对数据的可视化。待可视化的数据类型包括:(1)一维数据一维数据通常有一个密度维,典型的一维数据的例子是时序数据。在每一个时间点有一个或多个数据值相关联。(2)二维数据二位数据有两个不同维。一个典型的例子是地理数据,有两个不同的维精度和纬度。X-Y坐标是典型的现实二位数据的方法。在数据量不是很大的

14、情况下,可以很容易的处理时序数据或地理数据。(3)多维数据许多数据集包括超过三个的属性,这样就不能简单的作为二维或三维数据来显示。多维数据的典型例子是关系数据库中的表,标的每一列都表示一个属性。可以对多维数据进行描述的方法有:平行坐标、密集像素显示技术、散点图矩阵、星型坐标等等。(4)文本和超文本,不是所有的数据都可以靠维数来表示。文本和超文本是一种重要的数据类型,这些数据不能轻易的被描述为数字,因此许多标准的可视化技术不能被应用。多数情况下,首先把该数据转化为向量描述,然后再应用可视化技术。(5)还有一些数据类型,如图形、层次数据、算法和软件等等。图形可以表示一般数据之间的内部依赖关系。层次

15、数据类型可视化在专门的论文中有叙述。算法和软件的可视化目的是为了帮助对算法的理解,以此来支持软件的开发,例如流程图、代码结构图等等。图2.1 数据可视化的三个方面2.1.2 可视化技术可视化技术包含几个方面,下面逐个介绍每种可视化技术。(1)标准的2D/3D技术:如X-Y(X-Y-Z)坐标,散点图(Scatterplots),条形图(Bar Charts),线条图(Line Graphs)等等,这也是我们最常用到的数据可视化表达方式。散点图又叫散布图,相关图,它是将两个可能相关的变数资料用点画在座标图上,用成对的资料之间是否有相关性。这种成对的资料或许是特性原因,特性特性原因的 关系。通过对其

16、观察分析,来判断两个变数之间的相关关系。这种生产中也是常见的,例如热处理时淬火温度与工件硬度之间的关系,某种元素在材料中的含量与材料强度的关系等。这种关系虽然存在,但又难以用精确的公式或函数,在这种情况下用散点图来分析就是很方便的。假定有一对变数x 和y, x影响因素,y 表示某一质量特征值,通过实验或收集到的x 和y 的资料,上用点表示出来,根据点的分布特点,就可以判断x和y 的相关情况。在我们的生活及工作中,许多现象和原因,有些呈规则的关联,有些呈不规则连。我们要了解它,就可借助散点图统计手法来判断它们之间的相关关系。散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对 数据

17、点进行拟合。 散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通 常用于比较跨类别的聚合数据。图2.2 散点图折线图是用直线段将各数据点连接起来而组成的图形,以折线方式显示数据的变化趋势。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。另外,在折线图中,数据是递增还是递减、增减的速率、增减的规律(周期性、螺旋性等)、峰值等特征都可以清晰地反映出来。所以,折线图常用来分析数据随时 间的变化趋势,也可用来分析多组数据随时间变化的相互作用和相

18、互影响。例如可用来分析某类商品或是某几类相关的商品随时间变化的销售情况,从而进一步预测未来的销售情况。在折线图中,一般水平轴(X轴)用来表示时间的推移,并且间隔相同;而垂直轴(Y轴)代表不同时刻的数据的大小。下图显示了一个包含三个序列的折线图。图2.3 折线图(2)几何转化显示技术(Geometrically-Transformed Displays):几何转化显示技术旨在发现多维数据集的有趣的转化。几何显示技术据研究统计主要包括:点图矩阵(Scatterplots matrices)、解剖视图(Prosection Views)、平行坐标法(Parallel Coordinates)、星型坐

19、标法(Star Coordinates)(3)可视化技术还包括图标显示技术(Iconic Displays)、密集象素显示技术(Dense Pixel Displays)、层叠式显示技术(Stacked Displays)等。散点图与折线图也是本工具所使用的主要可视化技术。2.1.3 交互和变形技术除了数据可视化技术,对于有效的数据研究还需要一些交互和变形技术。交互和变形技术可以使数据分析人员直接和视图交互,并且按照研究对象动态地改变试图。用户根据领域知识和主观判断利用交互变形技术可以使视图以不同的效果显示出来,从不同的角度对数据进行分析观察,达到很好的数据分析效果。不同的数据可视化方法,对视

20、图的交互和变形技术也有所不同,如上面介绍的各个数据可视化方法,都有各自的可视化技术供用户在于数据视图进行交互式使用。下图展示了一个可视化模型:图2.4 可视化模型2.1.4 数据挖掘可视化数据挖掘是从大量的数据中提取或“挖掘”知识。广义的观点是,数据挖掘是从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有意义的知识的过程。数据挖掘被视为数据管理与分析技术自然进化的产物。可视化在数据挖掘中是一个多面手,能使人在视觉上理解多维数据中的复杂模式,通过观察数据在多重维数和多重图形窗体中的存在形态,可以直观、迅速地揭示数据趋势,帮助验证数据挖掘模型的可信度。传统的数据挖掘过程以机器为中心,而融和了

21、可视化技术的数据挖掘过程是以人为中心的。这样做的好处是,提高了整个数据挖掘过程的灵活性、有效性、与用户的交互性。可视化技术在数据挖掘中能起到以下作用:(1)通过提供对数据和知识的可视化,可以利用人类的模式识别能力评估和提高挖掘出的结果模式的有效性; (2) 利用可视化技术建立用户与数据挖掘系统交互的良好沟通通道,使用户能够使用自己丰富的行业知识来规整、约束挖掘过程,改善挖掘结果;(3)提供对挖掘结果的可视化显示,使用户对结果模式能够有深刻直观的理解,从而打破传统挖掘算法的黑盒子模式,使用户对挖掘系统的信赖程度大大提高。下图分别说明了可视化技术在数据挖掘不同阶段的应用。 图2.5可视化技术在数据

22、挖掘中的应用2.2 时间序列数据挖掘和时间序列分析2.2.1 时间序列数据挖掘简介时序数据挖掘是数据挖掘的重要内容。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中, 提取隐含在其中的、人们事先不知道的、但又是潜在的有用信息和知识的过程。而时序数据挖掘则是挖掘时序数据中潜在的有用的知识或信息。时序数据挖掘已经受到众多学者的关注, 并已成为信息领域的研究热点之一。近几年来, 从事时序数据挖掘研究的学者的研究重点主要集中在如何建立时序预测或分析模型, 这些研究的共同特点是建立以数学公式形式表示的模型对时间序列执行趋势分析或预测, 如基于人工神经网络的时序预测模型,Box-Jenkins

23、 Model 以及 ARIMA Models, 各种混合模型 (Hybrid Model) 等。为建立模型, 先把时序数据的一部分作为训练集, 然后对模型进行有指导的学习, 当认为模型的准确率可以接受时, 模型就以数学公式的形式确定下来, 并用它对未知的时序对象进行预测。本文主要使用时间序列分析中的统计学方法来进行数据的挖掘,以下具体介绍时间序列分析的主要内容以及本文所使用的数学模型。2.2.2 时间序列分析时间序列分析是一种根据动态数据揭示系统动态结构和规律的统计方法,是统计学科的一个分支。其基本思想是根据系统有限长度的运行记录(观察数据),建立能够比较精确地反映时间序列中所包含的动态依存关

24、系的数学模型,并借以对系统的未来行为进行预报。时序分析具有以下特点:(1)时序分析是根据预测目标过去至现在的变化趋势预测未来的发展,它的前提是假设预测目标的发展过程规律性会继续延续到未来,即以惯性原理为依据。事物的现实是历史发展的结果,而事物的未来又是现实的延续,现实与未来是有联系的。时间序列分析法正是根据客观事物发展的这种连续性,利用历史数据推测预测对象未来的发展趋势。但事物未来的变化趋势会受到多种因素的影响,而各种影响因素又在不断发展变化,因此对象的未来发展也不可能是过去历史的简单重复。随着时间的推移,环境因素的制约和影响也在积累,因此时间序列预测用于短期预测精度较高,中期预测其次,长期预

25、测最低。(2)时间序列数据的变化存在着规律性与不规律性。时间序列中每一时期的数据,都是由许多不同的因素同时发生作用的综合结果。通常根据各种因素的特点或影响效果可将这些因素分为四类:长期趋势(T)是指由于某种关键因素的影响,时间序列在较长时间内连续不断地向一定的方向持续发展(上升或下降),或相对停留在某一水平上的倾向,反映了事物的主要变化趋势,是事物本质在数量上的体现,它是分析预测目标时间序列的重点。季节变动(S)是指由于自然条件和社会条件的影响,时间序列在某一时期依一定周期规则性地变化。它一般归因于一年内的特殊季节、节假日,典型的如农产品的季节加工、化肥、空调、服装、某些食品的销售等。循环变动

26、(C)变动以数年为周期,而变动规律是波动式的变动。它与长期趋势不同,不是朝单一方向持续发展,而是涨落相间的波浪式起伏变动。与季节变动也不同,它的波动时间较长,变动周期长短不一。市场经济条件下由于竞争,出现一个经济扩张时期紧接着是一个收缩时期,再接下来又是一个扩张时期等变化,通常在同一时间内影响到大多数经济部门,如对农产品的需求量、住宅建筑、汽车工业的发展、资本主义国家经济危机的变化周期等。这种循环往往是由高值到低值,再回到高值的波浪型模式。不规则变动(I)是指各种偶然性因素引起的变动。不规则变动又可分为突变和随机变动。所谓突变,是指诸如战争、自然灾害、意外事故、方针政策等的改变所引起的变动;随

27、机变动是指由于各种随机因素所产生的影响。上述各类影响因素的共同作用,使时间序列数据发生变化,有的具有规律性,如长期趋势变动和季节性变动;有些就不具有规律性,如不规则变动以及循环变动(从较长的时期观察也有一定的规律性,但短时间的变动又是不规律的)。时间序列分析法,就是要运用统计方法和数学方法,把时间序列数据分解为T,S,C,I四类因素或其中的一部分,据此预测时间序列的发展规律。(3)时间序列是一种简化。时间序列预测方法,假设预测对象的变化仅仅与时间有关,根据它的变化特征,以惯性原理推测其未来状态。事实上,预测对象与外部因素有着密切而复杂的联系。时间序列中的每一个数据都是许多因素综合作用的结果,整

28、个时间序列则反映了外部因素综合作用下预测对象的变化过程。因此,预测对象仅与时间有关的假设,是对外部因素复杂作用的简化,这种简化使预测更为直接和简便。2.2.3 时间序列的分析模型一个时间序列通常包括上述的四种或其中几种变动因素,因此分析时间序列的基本思路就是将其中的变动因素一一分解出来,测定其变动规律,然后再综合反映它们的变动对时间序列变动的影响。采用何种方法分析和测定时间序列中各因素的变动规律或变动特征取决于对四种变动因素之间相互关系的假设。一般可对时间序列各变动因素关系做二种不同的假设,即加法关系假设或乘法关系假设,由此形成了相应的加法模型或乘法模型。 (1)加法模型 加法模型假设时间序列

29、中四个变动因素之间是相互独立且其数值可依次相加,即 Xt = Tt + St + Ct + It (2.1)这种形式要求满足条件:Xt,Tt,St,Ct,It均有相同的量纲; k为季节性周期长度;It是独立随机变量序列,服从正态分布。 显然,加法模型假设季节因素,周期因素和不规则因素的变动均围绕长期趋势值上下波动,它们可表现为正值或负值,以此测定其在长期趋势值的基础上增加或减少若干个单位,并且反映其各自对时间序列值的影响和作用。 (2)乘法模型 乘法模型假设时间序列中四个变动因素之间为相乘关系,即变量的时间序列值是各因素的连乘积。以公式表示 Xt = TtStCtIt,(2.2)其中,Xt与T

30、t有相同的量纲,St为季节指数,Ct为循环指数,两者皆为比例数; ,It是独立随机变量序列,服从正态分布。 显然,乘法模型也假设季节因素,周期因素和不规则因素的变动围绕长期趋势值上下波动,但这种波动表现为一个大或小于1的系数或百分比,以此测定其在t时间的长期趋势值的基础上增加或减少的相对程度,并且反映其各自对时间序列值的影响和作用。2.2.4 时间序列的分析步骤一个时间序列通常存在长期趋势变动、季节变动、周期变动和不规则变动因素。时间序列分析的目的就是逐一分解和测定时间序列中各项因素的变动程度和变动规律,然后将其重新综合起来,预测统计指标今后综合的变化和发展情况。 时间序列的综合分析步骤如下:

31、 (1)确定时间序列的变动因素和变动类型; (2)计算调整月(季)指数,以测定季节变动因素的影响程度; (3)调整时间序列的原始指标值,以消除季节变动因素的影响; (4)根据调整后的时间序列的指标值(简称调整值)拟合长期趋势模型; (5)计算趋势比率或周期余数比率,以度量周期波动幅度和周期长度; (6)预测统计指标今后的数值。2.2.5 长期趋势的分析方法 长期趋势是统计指标在较长一段时期内发展变化的基本形式和方向。长期趋势的分析方法主要有移动平均法和回归分析法,二者可依据时间序列的变动特点分别使用或搭配使用。 (1)移动平均法一次移动平均法是在算术平均法的基础上加以改进的。其基本思想是,每次

32、取一定数量周期的数据平均,按时间顺序逐次推进。每推进一个周期时,舍去前一个周期的数据,增加一个新周期的数据,再进行平均。设Xt为t周期的实际值,一次移动平均值=(Xt+Xt1+XtN+1)/N= (2.3)其中N为计算移动平均值所选定的数据个数。t+1期的预测值取为 (2.4)如果将作为第t+1期的实际值,于是就可用(2.4)式计算第t+2期的预测值,一般地,可相应地求得以后各期的预测值。但由于误差的积累,使得对越远时期的预测,误差越大,因此一次移动平均法一般只应用于一个时期后的预测(即预测第t+1期)。 (2)回归分析法 时间序列的回归分析法是以时间t为自变量,以形成时间序列的统计指标y为因

33、变量,应用最小二乘法,建立y和t之间的回归模型,以此测定时间序列的长期趋势值。最小二乘法的基本原则是:最优拟合直线应该使各点到直线的距离的和最小,也可表述为距离的平方和最小。用数学公式表示为:(2.5)时间序列的长期变动趋势有直线和曲线之分,因此,应当根据其变动趋势的特征分别拟合相应的直线回归模型或曲线回归模型。2.2.6 季节性变动的分析方法 在产品的生产和销售活动中,有些产品的季节性生产,常年消费,如农业、蔗糖加工等;有些产品产常年生产而季节性消费,如电风扇、空调、电暖气等;也有些产品是季节性生产,季节性消费,如清凉饮料等。这些现象在1年内随着季节的转变而引起周期性变动,这种变动往往具有两

34、种特点:(1)统计数据呈现以月、季为周期的循环变动。(2)这种周期性的循环变动,并不是简单的循环重复,而是从多个周期的长时间变化中又呈现出一种发展趋势。季节指数法(又称季节性变动预测法)是指经济变量在一年内以季(月)的循环为同期特征,通过计算销售量(或需求量)的季节指数达到预测目的的一种方法。季节指数预测法,首先要分析判断时间序列观察期数据是否呈季节性波动。通常,可将三至五年的资料按月或按季展开,绘制历史曲线图,以观察其在一年内有无周期性波动来作出判断;然后,再将各种因素结合起来考虑,即考虑它是否还受长期趋势变动的影响;是否还受随机变动的影响等。2.2.7 本文所用的模型(1)本文利用MA(1

35、)模型计算趋势,并利用此模型进行去趋势化,即简单移动平均法。(2)本文利用加法/乘法模型计算季节性,并利用此模型进行去季节化。2.3 MVC模式与Java Swing2.3.1 MVC模式MVC模式(Model模型-View视图-Controller控制器)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发 明的一种软件设计模式。MVC模式的目的是实现一种

36、动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个

37、订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。模型(Model)就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽

38、取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一

39、起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的

40、更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图1所示。 图2.6 MVC模式2.3.2 Java SwingSwing 是一个为Java设计的GUI工具包。 Swing 是 JAVA基础类 的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如:文本框,按钮,分隔窗格和表。Swing是JFC的一部分。 它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着可以在任意平台上使用JAVA支持的任意面板。轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统

41、一的行为。图2.7 JFC系统图Swing的主要特性包括:(1)Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级(light-weight)组件,没有本地代码,不依赖操作系统的支 持,这是它与AWT组件的最大区别。由于AWT组件通过与具体平台相关的对等类(Peer)实现,因此,Swing比AWT组件具有更强的实用性。Swing在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其他特性。(2)Swing采用了一种MVC的设计范式,即“模型-视图-控制器”(Model-View-Controller),其中,模型用来保存内容,视图用来显示内容,控制器用来控制用

42、户输入。(3)Swing采用可插入的外观感觉(Pluggable Look and Feel,PL&F)。相对而言,在AWT组件中,由于控制组件外观的对等类与具体平台相关,使得AWT组件总是只有与本机相关的外观。而 Swing使得程序在一个平台上运行时能够有不同的外观,用户可以选择自己习惯的外观。图2.7 Swing类图3 需求分析与系统概要设计3.1 需求分析1.2.3.根据用户的不同,对时间序列数据进行可视化的需求也不尽相同。由于本工具定位于教学软件,因此本工具应具备如下的特点:(1)处理小数据量的样本数据,针对一维时序数列进行分析和可视化。(2)利用相对容易理解的模型,展示时序数据的各种

43、统计学特性,如趋势、季节性等。(3)可以对最后的结果进行比较分析,进行注释,形成简单文档,便于整理学习。3.2 模块划分本系统划分为五个模块:用户界面模块、输入/输出模块、数据模块、绘图模块。(1)用户界面模块主要负责与用户进行交互,(2)输入/输出模块主要负责对数据集文件的读入与存储。(3)数据模块主要负责对于时序数据的建模分析。(4)绘图模块负责图形绘描绘。系统数据模块用户界面模块绘图模块输入/输出模块图3.1 系统模块图3.3 系统架构系统采取了MVC的架构模式,因此有如下图的架构图。系统利用了观察者模式实现了系统内的数据同步更新以及消息处理。ControllerData ModelFr

44、ames图3.1 系统架构图3.4 平台选择NetBeans由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。NetBeans已经获得业界广泛认可,并支持NetBeans扩展IDE模块目录中大约100多个模块。NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中,为Java开发人员创造了一

45、个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。 AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。 Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。本工具选用NetBeans6.5作为开发环境,Java作为开发语言,AWT/Swing作为GUI工具包。4 各模块详细设计与功能实现4.1 控制器概述StatController类为本系统的控制器,负责协调各个模块。StatController继承了一个Observable对象,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号