提交 08b6110c authored 作者: 马晨俊's avatar 马晨俊

mcj:

补充文档
上级 6ceead68
[TOC]
#介绍
项目评估服务是一个springboot架构的微服务。主要功能是对需要替换开发的系统的源代码进行评估产生评估报告.根据用户配置的规则,关键字,帮助用户进行国产化适配。
评估报告提供以下信息
- 开发语言
- 源代码地址
- 项目管理方式
- 项目依赖
- 国产化适配建议
#核心功能
- 提供评估
- 基本信息评估
- 源代码信息展示以下数据
`开发语言,源代码位置,项目管理方式`
- 针对特定语言依赖展示以下数据
`java的jar包依赖`
- 国产化适配评估
- 给出用户国产化适配建议
`源代码位置,关键字,建议`
`国产化环境不能支持的依赖,关键字,建议`
- 提供增删改查规则库
- Git,https下载源代码并评估
- 上传源代码到微服务并评估
- 下载评估报告html
- 评估历史查看(文件地址,评估记录,评估时间)
- 在线查看评估报告
- 预算统计
# 管理功能
- 配置参数管理
- 报告管理
- 页面参数管理
- 规则管理
- 技术管理
## 核心功能详细设计
### 提供评估
- 基本信息评估
- 源代码信息展示以下数据
`开发语言,源代码位置,项目管理方式`
- 针对特定语言依赖展示以下数据
`java的jar包依赖`
- 国产化适配评估
- 给出用户国产化适配建议
`源代码位置,关键字,建议`
- 流程
![评估流程1](/Users/mcj/Downloads/图片/2.jpg)
### 提供增删改查规则库
![评估流程1](/Users/mcj/Downloads/图片/未命名文件.jpg)
- 新增适配技术库与适配技术,修改目标关键字
- 新增规则库
- 查询所有适配技术及其关联规则
### 预算统计参数配置
- 适配重构参数配置
- 重构占比:
- 年复利率
- 原系统开发费用
- (每个技术点价格,就是建议)可以扫描
- (需要计算)修正系数
### 默认修正系数表
| 规模 | 内容 | 适用范围 | 功能 | 代码量 | 页面数 | 数据库表数 | 数据量 | 架构 | 安全能力 | 容灾能力 | 前端适配系数 |
| -------- | -------- | -------- | -------- | ------- | ------ | ---------- | ------ | ------ | ----------------- | ----------- | ------------ |
| 小型 | 简单 | 单位内部 | 1-4模块 | <10k | <10 | <10 | <1g | 单机 | 无0,弱0.1,强0.2 | 无0,有+0.05 | |
| 中型 | 某类业务 | 垂直 | 4-10模块 | 10-100k | 10-100 | 10-100 | 1-100g | bs/cs | 弱0,无-0.1,强0.1 | 有0,无-0.05 | |
| 大型 | 综合 | 多部门 | 10以上 | >100k | >100 | >100 | >100g | 分布式 | 强0,无-0.2,弱-0.1 | 有0,无-0.1 | |
| 修正影响 | 0.2 | 0.2 | 0.3 | 0.1 | 0.05 | 0.2 | 0.05 | 0.1 | 0.1 | 0.05 | 0.05 |
## 数据库设计
### rule(规则表)
| 字段名称 | 字段类型 | 长度 | 默认值 | 是否主键 | 注释 |
| ------------- | --------- | ---- | ------ | -------- | ------------ |
| id | int | 100 | | 是 | 主键id |
| target | varchar | 100 | | | 目标字符串 |
| create_time | timestamp | | | | 数据创建时间 |
| update_time | Timestamp | | | | 数据更新时间 |
| file_suffix | varchar | 50 | | | 搜索文件后缀 |
| technology_id | varchar | 100 | | | 匹配技术id |
### 匹配技术表
| 字段名称 | 字段类型 | 长度 | 默认值 | 是否主键 | 注释 |
| --------------- | --------- | ---- | ------ | -------- | ---------------- |
| id | varchar | 100 | | 是 | 主键id |
| technology_name | varchar | 100 | | | 技术名称 |
| advice | varchar | 100 | | | 技术建议 |
| create_time | timestamp | | | | 数据创建时间 |
| update_time | timestamp | | | | 数据更新时间 |
| fund | int | 10 | | | 单技术预算 |
| support | int | 10 | | | 1:支持、2:不支持 |
| backOrFront | int | 10 | | | 1:后端、2:前端 |
### 系数表
| 字段名称 | 字段类型 | 长度 | 默认值 | 是否主键 | 注释 |
| ----------------- | -------- | ---- | ------ | -------- | -------- |
| id | varchar | 100 | | 是 | 主键 |
| name | varchar | 100 | | | 系数名称 |
| topCoefficient | Double | 10 | | | 高 |
| mediumCoefficient | Double | 10 | | | 中 |
| belowCoefficient | Double | 10 | | | 低 |
| min | 最小值 | 10 | | | 最小值 |
| max | int | 10 | | | 最大值 |
| scale | Int | 10 | | | 规模 |
[TOC]
# 评估服务接口文档
## 数据实体
- 预算-Budget
- 预算显示-BudgetVO
- 系数模型-CoefficientModel
- 依赖-DependencyVo
- 参数封装-InspectParameter
- 报告-Report
- 报告显示-ReportVO
- 规则关键字-Rule
- 规则封装-RuleQo
- 规则显示-RuleVo
- 关键技术-Technology
- 匹配点-Warn
## 核心接口
- ```java
InspectService.inspect(ReportVo reportVo,InspectParameter inspectParameter)
```
- 作用:提供代码评估并进行数据返回
- 参数:
- reportVo:报告对象实体
- inspectParameter:入口参数封装实体
- 返回:填充完毕的reportVo
## 接口实现
接口主要功能是对用户上传的源代码进行分析
分析的依据是
- rule:配置关键字与文件后缀,如:native,java
- Technology:关键技术,关键技术与rule的关系是一对多
### 步骤
- 将规则根据配置的后缀进分类
- 对源代码进行扫描,将文件分类
- 把指定后缀的文件与指定后缀的规则进行匹配,并全文扫描进行关键字的搜索(文字匹配利用kmp算法)
# 预算评估
## 计算预算必要参数
- 年复利率(moneyRate)=1.04
- 占比(proportion)
- 重构比=0.6
- 修改替换比=0.3
- 适配前端页面=0.15
- 原系统开发费用(systemFund)=数字
## 可选变量
- 软件运行时间(years)=数字
- 模块数(modules)=数字
- 代码量(codeSize)=数字
- 数据库表(table)=数字
- 数据量(data)=数字
- 架构(framework)=单机(0)、bs、cs(2)、分布式(4)
- 安全能力(safety)无(0)、弱(2)、强(4)
- 容灾能力(disaster)无(0)、有(4)
- 内容(content):小型(0),中型(2),大型(4),取最大值
为什么是0、4呢,因为设置是小于1或者大于3
# 系统必要参数
- admin:是否管理员
- 1:管理员
- 2:用户
- projectName:项目名称
- databaseType:数据库类型
- method:评估方式
- 1:系统修改
- 2:系统适配
- username:用户名
- valid:是否需要进行预算计算
- 1:是
- 2:否
- multiple:zip或者rar文件
## 页面显示(改造评估)
改造评估页面
- 原系统开发费用
- 容灾能力
- 模块数
- 代码量
- 数据库表
系统级配置
- 占比
- 重构比
- 修改替换比
- 适配前端页面
- 年复利率
第一个页面
适配占比此时0.15,要去计算是否需要重构,如果需要重构 ,则计算重构的钱,否则计算适配的钱
第二个页面
改造占比0.3,评估是否需要重构,如果需要重构,计算重构的钱,否则计算改造的钱
# 代码文件
- Controller
- InspectController
- ```java
public ServerResponse rapidAssessment(@RequestBody Reform reform) throws IOException
```
功能:根据前端页面封装的reform,获取评估所需要的信息后,先进行快速评估(在com.zjty.inspect.inspect.inspector),快速评估完成后进行详细评估(在com.zjty.inspect.controller.inspectController)输出一份详细表格,将表格数据根据入参与出参保存进数据库
- inspect
- Inspector
- ```java
public ReportVo inspect()
```
功能:进行快速评估
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论