软件构造-实验总结4-Lab4
实验概述
本次实验重点训练学生面向健壮性和正确性的编程技能,利用错误和异常处 理、断言与防御式编程技术、日志/断点等调试技术、黑盒测试编程技术,使程序 可在不同的健壮性/正确性需求下能恰当的处理各种例外与错误情况,在出错后 可优雅的退出或继续执行,发现错误之后可有效的定位错误并做出修改。 实验针对 Lab 3 中写好的 ADT 代码和基于该 ADT 的三个应用的代码,使用 以下技术进行改造,提高其健壮性和正确性:
- 错误处理
- 异常处理
- Assertion 和防御式编程
- 日志
- 调试技术
- 黑盒测试及代码覆盖度
实验要点
checkRep()检查invariants
在lab3中已经给定了checkRep()的检测方法
StellarSystem:中心点必须有一颗恒星;一个轨道上只能有一个行星且不能没有行星;相邻轨道的半径之差不能小于两颗相应行星的半径之。
AtomStructure:无。
SocialNetworkCircle:如果某个人出现在第 n 条轨道上,那么他和中 心点的人之间的最短路径是 n。例如下图 a 用户,从中心点到它的最短 路径是通过 b(而非 c-d-e-a),那么 a 的位置应该是轨道 2(d 所在的 轨道)。如果某个人与中心点用户不连通,则不应出现在轨道系统中。
针对给定的要求实现了orbit的checkRep()函数
考虑到一些类的实现并没有自身的AF所以并没有自身的checkRep函数所以下面依次列举各个主要类的checkRep函数
各个绘画的Panel类没有checkRep函数
各个实现辅助功能的API类没有checkRep函数
各个轨道物体和中心物体,由于其是不可改变类型,直接在构造时检查了chekcRep。
Track类要求传入数据类型是个Number