201771030129-张琳 实验三 结对项目—《西北师范大学疫情防控信息系统》项目报告
项目 | 内容 |
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
本次作业要求链接 | https://www.cnblogs.com/nwnudaizh/p/12521474.html |
我的课程学习目标 | 运用结对编程完成项目,并且学习到伙伴的优点 |
这个作业在哪些方面帮助我实现学习目标 | 对结对编程有了很深刻地印象,认同对方的想法很重要 |
结对方学号-姓名 | 201771030121-王国伟 |
结对方本次博客作业链接 | https://www.cnblogs.com/wangguow/p/12575605.html |
项目Giyhub的仓库链接地址 | https://github.com/18215128518wgw/diseaseManage |
一.实验目的与要求
(1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。
(2)掌握Github协作开发程序的操作方法。
二.实验内容和步骤
1.阅读《现代软件工程—构建之法》第3-4章内容,理解并掌握代码风格规范、代码设计规范、代码复审、结对编程概念
(1)代码风格规范:代码风格规范包括命名规范,代码展示风格的规范(缩进、空格、换行),控制语句的规范以及代码注释的规范,好的代码风格规范可以让其他人更好的理解。它的原则是:简明,易读,无二义性。
(2)代码设计规范:分为四部分:命名规范,文件样式规范,代码编写格式和程序编写规范。
(3)代码复审:指的是对计算机源代码系统化地审查,目的在于找出以及修正正在软件开发初期末期发现的错误,提升软件质量以及开发者的技术。
(4)结对编程概念:是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作,一个人输入代码,另一个人审查他输入的每一行代码。
2.对结对方《实验二 软件工程个人项目》的项目成果进行评价
3.克隆对方项目源码到本地机器:
代码复审核查表:
1.概要部分
(1)代码符合需求和规格说明么? .
答:符合需求和规格说明。
(2)代码设计是否考虑周全?
答:周全。
(3)代码可读性如何?
答:可读性好。
(4)代码容易维护么?
答:容易维护
(5)代码的每一行都执行并检查过了吗?
答:是
2.设计规范部分
(1)设计是否遵从已知的设计模式或项目中常用的模式?
答:是
(2)有没有硬编码或字符串/数字等存在?
答:无
(3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64) ?
答:不依赖,不影响移植。
(4)开发者新写的代码能否用已有的Library/SDK/Framework 中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
答:可以实现,存在。
(5)有没有无用的代码可以清除?
答:无
3.具体代码部分
修改的部分符合代码标准和风格么?
答:符合
4.具体代码部分
(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
答:有错误处理,检查了返回值
(2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单1双字节)的长度,是以0开始计数还是以1开始计数?
答:无错误,字节长度,是从0开始计数
(3)循环有没有可能出现死循环?
答:没有死循环
(4)有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足?
答:无
(5)有无可能存在资源泄漏(内存、文件、各种GUI资源、数据库访问的连接,等等) ?有没有优化的空间?
答:不会存在资源泄露,有优化空间
(6)数据结构中有没有用不到的元素?
答:无
5.效能
(1)代码的效能如何?最坏的情况是怎样的?
答:效能好,最坏的情况是数据量过大。
(2)代码中,特别是循环中是否有明显可优化的部分?
答:没有明显可优化的部分。
(3)对于系统和网络的调用是否会超时?如何处理?
答:不会超时。
6.可读性
代码可读性如何?有没有足够的注释?
答:可读性强,还有足够注释。
7.可测试性
代码是否需要更新或创建新的单元测试?
答:不需要。
三.采用两人结对编程方式,结合我校师生疫情每日上报系统使用体验,设计开发一款符合我校疫情防控工作需求的信息系统
1.需求分析:
(1)让学校了解本人的健康状况,有无感染新冠病毒,有无返校举动等;
(2)在系统中各二级部门疫情防控工作负责人可查看本部门人员疫情汇总,并提供高级查询功能进行多属性组合查询和可视化统计功能;
(3)互联网是一个很好的平台,通过这个平台让管理者了解被管理者的疫情情况;
(4)需要填报的人数比较多,难以管理,所以应该可以查询填报者和未填报者,并对未填报者及时作出提醒。
(5)对于查询结果,应该简单直观地反映出疫情情况。
2.软件设计说明:
(1)结构设计:系统采用B/S架构,开发模型采用增量模型,软件成为一系列的构件,开发时逐个构件进行设计、实现、集成和测试
(2)数据设计:软件中再pojo层中声明数据库表的实体类,采用ArrayList存储数据
(3)接口设计:利用mybatis的通用Mapper进行数据操作,其他数据操作类都继承通用mapper
(4)过程设计:采用springboot搭建web应用
3.软件实现及核心功能代码展示:
软件包括用户类和管理员类,用户类用来收集疫情信息,管理类用来后台控制身份登录等。
4.程序运行:
(1)可采集全校各类师生员工疫情信息
(2)各二级部门疫情防控工作负责人可查看本部门人员疫情汇总,并提供高级查询功能进行多属性组合查询和可视化统计功能;
(3)学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有人员填报汇总数据清单,利用【高级查询】可进行数据组合筛选,系统以图形化方式展示各学院已填报和未填报学生统计情况和关键疫情数据统计情况,可【导出】查询列表的EXCEL文件;
(4)定时填报提醒功能(短信提醒)
5.结对过程:
讨论截图:
6.展示psp:
psp | 任务内容 | 计划完成需要的时间 | 实际完成需要的时间 | |
Planning | 计划 | 30 | 30 | |
Estimate |
估计这个任务需要多少时间并规划大致工作步骤 |
30 | 30 | |
Development | 开发 | 1000 | 950 | |
Analysis | 需求分析(包括学习新技术) | 200 | 190 | |
Design Spec | 生成设计文档 | 100 | 120 | |
Design Review | 设计复审(和同事审核设计文档) | 40 | 30 | |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 60 | ||
Design | 具体设计 | 300 | 210 | |
Coding | 具体编码 | 300 | 200 | |
Code Review | 代码复审 | 100 | 60 | |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 50 | |
Reporting | 报告 | 30 | 50 | |
Test Report | 测试报告 | 50 | 40 | |
|
计算工作量 | 30 | 20 | |
Postmortem&Process Improvement Plan |
事后总结,并提出过程改进计划 | 60 |
50 |
7.小结感受:
我觉得两个人合作真的可以带来1+1>2的结果,我的队友是一个动手能力很强的人,在项目过程中相互配合,做自己比较擅长的方面,交流想法等配合的都算默契。和他合作地很顺利,没有产生矛盾不合等。挺好的。队友很强。