第一次个人编程作业

一.Github仓库

Github地址

二.PSP表格

我的表头折腾了好久还是出不来,所以我把它搞成内容了

p s p 2.1personal software process stage预估耗时(分钟)实际耗时(分钟)
psp2.1personal software process stage预估耗时(分钟)实际耗时(分钟)
Planning计划1010
Estimate估计这个任务需要多数时间540660
Development开发200300
Analysis需求分析(包括学习新技术)210210
Design Spec生成设计文档90120
Design Review设计复审6030
Coding Standard代码规范(为目前的开发制定合适的规范3045
Design具体设计12090
Coding具体编码180150
Test测试(自我测试,修改代码,提交修改)180120
Reporting报告6090
Test Repor测试报告4560
Size Measurement计算工作量3045
Postment&Process Improvement Plan事后总结,并提出过程改进计划6090
合计18152020

三.计算模块接口的设计与实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处。(25')

1.主要函数有:(1)fir_3:调用cpca获取前3级 (2)lev_5:将前3级剩下的地址进行5级解析 得到1级(3)lev_7:将5级解析的结果再进行解析得到剩下的3级 (4)lev_auto:将经过补充后的地址进行7级解析 (5)_auto_geo_completion调用api进行地址补充

2。程序工作流程图:

1334201-20190927160145218-1116110397.png

3.算法关键:主要是利用cpca进行前三级的自动匹配和补充,刚开始调用api,后来发现cpca也可以自动补充,优点是准确度会高一点,代码量也会少一点,缺点就是用时长,测试的时候等的时间非常的长,我测一次大概要1个半小时。QAQ疯狂嘤嘤嘤。 当然,现在不会了,新工具快很多,赞!!!

四.计算模块接口部分的性能改进。记录在改进计算模块性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017/JProfiler的性能分析工具自动生成),并展示你程序中消耗最大的函数。(4')

1334201-20190928224601852-1332573782.png

1334201-20190928225047132-1239511639.png
用的是python自带的profile库测试的,在分割前三级,也就是调用cpca的包耗费的时间最多,改进的话,就是用含有前三级的字典进行匹配,自己写的代码部分会多一些,但应该会快很多。

五.计算模块部分单元测试展示。展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。(6')

1.代码:

            import unittest
        from _031702304 import *
        class MyTest(unittest.TestCase):
def tearDown(self):
                #每个测试用例执行之后做操作
    pass
def setUp(self):
    pass
def test_get_type(self):
    self.assertIs("1!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.","1")
    self.assertIs("2!张三,福建福州闽13599622362侯县上街镇福州大学10#111.","2")
    self.assertIs("3!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.","3")

def test_get_name(self):
    self.assertIs(get_name("小美,北京市东15822153326城区交道口东大街1号北京市东城区人民法院."),'小美','北京市东15822153326城区交道口东大街1号北京市东城区人民法院')
    self.assertIs(get_name("李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层."),"李四")
    self.assertIs(get_name("张三,福建福州闽13599622362侯县上街镇福州大学10#111."),"张三")
    self.assertIs(get_name("王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院."),"王五")


def test_get_tel(self):
    self.assertIs("福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.","18960221533")
    self.assertIs("福建福州闽13599622362侯县上街镇福州大学10#111.","13599622362")
    self.assertIs("福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.","13756899511")            

1334201-20190928192458717-447605901.png

出现了以上的报错,没有找到有效的解决方法,好像是因为我是在anaconda运行的原因。

2.所以我手动又测试了一下,题目给的前4个样例:

1334201-20190928194343870-1005854478.png

3.代码覆盖率:

1334201-20190929143247604-81471101.png

1334201-20190929143307453-1186204956.png

六.计算模块部分异常处理说明。在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。(5')

1334201-20190928224918155-2014784609.png

这个是用测评工具测试的时候出现的异常,感觉是因为我在进行这次测试的时候用的数据集是删除掉第3类型的数据,所以score也出不来,换了数据集就可以了。

七.心得

1.感觉理解能力有待提高,每次看完博客都是懵的,好像可以理解,但是操作起来却又一堆问题。
2.可能看起来问题很小或者工作量不大,但是一旦出现问题,都会耗费大量的时间。
3.看完教程之后,还是不会打,老是数据格式弄错,弄错语法,一堆奇怪的因为缩进引起的报错。

转载于:https://www.cnblogs.com/katy0308/p/11594951.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值