大规模DAG的可视化和分析.ppt

大规模DAG的可视化与分析

收藏

压缩包内文档预览:(预览前20页/共24页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:35743601    类型:共享资源    大小:5.98MB    格式:ZIP    上传时间:2019-12-30 上传人:遗**** IP属地:湖北
30
积分
关 键 词:
大规模 DAG 可视化 分析
资源描述:
大规模DAG的可视化与分析,大规模,DAG,可视化,分析
内容简介:
本 科 生 毕 业 论 文题目大规模DAG的可视化与分析姓 名 李 沛 珊 学 号 3110101109 指导教师 张 宏 鑫 专 业 数字媒体(双学位) 学 院 经济学院 A Dissertation Submitted to Zhejiang University for the Degree of Bachelor of EngineeringTITLE:Visualization and Analysis of Large-scale DAGAuthor:Li PeishanSupervisor:Zhang HongxinMajor: Dital Media (Double Degree)College:College of EconomicsSubmitted Date: 浙江大学本科生毕业论文(设计)诚信承诺书 1.本人郑重地承诺所呈交的毕业论文(设计),是在指导教师的指导下严格按照学校和学院有关规定完成的。2.本人在毕业论文(设计)中引用他人的观点和参考资料均加以注释和说明。3. 本人承诺在毕业论文(设计)选题和研究内容过程中没有抄袭他人研究成果和伪造相关数据等行为。4. 在毕业论文(设计)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。 毕业论文(设计)作者签名: 年 月 日浙江大学计算机科学与技术学院本科毕业论文 摘要摘要将非空间抽象信息映射成为有效的可视化形式,寻找到合适的可视化隐喻,是信息可视化的研究重点。从大规模C语言开发项目角度入手,分析使用C语言进行开发过程中各个模块之间编译、链接等构成的相互关系。我们发现某些模块先编译、某些模块后编译,并且各个模块之间存在着一定的依赖关系。利用有向无环图能够比较好的对编译过程进行可视化,从而将将纷繁复杂的抽象关系转换为可以观察的图。由于大规模有向无环图自身的缺陷,我们可以通过合理省略信息、利用不同颜色和图形表现不同的文件以及利用不同颜色区分需要重新编译文件和生成目标文件所需要文件等方式来进行改进,以期改良其可视化结果,更好地服务于用户。但该系统有待完善,交互性能有待提高,如何更加合理地隐藏信息还需要进一步的探讨。关键词大规模;有向无环图;可视化浙江大学计算机科学与技术学院本科毕业论文 AbstractAbstractMapping non-spatially abstract information to effective visualization form and finding the right visualization metaphor are the research focus in the field of information visualization. From the perspective of large-scale projects development using C language, we analyze the relationship among all modules when compiled or linked. Some modules are compiled first while some modules will be compiled later. There are certain dependencies between modules. Using directed acyclic graphs can visualize the compilation process, which will make the complicated abstract relationships converted to the observable graphs. Because of the shortcomings owned by large-scale directed acyclic graph, we can we perfect the large-scale directed acyclc graph by omitting information reasonably, using different colors and graphs to stand up different files and using different colors to distinguish these files which need to be recompiled because of some revision with those files needed when we want to generate an object file. Visualization results will be improved and customers can be served better. However, the system still needs to be improved like improving interactive performance and hiding information more rational.KeywordsLarge-Scale; Directed Acyclic Graph; VisualizationI浙江大学计算机科学与技术学院本科毕业论文 目录目录摘要I目录III第1章 绪论11.1 课题背景11.2 目标和任务21.3 研究重点、难点与可能的创新21.4 本文结构安排2第2章 文献综述42.1 信息可视化的国内外研究42.1.1 信息可视化定义42.1.2 信息可视化应用分类52.1.3 信息可视化参考模型62.1.4 信息可视化发展必然性62.1.5 信息可视化的交互设计72.2 对现有研究成果的简要评述7第3章 研究方案83.1 大规模DAG图构建思路83.1.1 Makefile基本原理83.1.2 构建思路93.2 关键技术103.2.1 深度优先搜索103.2.2 拓扑排序113.2.3 cytoscape图形库123.3 大规摸DAG图改进123.3.1 基于文件夹的信息隐藏123.3.2 利用图形和颜色区分不同文件143.3.3 利用颜色区分重新编译文件和编译依赖文件143.4 本章小结16第4章 实验结果和分析174.1 登陆界面174.2 大规模DAG可视化184.2.1 初始界面184.2.2 选择功能194.2.3 变换/预览功能204.2.4 显示功能214.3 其他功能224.3.1 缩放功能224.3.2 平移功能234.4 本章小结23第5章 本文总结24参考文献25致谢27III浙江大学计算机科学与技术学院本科毕业论文第1章 绪论第1章 绪论1.1 课题背景在进行软件开发的过程中,我们免不了需要编译文件,有些文件需要先编译,而有些文件需要后编译。makefile定义了一系列的规则来指定:文件的编译顺序,是否重新编译,亦或是进行更加复杂的功能操作。makefile使得文件能够进行“自动化编译”,极大地提高了编译效率,加快了软件开发的速度。但是对于一个开发至一定阶段的大规模C语言项目,如果仅对其中某个文件进行修改而需要重新编译整个项目,则毋庸置疑会重复编译很多已有的代码,在这样重复做功的过程中,既浪费了资源,又极大地降低了程序开发的速度。云计算是继分布式计算、并行处理、网格计算等之后计算模式的最新发展。它能够将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。虽然云计算能够一定程度上编译大规模的C语言项目提速,但是还是花费了时间在反复编译未曾修改的代码上。对于开发大规模的C语言项目,这样的时间浪费是可观的,很大程度上降低了程序开发的速度。Google的工程师于2012年就提出了利用一个统一的、语言无关的、持续集成的代码库来快速并且规模化的构建软件,就是希望能够加快程序开发的速度。对于大规模的C语言项目来说,涉及到的代码和文件非常的多和庞大,想要在如此多的目标中找到我们需要重新进行编译的目标是有一定难度的。使用视觉图形来对其抽象的数据结构进行表达,可以增强呈现效果,用户也可以通过直观交互的方式实现对结果的观测和浏览,从而发现其隐藏的特征、关系和模式。DAG作为描述一项工程或系统进行过程的有效工具,能够将每个子工程之间的约束关系用箭头的方式表现出来,对于大规模C语言项目来说,构建大规模DAG能够为可视化代码构成的关系提供可能。大规模DAG能够对大规模C语言项目各个代码构成关系提供可视化展现,最终通过对DAG和现实情况的分析,我们可以找出更改某个或某些文件之后需要重新编译的代码部分并对可视化结果进行进一步优化,使得加速编译成为可能。1.2 目标和任务本文的研究和分析是希望能够为编译云计算环境下的大规模C语言项目找到一种加速方式,从而提高编译效率。通过将编译项目过程中各文件和代码之间的相互关系利用大规模DAG来进行可视化实现,进而找到隐藏在这一可视化应用中的规律,从而达到编译效率提高的目的。为了更好的实现这一目标,首先需要对C语言项目的编译过程进行了解,在理解编译过程之后,才能够对针对编译过程找出最合适的可视化方案。其次,需要对DAG有一定的了解,在清楚明白DAG的特性之后,才能够建立出更加贴合实际情况的可视化结果。接着,需要找到适合的工具来进行开发,这样才能够使目标变为现实。最终,需要对可视化技术进行深入的了解和分析,才能够让最终的可视化结果朝着直观化、关联化、艺术化和交互化的方向迈进。当然,我们还需要考虑到该研究的可行性,这样才能够确保自己在有限的时间中有一定的研究成果。在进行研究的过程中,势必会遇到一个又一个的难题,我们需要做到的就是认真分析问题,找到合适的解决办法来解决,并且结合现实的情况,适时调整我们的目标,从而得到一个较为有效的研究成果。1.3 研究重点、难点与可能的创新该研究的重点和难点主要落脚于可视化上。为了能够找出提高大规模C语言项目的编译速度的规则或方法,借助大规模DAG进行可视化和分析,希望能够从分析中找到以减少重复编译为出发点的提高编译速度的方法,并让其直观显示出来。此外,虽然借助了“cytoscape.js”这一有助于可视化实现的开源库,但是它也仅仅只是提供一个工具,至于如何将结果进行可视化展示,还是需要进行思考的。该研究可能的创新在于利用何种方式将需要重新编译的文件和代码合适的可视化出来,并且让可视化结果更加直观、形象和快速,更好地服务于整个项目。1.4 本文结构安排本文主要是从六个层次出发来进行研究的:第一个层次,是对该课题研究背景以及选择该课题的原因进行介绍,分析出该课题的理论意义和实际应用的意义,并指出该研究的重难点和创新之处。第二个层次,是对有关可视化技术相关论文进行相应的研究,并进行相应的评述。第三个层次,是对大规模DAG可视化研究方案进行具体介绍,从构建大规模DAG图出发,说明大规模DAG图的合理性和必须性,然后对关键技术进行介绍,从而理解整个研究方案的可行性和思路,最后针对大规模DAG图的一些可视化方面的不足之处提出自己的改进意见。第四个层次,将基于web的大规模DAG可视化结果进行展示,并对实验结果进行相应的分析。第五个层次,是整个研究的总结,并且提出自己的看法以及今后研究的展望。2浙江大学计算机科学与技术学院本科毕业论文第2章 文献综述第2章 文献综述随着互联网、物联网等的不断发展,信息呈现爆炸的趋势,人们被大量的信息、各种各样的数字媒体环绕着,对信息的接受能力、选择能力和处理能力降低,往往不能够直观方便地理解和思考信息,产生了信息疲劳,如何以一种更为快速、有效的方式传达信息成为了国内外共同关注的热点话题。信息可视化作为一种传递信息的交流手段,有助于人们探索、发现信息之间的关系以及信息中隐藏的模式。本文通过对大规模C语言项目编译过程利用大规模DAG的方式形象、清楚地呈现,这是信息可视化的具体应用。将非空间抽象信息映射成为有效的可视化形式,寻找到合适的可视化隐喻,是信息可视化的研究重点。2.1 信息可视化的国内外研究信息可视化吸引了国内外的众多专家学者的兴趣,而“信息设计师”也不断成为这个世界最赚钱的行当之一。2.1.1 信息可视化定义龙尼利普顿(2008)在信息设计实用指南中曾写道:从可视化层面来看,“可视化”是对某事物建立心理模型(mental model)或心理图像(mental image)。在国内人们对于可视化的定义基本上达成了一致,认为可视化是一个过程,它将数据、信息和知识转化为一种人类的视觉形式,是充分利用人们对可视模式快速识别的自然能力。有效的可视化能够让我们浏览、研究大规模的数据,并且通过方便快捷的交互方式,有效发现隐藏在信息内部的特征和规律。随着网络的迅速发展,可视化技术不仅用于科学数据,还应用于抽象信息中。大量抽象的信息数据通过讲故事的方式转化成为受众更容易理解和接受的信息模式,帮助受众更清晰的了解信息和事件之间的发展以及联系,放大了受众的认知能力(张聪,张慧,2006)。斯图尔特卡德(Stuart K. Card)、约克麦金利(Jock D.Mackinlay)和乔治罗伯逊(George G.Robertson)于1989年首次提出了“信息可视化(Information visualization)”这一概念。他们认为,随着技术的发展,使得在用户界面中使用硬件系统的图形性能和速度来探索3D和动画成为可能,为了充分发挥其功效,必须开发新的软件结构以支持复杂的多智能体异步交互的问题。而信息可视化技术是解决问题的关键所在。信息可视化,旨在研究大规模非数值型信息资源的视觉呈现,利用图形图像方面的技术与方法,帮助人们理解和分析数据。信息可视化主要有两大基础:认知心理学和图形设计。认知心理学是有关人类如何感知和认识世界的理论,主要研究人类感知的过程,信息可视化重要的理论基础;图形设计则提供了更具艺术性地表现可视化的方法,是实际操作经验方面的向导。在这两大基础的推动下,信息可视化作为一个新兴领域以飞快的速度发展起来。总的来说,国内外可视化与信息可视化的定义基本上一致,国内对它们的定义多为国外学者相关研究的总结升华版本。2.1.2 信息可视化应用分类随着信息可视化技术的不断发展,人们研究开发出了形式各异、带着不同目的的可视化技术,为了更好的理解信息可视化,我们需要对信息可视化应用进行科学的分类。对信息可视化应用进行分类有助于帮助用户选择合适的可视化技术,并且发现现有可视化应用的不足,进而促进研究人员对新的可视化应用的开发和创造(Buja, Cook, Swayne, 2003)。马里兰大学教授本施奈德曼(Ben Shneiderman)最早(1996)按照数据的类型将可视化应用分为以下七类:一维数据可视化应用、二维数据可视化应用、三维数据可视化应用、多维数据可视化应用、时态数据可视化应用、层次数据可视化应用和网络数据可视化应用。Card(1999)也按照数据类型将可视化应用同样分为了7类,除了将时间数据可视化应用这一分类替换为物理数据可视化应用,其他6种与施奈德曼相同。按照显示方式的不同,Keim和Kriegel(1996)将可视化应用分成了:面向像素应用、几何投影应用、基于图标应用、基于层次应用和基于图的应用。从交互功能的角度出发,信息可视化应用则可分为静态视图显示和交互式显示(Buja)。从不同的角度出发,能够将信息可视化应用进行合理的分类,针对于不同的研究目的和方法等,我们可以选用最合适的分类方法,从而对我们的可视化应用进行合理地分析。2.1.3 信息可视化参考模型信息可视化是一个过程,它将信息转换为视觉形式。在这个过程中,人们利用计算机系统从屏幕上观察交互图形、图像并通过可视模型处理信息。信息可视化的参考模型一般采用如下模型(冯艺东、汪国平、董士海,2001):图 2-1信息可视化参考模型(Card, S.K.)在这一参考模型中,其核心问题就是如何完成从数据表到可视化结构的映射。由于信息可视化的研究主要集中在抽象信息上,在很多请况下,信息本身无法直接映射到几何物理空间中,这时就需要我们通过研究新的可视化结构或者是找寻拥有相同特征的已有可视化结构,从而解决可视化的任务。2.1.4 信息可视化发展必然性随着社会信息化的推进和网络的日益普遍,信息源越来越庞大,信息也越来越多。受众对于信息的接收能力、信息的处理能力和处理动机降低,以致产生心理和生理上的疲劳感(廖宏勇、张小纲,2011)。而这些规模庞大的数据大多数情况下是错综复杂的,很难在一个较低的层次了解到隐藏在激增的数据背后的重要信息。只有对其进行更高层次的分析,才能够更好地利用这些数据。信息可视化通过利用计算机技术、数字技术、多媒体技术,将非空间的抽象信息映射为可视化的形式,并通过人机交互机制来提高人的感知能力,有助于解决信息爆炸时代人们出现的信息疲劳感。信息可视化正是顺应了人们对知识和信息的处理方式进入了快速读取阶段的变化,将受众对于视觉感官的需求提升到了极为重要的位置,并加入流畅的互动体验,以实现“用视觉去思考”的最佳方式(刘迪,2013)。因此,信息可视化是随着社会的发展应运而生的,信息可视化能够利用自身的优势不断的发现,虽然还是新兴领域,但是发展速度不容小觑。2.1.5 信息可视化的交互设计作为一门关注用户交互体验的新学科,交互设计产生于20世纪80年代,是由IDEO的一位名叫比尔莫格里奇的创始人在1984年一次设计会议上提出的。人机交互的设计要达到两个阶段的目标:一是可用性目标;二是用户体验目标(廖宏勇,2010)。为了让用户能够获得更好的体验,并且更容易从可视化的数据中得到隐含的答案或关心,就必须在信息可视化应用中注意交互设计的利用。2.2 对现有研究成果的简要评述综上所述,信息可视化具有着广阔的发展前景,是我们现在应该考虑并且必须要考虑的一个研究方向。国外对信息可视化的研究先于我国,但是我国在近几年对信息可视化的研究也非常的多,在商务、金融和通信等领域已经取得了重大的突破,但总体上与国外先进水平相比仍具有相当大的差距,特别是在商业软件方面。无论信息可视化采用怎样的实现,其目的不会变化,即让人们从纷繁复杂的数信息中获得自己想要获取到的信息。信息可视化应用商业化越来越明显,国外大量公司已经开始使用信息可视化对公司近期活动、员工内部关系、商业记录等。这样,既能够让自己获得了自己希望得到的用户商务需求信息,又有助于进行公司的形象宣传并不仅用户购物,带给用户更多情感的享受。信息可视化应用将会越来越广泛。针对信息可视化特点,可以将其利用到我们生活的方方面面,并不断改善我们的生活质量。当然,通过对多种成功或失败的可视化案例进行相应的分析和学习,我们能够对信息可视化进行进一步的分析,从而探索其发展的规律,为研究开创出一片新的天地。并且,通过对其进行探索,我们发现,该项研究不应该仅仅局限于计算机或信息领域,社会上各个领域的专家学者都可以从不同的方面对一个相同的可视化应用提出自己的见解和看法,未来的研究需要各个领域的专家进行合作和交流。7浙江大学计算机科学与技术学院本科毕业论文第3章 研究方案第3章 研究方案对于大规模的C语言项目来说,涉及到的代码和文件非常的多和庞大,想要加速编译的过程,从如此多的目标中找到我们需要重新进行编译的目标是非常重要的。在本章中,从C语言的编译过程入手,找到将整个编译过程可视化的方法(DAG),并结合相应的规则,将大规模DAG予以简化,使得结果更加的突出和明显。3.1 大规模DAG图构建思路3.1.1 Makefile基本原理在进行项目开发的过程中,分模块编写程序已经成为了每个程序员最基本的一个思路,这样不仅让整个开发过程变得更加的清晰,更利用集体的力量,让每个人的长处得以发挥,提高程序的开发速度。但当一个系统包含多个模块时,各模块之间往往会存在着各种各样的依赖关系,例如,一个模块调用其它模块中的函数或者是变量等。此时,想要得到最后的可执行文件,就必须要按照一定的顺序进行编译链接。而当其中的某些模块发生变动的时候,与其有关的模块也需要重新编译链接。Makefile能够带来的好处就是能够“自动编译”,这里自动编译的含义是指,只要写好了Makefile文件,搭配一个Make命令。在Make命令执行的时候,Makefile文件会来告诉Make命令应该按照怎样的顺序和方法来编译和链接程序,从而整个项目就能够完全自动编译,极大的提高了软件开发效率。一般来说,大多数的IDE都有这个命令:比如Delphi的make,Visual C+的nmake,Linux下GNU的make。总之Makefile文件为Make命令指明了如何编译的规则,从而使得项目能够正确编译和开发。对于Makefile文件而言,对于不同的项目程序开发实际上可以存在着最适合自身的Makefile,避免重复编译,从而使得整个的编译过程更加的快速、高效。但是一般请况下针对一个特定的大规模的C语言项目开发,所涉及到的模块非常巨大,想要在这些模块中,理清他们之间的相互依赖关系,并准确找出模块修改后需要重新编译的模块是非常困难的。如何各模块的相互依赖关系中找到目标模块(需要进行重新编译的模块),通过构建DAG图,利用可视化的手段,是非常重要的。3.1.2 构建思路有向无环图,故名思义,即有向的没有成环的图。在图论中,可以理解为,如果一个有向图无法从某个定点出发经过若干边之后返回到该点,则这个图是有向无环图(DAG图)。在编译文件的过程中,有先编译和后编译的顺序,各个模块/文件之间相互依赖,相互影响,只有按照合理的顺序,并按照合适的规则进行编译和链接,才能够保证项目的正常开发。并且,每个文件的相互之间的依赖关系并不是相互独立的,有可能会共同依赖与同一个文件,此时,运用树的结构无法将它们之间的依赖关系表示出来,利用DAG图则能够很好的满足可视化的具体要求。首先,各个文件之间的依赖关系,可以通过有向的箭头来表示,例如文件a.o需要文件a.c,则可以使用a.o - a.c这样的表示方法来表示;然后,某个文件可能被多个文件所需要,故需要利用图结构来进行可视化的表示,如图3-1中的c.h同时被c.o、c.d、b.d和b.o需要;最后,由于各个文件之间编译有着先后顺序,不可能形成一个环形结构,否则就会陷入死循环中。由此,我们可以发现,利用DAG图来对项目开发的编译和链接过程进行可视化能够有效将其展现出来。图 3-1 简单DAG图实例 该系统中的相应实例对于一个C语言项目开发来说,通常情况下涉及到的文件经常是非常巨大的,此时,可视化将会显得尤为重要。在这样情形下,构建大规模的DAG图更加有利于我们对整个项目的编译过程进行分析,从而减少重复编译所花费的时间,提高程序的开发效率。3.2 关键技术该研究是可视化的具体应用,在使用过程中需要用到一定的技术进行支持。本文主要是将海量数据转换成某种可视化形式呈现出来,使人们能轻易地观测到传统意义上不可见的隐含信息,帮助人们更好的理解数据的所有内容,在大型数据分析方面具有很高的潜力。3.2.1 深度优先搜索深度优先搜索(Depth First Search,DFS)属于图算法的一种,其具体思路表示如下:(1) 访问某一节点v;(2) 依次从v的未被访问的邻接节点出发,对图进行深度优先遍历;(3) 按照一条路径实现完毕之后,按照相同路径返回,并对其中节点的未被访问的领接节点进行访问,直至图中和v有路径相通的顶点都被访问;(4) 若此时图中尚有顶点未被访问,则从另一个未被访问的节点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。图 3-2 一个简单的DAG例子 使用该例子对深度优先搜索和拓扑排序进行简单的介绍如上图3-2的简单DAG图,从节点1出发,则访问的顺序如下:1 - 2 - 4 - 7 - 5 - 8 - 3 - 6,从而完成深入优先遍历。依据已经够建好的DAG图,利用深度优先搜索可以获得有关图的结构的大量信息。对于给定的已经改变的节点所构成的一个list,在生成的目标target给定的情况下,进行深度优先搜索能够将其路径清楚显示出来,即能够知道需要重新编译的各个节点。例如,如果生成目标为节点1,而改变的节点为节点5和节点7,从节点1开始进行深度优先搜索,只要在该路径中找到节点5和节点7,可以停止遍历操作,并且将遍历得到的点输出。那么其需要进行重新编译的节点可通过深度优先搜索得到,为节点1、2、4、7、5、3、6。因此,我们可以发现,基于图论,可以有效地找出了需要重新编译的各个节点,避免不必要的编译,从而提高编译速度。3.2.2 拓扑排序在编译的过程中,往往每个文件编译的顺序是不可随意更换的,比如文件a.c任务的完成必须要在a.o之前,无序的编译顺序势必导致整个项目开发的失败。有向图的箭头也就是暗示了编译的顺序。为已经够建好的DAG找出各文件编译的先后顺序,就是为该DAG图进行拓扑排序。由于我们是通过深度优先搜索找到的需要重新编译的各个节点,那么找出文件执行的先后顺序的时候,我们同样是基于深度优先搜索进行拓扑排序。基于DFS求拓扑序列的抽象算法可以进行如下表示:/ i是搜索的出发点,T是栈,G表示有向无环图void TopologicalOrder(G,i,T) int j;visitedi=TRUE; /访问i并将标记换位TUREfor(所有i的邻接点j) / 即if(!visitedj)TopologicalOrder(G,j,T);Push(&T,i); / 从i出发的搜索已完成,输出i根据上述算法,我们得到图3-2的编译顺序:7 - 4 - 8 - 5 - 2 - 6 - 3 - 1。因此,基于DFS的拓扑排序,能够合理地得到文件编译和链接的先后顺序,保证程序的正常开发和运作。这样,能够高效的找出需要重新编译的文件,并通过依赖关系,减少重复编译发生的可能性,从而加速开发过程。3.2.3 cytoscape图形库由于基于大规模的DAG图的可视化,所以,利用Javascript的一个开源图形库cytoscape.js,基于web来进行相应的开发。cytoscape.js能够有效处理庞大的数据集,对于大规模DAG图的开发是有利的,并且对于每一个节点、边的设立可以自己来予以创建,一定程度上增加了工作的强度,但是更加灵活,并且更加适应整个项目的开发。cytoscape.js还能够轻松的继承到网站或者 Web 应用中,结合其他的技术,可以让可视化结果更加的直观和形象,便利于开发者和使用者。由于最终的可视化结果并不是一个静态的图像,一次生成一直利用,因此,需要将一些交互式设计考虑进去,如利用大规摸DAG进行可视化过程时,一些操作是否能够让用户正确理解。在后文中,对每个文件的颜色和形状的设计主要就是基于这一原则来确定的,但是仍然还有待改进。3.3 大规摸DAG图改进在利用C语言进行项目开发的时候,构建DAG图能够实现编译和链接过程的可视化,可以更加清楚的展现各文件/模块的相互关系。但是,对于大规模的项目开发来说,由于包含文件过多,直接对其进行可视化则会构建出一个大规模的DAG图,此时的DAG图包含了过多的信息,没有经过筛选很难得到有用的信息,需要对此进行改进。3.3.1 基于文件夹的信息隐藏大规模DAG图由于其包含的节点,而这些节点之间又有着各种各样的联系,从而导致了整个DAG图呈现出很多不同种类的信息。而这些信息没有经过隐藏,只会让我们忽略掉很多有用的信息,因此,需要对某些节点进行适度隐藏才能够更好地展现整个DAG图。在本系统中采用的是基于文件夹的信息隐藏。因为在项目开发过程中,通常情况下,在相同文件夹中的文件,彼此之间含义或者是作用等有着相似之处,这就为基于文件夹进行的信息隐藏提供了可能。如图3-3,图左是进行了隐藏之后的大规模DAG图,而右图则是未进行隐藏的大规模DAG图 实际上仍然隐藏了部分信息,如果没有对信息进行隐藏的话,整个DAG图非常的庞大。由于节点个数本来就比较多,而且各个节点之间还有着各种各样的依赖关系,所以导致图形可读性非常差。 我们可以明显的感受到,如果未将文件夹进行信息隐藏,那么,大规模DAG图很难为用于提供有用的信息。 图 3-3 基于文件夹信息隐藏的好处基于文件夹的信息隐藏,相当于将文件夹作为一个“容器”,该文件夹中包含的所有节点隐藏在该容器中,只显示该文件夹的名称。如图3-4中文件夹src/,其中图左中对包含在该文件夹中的各种信息进行了隐藏。当然,通过对文件夹进行操作,可以让隐藏的信息逐渐显示出来,得到图右。 图 3-4 基于文件夹信息隐藏展开后的效果这样,可以让大规模DAG图更加简化,更加生动形象,在信息相对比较突出的情形下,更有可能提取出有效的信息。3.3.2 利用图形和颜色区分不同文件为了进一步的改良可视化结果,从文件入手进行分析,使用不同的形状和颜色对文件进行标记,从而,能够从视觉感官上对文件加以区分,让人得到更加有用的信息。具体可参加如下表3-1:表3-1 文件对应形状、颜色和图例文件形状颜色图例文件夹正方形 rectangle#F6DC72.h文件三角形 triangle#AD1C1C.c文件八边形 octagon#FB846C.o文件(椭)圆形 ellipsepink其他文件五角星 stargrey文件夹之所以选用正方形以及#F6DC72这一颜色,主要是与文件夹本身的形状以及颜色来确定的。依照这样的原则,可以让用户获得更加舒适的体验,不必花费过多的时间来适应新的规则和定义。由于.h文件的h本身与三角形相似,因此,采用三角形来表示.h文件;.c文件与八边形的一半相似,故使用八边形来代替;而.o文件的o字母与(椭)圆形相似,故使用(椭)圆形来代表。它们的颜色则是红色由深到浅,一定程度上也暗示了这三个文件之间的彼此联系。而其他文件则使用五角星来表示,象征了多样性,即包含了多种文件。而灰色则是因为其中很多文件基本上不显示。通过上述的标记方法,我们可以更加容易的对已有的信息进行理解,抽象,从而一句我们的问题和目标得到我们所需要的结果。3.3.3 利用颜色区分重新编译文件和编译依赖文件当我们修改了一部分节点时,根据要生成的目标,会通过深度优先搜索的方式将其需要重新编译的节点和边进行突出显示,从而我们能够清楚的知道需要重新编译的文件。但是当进行编译的过程中,所要依赖的文件会多于重新编译的文件,并且这一信息对于整个项目的开发来说都是比较重要的,因此,我们需要使用不同的颜色来对这两类文件进行相应的区分。在该系统中,使用绿色来表示重新编译的文件和相应的路径,而使用蓝色来表示生成目标所需要依赖的文件。并且,需要重新编译的文件必定属于生成目标所依赖的文件,所以,优先显示需要重新编译的文件和对应依赖关系(如图3-5所示)。图 3-5 利用颜色区分重新编译文件和编译依赖文件3.4 本章小结在本章中,对大规模DAG图可视化的构建过程和相应方案进行了介绍。通过说明大规模DAG图与项目开发文件相互依赖关系和编译和链接过程的相似性,说明利用大规模DAG图来进行可视化的合理性和必要性。在关键技术部分,简单的介绍了一些算法和利用的一些库,从而可以理解整个系统开发的关键思路。进而,从可视化优化的角度出发,提出了三点改良建议。一定程度上对大规模的DAG图进行了相应的改进,但是还存在很多需要努力的地方。16浙江大学计算机科学与技术学院本科毕业论文第4章 实验结果和分析和分析第4章 实验结果和分析4.1 登陆界面图 4-1 登陆界面本文使用一款开源虚拟机软件Oracle VM VirtualBox 4.3.12管理器,基于Ubuntu这个以桌面应用为主的Linux操作系统进行开发。该系统内存大小为2048MB,启动顺序为软驱、光驱、硬盘。在开发过程中,使用js的相关库,特别要提到的就是cytoscape.js进行相应的可视化工作。使用Google Chrome浏览器,可以得到如图4-1的登录界面。在输入栏中填写相应的文件目录,并点击按钮Lets go或者是回车即可对该项目的可视化结果进行显示。如对nginx进行可视化。4.2 大规模DAG可视化4.2.1 初始界面图 4-2 跳转之后的初始界面上图则是对nginx进行可视化之后的结果,在上述体系中,我们可以发现基于文件夹对信息进行了隐藏,通过对文件夹进行单击,可以对文件夹进行展开,从而更新图(参见图4-3)。而对该文件目录下的文件左击,从而将该层下的文件进行隐藏。图4-3中,还显示出了使用不同图形和颜色代表的相应文件和文件夹,从图中我们能够很清楚的找出文件夹、.o文件、.c文件和.h文件。并且,由于文件夹中包含了隐藏信息,所以,只需要找到黄色或者正方形予以右键单击,就能够展开文件夹,展现出相应的隐藏信息。图 4-3 点击objs文件之后可能上述图并不能够很清楚的体现该可视化的好处,因为文件较为单一。但是一旦文件增多,节点变多,那么这一可视化方法就能够更好的为用户提供有用的信息。用户不再费力去寻找(如图4-4)。图 4-4 节点变多时颜色和形状设定的重要性4.2.2 选择功能Select按钮对应着选择功能,按下该按钮,可以对单个文件进行单独选择,从而便于在众多节点中找到该节点的重要信息,如对图4-4中的objs/ngx_modules.c进行选择。图 4-5 对objs/ngx_modules.c进行选择再次点击Select按钮,然后左击该单独节点,即可以恢复至先前状态(如图4-6)。图 4-6 反向操作结果这样的操作可以方便我们在众多的节点中挑选出特定节点进行单个重要观察,或者是在节点较为密集时,通过选中单一节点,避免其他节点信息的干扰。4.2.3 变换/预览功能变换功能,即指定改变的节点,使用Change按钮来完成该操作。通过点击Change按钮,则可以选定改变了的节点(如图4-7),然后点击Preview按钮,来指定目标文件(如图4-8),从而实现预览功能,这样Change按钮与Preview按钮相结合,完成对所有重新编译文件以及对生成目标文件所依赖文件的区别显示。其中蓝色表示生成目标文件所依赖的文件,绿色表示所有需要重新编译的文件。图 4-7 选择4个更改的文件(呈现绿色标记)图 4-8 选择目标文件之后的结果Change按钮与Preview按钮相互配合,用颜色区分开了所有需要重新编译文件和生成目标文件所依赖文件,这样可以让我们更加清楚的找出需要重新编译的文件,并且明显感受到此方法能够在大规模C语言项目开发中提高开发效率。4.2.4 显示功能显示功能则是指显示所有需要重新编译的文件、编译顺序以及在编译过程中需要依赖的相关文件(如图4-9),通过点击Show按钮寓意实现。点击灰色区域即可退出该界面,回到初始界面(如图4-8)。图 4-9 详细信息文本输出结果在利用大规模DAG图进行可视化的过程中,隐藏了部分信息,在优化了可视化的同时,需要我们能够对生成目标文件过程中所有文件的依赖关系和编译顺序等进行文本形式的输出,这样便于今后对于大规模C语言项目开发时,根据下述规则进行编译、链接,从而提高项目开发的速度。4.3 其他功能4.3.1 缩放功能使用鼠标中键可以对整个DAG图进行缩放(如图4-10/4-11,与图4-8进行对比)。图 4-10 进行放大处理图 4-11 进行缩小处理对于大规模的DAG图来说,当整个图中包含的节点过多时,就会导致整个画面比较混乱,并且每个节点的信息很难看到或者是区别开来。缩放功能则可以弥补这一弊端,可以针对某个区域进行扩大或者是缩小,从而得到用户所需要的信息。除此之外,利用鼠标中键进行缩放符合人们使用电脑的一般习惯,能够很好的进行交互。4.3.2 平移功能点击除节点和按钮的其他区域不放鼠标,然后移动鼠标,则可以对整个DAG图实现平移操作(如图4-11)。图 4-11 进行缩小处理同缩放功能一样,这一功能能够更加方便用户获取到有用以及他们所需要的信息。而且和缩放功能相配合,用户交互性能提高。4.4 本章小结本文通过对整个系统的功能进行描述,从而在呈现实验结果的基础上加以实验分析。通过分析我们可以基本上得到,利用大规模DAG图对整个编译过程进行可视化是可行的,并且通过对DAG图进行相应的优化以及利用与其相关的算法,可以找出最合适的编译路径,从而缩短项目开发所用的总体时间,提高开发效率。当然,针对大规模DAG图进行优化还有众多需要考虑的地方,诸如:建立更好地交互设计,信息隐藏的更多办法等。23浙江大学计算机科学与技术学院本科毕业论文第5章 本文总结第5章 本文总结本文从大规模C语言开发项目入手,从C语言开发各模块之间编译、链接等的相互关系,发现其与DAG图之间的相似性,从而借助DAG图进行可视化,让编译过程更加的直观和形象,便于人们的理解。通过合理省略相应信息以及重点突出关键文件,并利用DAG图的相关特性找出编译过程中需要重新编译的文件,从而节约开发时间。从未来发展角度来看,该系统还需要经过一定的修改,不断的完善才能够变得更加地适合用户使用,交互性能有待提高,整体的美观程度尚待加强。虽然目前可视化能够用于分析,并且能够直观感受到利用大规模DAG图进行可视化之后带来的效率的提高,但是对于如何将大规模DAG图更加合理地展现出来,还需要进一步的思考。总之,未来还需要做一些工作来不断的改进和完善该系统。24浙江大学计算机科学与技术学院本科毕业论文参考文献参考文献1 Buja, A. D. Cook, D.F. Swayne. Interactive high-dimensional data visualizationJ. Journal of Computational and Graphical Statistics, 2003(5): 78-99. 2 Edward Segel, Jeffrey Heer, Narrative Visualization: Telling Stories with DataJ,IEEE Transactions on Visualization & Computer Graphics. 2010, 16(6):1139-1148.3 Fekete J D, Wijk J J V, Stasko J T, et al. The value of information visualizationJ. Information Visualization : Human-Centered Issues and Perspectives / Ed. A. Kerren, J.T. Stasko, J.D. Fekete, C. North. 2008:1-18.4 F. B. Vigas, M. Wattenberg, F. van Ham, J. Kriss, and M. McKeon. Many Eyes: a site for visualization at internet scale.IEEE TransJ. Vis. and Comp. Graphics.2007, 13 (6):11211128.5 Heer J, Card S K. Landay J A. Prefuse: A toolkit for interactive information visualizationJ. In ACM Human Factors in Computing Systems (CHI). 2005:421-430.6 Viegas F B, Wattenberg M, Van H F, et al. ManyEyes: a Site for Visualization at Internet ScaleJ. IEEE Transactions on Visualization & Computer Graphics, 2007, 13(6):1121-1128. 7 戴国忠, 陈为, 洪文学等. 信息可视化和可视分析:挑战与机遇J. 中国科学.
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大规模DAG的可视化与分析
链接地址:https://www.renrendoc.com/p-35743601.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!