• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
SilentSamsara
博客园    首页    新随笔    联系   管理    订阅  订阅

第一次个人编程作业

1、GitHub地址:

https://github.com/SilentSamsara/031702625.git

2、预计PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟)
Planning 计划 30
· Estimate · 估计这个任务需要多少时间 360
Development 开发 120
· Analysis · 需求分析 (包括学习新技术) 40
· Design Spec · 生成设计文档 30
· Design Review · 设计复审 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20
· Design · 具体设计 30
· Coding · 具体编码 120
· Code Review · 代码复审 30
· Test · 测试(自我测试,修改代码,提交修改) 120
Reporting 报告 30
· Test Repor · 测试报告 20
· Size Measurement · 计算工作量 20
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30

3、计算模块接口的设计与实现过程

开始设计时,想到是写三个类,一个主类Main,用于创建变量和实现文件的输入和输出方法,一个Person类存放姓名和电话号码,一个Location类存放分级后的地址。但是在后来,发现地址匹配需要一个地址库,于是创建了一个AddressLibrary静态类,用于存放省级名称和市级名称。Main类中调用接收.txt文件进来先匹配省和市,再将剩下的字符串送入Location类中,Location类处理完再整合.json格式数据送入写文件函数中;Person类中有两个函数一个是设置名字和电话号码,另一个是返回名字和电话号码json格式的String类型数据;Location类,是比较复杂的一部分,主要是将传入的字符串进行处理保存,然后返回,处理过程中考虑的事情比较多。。。。。。

4、计算模块接口部分的性能改进

将Location类实例化到Person类中,这样就可以通过Person类直接调用Location类中的方法。在拼接最后输出的Json格式时,由于分布在两个不同的类中。显得比较复杂,所以就在Person类的方法中直接调用Location类的方法,拼接完成后直接返回主函数,输出到文件中。大体图如下:

5、计算模块部分单元测试展示

测试输入:

1!鲁胞,上海长宁区周18951233466家桥街道长宁路999号春天花园.
1!喻矫,北京和15298465108平里街道黄寺大街甲1号院.
1!宰训,西藏自治区拉萨市尼木县续迈乡103县道尼木县15290504225续迈乡中心卫生院.
1!谷梁悍,北京市门头沟区斋堂镇军响村军响中心小18916133476学.
2!茅参,上海市嘉定区马13347914736陆镇嘉新公路1157号樊家村1256号楼.
3!廉捷咏,浙江省上城区紫阳街道太庙巷62号紫阳学前教18999108285育集团.
3!汲者,江苏灌13555806486南县田楼镇新盘村新盘幼儿园.
3!符乡,安徽大观区菱湖街道宜园13281503317路80号.
3!汝舟孙,贵州省修文县龙岗社区15766780930服务中心阳明西路196号龙岗居委会.
3!孙旗乖,13366755810白城市洮北区长庆南街65号.

结果输出:

[
	{
		"姓名": "鲁胞",
		"电话号码": "18951233466",
		"地区":[
			"上海",
			"上海市",
			"长宁区",
			"周家桥街道",
			"长宁路999号春天花园",
		]

	},
	{
		"姓名": "喻矫",
		"电话号码": "15298465108",
		"地区":[
			"北京",
			"北京市",
			"",
			"和平里街道",
			"黄寺大街甲1号院",
		]

	},
	{
		"姓名": "宰训",
		"电话号码": "15290504225",
		"地区":[
			"西藏自治区",
			"拉萨市",
			"尼木县",
			"续迈乡",
			"103县道尼木县续迈乡中心卫生院",
		]

	},
	{
		"姓名": "谷梁悍",
		"电话号码": "18916133476",
		"地区":[
			"北京",
			"北京市",
			"门头沟区",
			"斋堂镇",
			"军响村军响中心小学",
		]

	},
	{
		"姓名": "茅参",
		"电话号码": "13347914736",
		"地区":[
			"上海",
			"上海市",
			"嘉定区",
			"马陆镇",
			"嘉新公路",
			"1157号",
			"樊家村1256号楼",
		]
	},
	{
		"姓名": "廉捷咏",
		"电话号码": "18999108285",
		"地区":[
			"浙江省",
			"",
			"上城区",
			"紫阳街道",
			"",
			"太庙巷62号",
			"紫阳学前教育集团",
		]
	},
	{
		"姓名": "汲者",
		"电话号码": "13555806486",
		"地区":[
			"江苏省",
			"",
			"灌南县",
			"田楼镇",
			"",
			"",
			"新盘村新盘幼儿园",
		]
	},
	{
		"姓名": "符乡",
		"电话号码": "13281503317",
		"地区":[
			"安徽省",
			"",
			"大观区",
			"菱湖街道",
			"宜园路",
			"80号",
			"",
		]
	},
	{
		"姓名": "汝舟孙",
		"电话号码": "15766780930",
		"地区":[
			"贵州省",
			"",
			"修文县",
			"",
			"龙岗社区服务中心阳明西路",
			"196号",
			"龙岗居委会",
		]
	},
	{
		"姓名": "孙旗乖",
		"电话号码": "13366755810",
		"地区":[
			"",
			"",
			"白城市洮北区",
			"长庆南街",
			"",
			"65号",
			"",
		]
	}
]

本地测试采用的cmd指令:

截图:

测试覆盖率:

…

6、计算模块部分异常处理说明

异常:
1、 直辖市、特别行政区、自治区的后缀多显示了“省”或没有正常显示;

2、 一些空的地址内容中会出现多出一两个字;

3、 电话号码识别的时候,会错误的把门牌号、楼号等识别成电话号码;

......
处理:
1、 直辖市、特别行政区和自治区提出另外讨论总共4+2+5=7个;

2、在返回值的时候多判断一下空地址是否正确;
3、暴力识别,写个循环识别11位手机号码。

7、实际PSP表格

PSP2.1 Personal Software Process Stages 实际耗时(分钟)
Planning 计划 30
· Estimate · 估计这个任务需要多少时间 720
Development 开发 360
· Analysis · 需求分析 (包括学习新技术) 140
· Design Spec · 生成设计文档 60
· Design Review · 设计复审 40
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30
· Design · 具体设计 40
· Coding · 具体编码 240
· Code Review · 代码复审 180
· Test · 测试(自我测试,修改代码,提交修改) 240
Reporting 报告 60
· Test Repor · 测试报告 60
· Size Measurement · 计算工作量 40
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30
posted @ 2019-09-28 01:36  SilentSamsara  阅读(168)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3