软工实践第一次个人编程作业
1 Github
[Github](https://github.com/SugarChl/031702246)
2 PSP
Planning |
计划 |
60 |
|
· Estimate |
· 估计这个任务需要多少时间 |
30 |
|
Development |
开发 |
600 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
|
· Design Spec |
· 生成设计文档 |
10 |
|
· Design Review |
· 设计复审 |
30 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
|
· Design |
· 具体设计 |
30 |
|
· Coding |
· 具体编码 |
30 |
|
· Code Review |
· 代码复审 |
120 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
300 |
|
Reporting |
报告 |
30 |
|
· Test Repor |
· 测试报告 |
30 |
|
· Size Measurement |
· 计算工作量 |
30 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
|
|
· 合计 |
1400 |
|
3 计算模块接口的设计与实现过程
3.1 通过高德API获取行政区划数据
通过API获取所有省/自治区/直辖市的行政区划数据。
获取到的数据比较庞杂,首先对数据进行处理,去除掉不必要的信息。
然后将该数据保存在本地。 后续处理地址簿的时候,直接读取该数据
数据示例:
{"福建":{
"name": "福建省",
"districts": [
{
"name": "福州市",
"districts": [
{
"name": "闽侯县",
"districts": [
{
"name": "上街镇",
"districts": []
}
]
}
]
},
{
"name": "厦门市",
"districts": [
{
"name": "思明区",
"districts": [
{
"name": "鼓浪屿街道",
"districts": []
}
]
}
]
},
]
}}
3.2地址簿的处理
首先使用正则表达式提取手机号码,然后再以“,”为节点分割地址簿,提取出姓名。
然后从地址中提取前两个字,去高德数据中搜寻响应的地址名,再把该字符从地址中删去。
高德数据中的行政区划是4级的。
3.2.1 针对“1!”的地址
当匹配完高德数据的4个地址后,剩余的地址就正好是第五级地址。
示例:
> 福建省福州市鼓楼区鼓西街道湖滨路110号湖滨大厦一层 []
> 福州市鼓楼区鼓西街道湖滨路110号湖滨大厦一层 ["福建省"]
> 鼓楼区鼓西街道湖滨路110号湖滨大厦一层 ["福建省", "福州市“]
> 鼓西街道湖滨路110号湖滨大厦一层 ["福建省", "福州市“, ”鼓楼区“]
> 湖滨路110号湖滨大厦一层 ["福建省", "福州市“, ”鼓楼区“, "鼓西街道"]
> ["福建省", "福州市“, ”鼓楼区“, "鼓西街道", "湖滨路110号湖滨大厦一层 "]
3.2.2 针对“2!”的地址
在经过3.2.1章节的演示后,地址被分割为5段
然后针对第五级的地址,按照关键字进行分割
[”道“, ”路“,”街“]
["号"]
示例:
>湖滨路110号湖滨大厦一层 []
>110号湖滨大厦一层 ["湖滨路"]
>湖滨大厦一层 ["湖滨路", "110号"]
> ["湖滨路", "110号", "湖滨大厦一层 "]
3.2.3 针对“2!”的地址
无
3.2.4 特殊情况处理
4个直辖市需要另外处理
4 计算模块接口部分的性能改进
·只有main函数
一开始模型的高德API数据是实时获取的。
后来改成全部获取下来保存在本地
5 计算模块部分单元测试展示
6 计算模块部分异常处理说明
7 PSP
Planning |
计划 |
60 |
70 |
· Estimate |
· 估计这个任务需要多少时间 |
30 |
25 |
Development |
开发 |
600 |
660 |
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
80 |
· Design Spec |
· 生成设计文档 |
10 |
15 |
· Design Review |
· 设计复审 |
30 |
15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
15 |
· Design |
· 具体设计 |
30 |
40 |
· Coding |
· 具体编码 |
30 |
40 |
· Code Review |
· 代码复审 |
120 |
100 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
300 |
400 |
Reporting |
报告 |
30 |
60 |
· Test Repor |
· 测试报告 |
30 |
20 |
· Size Measurement |
· 计算工作量 |
30 |
20 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
20 |
|
· 合计 |
1400 |
1580 |
Your final score is 97/125