201771030118-司绍斌 实验三 结对项目—《西北师范大学疫情防控信息系统》项目报告

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12521474.html
我的课程学习目标 学会两人结对下进行项目开发
这个作业在哪些方面帮助我实现学习目标 让我了解了结对编程的优点和优势
结对方学号-姓名 201771030102-常梦娇
结对方本次博客作业链接
本项目Github的仓库链接地址 https://github.com/Eason1011/SSM2

任务二:

  • 结对方博客链接:201771030102-常梦娇 实验二 个人项目——《西北师范大学学生疫情上报系统》

  • 结对方Github项目仓库链接:Git地址

  • 符合(1)要求的博客评论:

  • 符合(2)要求的代码核查表

    1. 概要部分

      • 代码能符合需求和规格说明么? 答:能符合需求与规格
      • 代码设计是否有周全的考虑? 答:不太周全,修改了很多次,刚开始可能设计部分有一些问题
      • 代码可读性如何? 答:简单易懂
      • 代码容易维护么? 答:比较容易
      • 代码的每一行都执行并检查过了吗? 答:是的,检查过
    2. 设计规范部分

      • 设计是否遵从已知的设计模式或项目中常用的模式? 答:是
      • 有没有硬编码或字符串/数字等存在? 答:有一部分
      • 代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64) 答:没有依赖,不会影响
      • 开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 答:可以实现,不存在
      • 有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。) 答:有,已清除
    3. 代码规范部分

      • 修改的部分符合代码标准和风格么(详细条文略)? 答:符合代码标准
    4. 具体代码部分

      • 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 答:查阅资料并讨论以后发现基本没有。

      • 参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 答:基本无错误,字符串的长度是字节的长度,以0开始计数

      • 边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环? 答:通过检查代码和讨论,循环不会出现死循环

      • 有没有使用断言(Assert)来保证我们认为不变的条件真的满足? 答:没有使用

      • 对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有可能优化? 答:因为没有上线使用,基本不会导致资源泄露,没有优化

      • 数据结构中是否有无用的元素? 答:检查过后没有

    5. 效能

      • 代码的效能(Performance)如何?最坏的情况是怎样的? 答:代码正确,程序运行正常,数据很大时可能会比较慢
      • 代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)? 答:有可优化部分,但是可以正常运行
      • 对于系统和网络调用是否会超时?如何处理? 答:不会超时,数据过大可能有一点延迟
    6. 可读性

      • 代码可读性如何?有没有足够的注释? 答:代码不是很复杂,在重要部分加了注释
    7. 可测试性

      • 代码是否需要更新或创建新的单元测试? 还可以有针对特定领域开发(如数据库、网页、多线程等)的核查表。 答:后期可以增加网页方面的UI设计,有更好地用户体验
  • 结对方项目仓库中的Fork、Clone、Push、Pull request、Merge pull request日志数据

    git clone操作,克隆对方项目

    将更改后的项目上传到对方仓库

    已经上传到对方Git仓库

    git pull操作拉取对方更改后我的项目

    注:对方已经邀请我成为对方项目的合作者,由于项目不大,没有创建新的分支,直接上传到默认分支

任务三:

  • 需求分析陈述:

    • 背景:2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施。值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。各大公司开发研制一系列疫情防控的软件。

    • 目的:为了完成本校学生的每日疫情基本情况的汇总以及查看。

    • 疫情上报系统:采用前后端分离的方式,学生疫情上报和老师查看互补影响。学生只需要每天按时上报信息。老师在后台可以进行查看,搜索,导出,删除以及修改功能。

    • 本系统采用SSM框架开发,前端采用Bootstrap开发。

  • 软件设计说明:

    • 前端采集学生和教师疫情信息,在规定时间内提交,后台可以显示提交时间。
    • 支持多用户同时使用。
    • 管理员登录后台后可以查看各个学院的学生和教师上报的疫情信息,查看对应学院的负责人老师名字以及电话号码。
    • 管理员可以将需要的疫情信息查找出来,然后导出到excel。
    • 学生或者教师如果填报的信息有误,可以联系学院负责人老师进行修改。
    • 可进行高级查询,根据需要的不同人群,快速找到需要的疫情信息。例如只查看某个学院的老师或者学生。
  • 软件实现及核心功能代码展示:软件包括哪些类,这些类分别负责什么功能,他们之间的关系怎样?类内有哪些重要的方法,关键的方法是否需要画出流程图?

    • 数据库设计了四张表,分别为管理员表,学院表,学生疫情表和字典表。

    • 学生类实现了疫情信息采集,上报到后台,保存当前上报时间等功能。

    • 管理员类实现了登录,学生疫情查看,根据不同信息进行查询,修改和删除以及信息导出到Excel等功能。

  • 程序运行:程序运行时每个功能界面截图:

    • 登录界面

    • 后台界面

    • 添加功能

    • 查询功能

    • 修改功能

    • 删除功能

    • 导出功能

    • 导出的文件

  • 描述结对的过程,提供两人在讨论、细化和编程时的微信或QQ截图:

  • 提供此次结对作业的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
  • 小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会:

    通过此次结对合作,让我更加了解了软件工程的各个步骤,并且学会了两人合作去完成一个项目。两人合作有利有弊,但是总体来说是利大于弊,可以更好更高效的开发软件,及时发现问题并解决。当然也存在沟通不方便的问题,有些代码互相阅读起来比较吃力。

猜你喜欢

转载自www.cnblogs.com/iEason/p/12576593.html