201771010132-徐思 实验三 结对项目-《西北师范大学疫情防控信息系统》
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12521474.html |
我的课程学习目标 | (1)练习结对编程(2)掌握Github协作开发程序的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | 通过结对编程,互相学习,在学习编程方面很有帮助 |
结对方姓名-学号 | 杨其菊-201771010134 |
结对方本次博客作业链接 | https://www.cnblogs.com/yqj-yf-111/p/12588932.html |
项目Github的仓库链接地址 | https://github.com/sisi-713/test |
任务2:两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价
结对方博客链接:https://www.cnblogs.com/yqj-yf-111/p/12508399.html
结对方Github项目仓库链接:https://github.com/Tanya11010
博客评论:
代码核查表:
-
1.概要部分
1)代码符合需求和规格说明么?
答:基本符合。2)代码设计是否考虑周全?
答:考虑较为周全。3)代码可读性如何?
答:可读性较高。4)代码容易维护么?
答:较易维护。5)代码的每一行都执行并检查过了吗?
答:已检查。 -
2.设计规范部分
1)设计是否遵从已知的设计模式或项目中常用的模式?
答:基本遵从。2)有没有硬编码或字符串/数字等存在?
答:没有。3)代码有没有依赖于某一平台, 是否会影响将来的移植(如Win32到Win64) ?
答:没有。4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
答:可以实现,不存在。5)有没有无用的代码可以清除?
答:已经清除。 -
3.代码规范部分
1)修改的部分符合代码标准和风格么(详细条文略) ?
答:基本符合。 -
4.具体代码部分
1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
答:有对错误进行处理,对于调用的外部函数,检查了返回值,处理了异常。2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
答:基本没有错误,字符串的长度时字符的长度,从0开始计数。3)边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环?
答:通过限制长度,没有出现死循环。4)有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足?
答:没有。5)对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存、文件、各种GUI资源、数据库访问的连接,等等) ?有没有优化的空间?
答:没有可能导致资源泄露。6)数据结构中有没有用不到的元素?
答:基本没有。 -
5.效能
1)代码的效能( Performance )如何?最坏的情况是怎样的?
答:程序运行正常。2)代码中,特别是循环中是否有明显可优化的部分 ?
答:已基本优化。3)对于系统和网络的调用是否会超时?如何处理?
答:不会超时 -
6.可读性
1)代码可读性如何?有没有足够的注释?
答:可读性较高,注释较详细。 -
7.可测试性
1)代码是否需要更新或创建新的单元测试?
答:不需要。
结对方项目仓库中的Fork、Clone、Push、Pull request、Merge pull request日志数据:
任务3:采用两人结对编程方式,设计开发一款符合我校疫情防控工作需求的信息系统,
需求分析:
通过对我校师生疫情每日上报系统使用体验进行分析,设计一款符合我校疫情防控需求的系统。我们通过java编写GUI界面来对全校师生疫情情况进行收集,查询,统计。
软件设计:
- 基本功能
- 1)普通师生登录系统可以填报疫情信息;
- 2)各二级部门登录后可查看本学院的疫情情况,查询本学院的疫情信息;
- 3)学校负责人登录后可查看各学院疫情情况,可以查询各学院的疫情相关信息,并对关键疫情数据进行统计,导出查询excel文件。
软件实现:
chart包:柱状图处理
dao包:对管理员、二级部门、学生老师登录进行验证,对疫情记录进行操作定义;
model包:管理员、二级部门、学生、老师、疫情信息实体类;
util包:数据库连接,判断空字符;
view包:各种界面的实现。
核心功能代码:
package util;
/**
* 字符串工具类
* @author
*
*/
public class StringUtil {
/**
* 判断字符串是否为空
* @param str
* @return
*/
public static boolean isEmpty(String str) {
if(str == null || "".equals(str.trim())) {
return true;
}else {
return false;
}
}
/**
* 判断不为空
* @param str
* @return
*/
public static boolean isNotEmpty(String str) {
if(str != null && !"".equals(str.trim())) {
return true;
} else {
return false;
}
}
}
package util;
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBC {
private String url = "jdbc:mysql://127.0.0.1:3306/test";
private String username = "root";
private String password = "2879026694xs";
//连接数据库
public Connection getCon() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, username, password);
return con;
}
//断开连接
public void closeCon(java.sql.Connection con) throws Exception {
if(con != null) {
con.close();
}
}
}
程序运行:
登录界面:
管理员及二级部门界面:
师生界面:
结对讨论:
PSP:
PSP | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 15 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 15 |
Development | 开发 | 740 | 1555 |
· Analysis | · 需求分析 (包括学习新技术) | 40 | 70 |
· Design Spec | · 生成设计文档 | 10 | 25 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 40 |
· Design | · 具体设计 | 40 | 60 |
· Coding | · 具体编码 | 500 | 1200 |
· Code Review | · 代码复审 | 30 | 50 |
· Test | · 测试(自我测试,修改代码,提交修改) | 40 | 80 |
Reporting | 报告 | 18 | 43 |
· Test Report | · 测试报告 | 5 | 20 |
· Size Measurement | · 计算工作量 | 5 | 8 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 8 | 15 |
小结感受:1+1>2吗?通过这次结对设计疫情系统,让我们切实感受到了1+1的效果,总的来说,1+1>2。结对设计系统对我们学习编程有很大的帮助,我们在这个讨论过程中分析问题,分享各自的观点,设计想法,以及实现编程,从中互相学习,共同进步,收获很多。但是因为条件的问题,我们很多时候时间对不上,效率不是很高。而且因为时间的问题,我们的功能实现还不是很全面。