Frappé: Querying the Linux Kernel Dependency Graph

Nathan Hawes, Ben Barham, C. Cifuentes
{"title":"Frappé: Querying the Linux Kernel Dependency Graph","authors":"Nathan Hawes, Ben Barham, C. Cifuentes","doi":"10.1145/2764947.2764951","DOIUrl":null,"url":null,"abstract":"Frappé is a developer tool for querying and visualizing the dependencies of large C/C++ software systems to the order of 10s of millions of lines of code in size. It supports developers with a range of code comprehension queries such as Does function X or something it calls write to global variable Y? and How much code could be affected if I change this macro? Results are overlaid on a visualization of the dependency graph data based on a cartographic map metaphor. In this paper, we give a brief overview of Frappé and describe our experiences implementing it on top of the Neo4j graph database. We detail the graph model used by Frappé and outline its key use cases using representative queries and their runtimes with the dependency graph data of the Unbreakable Enterprise Kernel. Finally, we discuss some of the open challenges in supporting source code queries across single and multiple versions of an evolving codebase with current property graph database technologies: performance, efficient storage, and the expressivity of the graph querying language given a graph model.","PeriodicalId":144860,"journal":{"name":"Proceedings of the GRADES'15","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-05-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the GRADES'15","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2764947.2764951","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16

Abstract

Frappé is a developer tool for querying and visualizing the dependencies of large C/C++ software systems to the order of 10s of millions of lines of code in size. It supports developers with a range of code comprehension queries such as Does function X or something it calls write to global variable Y? and How much code could be affected if I change this macro? Results are overlaid on a visualization of the dependency graph data based on a cartographic map metaphor. In this paper, we give a brief overview of Frappé and describe our experiences implementing it on top of the Neo4j graph database. We detail the graph model used by Frappé and outline its key use cases using representative queries and their runtimes with the dependency graph data of the Unbreakable Enterprise Kernel. Finally, we discuss some of the open challenges in supporting source code queries across single and multiple versions of an evolving codebase with current property graph database technologies: performance, efficient storage, and the expressivity of the graph querying language given a graph model.
查询Linux内核依赖图
是一个开发人员工具,用于查询和可视化大型C/ c++软件系统的依赖关系,其规模可达数千万行代码。它为开发人员提供了一系列代码理解查询,例如函数X或它调用的东西是否写入全局变量Y?如果我更改这个宏,会影响多少代码?结果被覆盖在基于地图隐喻的依赖图数据的可视化上。在本文中,我们简要概述了frappdata,并描述了我们在Neo4j图形数据库上实现它的经验。我们详细介绍了frapp使用的图模型,并使用具有代表性的查询和它们的运行时(Unbreakable Enterprise Kernel的依赖图数据)概述了它的关键用例。最后,我们讨论了使用当前属性图数据库技术在不断发展的代码库的单个和多个版本之间支持源代码查询的一些开放挑战:给定图模型的图查询语言的性能、高效存储和表达能力。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信