项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
本次作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12416880.html
我的课程学习目标 学会采用PSP方式学习软件工程
这个作业在哪些方面帮助我们实现学习目标 了解软件开发的一般流程,学会用PSP的方式开发软件,掌握基础技术的应用
项目Github的仓库地址 https://github.com/fengzhixia17393162576/softwareE

1.实验目的与要求

(1)掌握软件项目个人开发流程
(2)掌握Github发布软件项目的操作方法

2.实验内容和步骤

任务一:陈述学生每日上报子系统使用体验;

经过较长时间体验学生疫情上报系统,得到的体验感如下:

  • 系统在后期改善之后可以保存学生之前填过的信息,方便用户填写
  • 系统没有提醒打卡的功能,也没有补卡的功能。
  • 系统设计的很简单,对于一般性调查我觉得都还不错

任务二:总结详细阅读《构建之法》第1-2章,结合第二章2.3节所描述的PSP流程,开发一款你自己心目中的西北师范大学学生疫情上报系统。
我选择第二类开发要求:
1.系统可采集学生疫情有效信息
2.系统支持用户在线使用
3.每日可填写一次,提交后无法修改,每日疫情信息在10点截至
4.学院指定负责人登陆系统,可查看本院学生填报的汇总数据,可点击查看学生联系方式。班主任联系方式,学院负责人何时本院所有学生数据后,将数据提交给学校方防控办
5.学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件
r任务三:完成个人项目报告作业

需求分析

1.疫情期间学生不能及时到达学校,为了了解学生实时的安全状况,学校打算开发一个在线学生疫情统计的系统,针对这个项目进行开发。
2、需要编写学生提交的表单,提交完数据需要转向的页面,负责人登录的表单,负责人可以查看学生提交信息统计的数据等等。

功能设计

  • 采集学生每天的疫情信息,每人每天只能上交一次,并且无法修改
  • 指定负责人(管理员)可查看所有学生填报信息
  • 管理员进入后台,可将学生疫情导出到EXCEL
  • 管理员可对学生疫情表进行增删改查
  • 提交页面能够合理的验证,例如输入不在指定范围内的字符,填写不完整等页面将会提示无法上交

实现过程

1.采用eclipse IDE,sql server2014等开发工具,使用jsp,servlet,javabean等技术,采用MVC开发模式进行的
2.主要的类包括:
(1)com.interface 该类实现在数据库中增删改查数据
(2)com.web该类实现客户端的数据提交到数据库;
(3)com.model该类实现每个字段名的实例化;
(4)com.Util该类实现对数据库的连接操作
3.主要的JSP页面
(1)index.jsp:实现学生提交信息数据的页面
(2)main.jsp:实现再次预览,确定提交的页面
(3)Excel.jsp:实现将数据库中的数据导出到excel的页面
(4)adminLogin.jsp:实现负责人登录的也页面
4.功能展示
开发需要的类
201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

学生提交信息的页面

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

提交完信息要预览确定的页面

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

数据从前端提交到数据库的页面

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

负责人登录查看统计结果的页面

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

将数据库中的数据导出到excel的页面

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

5.代码展示

这里粘贴的是利用servlet从表单获取数据并且将提交数据到SQLserver的部分

package com.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Interface.LiteratureInterface;
import com.Util.DbUtil;
import com.model.Literature;

public class PublishServlet extends HttpServlet {
    DbUtil db=new DbUtil();

    private static final long serialVersionUID = 1L;

    public PublishServlet() {
        super();
    }

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");  
        response.setContentType("text/html;charset=UTF-8");

        String Institute=request.getParameter("Institute");
        String Banji=request.getParameter("Banji");
        String Writer=request.getParameter("Writer");
        String Telephone=request.getParameter("Telephone");
        String Province=request.getParameter("Province");
        String City=request.getParameter("City");
        String Abroad=request.getParameter("Abroad");
        String Hubeiji=request.getParameter("Hubeiji");
        String Wuhanyiqu=request.getParameter("Wuhanyiqu");
        String Hubeiyiqu=request.getParameter("Hubeiyiqu");
        String Atwuhan=request.getParameter("Atwuhan");
        String Athubei=request.getParameter("Athubei");
        String Fanxiao=request.getParameter("Fanxiao");
        String Symptom=request.getParameter("Symptom");
        String Infect=request.getParameter("Infect");
        String Qita=request.getParameter("Qita");
        Literature literature=new Literature();
        literature.setInstitute(Institute);
        literature.setBanji(Banji);
        literature.setWriter(Writer);
        literature.setTelephone(Telephone);
        literature.setProvince(Province);
        literature.setCity(City);
        literature.setAbroad(Abroad);
        literature.setHubeiji(Hubeiji);
        literature.setWuhanyiqu(Wuhanyiqu);
        literature.setHubeiyiqu(Hubeiyiqu);
        literature.setAtwuhan(Atwuhan);
        literature.setAthubei(Athubei);
        literature.setFanxiao(Fanxiao);
        literature.setSymptom(Symptom);
        literature.setInfect(Infect);
        literature.setQita(Qita);

        LiteratureInterface literatureInter=new LiteratureInterface();
        literatureInter.addLiterature(literature);

        request.getRequestDispatcher("test.jsp").forward(request, response);
    }
}

6.展示PSP

PSP 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 30 30
Estimate 估计这个任务需要多少时间,并规划大致工作时间 1000 1500
Development 开发 1000 2000
Analysis 需求分析(包括学习新技术) 500 1000
Design Spec 生成设计文档 30 30
Design Review 设计复审(和同事审核设计文档) 30 30
Coding Standard 代码规范 100 80
Design 具体设计 100 150
Coding 具体编码 500 800
Code Review 代码复审 30 30
Test 测试(自我测试,修改代码,提交修改) 500 300
Reporting 报告 100 80
Test Reporting 测试报告 30 30
Size Measurement 计算工作量 30 80
Postmortern & Process Improvement Plan 事后总结,并提出过程改进计划 2000 3000
任务三:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中

201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告

7.总结思考

本次实验其实不难,但是对我来说我是基础知识没掌握牢固,再加上平时不做项目,不进行开发,所以所有的知识点都显得特别生涩,功能想得出来,可是没办法实现,不知道该从何查起,但是这几天的学习加起来,收获还是有的。开发项目的时候采用《构建之法》里面的PSP流程,主要帮助我的时间管理方面,后续会一直采用这个方式进行学习。

相关文章:

  • 2021-11-21
  • 2021-11-21
  • 2021-08-28
  • 2021-11-21
  • 2021-08-28
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-26
  • 2021-06-04
  • 2021-08-28
  • 2021-08-24
  • 2021-11-26
  • 2022-02-12
  • 2021-11-11
相关资源
相似解决方案