面向对象JML:实现Path与Graph容器,实战设计模式与单元测试

需积分: 0 0 下载量 181 浏览量 更新于2024-08-05 收藏 594KB PDF 举报
本次面向对象JML系列的第二次作业旨在深入理解并应用JML规格、设计模式以及单元测试的基本概念。核心任务是实现两个关键类,容器类Path和数据结构类Graph。Path类作为基础,提供基于路径的操作,如增删查改,其接口定义中使用了JML的invariant和constraint等高级特性,以确保代码的正确性和一致性。 Graph类则是对PathContainer的扩展,继承了上一次作业中的接口,新增了无向图相关的功能。它需要支持路径的转换为无向图结构,并能进行基于无向图的查询。同学们需要根据官方提供的接口源代码和JML规格文档,自定义类名为MyPath和MyGraph的实现,确保每个接口方法的代码严格按照规格进行编写。 Path类的构造方法设计尤为重要,要求有一个接受nodeList数组参数的构造函数,用于根据节点序列创建Path对象。这种变长参数的使用能够提高代码的灵活性和可读性。同时,类和构造函数都需要声明为public,以便在主类AppRunner中实例化。 在实现过程中,同学们还需要注意单元测试的运用,作业提交将采用公测、互测和bug修复的黑箱测试模式,这意味着代码不仅要满足功能需求,还要经受严格的测试验证。这意味着同学们需要编写有效的测试用例,确保代码的稳定性和正确性。 本次作业不仅要求掌握面向对象编程和设计模式的基础,还要学会如何通过JML规格来规范代码,以及如何进行单元测试以保证代码质量。这是一项综合性强,能够提升编程技能和实践能力的重要任务。