20172321 2017-2018-2 《程序设计与数据结构》实验2报告

20172321 2017-2018-2 《程序设计与数据结构》实验2报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 吴恒佚
学号:20172321
实验教师:王志强老师
实验日期:2018年4月21日
必修/选修: 必修

1.实验内容

  • 初步掌握单元测试和TDD

  • 理解并掌握面向对象三要素:封装、继承、多态

  • 初步掌握UML建模

  • 熟悉S.O.L.I.D原则

  • 了解设计模式

  • 完成蓝墨云上 (1)-(5)实验。

2. 实验过程及结果

  • 过程
    • 1)第一个提交点和第二个提交点内容接近,先IDEA中使用JUnit要安装插件,然后主要考查了JUnit会不会使用(对测试用例的正常情况、错误情况、边界情况进行测试)和测试自己会不会写JUnit测试用例。
    • 2)对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式。通过用自己的学号%6进行取余运算,根据结果进行代码扩充。
    • 3)按要求以TDD的方式开发一个复数类Complex(用JUnit进行测试)
    • 4)使用StarUML对实验二中的代码进行建模,类,继承,接口实现,组合在UML中表达。(需要下载StarUML软件)
  • 结果
    • 1)前两个提交点是在课堂上完成的,下载安装 JunitGenerator V2.0 和使用步骤都有老师和助教提示帮助,对JUtil的使用学习得比较容易,实验也比较顺利完成。
    • 2)完成第三个提交点的时候因为审题有误,虽然是成功了,但是做了许多多余的操作。
    • 3)在开发一个复数类Complex的时候,因为已经不熟悉复数的运算公式了,所以在编写运算时多有错漏,最后都一一订正并测试成功了。
    • 4)用StarUML建模算是最容易的一个了,StarUML在群文件里可以找到,然后按照示例图进行操作就完成了。

3. 实验过程中遇到的问题和解决过程

  • 问题1:前两个提交点因为有学长的数次指导,所以遇到的一些不懂怎么操作的问题都很快解决了,只是最后在JUtil用测试MyUtil的时候直接把示意图上的代码照抄了过去,结果有很多错误。

  • 问题1解决方案:当时因为是第一次使用JUtil,不是很清楚错误情况,自己从头把MyUtilTest仔细研究了一遍之后,找出了几个错误并修改了一些数据和字符串,解决起来其实也不是很难。

  • 问题2:解决第三个提交点的时候读题不仔细,原本是 用自己的学号%6进行取余运算,根据结果进行代码扩充: ,但是我当时把六种都做了,然后把输出的数字改成了学号的余数。

  • 问题2解决方案:这个我反应过来的时候已经完成,所以为了得到包含每个关键部分的代码截图,截取了好几张,而且图片包含的内容比较杂乱。

  • 问题3:开发一个复数类Complex的时候不熟悉复数的运算公式,又不想再设置更多的变量,就把一整个运算放在一个式子里,就导致了许多错误。

  • 问题3解决方案:不断的代入测试数据和笔算结果比较,检查式子是否有错误。

4.其他(感悟、思考等)

  • 前面几个实验几乎都是完全按照博客指示做的,可以说时知其然而不知其所以然,但是实验四有了自己更多的思考,才算是理解了单元测试和TDD。
  • TDD的使用可以检查并大量减少自己所编程序中的错误,特别是边界错误这种自己难以发现的错误。
  • 在编程前画出UML图可以让我们在编程时思路清晰,在做编程项目之前有UML图可以免去在编程中思路不清晰导致的错误。

5.参考资料

原文地址:https://www.cnblogs.com/N-idhogg/p/8920760.html