项目 | 内容 |
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
我的课程学习目标 | 学习软件开发基本流程,掌握方法 |
这个作业在哪些方面帮助我实现学习目标 | 学习了github托管项目,学会了软件开发的基本流程。 |
项目Github的仓库链接地址 | https://github.com/Qiaohao501/covsys |
实验任务
任务1:陈述学生疫情每日上报子系统使用体验;
- 首先是界面比较简陋,用户体验较差,还有就是在首次使用的时候,系统崩溃了,可能是在开发中没有想到有如此多的访问。还有一点是只能是十点之前。最后我觉得每次同样的数据都需要用户手动输入进去,虽然这个问题已解决但开发者应该在开发的过程中首先想到,还有就是没有提醒功能,用户老是会忘记打卡。总的来说这个系统还是不错的,功能也随着用户的使用在不断的完善。
任务二:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。
-
我选择了第一类开发:
有一个数据文件,保存了100天 2000 个教职工/学生的所有防疫信息,请设计一个命令行程序, 支持查询某人在某一天的疫情情况, 查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。 -
1.项目开发背景简介:
2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。 -
2.需求分析:
(1)首先要求有一个数据文件,保存100天,2000 个教职工/学生的所有防疫信息
(2)设计命令行程序。
(3)对所存储的数据进行简单的操作。
(4)功能设计,基本实现 支持查询某人在某一天的疫情情况。查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果 -
3.设计实现:
在数据部分,利用自动生成程序,随机生成了大量疫情数据并将其存入数据库中
在功能实现部分主要通过定义类和相关函数来实现,项目中每个操作都由专门的函数实。
使用GitHub托管项目
-
4.测试运行:
测试运行主界面:
测试运行结果:
-
5.核心代码:
package daoImpl;
import dao.BaseDao;
import dao.Studao;
import pojo.StudentInfo;
public class StudaoImpl extends BaseDao implements Studao {
//增加一个学生信息
@Override
public void addstu(StudentInfo stu) {
String sql = "INSERT INTO inforstudent "
+ "(college,name,id,tel,teachertel,fever,hubei,infect,ConWithHubei)"
+ " VALUES(?,?,?,?,?,?,?,?,?)";
Object[] params = {stu.getCollege(),stu.getName(),stu.getId(),stu.getTel()
,stu.getTeachertel(),stu.getFever(),stu.getHubei(),stu.getInfect(),stu.getConWithHubei()};
int i = this.executeUpdate(sql, params);
if(i>0){
System.out.println("Success Add a stu");
}
else{
System.out.println("Fail Add a stu");
}
this.closeResource();
}
}
- 6.项目总结:
通过这次实验,我学会了如何在GitHub上托管项目,并且了解了开发项目的基本步骤,完成了本次实验,同时也认识到自己在实践上不足。对于“模块化”,我理解的是,将数据操作与逻辑操作分开进行,尤其是在编写程序时按模块划分,同时通过本次程序开发,对软件工程这门学科以及PSP个人软件开发过程有了进一步的了解。
- 7.PSP展示:
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planing | 计划 | 30 | 30 |
.Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 20 |
Development | 开发 | 330 | 450 |
·Analysis | 需求分析 | 60 | 60 |
·Design Spec | 生成设计文档 | 60 | 60 |
·Design Review | 设计复审 (和同事审核设计文档) | 60 | 60 |
·Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 60 | 50 |
·Design | 具体设计 | 60 | 60 |
·Code Review | 代码复审 | 30 | 30 |
·Test | 测试(自我测试,修改代码,提交修改) | 40 | 40 |
Reporting | 报告 | 20 | 30 |
·Test Report | 测试报告 | 40 | 45 |
·Size Measurement | 计算工作量 | 45 | 40 |
· Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 30 | 35 |
- 8.实验总结:
通过做这次项目,我了解和学习了软件开发的基本的步骤,同时也根据GitHub上托管项目了解了GitHub的使用,在本次实验中,也认识到自己在一些基础知识上有一定程度的欠缺,所以导致实践能力也有点薄弱,所以在后期通过学习相关知识一定会尽快补上这些不足。