项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业的要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
我的课程学习目标 | (1)掌握软件项目个人开发流程。(2)掌握Github发布软件项目的操作方法。 |
这个作业在哪方面帮助我实现学习目标 | 在软件项目个人开发流程方面 |
项目Github的仓库链接地址 | https://github.com/lrh258/xhh.git |
1、实验目的与要求
(1)掌握软件项目个人开发流程。
(2)掌握Github发布软件项目的操作方法。
2、实验内容
任务1:陈述学生疫情每日上报子系统使用体验;
由于疫情需要学校要求我们于每天十点以前填报自己当天的疫情信息,但是第一天的时候遇到了和大多数人都一样的问题就是人数太多导致系统崩溃,但是后来的时候有意识的错峰填报就没有出现过此类问题了。刚刚开始填报的时候需要每天都填写各类信息非常麻烦,后来先前填过的同样的信息被保存了下来,这是很方便,此外,有时候经常忘记提交,希望开发者可以写一个提醒功能。总的来说使用体验还行。
任务2:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。
你可在以下两类开发要求选择一种完成项目开发任务:
第一类开发要求:
有一个数据文件,保存了100天 2000 个教职工/学生的所有防疫信息,请设计一个命令行程序, 支持查询某人在某一天的疫情情况, 查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
第二类开发要求:
1. 系统可采集学生疫情有效信息;
2. 系统支持用户在线使用;
3. 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
4. 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
5. 学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
我选择第一类
1. 需求分析
2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
由于疫情的原因我们无法返回学校,为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,便于学校及时掌握学生的疫情信息。该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况的一个统计。
2. 功能设计
基本功能
(1)支持查询某人在某一天的疫情情况
(2)查询某种数据的周/月的疫情统计情况
(3)并用柱状图显示统计结果。
扩展功能
(4)支持信息的添加功能;
(5)支持对所有学生,教师信息的查询
3. 设计实现
为了便于信息的存储,对教师和学生的信息分别创建表
创建的比较重要的类:
定义了一个用来进行数据库连接的类。
定义学生类
定义教师类
定义了用来进行数据操作的类
定义了用来产生柱状图的类
4. 测试运行
连接mysql数据库
总的菜单
查询某个人在某天的情况
添加学生信息
查询总的信息
学生在一段时间内的确诊统计图
5. 代码片段
package com.cn.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class AbUtil {
private static String dbUrl = "jdbc:mysql://localhost:3306/test2?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true";
private static String dbUserName = "root";
private static String dbPassword = "root";
private static String jdbcName = "com.mysql.cj.jdbc.Driver";
public static Connection getCon() throws Exception {
Class.forName(jdbcName);
Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
return con;
}
public static void closeCon(Connection con) throws Exception {
if (con != null) {
con.close();
}
}
public static void main(String[] args) {
AbUtil dbUtil = new AbUtil();
try {
dbUtil.getCon();
System.out.println("成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
6. 总结你设计的程序如何实现软件设计的“模块化”原则。
此系统除了main这个主类方法,别的类之间基本没有关联。我设计不同类执行不同的功能,添加功能在需要的类中添加函数.除必要接口,尽量减少模块间、分系统、子系统间的逻辑依赖,尽量避免多对多关系。
7. 展示PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间 |
---|---|---|---|
Planning | 计划 | 30 | 25 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 30 |
Development | 开发 | 2000 | 2500 |
Analysis | 需求分析(包括学习新技术) | 98 | 120 |
Design | Spec 生成设计文档 | 34 | 20 |
Design | Review 设计复审(和同事审核设计文档) | 2 | 0 |
Coding | Standard 代码规范(为目前的开发制定合适的规范) | 33 | 32 |
Design | 具体设计 | 34 | 25 |
Coding | 具体编码 | 1500 | 1800 |
Code Review | 代码复审 | 30 | 24 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 88 |
Reporting | 报告 | 180 | 165 |
Test Report | 测试报告 | 40 | 35 |
Size Measurement | 计算工作量 | 7 | 6 |
任务三 完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中
总结:本次通过使用psp,对开发项目的时间有了一个整体上的控制,可以看到自己的不足,然后持续自我改进。总的来说,psp对我的帮助不大,可能是我还没有感受到。后面的项目中会再感受的。然后做项目过程中一直做一直错,各种各样的错误。通过一点点改正勉强交上了作业。