结对项目报告

一、仓库地址:https://git.coding.net/Enther/Teamwork.git

二、预计PSP及实际PSP对比展示


SP2.1


    Personal Software

       Process Stages


            Time

     SeniorStudent(h)


 Time

SDE(h)


Planning


计划


5


6


Estimate


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


1


1


Development


开发


200


240


Analysis


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


98


130


Design Spec


生成设计文档


0.5


1.5


Design Review


设计复审


0


0


Coding Standard


代码规范


1


1.5


Design


具体设计


2


2.5


Coding


具体编码


93


98


Code Review


代码复审


2


5


Test


测试


1.5


2


           Reporting


报告


4


6

  • Test Report

测试报告


3


3.5

  • Size Measurement

计算工作量


1


1.5

  • Postmortem& ProcessImprovement Plan

事后总结

并提出过程改进计划


1


1

三、看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节收获

(1)information hiding:看了这篇博客  https://blog.csdn.net/gongchuangsu/article/details/53895916

  1. 隐藏复杂度:这样你就不用再去应付它,除非你要特别关注的时候;
  2. 隐藏变化源:这样当变化发生时,其影响就能被限制在局部范围内。复杂度的根源包括复杂的数据类型、文件结构、布尔判断以及晦涩的算法等等
  3. 信息隐藏的价值:信息隐藏有着独特的启发力,它能够激发出有效的设计方案。信息隐藏同样有助于设计类的公开接口。在设计的所有层面上,都可以通过询问该隐藏些什么来促成好的设计决策 养成问“我该隐藏些什么?”的习惯,你会惊奇的发现,有很多棘手的设计难题都会在你面前化解

(2)Interface Design:运用接口编程,对出题模块和计算模块设计接口增强了程序的可扩展性,可维护性

(3)Loose Coupling:Loose Coupling即松耦合,耦合程度越高,模块与模块之间的联系性就更高,系统的灵活性就越低,报错率就更高。我们在设计过程中尽可能地让算式的产生和计算,优先级判断相互独立,但是我们目前使用的算法还可能出现性能方面的不稳定性(一般出现在加减乘除带括号运算的情况中),在程序设计中将出题模块、计算模块、运算符判断模块等均封装到不同的方法中,降低程序的耦合度

四、计算机模块接口的设计与实现过程

各个模块的主要功能:

将一些关于数据库的操作写到sql包中;jsp有三个,第一个是选择界面(选择一些简单的参数,例如整数或者分数,出题数据范围,算式运算符个数,式子个数等等),将这些参数传到第二个jsp中,在第二个jsp得到用户输入的参数,并且生成相应的算式题目,在第三个jsp中判断对错,在jsp中调用包中的类,直接使用.java中的分数整数类,在一些数据库操作中也是直接调用封装好的sql包中函数,来实现连接数据库,插入数据等操作

接口实现代码如下:

import java.util.HashMap;

import java.util.Map;

publicclass Main {

publicstaticvoidmain(String[] args)

  {

long st = System.nanoTime();

if(args.length < 1)

  {

  System.err.println("Please set the file name.");

  }

  IOController controller =newIOController(args[0]);

  WordCounter wc =newWordCounter();

  String line;

while((line = controller.readLine()) != null)

  {

  wc.countWord(line);

  }

  System.out.println(wc.countList.entrySet());

  controller.writeFile(wc.countList);

  System.out.println((System.nanoTime()-st) / 1e9);

  }

} 

五、计算机模块接口部分的性能改进

六、计算机部分单元测试展示

代码覆盖率:

七、计算机部分异常处理说明

1.输出值异常

:

2.运算符异常

八、界面模块的详细设计过程

将一些关于数据库的操作写到sql包中;jsp有三个,第一个是选择界面(选择一些简单的参数,例如整数或者分数,出题数据范围,算式运算符个数,式子个数等等),将这些参数传到第二个jsp中,在第二个jsp得到用户输入的参数,并且生成相应的算式题目,在第三个jsp中判断对错,在jsp中调用包中的类,直接使用.java中的分数整数类,在一些数据库操作中也是直接调用封装好的sql包中函数,来实现连接数据库,插入数据等操作

系统结构图:

预计实现的界面:

 

九、界面模块与计算机模块对接

 

以下是部分js代码展示:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<
String path = request.getContextPath
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
<%@ page language="java" import="java.util.*" import ="java.sql.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="entity.*"%>
<%@page import="sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>判断答案</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <%
    request.setCharacterEncoding("utf-8");
        Statement stmt=null;
        Connection con=null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://127.0.0.1/web_number","root","baohui");
            stmt=con.createStatement();
            //out.print("数据库连接成功");
            //out.print("<p>");
        }
        catch(Exception e)
        {
            out.print(e);
        }

    //Sql.lianjie();
    String sql="select * from web";
    ResultSet rs=stmt.executeQuery(sql);
        for(int i=0;i<10;i++)
        {
            //sql语句执行
            int number=0;
            String shizi=null;
            String jieguo=null;
            if(rs.next())
            {
                number=rs.getInt("number");
                shizi=rs.getString("shizi");
                jieguo=rs.getString("jieguo");
            }

            //进行比较,判断对错
            out.print(shizi+"=    ");
            String  name=request.getParameter("name"+i);
            out.print(name);
            String name1=jieguo;

            if(name.equals(name1))
            {
                out.print("        ");
                out.print("<font color=greeen face=楷体>正确</font>");
            }
            else
            {
                out.print("        ");
                out.print("<font color=red face=楷体>错误</font>");
            }
            out.print("<p>");
        }
        stmt.close();
        con.close();
     %>
  </body>
</html>

十、描述结对过程并提供照片

描述结对过程: 对于此次结对项目,我们在互相进步在完成。由于时间之间不好协调,因此我们共同作业的部分不多,前后台我们没有很细致的分工。在一起作业的过程中,感觉不再是孤军奋战。在两个人思维碰撞中,共同努力完成此次作业

十 一、结对项目优缺点

结对的优点:

1. 程中遇到困难时双方可以互相鼓励,这要比一个人闷头苦想好的多

2. 相监督,避免了在做项目过程中有惰性

3. 替写代码,既减少了产生的bug,两个人又不会很累,效率有所提高

4. 彼此的团队协作和沟通交流的能力

结对的缺点:

1. 偶尔会出现分歧,会让效率下降

2. 时间问题,我们两个人都有各自的时间课程安排,彼此进度不一致,两个人可以一起做项目的时间不多

我(赵瑞雪)的优点:比较有耐心,曾过项目经验识,能出一些新颖的点子,合作过程中积极向上+乐观

我(赵瑞雪)的缺点:我的选修课比较多,时间分配上更多是需要对方来配合我的时间

王怡镔的优点:性格温和,做事踏实,善于合作,在写代码的过程中特别细心

王怡镔的缺点:Java语言基础不是特别好

最后总结:

首先,我要谢谢我的小伙伴,因为她带给我学习过程中相互讨论相互学习的感觉,使我们都能投入到学习当中去,用我们共同的力量去寻求更好的解决问题的方法。通过结对学习,使我们之间受益匪浅。  两个人合作还可以发现多方身上的优点,找出自己身上的不足,并能相互监督让彼此变得更好,还可以彼此分享好的学习经验,所以我们认为两个人合作的效率远远大于一个人。在交流与学习的过程中,既掌握了知识,又学到了他人的一些思想与方法,这是我觉得本次实验中学到的最重要的东西!通过这次结对编程的经历我对编程也有了更进一步的了解:

1. 每个人对编写代码的想法都是不同

2. 对同一个问题(即使很小的问题)从多个角度思考,能有不同的认识

4. 结对编程对程序的质量有明显的提升

5. 在编写程序中多个人的想法、思路对程序功能有不同的实现方法

通过这次编程,我觉得能够带来1+1>2的效果,之前一个人做的时候,遇到不懂得问题时,就会陷入迷茫。当两个人一起编程时,有不懂的还可以一起讨论,说出自己的意见,也为整个编程过程节约了时间,除此之外,两个人一起合作时就会产生更多更好的想法,可以更好的优化整个项目的设计,遇到问题时可以相互帮助解决问题,效率也比较高!

原文地址:https://www.cnblogs.com/mrxueren/p/8766719.html

时间: 2024-10-06 20:46:23

结对项目报告的相关文章

201571030121《小学四则运算练习软件软件需求说明》结对项目报告

201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已经上线的<小学生四则运算网站>链接发给我们调研的人,在他们体验过我们的程序后在填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 网站链接:http://123.56.24.117:8080/ 其次,我们主要采取了精准的问卷调查方式来进行需求分析,调查的主要对象为老师和有

2015710301120/201571030119《小学四则运算练习软件》结对项目报告

一.项目源码 Github地址:https://github.com/myGitHub1018/Student_Comput3.git 二.项目报告 1.需求分析 (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分: (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做).带括号算式.真分数算式

201571030310/201571030329《小学四则运算训练软件》结对项目报告

一.项目源码. Github地址:https://github.com/lucky6991/SoftWareTest/tree/master/SoftWareTest3 二.项目报告. 1.需求分析: (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不       计分,20道题测试结束后给出测试总分: (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四则运算练习功能

201571030335/201571030320《小学四则运算练习软件》结对项目报告

源码链接地址:  https://github.com/woaichimangguo(我的201571030335) https://github.com/mashifang(小伙伴的201571030320) 一. 需求分析: (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分. (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四

201571030133/201571030102《小学四则运算练习软件软件需求说明》结对项目报告

我的学号:201571030133 结对伙伴的学号:201571030102 结对伙伴的博文链接:http://www.cnblogs.com/yuan1229/p/8873824.html 任务一: 以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 1. 调研对象:小学生.小学生家长和小学老师. 2. 需求调研方法:访谈.问卷调查 .原型评估. 问卷样本链接:https://www.wjx.cn/jq/22680152.aspx

小学四则运算练习题网页版结对项目报告

一.项目结构 二.计算模块和界面模块间的调用 三.页面演示效果 四.遇到问题 五.知识点记录 六.新知识新技能 七.未实现但计划实现功能 八.学习目标与总结 项目地址:https://git.dev.tencent.com/hey_wuqw/webArithmetic.git 一.项目结构 二. 计算模块和界面模块间的调用 三.页面演示效果 四.遇到问题 1.check()方法(用于接收答题页面传来的参数,请求从answer.jsp(答题界面)转发到result.jsp(做题结果界面))需要访问

201571030122/201571030129《小学四则运算练习软件软件需求说明》结对项目报告

<小学四则运算练习软件>博文链接:http://www.cnblogs.com/mzll/p/8709480.html GitHub的链接地址:https://github.com/13993013291/Shiyan3.git 任务一:        以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 1.调研对象:老师,学生以及家长: 2.调研方法:主要是问卷调查,其次通过即时通讯工具访谈了下当老师的同学: 3.问卷样本链接:h

实验四:201571030116/201571030106《小学四则运算练习软件需求说明》结对项目报告

任务1:以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 由于上次作业小伙伴很机智的把软件的操作过程录成了gif动图,所以在做基于原型的用户需求调查时减少了很多麻烦.对于这个任务我们采用了三种方法做用户需求调查:1.线上问卷调查 2.真实用户线上访谈 3.会议研讨 1.线上问卷调查:地址: 我们通过前两次作业整理了一些问题,用"问卷星"做了一份线上问卷调查,为了更精确的区分不同真实用户对软件的需求,我们把问卷调查分成了三个

201571030315\201571030303《小学生四则运算软件需求说明结对项目报告》

以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. (1)调研对象:小学生,小学数学代课老师,家长 (2)要利用实验二.实验三开发的程序作为软件原型: (3)采用问卷调查,访谈两种方式来需求获取: (4)和小伙伴设计了网上问卷调查,调查了数学代课老师和小学生及其家长 (5)问卷调查网址https://www.wjx.cn/m/22668847.aspx 1.1 编写目的   本文档的目的是详细地介绍<小学生四则运算练习软件>所包含的