第一次个人编程作业

软工实践第一次个人编程作业

1 Github

		[Github](https://github.com/SugarChl/031702246)

2 PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
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

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
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

posted @ 2019-09-25 19:10  方糖_Sugar  阅读(364)  评论(3编辑  收藏  举报