软件构造lab2报告-1180300527朱明喆
1 实验目标概述
实验的主要目标是训练ADT的设计、规约、测试和使用OOP技术实现ADT。
主要有下面几个方面:
针对给定的 应用问题,从描述中识别所需 ADT
设计 ADT 的规约并评估规约的质量
根据 ADT 的规划设计测试用例,并写出 testing strategy
实现 ADT 的泛型化
根据规约设计 ADT 的多种不同的实现;针对每种实现,设计 representition、
rep invariant 和 abstraction function。
使用 OOP 实现 ADT 并判定表示不变性是否违反已经是否有 rep exposure
2 实验环境配置
本次实验的配置 需要到eclipse marketplace中下载需要求的EclEmma插件
3 实验过程
直接从给定的链接
link.
中提取本次实验需要的信息
3.1 Poetic Walks
3.1.1Get the code and prepare Git repository
直接从下载好的文件当中提取需要的代码,然后在工作台的lab2文件夹中放置含有该任务的代码文件
3.1.2Problem 1: Test Graph
1 、 主 要 是 测 试 Graph.empty() 函数的 testing strategy 。
测试 在不同的 L 的情况下,只要 L 为 immutable 类型的数据类型就可以使用。所以 测试策略就是使用不同的 immutable 类型的数据,此处选择 Integer 和 Long 以及接下来会使用的String 进行测试,保证测试包括 set、add、remove,Vertices,等函数即可
2、书写测试 Instance 方法的 testing strategy。对每一个需要测
试的函数进行输入空间的划分.
3.1.3Problem 2: Implement Graph
3.1.3.1Implement ConcreteEdgesGraph
定义两个私有String类型source和target存放每个边的起止点,定义一个私有int类型weight保存这条边的权重(长度)
2.在ConcreteEdgesGraph中Edge类测试
Edge中定义了四种操作和重写的tostring方法,