
(编码实现)工程分析是现代软件工程的一项常见任务,请你从 github.com 任意采集一个
你感兴趣的开源项目的源代码,并完成以下任务:
A. 一个项目各层级的模块(或子文件夹)构成一个天然的层次结构。请你统计项目
中各级文件夹中所有源代码文件所包含的代码行数,并建立一个树结构。
B. 使用任意两种你感兴趣的树图布局展示整个工程各个文件夹中代码行数的分布。
答:树图的绘制采用 d3.js 实现,具体步骤及难点如下:
a) 从 github.com 中下载源码
源码见压缩包《1.open-master(待统计的开源代码).rar》
b) 编写 java 程序,统计源码
源码见压缩包《2.getDiv(统计代码行数的 Java 程序).rar》,程序自动统计 open-
master 中的代码行数,并生成统计结果文件 divJson.json,截图如下:
由于之前对 json 不太熟悉,编写 d3.js 识别的 json 文件时遇到了很多问题,通过代
码调试,了解了 json 格式的构成规则及生成方法。
c) 搭建 d3.js 服务器环境
hpd 工 具 见 《 3.hpd-2.2.25-win32-x86-openssl-0.9.8y ( d3.js 服 务 器 环
境).msi》。
d) 编写 d3.js 程序
源码见《4.d3.js 网页文件.rar》,共实现了针对树形结构的 4 种可视化方案,如下
图所示: