软件构造lab2

1.实验目标概述

本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象 编程(OOP)技术实现 ADT。具体来说:

(1)针对给定的应用问题,从问题描述中识别所需的ADT。

(2)设计ADT规约(pre-condition、post-condition)并评估规约的质量。

(3)根据ADT的规约设计测试用例。

(4)ADT的泛型化。

(5)根据规约设计ADT的多种不同的实现。

(6)针对每种实现,设计其表示(representation)、表示不变性(rep invariant)、抽象过程(abstraction function)。

(7)使用OOP实现ADT,并判定表示不变性是否违反、各实现是否存在表示泄露(rep exposure)。

(8)测试ADT的实现并评估测试的覆盖度。

(9)使用ADT及其实现,为应用问题开发程序。

(10)在测试代码中,能够写出testing strategy并据此设计测试用例。

2.实验环境配置

在 Eclipse IDE 中安装配置 EclEmma(一个用于统计 JUnit 测试用例的代码覆盖度的 plugin)直接从Eclipse Market下载安装即可。

1. 从 Eclipse 菜单中选择“帮助”→ Eclipse Marketplace。

2. 搜索“EclEmma”。

3. 点击安装,查看条目“EclEmma Java Code Coverage”。

3.实验过程

请仔细对照实验手册,针对三个问题中的每一项任务,在下面各节中记录你的实验过程、阐述你的设计思路和问题求解思路,可辅之以示意图或关键源代码加以说明(但千万不要把你的源代码全部粘贴过来!)。

3.1.Poetic Walks

本实验要求完善 Graph 接口类,并运用泛型的思想,将 String 拓展为泛型 L 类。

Graph接口要求实现add,set,remove,vertices,sources获得以target为目标节点的边的起始节点,targes(source)获得以source为起始节点的边的目标节点。

Poet:给定一组单词(文件输入),对于两个相邻的单词a和b,认为存在一条由a到b的有向边,通过Graph接口构造有向图。再给定一由单词组成的句子,如果句子中两个相邻单词之间在Graph图中有一个中间单词则将中间单词插入到两单词之间(如果有多个则插入权重最大的那个)。

3.1.1.Get the code and prepare Git repository

使用 下面的git 命令获取到该任务的代码:

git clone git@github.com:rainywang/Spring2021_HITCS_SC_Lab2.git

每完成一部分任务后使用下列命令将仓库推送到 GitHub 上。

git add .

git commit -m

git push origin master

3.1.2.Problem 1: Test Graph <String>

分别测试 add、set、remove、vertices、sources、tar

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值