项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12521474.html |
我的课程学习目标 | 体验软件项目开发中的两人合作,练习结对编程 |
这个作业在哪些方面帮助我实现学习目标 | 练习结对编程,并了解了它的优点 |
结对方学号-姓名 | 201771030118-司绍斌 |
结对方本次博客作业链接 | https://www.cnblogs.com/iEason/p/12576593.html |
本项目Github的仓库链接地址 | https://github.com/Eason1011/SSM2 |
任务二:
1、结对方博客链接:201771030118-司绍斌 实验二 个人项目——《西北师范大学学生疫情上报系统》项目报告
2、结对方Github项目仓库链接:Github项目仓库链接
3、符合(1)要求的博客评论:
4、符合(2)要求的代码核查表
-
概要部分
-
代码能符合需求和规格说明么?
答:能符合需求与规格说明
-
代码设计是否有周全的考虑?
答:不太周全,框架结构有多次修改,每次都在完善
-
代码可读性如何?
答:简单易懂
-
代码容易维护么?
答:比较容易
-
代码的每一行都执行并检查过了吗?
答:检查过了
-
-
设计规范部分
-
设计是否遵从已知的设计模式或项目中常用的模式?
答:遵从
-
有没有硬编码或字符串/数字等存在?
答:有一部分
-
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)
答:没有依赖
-
不会影响开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
答:可以实现,不存在
-
有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。)
答:有一些无用的代码,已清除
-
-
代码规范部分
-
修改的部分符合代码标准和风格么(详细条文略)?
答:符合代码标准和风格
-
-
具体代码部分
-
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
答:查阅资料并讨论以后发现基本没有。
-
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
答:基本无错误,字符串的长度是字节的长度,以0开始计数
-
边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环?
答:通过检查代码和讨论,循环不会出现死循环
-
有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
答:没有使用
-
对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有可能优化?
答:因为没有上线使用,基本不会导致资源泄露,没有优化
-
数据结构中是否有无用的元素?
答:检查过后没有
-
-
效能
-
代码的效能(Performance)如何?最坏的情况是怎样的?
答:代码正确,程序运行正常,数据很大时会有一点慢
-
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)?
答:有可优化部分,可以正常运行
-
对于系统和网络调用是否会超时?如何处理?
答:不会超时,数据过大可能有一点延迟
-
-
可读性
-
代码可读性如何?有没有足够的注释?
答:代码可读性较强,重要部分都加了注释
-
-
可测试性
-
代码是否需要更新或创建新的单元测试? 还可以有针对特定领域开发(如数据库、网页、多线程等)的核查表。
答:不需要,后期有新的要求可适当添加、更改
-
5、结对方项目仓库中的Fork、Clone、Push、Pull request、Merge pull request日志数据
- git clone操作,克隆对方项目
- 将更改后的项目上传到对方仓库
- 已经上传到对方Git仓库
- git pull操作拉取对方更改后我的项目
注:对方已经邀请我成为对方项目的合作者,由于项目不大,没有创建新的分支,直接上传到默认分支
任务三:
1、需求分析陈述:
-
背景:2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施。值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。各大公司开发研制一系列疫情防控的软件。
-
目的:为了完成本校学生的每日疫情基本情况的汇总以及查看。
-
疫情上报系统:采用前后端分离的方式,学生疫情上报和老师查看互补影响。学生只需要每天按时上报信息。老师在后台可以进行查看,搜索,导出,删除以及修改功能。
-
本系统采用SSM框架开发,前端采用Bootstrap开发。
2、软件设计说明:
- 前端采集学生和教师疫情信息,在规定时间内提交,后台可以显示提交时间。
- 支持多用户同时使用。
- 管理员登录后台后可以查看各个学院的学生和教师上报的疫情信息,查看对应学院的负责人老师名字以及电话号码。
- 管理员可以将需要的疫情信息查找出来,然后导出到excel。
- 学生或者教师如果填报的信息有误,可以联系学院负责人老师进行修改。
- 可进行高级查询,根据需要的不同人群,快速找到需要的疫情信息。例如只查看某个学院的老师或者学生。
3、软件实现及核心功能代码展示:软件包括哪些类,这些类分别负责什么功能,他们之间的关系怎样?类内有哪些重要的方法,关键的方法是否需要画出流程图?
- 数据库设计了四张表,分别为管理员表,学院表,学生疫情表和字典表。
- 学生类实现了疫情信息采集,上报到后台,保存当前上报时间等功能。
- 管理员类实现了登录,学生疫情查看,根据不同信息进行查询,修改和删除以及信息导出到Excel等功能。
4、程序运行:程序运行时每个功能界面截图:
- 登录界面
- 后台界面
- 添加功能
- 查询功能
- 删除功能
- 导出功能
- 导出的文件
5、描述结对的过程,提供两人在讨论、细化和编程时的微信或QQ截图:
6、提供此次结对作业的PSP:
PSP | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 60 | 40 |
·Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 60 | 40 |
Development | 开发 | 1160 | 1310 |
·Analysis | 需求分析 (包括学习新技术) | 350 | 300 |
·Design Spec | 生成设计文档 | 20 | 20 |
·Design Review | 设计复审 (和同事审核设计文档) | 30 | 40 |
·Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
·Design | 具体设计 | 150 | 180 |
·Coding | 具体编码 | 400 | 480 |
·Code Review | 代码复审 | 120 | 150 |
·Test | 测试(自我测试,修改代码,提交修改) | 60 | 120 |
Reporting | 报告 | 60 | 90 |
·Test Report | 测试报告 | 30 | 50 |
·Size Measurement | 计算工作量 | 20 | 10 |
· Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 10 | 30 |
7、小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会:
通过此次实验,我切实感受到了结对编程的好处,仅仅一周的时间,独自完成此次项目的话肯定是有很大的难度的,但是两个人合作,如果分工明确就多多少少能将难度降低一些。结对合作能够互相去查错,不断得促进项目的进展,因为有些错误可能是自己永远都会忽略了的,总的来说两人合作真的能够带来1+1>2的效果。