软件构造Lab2问题解决思路及感想

本文详细记录了作者在软件构造Lab2中的实验过程,包括ADT设计、面向对象编程实践和测试策略。作者首先概述了实验目标,接着介绍了环境配置,然后详细阐述了每个问题的解决方案,涉及Poetic Walks、Social Network重实现等。在实验过程中,作者使用了EclEmma检查代码覆盖率,并分享了遇到的困难和解决办法,最后总结了实验带来的经验教训,强调了ADT设计的重要性及其对软件质量的影响。
摘要由CSDN通过智能技术生成

1 实验目标概述 1
2 实验环境配置 1
3 实验过程 1
3.1 Poetic Walks 1
3.1.1 Get the code and prepare Git repository 1
3.1.2 Problem 1: Test Graph 1
3.1.3 Problem 2: Implement Graph 1
3.1.3.1 Implement ConcreteEdgesGraph 2
3.1.3.2 Implement ConcreteVerticesGraph 2
3.1.4 Problem 3: Implement generic Graph 2
3.1.4.1 Make the implementations generic 2
3.1.4.2 Implement Graph.empty() 2
3.1.5 Problem 4: Poetic walks 2
3.1.5.1 Test GraphPoet 2
3.1.5.2 Implement GraphPoet 2
3.1.5.3 Graph poetry slam 2
3.1.6 使用Eclemma检查测试的代码覆盖度 2
3.1.7 Before you’re done 2
3.2 Re-implement the Social Network in Lab1 2
3.2.1 FriendshipGraph类 2
3.2.2 Person类 3
3.2.3 客户端main() 3
3.2.4 测试用例 3
3.2.5 提交至Git仓库 3
4 实验进度记录 3
5 实验过程中遇到的困难与解决途径 3
6 实验过程中收获的经验、教训、感想 4
6.1 实验过程中收获的经验和教训 4
6.2 针对以下方面的感受 4

一:实验目标概述
本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象 编程(OOP)技术实现ADT。具体来说:
针对给定的应用问题,从问题描述中识别所需的ADT;
设计ADT规约(pre-condition、post-condition)并评估规约的质量;
根据ADT的规约设计测试用例;
ADT的泛型化;
根据规约设计ADT的多种不同的实现;针对每种实现,设计其表示(representation)、表示不变性(rep invariant)、抽象过程(abstraction function)
使用OOP实现ADT,并判定表示不变性是否违反、各实现是否存在表示泄露(rep exposure);
测试ADT的实现并评估测试的覆盖度;
使用ADT及其实现,为应用问题开发程序;
在测试代码中,能够写出testing strategy并据此设计测试用例。

二:实验环境配置
配置EclEmma:
访问http://www.eclemma.org安装配置EclEmma,
参考以下学习EclEmma使用:
https://blog.csdn.net/zczzyezgycsz8888/article/details/84914143
在这里给出你的GitHub Lab2仓库的URL地址(Lab2-学号):
https://github.com/ComputerScienceHIT/HIT-Lab2-1190200405

三:实验过程
请仔细对照实验手册,针对三个问题中的每一项任务,在下面各节中记录你的实验过程、阐述你的设计思路和问题求解思路,可辅之以示意图或关键源代码加以说明(但千万不要把你的源代码全部粘贴过来!)。
3.1Poetic Walks
任务:在实现一个图模块的基础上进行语句的扩展,美其名曰诗词漫步。
(1)完善Graph接口类,拓展String为泛型L。
(2)实现ConcreteEdgesGraph类中的add、set、remove、vertices、source、target,复写toString。(边的思想)
(3)实现实现ConcreteVerticesGraph类中的add、set、remove、vertices、source、target,复写toString。(点的思想)
(4)利用实现的Graph类,实现GraphPoet类,完成诗词漫步。
3.1.1Get the code and prepare Git repository
在Get the code步骤中,无法连接MIT的Athena服务器,从以下地址获 取 初始代码:
https://github.com/rainywang/Spring2020_HITCS_SC_Lab2/tree/master/P1
3.1.2Problem 1: Test Graph
add方法的划分:
vertex:已存入graph的点、未存入graph的点。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值