实验四 软件工程结队项目

项目 内容
该作业所属课程 任课教师博主主页链接
作业要求 实验四 软件工程结队项目
课程学习目标 熟悉软件开发整体流程,提升自身能力
本次作业在哪个具体方面帮助我们实现目标 第一次体验一个完整的工程
项目源码 https://github.com/Z-zt/shiyan4)

任务一

  • 点评博客地址和点评内容:
    • [点评博客地址](https://www.cnblogs.com/XL1105/p/10556116.html)[GitHub链接地址](https://github.com/XL1105/xlproject/blob/master/CiPin.zip)
      点评内容:首先你的博文结构有条有理,项目要实现什么,该怎么实现每一个步骤你都表达得很清晰,能看出你在前期也做足了相关的准备,但是我个人有点小小的建议就是你可以把你的标题字号稍微放小一点就看上去更美观和谐一点。还有一点就是你在博文内容上面应该简单阐述一下你的模块化设计是怎么实现的就更好了,我简单分析了一下你的PSP表,我发现你在开发和具体编码两个环节中,计划完成时间和实际完成时间一共相差了80分钟,我想应该是编程能力影响了你的进展速度,我也是由于编程基础薄弱,才导致我的实际完成时间和计划时间有很大的落差,所以我们一起学习,慢慢进步,我相信总会有收获的。最后通过运行你的程序,我发现你的词频统计以柱状图的形式显示出来的这一功能是很值得我去学习的,下来我们可以一起交流一下,互相学习,共同进步!
  • 点评心得
    • 通过互相的博客点评,PSP的互相对比,我发现我还有很多不足的地方,其中最大的问题就是由于我的编程基础太薄弱,所以直接影响到我的项目进展。在本次的博客点评过程中,我也发现了对方的很多优点值得我去学习,比如在博文结构上对方的显然结构更为清晰,条理明确,在项目的功能上她的也更为完善,由于我的编程能力有限,所以我并没有实现该功能,通过在我的机子上运行对方的源码,我发现她在这以功能上做的很好,所以在下来之后我也认真向对方请教了一番。对于互相的博客点评,我觉得很有必要,我认为这样可以使我们互相取长补短,发现对方的闪光点,并且向对方去学习,弥补自己的不足。

任务二

需求分析

  • 实验2要求的功能;
  • 实现单词频数可视化柱状图;
  • 统计该文本行数及字符数;
  • 各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
  • 可处理任意用户导入的任意英文文本;
  • 人机交互界面要求GUI界面(WEB页面、APP页面都可);
  • 附加功能:统计文本中除冠词、代词、介词之外的高频词;
  • 附加功能:统计前10个两个单词组成的词组频率。

软件设计

核心功能代码展示

  • 显示程序所消耗时间
for(Map.Entry<String, Integer> map : list) {
				if(num <= sb.length()) {
					bw.write("出现次数第" + num + "的单词为:" + map.getKey() + ",出现频率为" + map.getValue() + "次");
					bw.newLine();
					System.out.println(map.getKey() + ":" + map.getValue());
					num++;
				}
				else break;
			}
			bw.write("耗时:" + (System.currentTimeMillis() - t1) + "ms");
			br.close();
			bw.close();
			System.out.println("耗时:" + (System.currentTimeMillis() - t1) + "ms");
		} catch (FileNotFoundException e) {
			System.out.println("找不到指定文件!");
		} catch (IOException e) {                                    
			System.out.println("文件读取错误!");
		}
  • 统计文本行数及字符数
public static void main(String[] args) {
        BufferedReader br = null;
        int line = 0;
        String str = "";
        StringBuffer sb  = new StringBuffer();
        try {
            br = new BufferedReader(new FileReader("src/file.txt"));
            while ((str = br.readLine()) != null) {
              sb.append(str);
                ++line;
            }
            System.out.println("\n文件行数: " + line);
            TreeMap<Character, Integer> tm = Pross(sb.toString());
            System.out.println("\n字符统计结果为:" + tm);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

程序运行结果

  • 初始化界面
  • 程序运行消耗时间结果显示图
  • 文件行数显示

结对过程

PSP

<body> <table id="recuit" border="1"> <tr> <th>任务内容</th> <th>计划共完成需要的时间(min)</th> <th>实际完成需要的时间(min)</th> </tr> <tr> <td>计划</td> <td>15</td> <td>20</td> </tr> <tr> <td>估计这个任务需要多少时间,并规划大致工作步骤</td> <td>20</td> <td>15</td> </tr> <tr> <td>开发</td> <td>300</td> <td>350</td> </tr> <tr> <td>需求分析 (包括学习新技术)</td> <td>200</td> <td>220</td> </tr> <tr> <td>生成设计文档</td> <td>10</td> <td>15</td> </tr> <tr> <td>设计复审 (和同事审核设计文档)</td> <td>10</td> <td>10</td> </tr> <tr> <td>代码规范 (为目前的开发制定合适的规范)</td> <td>10</td> <td>10</td> </tr> <tr> <td>具体设计</td> <td>40</td> <td>35</td> </tr> <tr> <td>具体设编码</td> <td>200</td> <td>300</td> </tr> <tr> <td>代码复审</td> <td>15</td> <td>20</td> </tr> <tr> <td>测试(自我测试,修改代码,提交修改)</td> <td>40</td> <td>35</td> </tr> <tr> <td>报告</td> <td>20</td> <td>30</td> </tr> <tr> <td>测试报告</td> <td>8</td> <td>8</td> </tr> <tr> <td>具体设计</td> <td>40</td> <td>35</td> </tr> <tr> <td>计算工作量</td> <td>15</td> <td>20</td> </tr> <tr> <td>事后总结 ,并提出过程改进计划</td> <td>10</td> <td>15</td> </tr> </table> </body> ####小节感受:两人合作真的能够带来1+1>2的效果吗?通过这次结队合作,谈谈感受与体会。 - 通过本次实验,我得出的结论是在两个人配合默契的前提下,能达到1+1>2的效果,在结队的初期,我们配合的还算可以,实验进展的速度也还行,但是在中后期,由于两个人的能力有限,我们被卡在一个地方和长时间,所以这也是的为什么我们在开发和具体实施的环节耗费了那么多的时间。结队编程的优点就是两个人在合作的过程中可以互相学习,取长补短,两个人在合作时也能避免走许多弯路,都能起到监督的作用,发现问题也得以及时解决。但是我认为结队也有他的缺点,那就是两个人不够熟悉,在合作的过程中会有一个磨合的过程,但这个过程也降低了结队的进展速度。在本次实验后我们也认识到两个人最致命的缺点,那就是编程能力薄弱,所以整个实验设计的结果也不是很满意,所以当下的一个问题就是课后进行学习,努力提高编程能力。
posted @ 2019-04-01 23:54  张仲桃  阅读(167)  评论(3编辑  收藏  举报