2.PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
|
· Estimate |
· 估计这个任务需要多少时间 |
30 |
|
Development |
开发 |
480 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
150 |
|
· Design Spec |
· 生成设计文档 |
10 |
|
· Design Review |
· 设计复审 |
10 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
|
· Design |
· 具体设计 |
30 |
|
· Coding |
· 具体编码 |
200 |
|
· Code Review |
· 代码复审 |
10 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
|
Reporting |
报告 |
75 |
|
· Test Repor |
· 测试报告 |
30 |
|
· Size Measurement |
· 计算工作量 |
15 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
|
|
· 合计 |
585 |
|
3.计算模块接口的设计与实现过程
函数:
Function |
get_province(addr) |
get_city(addr) |
get_district(addr) |
get_street(addr) |
get_home(addr) |
HTTPmap(addr) |
cut_home(home) |
设计思路
先正则匹配,当判定地址不完整时,HTTPmap函数调用API返回完整地址信息
4.计算模块接口部分的性能改进
改进性能花费时间:1H
性能分析图:
消耗性能最大的函数:cut_home(),不是一定的,和输入样例有关
5.计算模块部分单元测试展示
部分单元测试代码:
from forTest.address_info import get_province
def test_province():
assert get_province("福建省福州市鼓楼区鼓西街道湖滨路110号湖滨大厦一层") == "福建省"
assert get_province("北京市城区交道口东大街1号北京市东城区人民法院") == "北京"
assert get_province("福建福州闽侯县上街镇福州大学10#111") == None
assert get_province("福建省福州市鼓楼区五一北路123号福州鼓楼医院") == "福建省"
assert get_province("广东省东莞市凤岗镇凤平路13号") == "广东省"
测试覆盖率:
6.计算模块部分异常处理说明
在没有匹配到地址的情况下,都默认输出空格。
7.PSP图
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
15 |
· Estimate |
· 估计这个任务需要多少时间 |
30 |
15 |
Development |
开发 |
480 |
395 |
· Analysis |
· 需求分析 (包括学习新技术) |
150 |
120 |
· Design Spec |
· 生成设计文档 |
10 |
10 |
· Design Review |
· 设计复审 |
10 |
10 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
· Design |
· 具体设计 |
30 |
15 |
· Coding |
· 具体编码 |
200 |
180 |
· Code Review |
· 代码复审 |
10 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
40 |
Reporting |
报告 |
75 |
75 |
· Test Repor |
· 测试报告 |
30 |
30 |
· Size Measurement |
· 计算工作量 |
15 |
15 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
30 |
|
· 合计 |
585 |
485 |