北航软工结队编程项目作业,要求开发一款简单的绘图软件,支持从文件导入并绘制直线、射线、线段、圆及它们的交点。本项目基于Qt开发,历时一周。
- 对新增功能涉及到的函数进行单元测试。
- 回归测试所有以前的功能,保证以前的功能还能继续工作。
- 在完成这一阶段的任务之后,使用
git tag step1
标记,并在 push 到Github 上时使用--tags
参数把 tag 也推送到 Github,例如git push origin --tags
。
- 详细介绍新增功能的实现。
- 选择部分单元测试代码发布在博客中,并说明测试的函数,构造测试数据的思路。
- 将单元测试得到的测试覆盖率截图,发表在博客中。要求总体覆盖率到 90% 以上,否则单元测试部分视作无效。
-
以需要支持接入 GUI 模块为前提,自行设计求解几何对象交点的接口集合。
-
对设计的接口进行测试。
-
保持命令行程序在封装完成后仍然可用。
-
在完成这一阶段的任务之后,使用
git tag step2
标记,并在 push 到 Github 上时使用--tags
参数把 tag 也推送到 Github。
- 看 Design by Contract,Code Contract 的内容,描述这些做法的优缺点,说明你是如何把它们融入结对作业中的。
- 看教科书和其它资料中关于 Information Hiding,Interface Design,Loose Coupling 的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的。
- 详细说明所设计的接口,并阐明设计的理由。
- 选择部分测试代码发布在博客中,并说明测试的函数,构造测试数据的思路。
在扩展核心功能一节中,题目对输入的格式与范围进行了限定,可认为是合法输入。错误处理的目标是区别合法输入和非法输入,同时对非法输入进行一定的提示以帮助用户改正。
在本节中,需要考虑的输入为以大小写字母,数字,空格,-
,\n
组成的文本。
- 设计好异常的种类与错误提示,例如让程序支持“坐标范围超限”,“直线定义中两点重合”或“有无穷多交点”异常。
- 在 core 模块中实现抛出异常的功能,并撰写测试用例:传进去一个非法输入,期望能捕获一个特定异常。如果没有,测试就报错。
- 回归测试所有以前的功能,保证以前的功能还能继续工作。
- 在完成这一阶段的任务之后,使用
git tag step3
标记,并在 push 到 Github 上时使用--tags
参数把 tag 也推送到 Github。
- 在博客中详细介绍对哪些异常进行了处理以及每种异常的设计目标。
- 每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景
- 新建一个工程,把 core 核心模块作为一个 DLL(动态链接库)引用在新工程中。
- 开发一个 UI 模块,实现如下需求:
- 支持从文件导入几何对象的描述。
- 支持几何对象的添加、删除。
- 支持绘制现有几何对象。
- 支持求解现有几何对象交点并绘制。
- 将 UI 模块与 core 模块对接。
- 在完成这一阶段的任务之后,使用
git tag step4
标记,并在 push 到 Github 上时使用--tags
参数把 tag 也推送到 Github。
详细地描述 UI 模块的设计与两个模块的对接,并在博客中截图实现的功能。