软件工程导论Work2

一、作业要求

软件工程导论Work2

二、开发方式

这次结对开发由一位前端同学 吴晓儿 和一位后端同学 唐一钦 选择 前后端分离 的方式进行项目开发。

我们首先确定了项目需求,选择用json格式传输数据,后端进行业务处理,前端进行页面渲染与数据显示。

三、项目流程

项目预览:

软件工程导论Work2

1.前端

  • 开始出题页面

用户在该页面可以设定出题条件,点击开始出题后即有在线答题与下载题目两个按钮可供选择。

软件工程导论Work2

  • 答题页面

本页面有计时功能,当用户选择提交时,将为根据它的答题情况进行提示,若没有答完题会有提示框提示是否确定提交,点击提交后即会立刻生成答题情况。

软件工程导论Work2

答题情况会显示学生的做题用时、正确题数以及正确率。

软件工程导论Work2

  • 错题集页面

点击下面页面的查看答题情况按钮即可跳转至错题本页面,该页面会将用户提交的错误题目、错误答案以及正确答案都展示出来,如果用户之前提交的答案内容为空,则页面会显示错误答案为null。

软件工程导论Work2

2.后端

后端共有三层,五个类。

三层:controller(接口servlet)、entity(实体类)、tool(工具类)

五类

  • NewServlet 主要负责三个功能接口:出题,接收前台题目要求信息;下载文件;提交,返回答题详情。

软件工程导论Work2

  • FeedBack 主要采用JavaBean装载错题集与正确答案。

软件工程导论Work2

  • Calculator 计算答案

软件工程导论Work2

  • New 生成算式

软件工程导论Work2

  • NewFile 生成下载文件

软件工程导论Work2

项目细节:

1.接收前台传来的答案字符串,选择“,”为分隔符,对答案进行分割遍历,获得每一个具体答案。

软件工程导论Work2

2.选择调用fastjson,将结果值以json格式传输给前台进行解析。

软件工程导论Work2

测试地址:

软件工程导论Work2

3.项目部署

  • 我们将项目部署在服务器上,方便测试与访问。

项目地址:http://188.131.244.33:8080/Work2/

软件工程导论Work2

  • 用git上传到coding.net

项目地址:https://dev.tencent.com/u/TangGemini/p/Work2/git

软件工程导论Work2

软件工程导论Work2

四、接口文档

软件工程导论Work2

五、PSP

SP2.1

任务内容

计划共完成需要的时间(h)

实际完成需要的时间(h)

Planning

计划23

23.5 41.5

·        Estimate

·   估计这个任务需要多少时间,并规划大致工作步骤

1

1

Development

开发

21.5

38.5

·        Analysis

·         需求分析 (包括学习新技术)

1

1

·        Design Review

·         代码设计

2

3

·        Coding Standard

·         代码规范 (为目前的开发制定合适的规范)

0.5

0.5

·        Design

·         具体设计

3

5

·        Coding

·        在计算模块花费的时间

          在UI模块花费的时间

          在后台处理模块花费的时间

3

2

5

5

3

8

·        Code Review

·         代码复审

2

3

·        Test

·         测试(自我测试,修改代码,提交修改)

3

10

Reporting

报告

1

2

·         Test Report

·         测试报告

0.2

1

·         Size Measurement

·         计算工作量

0.5

0.5

·         Postmortem & Process Improvement Plan

·         事后总结, 并提出过程改进计划

0.3

0.5

六、项目总结

当看到这次结对项目的需求时,我们并没有觉得会有多艰难,但事实狠狠地打了我们的脸。计算类与页面设计的实现并没有多耗费我们的时间,真正的问题出现在前后端的数据对接上,参数要求不符,接口虽然是200状态,但后台实际上报了空指针的异常。总之,虽然选择了前后端分离的开发的模式,能提高个人的开发速度,但却很磨练前后端同学的配合程度。这次我们虽然是第一次合作,有出现些小的问题,但整体来说,在规定的时间很好地完成该项目,也提升了我们合作的默契,这将对之后的开发中带来宝贵的经验。虽然这次项目仍有很多不足,但我们会再接再厉!