标签:心得 编写 其他 查找 junit ash 形式 直接 体会
第三单元博客
(1)设计策略
参照指导书和JML规格进行实现。
(2)结合课程内容,整理基于JML规格来设计测试的方法和策略
Junit单元测试,通过使用Junit达到对每个函数的测试,从而保证每个函数都符合JML规格。
(3)总结分析容器选择和使用的经验
HashMap和HashSet在查找时候能大幅提升性能。ArrayList查找效率很低。
实现搜索算法时使用Queue和Set。
(4)针对本单元容易出现的性能问题,总结分析原因
1.看错规格,由于规格的量很大,很容易将括号看走眼导致对规格理解不到位而出错
2.大量的查找重复调用相同的方法导致时间开销会很大。例如在规格中反复出现的GetPerson1()·····
原因:
1.对规格的分析不够
2.对算法的思考,设计与分析不到位
(5)梳理自己的作业架构设计,特别是图模型构建与维护策略
作业架构与指导书一致,没有增加新内容。(正因如此导致性能极差)
图构建:每个人Person时一个节点,而acquaintance中储存了这个人与其他熟人之间的值。构成图。
图维护:操作对应的容器类的方法进行增删改查。
(6)心得体会
JML只能提供最基础的规格,如果直接暴力实现会使性能爆炸。
应当在理解JML的基础上,采取相应算法进行实现。
那么既然要理解JML的内涵,那么为什么不用自然语言呢?
或许JML在用形式化语言使得编写测试程序的开发人员明白了这个函数会改变什么,不改变什么。而针对性测试。
标签:心得 编写 其他 查找 junit ash 形式 直接 体会
原文地址:https://www.cnblogs.com/lyh19373587/p/14838390.html