服务外包第二阶段计划
服务外包第二阶段计划
总纲
核心功能任务叙述:
-
分析需求文档
- ==分析需求文档,得出功能点EI,EO等==
- 对功能点进行分析与计算,套用公式
- 计算软件开发成本,分三种情况(功能点,平均人月费率,工作量),依据文档来查看计算方法
-
分析代码
- 代码行数,注释量,空行量,真实代码量,开源代码占比
- ==分析代码并得出代码的组件列表与版本号== —使用opensca.exe(后面对go分析,去掉赘余,或者用Java重写)
- 与开源代码库进行对比,组件列表等等信息,并展示与保存
-
建立开源代码库
- 字段:组件id,组件名,组件版本号,漏洞名,漏洞编号,漏洞信息,开源代码地址,许可证信息
- ==爬取网络大量组件信息,并存入数据库==
-
分析组件工具的源代码(Go语言),并用Java实现(主要是得出组件名以及版本号),如果此方法不行,那就到网络上查询信息,找到可以分析出组件名与版本号的思路或者算法
-
分析的数据结果保存为docx,并存储在服务器,供用户下载
Web连接功能叙述:
-
点击“添加分析”选择文件后,将文件保存到本地(已实现)
-
保存文件后
-
如果是功能点分析,则后端接收用户倾向
-
如果是溯源与漏洞分析和开源性合规分析,则直接分析文档
-
-
历史记录翻页按钮实现
-
选中按钮接收实现,以及下载选中,下载文件到本地实现
-
数据库的历史记录分析表展示在页面实现
任务分配
杨家辉:
- 计算软件开发成本,分三种情况(功能点,平均人月费率,工作量),依据文档来查看计算方法
- ==根据尹泽豪的第一任务分析代码并得出代码的组件列表与版本号==
- 根据字段建立开源代码库,并将张宇凡爬取的信息存入
- 选中按钮接收实现,以及下载选中,下载文件到本地实现
张宇凡:
- ==分析需求文档,得出功能点EI,EO等==
- ==爬取网络大量组件信息,并存入数据库==
尹泽豪:
- 分析组件工具的源代码(Go语言),如果此方法不行,那就到网络上查询信息,找到可以分析出组件名与版本号的思路或者算法
- 分析的数据结果保存为docx,并存储在服务器,供用户下载(文字统一格式,图表展示:饼状图,柱状图)
历晓洁:
- 分析代码行数,注释量,空行量,真实代码量,开源代码占比
- 接收用户倾向信息(咨询张宇凡,前端web页面的用户倾向表单数据接收name属性)
- 历史记录翻页按钮实现
韦玉娟:
- 对功能点进行分析与计算,套用公式
- 与开源代码库进行对比,得出溯源地址,漏洞信息,组件列表等等信息,并展示与保存
- 数据库的历史记录分析表展示在页面实现
步骤
整体脉络: 用户上传文件夹 组件分析工具分析出组件 提取出组件名 组件名形式:json "vendor": "org.docx4j", "name": "docx4j-openxml-objects", "version": "8.3.3", 完整名字可以被叫做org.docx4j:docx4j-openxml-objects 表1 组件表 组件id 组件名 开源代码地址 许可证信息 表2 漏洞信息 漏洞id,组件id,漏洞名,受影响的版本号,漏洞编号,漏洞信息
目的:得到github url 通过这个接口:https://repo1.maven.org/maven2/org/docx4j/docx4j-openxml-objects/11.1.0/docx4j-openxml-objects-11.1.0.pom scm:svn:http://svn.sonatype.org/spice/trunk/oss/oss-parenti-9/docx4j-parent/docx4j-openxml-objects scm:git|git@github.com:plutext/docx4j.git/docx4j-openxml-objects docx4j-parent-11.1.0 http://svn.sonatype.org/spice/trunk/oss/oss-parent-9/docx4j-parent/docx4j-openxml-objects 提取出github相关参数
搭建数据库 进行查询 数据库有一项必须形如‘org.docx4j.docx4j-openxml-objects’ 有关数据库字段
关于漏洞信息 暂定2010年之后
+ https://security.paloaltonetworks.com/
+ https://www.cve.org/Downloads
+ https://www.cnnvd.org.cn/home/dataDownLoad
-
先爬取github上超5kstars的项目中所用到的==组件名,license,开源地址==,并存入数据库 相关网站信息:一个仓库api https://central.sonatype.org/search/rest-api-guide/ 调用接口https://search.maven.org/solrsearch/select?q=:&start=9900&rows=100&wt=json
-
- 先检索github里Java语言star>=5000的项目,把pom.xml/gradle下载下来到文件夹里
-
- 对上述文件夹中的pom进行opensca.exe的本地检索,得出json文件,对json文件进行爬取和分析,得出组件列表
-
- 对组件列表的artifactId放到github搜索框里进行搜索,得到开源地址并存入数据库
-
-
根据组件信息爬取漏洞信息,并存入数据库
建立开源代码库
漏洞信息
-
https://security.paloaltonetworks.com/
-
https://www.cve.org/Downloads
-
https://www.cnnvd.org.cn/home/dataDownLoad
设计一个算法,从既定xml中提取信息
